From cbeffcc0902631909c0373f274752a97ddaf2d4e Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期六, 06 八月 2022 01:41:54 +0800
Subject: [PATCH] 2022-08-06

---
 src/menu/components/card/cardcellcomponent/index.jsx |  218 ++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 139 insertions(+), 79 deletions(-)

diff --git a/src/menu/components/card/cardcellcomponent/index.jsx b/src/menu/components/card/cardcellcomponent/index.jsx
index 551555c..cd73458 100644
--- a/src/menu/components/card/cardcellcomponent/index.jsx
+++ b/src/menu/components/card/cardcellcomponent/index.jsx
@@ -12,6 +12,7 @@
 import MKEmitter from '@/utils/events.js'
 import MenuUtils from '@/utils/utils-custom.js'
 import ElementForm from './elementform'
+import CreateFunc from '@/templates/zshare/createfunc'
 import DragElement from './dragaction'
 import './index.scss'
 
@@ -41,6 +42,7 @@
     visible: false,      // 妯℃�佹鎺у埗
     actvisible: false,   // 鎸夐挳缂栬緫妯℃�佹
     profVisible: false,  // 楠岃瘉淇℃伅缂栬緫
+    record: null
   }
 
   /**
@@ -145,9 +147,18 @@
     let options = ['font', 'border', 'padding', 'margin', 'background']
 
     if (element.eleType === 'button') {
-      options.push('width', 'float')
+      if (element.OpenType === 'form') {
+        options = ['margin', 'float']
+      } else {
+        options.push('width', 'minHeight', 'float')
+      }
+      if (element.wrapStyle) {
+        _style.float = element.wrapStyle.textAlign || 'left'
+      }
     } else if (element.eleType === 'picture') {
       options = ['border', 'margin']
+    } else if (element.eleType === 'text') {
+      options[0] = 'font2'
     } else if (element.eleType === 'slider') {
       options = ['padding', 'margin']
     } else if (element.eleType === 'splitline') {
@@ -229,7 +240,12 @@
 
       _card.innerHeight = _card.barHeight + (_card.displayValue === 'true' ? fontSize + 2 : 0)
     } else if (_card.eleType === 'button') { // 鎷嗗垎style
-      _card.style = style
+      _card.style = fromJS(style).toJS()
+
+      if (style.float) {
+        _card.wrapStyle = {textAlign: style.float}
+        delete _card.style.float
+      }
     } else {
       _card.style = style
     }
@@ -255,10 +271,12 @@
     if (card.eleType === 'button') {
       this.handleAction(card)
     } else {
+      let anchors = MenuUtils.getAnchors(window.GLOB.customMenu.components, cards.uuid) || []
+
       this.setState({
         visible: true,
         card: card,
-        formlist: getCardCellForm(card, cards.type, cards.subtype, cardCell)
+        formlist: getCardCellForm(card, cards.type, cards.subtype, cardCell, anchors)
       })
     }
   }
@@ -296,12 +314,23 @@
       menulist = []
     }
 
-    let modules = MenuUtils.getSubModules(window.GLOB.customMenu.components, cards.uuid) || []
+    let supId = ''
+    if (cards.setting && cards.setting.supModule) {
+      let pid = cards.setting.supModule[cards.setting.supModule.length - 1]
+      if (pid && pid !== 'empty') {
+        supId = pid
+      } else {
+        supId = ''
+      }
+    }
+
+    let modules = MenuUtils.getSubModules(window.GLOB.customMenu.components, cards.uuid, supId) || []
+    let anchors = MenuUtils.getAnchors(window.GLOB.customMenu.components, cards.uuid) || []
 
     this.setState({
       actvisible: true,
       card: card,
-      formlist: getActionForm(card, functip, cards, usefulFields, 'card', menulist, modules)
+      formlist: getActionForm(card, functip, cards, usefulFields, 'card', menulist, modules, anchors)
     })
   }
 
@@ -398,17 +427,24 @@
     this.actionFormRef.handleConfirm().then(res => {
       let _elements = elements.map(cell => {
         if (cell.uuid === res.uuid) {
-          res = {...cell, ...res}
+          res.eleType = cell.eleType || null
+          res.style = cell.style || null
+          res.modal = cell.modal || null
+          // res = {...cell, ...res}
 
-          if (!res.control) {
-            delete res.controlField
-            delete res.controlVal
-          }
+          // if (!res.control) {
+          //   delete res.controlField
+          //   delete res.controlVal
+          // }
           
-          delete res.focus
-          let style = {}
+          // delete res.focus
 
-          if (res.class !== cell.class || res.show !== cell.show || !res.style) {
+          if (res.OpenType === 'form') {
+            if (cell.OpenType !== 'form') {
+              res.style = {}
+            }
+          } else if (res.class !== cell.class || res.show !== cell.show || !res.style) {
+            let style = {}
             if (res.show === 'link' || res.show === 'icon') {
               style.color = color[res.class]
               style.backgroundColor = 'transparent'
@@ -416,8 +452,8 @@
               style.color = '#ffffff'
               style.backgroundColor = color[res.class]
             }
+            res.style = {...res.style, ...style}
           }
-          res.style = {...res.style, ...style}
 
           return res
         }
@@ -437,7 +473,7 @@
    * @description 鎸夐挳鍒犻櫎
    */
   deleteElement = (card) => {
-    const { cards, cardCell, side } = this.props
+    const { cardCell, side } = this.props
     const { dict, elements, appType } = this.state
     let _this = this
 
@@ -450,7 +486,7 @@
           card.$parentId = cardCell.uuid
           card.$side = side || ''
 
-          MKEmitter.emit('logButton', cards.uuid, card)
+          // MKEmitter.emit('logButton', cards.uuid, card)
         }
 
         _this.setState({
@@ -476,6 +512,7 @@
       profVisible: true,
       card: element
     })
+    MKEmitter.emit('modalStatus', '楠岃瘉淇℃伅')
   }
 
   /**
@@ -499,6 +536,8 @@
       }, () => {
         this.props.updateElement(_elements)
       })
+
+      MKEmitter.emit('modalStatus', false)
     })
   }
 
@@ -509,33 +548,25 @@
 
     if ((sessionStorage.getItem('style-control') && sessionStorage.getItem('style-control') === 'true')) return
 
-    if (btn.eleType === 'button') {
-      if (btn.OpenType === 'pop' || btn.execMode === 'pop') {
-        if (!btn.modal) {
-          btn.modal = {
-            setting: { title: btn.label, width: appType === 'mob' ? 100 : 60, cols: '2', container: 'view', focus: '', finish: 'close', clickouter: 'unclose', display: 'modal' },
-            tables: [],
-            groups: [],
-            fields: []
-          }
+    if (btn.OpenType === 'pop' || btn.execMode === 'pop') {
+      if (!btn.modal) {
+        btn.modal = {
+          setting: { title: btn.label, width: appType === 'mob' ? 100 : 60, cols: '2', container: 'view', focus: '', finish: 'close', clickouter: 'unclose', display: 'modal' },
+          tables: [],
+          groups: [],
+          fields: []
         }
-  
-        MKEmitter.emit('changeModal', cards, btn)
-      } else if (btn.OpenType === 'popview') {
-        MKEmitter.emit('changePopview', cards, btn)
-      } else if (btn.OpenType === 'innerpage' && btn.pageTemplate === 'page') {
-        MKEmitter.emit('changeEditMenu', {MenuID: btn.uuid, copyMenuId: btn.copyMenuId})
-      } else if (btn.OpenType === 'innerpage' && btn.pageTemplate === 'linkpage') {
-        MKEmitter.emit('changeEditMenu', {MenuID: btn.linkmenu})
-      } else {
-        this.handleElement(item)
       }
+
+      MKEmitter.emit('changeModal', cards, btn)
+    } else if (btn.OpenType === 'popview') {
+      MKEmitter.emit('changePopview', cards, btn)
+    } else if (btn.OpenType === 'innerpage' && btn.pageTemplate === 'linkpage') {
+      MKEmitter.emit('changeEditMenu', {MenuID: btn.linkmenu})
+    } else if (btn.OpenType === 'funcbutton' && (btn.funcType === 'copyurl' || btn.funcType === 'scan') && btn.linkmenu) {
+      MKEmitter.emit('changeEditMenu', {MenuID: btn.linkmenu})
     } else {
-      if (btn.link === 'page') {
-        MKEmitter.emit('changeEditMenu', {MenuID: btn.uuid, copyMenuId: btn.copyMenuId})
-      } else if (btn.link === 'linkpage') {
-        MKEmitter.emit('changeEditMenu', {MenuID: btn.linkmenu})
-      }
+      this.handleElement(item)
     }
   }
 
@@ -591,6 +622,25 @@
     let btn = cards.action[index]
     btn.eleType = 'button'
 
+    if (!btn.width) {
+      btn.width = 12
+    }
+    if (btn.color) {
+      btn.style = btn.style || {}
+      btn.style.color = '#ffffff'
+      if (btn.color === 'primary') {
+        btn.style.backgroundColor = '#1677ff'
+      } else if (btn.color === 'danger') {
+        btn.style.backgroundColor = '#ff3141'
+      } else if (btn.color === 'warning') {
+        btn.style.backgroundColor = '#ff8f1f'
+      } else if (btn.color === 'success') {
+        btn.style.backgroundColor = '#00b578'
+      } else if (btn.color === 'light') {
+        btn.style.backgroundColor = '#cccccc'
+      }
+    }
+
     let _elements = [...this.state.elements, btn]
 
     this.setState({
@@ -600,9 +650,47 @@
     })
   }
 
+  getVerify = (card) => {
+    const { cards } = this.props
+    const { dict } = this.state
+
+    if (!card) return null
+
+    if (['pop', 'prompt', 'exec'].includes(card.OpenType)) {
+      return <VerifyCard
+        card={card}
+        dict={dict}
+        config={cards}
+        columns={cards.columns}
+        wrappedComponentRef={(inst) => this.verifyRef = inst}
+      />
+    } else if (card.OpenType === 'excelIn') {
+      return <VerifyExcelIn
+        card={card}
+        dict={dict}
+        columns={cards.columns}
+        wrappedComponentRef={(inst) => this.verifyRef = inst}
+      />
+    } else if (card.OpenType === 'excelOut') {
+      return <VerifyExcelOut
+        card={card}
+        dict={dict}
+        config={cards}
+        wrappedComponentRef={(inst) => this.verifyRef = inst}
+      />
+    } else if (card.OpenType === 'funcbutton' && card.funcType === 'print') {
+      return <VerifyPrint
+        card={card}
+        dict={dict}
+        columns={cards.columns}
+        wrappedComponentRef={(inst) => this.verifyRef = inst}
+      />
+    }
+  }
+
   render() {
     const { cards, cardCell } = this.props
-    const { elements, visible, actvisible, profVisible, card, dict } = this.state
+    const { elements, visible, actvisible, profVisible, card, dict, record } = this.state
 
     return (
       <div className="model-menu-card-cell-list">
@@ -622,9 +710,9 @@
         <div onDoubleClick={(e) => e.stopPropagation()}>
           {/* 缂栬緫鎸夐挳锛氬鍒躲�佺紪杈� */}
           <Modal
-            title={'缂栬緫鍏冪礌'}
+            title="缂栬緫鍏冪礌"
             visible={visible}
-            width={800}
+            width={850}
             maskClosable={false}
             onCancel={this.editModalCancel}
             onOk={this.handleSubmit}
@@ -641,12 +729,13 @@
           </Modal>
           {/* 缂栬緫鎸夐挳锛氬鍒躲�佺紪杈� */}
           <Modal
-            title={dict['model.action'] + '-' + (card && card.copyType === 'action' ? dict['model.copy'] : dict['model.edit'])}
+            title="鎸夐挳路缂栬緫"
             visible={actvisible}
-            width={800}
+            width={920}
             maskClosable={false}
             onCancel={this.editModalCancel}
             footer={[
+              record && record.intertype === 'inner' ? <CreateFunc key="create" dict={dict} ref="btnCreatFunc" trigger={this.creatFunc}/> : null,
               <Button key="cancel" onClick={this.editModalCancel}>{dict['model.cancel']}</Button>,
               <Button key="confirm" type="primary" onClick={this.handleActionSubmit}>{dict['model.confirm']}</Button>
             ]}
@@ -659,6 +748,7 @@
               formlist={this.state.formlist}
               inputSubmit={this.handleActionSubmit}
               setting={cards.setting}
+              updRecord={(record) => this.setState({record: fromJS(record).toJS()})}
               wrappedComponentRef={(inst) => this.actionFormRef = inst}
             />
           </Modal>
@@ -667,7 +757,7 @@
             wrapClassName="model-table-action-verify-modal"
             title={(card && card.label ? card.label + ' - ' : '') + '楠岃瘉淇℃伅'}
             visible={profVisible}
-            width={'75vw'}
+            width={'90vw'}
             maskClosable={false}
             okText={dict['model.submit']}
             onOk={this.verifySubmit}
@@ -675,46 +765,16 @@
               if (this.verifyRef.handleCancel) {
                 this.verifyRef.handleCancel().then(() => {
                   this.setState({ profVisible: false })
+                  MKEmitter.emit('modalStatus', false)
                 })
               } else {
                 this.setState({ profVisible: false })
+                MKEmitter.emit('modalStatus', false)
               }
             }}
             destroyOnClose
           >
-            {card && !card.execMode && card.OpenType !== 'excelIn' && card.OpenType !== 'excelOut' ?
-              <VerifyCard
-                card={card}
-                dict={dict}
-                config={cards}
-                columns={cards.columns}
-                wrappedComponentRef={(inst) => this.verifyRef = inst}
-              /> : null
-            }
-            {card && card.execMode ?
-              <VerifyPrint
-                card={card}
-                dict={dict}
-                columns={cards.columns}
-                wrappedComponentRef={(inst) => this.verifyRef = inst}
-              /> : null
-            }
-            {card && card.OpenType === 'excelIn' ?
-              <VerifyExcelIn
-                card={card}
-                dict={dict}
-                columns={cards.columns}
-                wrappedComponentRef={(inst) => this.verifyRef = inst}
-              /> : null
-            }
-            {card && card.OpenType === 'excelOut' ?
-              <VerifyExcelOut
-                card={card}
-                dict={dict}
-                config={cards}
-                wrappedComponentRef={(inst) => this.verifyRef = inst}
-              /> : null
-            }
+            {this.getVerify(card)}
           </Modal>
         </div>
       </div>

--
Gitblit v1.8.0