From b8cde0c39d7b6d58ceff3adf6dea3cb3118ea602 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 13 九月 2022 14:46:15 +0800
Subject: [PATCH] 2022-09-13

---
 src/menu/components/share/actioncomponent/index.jsx |  139 ++++++++++++++++++++++++++++------------------
 1 files changed, 84 insertions(+), 55 deletions(-)

diff --git a/src/menu/components/share/actioncomponent/index.jsx b/src/menu/components/share/actioncomponent/index.jsx
index c7718dc..937d2f3 100644
--- a/src/menu/components/share/actioncomponent/index.jsx
+++ b/src/menu/components/share/actioncomponent/index.jsx
@@ -21,6 +21,7 @@
 const VerifyPrint = asyncSpinComponent(() => import('@/templates/sharecomponent/actioncomponent/verifyprint'))
 const VerifyExcelIn = asyncSpinComponent(() => import('@/templates/sharecomponent/actioncomponent/verifyexcelin'))
 const VerifyExcelOut = asyncSpinComponent(() => import('@/templates/sharecomponent/actioncomponent/verifyexcelout'))
+const VerifyMegvii = asyncSpinComponent(() => import('@/templates/sharecomponent/actioncomponent/verifymegvii'))
 
 class ActionComponent extends Component {
   static propTpyes = {
@@ -37,7 +38,8 @@
     formlist: null,      // 琛ㄥ崟淇℃伅
     actionlist: null,    // 鎸夐挳缁�
     visible: false,      // 妯℃�佹鎺у埗
-    profVisible: false   // 楠岃瘉淇℃伅妯℃�佹
+    profVisible: false,  // 楠岃瘉淇℃伅妯℃�佹
+    record: null
   }
 
   /**
@@ -63,7 +65,6 @@
 
   componentDidMount () {
     MKEmitter.addListener('addButton', this.addButton)
-    MKEmitter.addListener('submitStyle', this.getStyle)
   }
 
   /**
@@ -88,14 +89,11 @@
       return
     }
     MKEmitter.removeListener('addButton', this.addButton)
-    MKEmitter.removeListener('submitStyle', this.getStyle)
   }
 
-  getStyle = (comIds, style) => {
+  getStyle = (style) => {
     const { config } = this.props
     const { card, actionlist } = this.state
-
-    if (comIds[0] !== config.uuid || comIds[1] !== 'actionlist') return
 
     let _card = fromJS(card).toJS()
     _card.style = style
@@ -113,8 +111,6 @@
   }
 
   changeBtnStyle = (element) => {
-    const { config } = this.props
-
     let _style = element.style ? fromJS(element.style).toJS() : {}
     let options = ['font', 'border', 'background', 'margin', 'padding']
 
@@ -122,7 +118,7 @@
       card: element
     })
 
-    MKEmitter.emit('changeStyle', [config.uuid, 'actionlist', element.uuid], options, _style)
+    MKEmitter.emit('changeStyle', options, _style, this.getStyle)
   }
 
   addButton = (cardId, element) => {
@@ -171,6 +167,10 @@
     let functip = <div>
       <p style={{marginBottom: '5px'}}>{this.state.dict['model.tooltip.func.innerface'].replace('@ableField', ableField)}</p>
     </div>
+    
+    if (!ableField) { // 鏃犲瓧娈甸檺鍒�
+      functip = ''
+    }
 
     let menulist = sessionStorage.getItem('fstMenuList')
     if (menulist) {
@@ -182,13 +182,24 @@
     } else {
       menulist = []
     }
+
+    let supId = ''
+    if (config.setting && config.setting.supModule) {
+      let pid = config.setting.supModule[config.setting.supModule.length - 1]
+      if (pid && pid !== 'empty') {
+        supId = pid
+      } else {
+        supId = ''
+      }
+    }
     
-    let modules = MenuUtils.getSubModules(window.GLOB.customMenu.components, config.uuid) || []
+    let modules = MenuUtils.getSubModules(window.GLOB.customMenu.components, config.uuid, supId) || []
+    let anchors = MenuUtils.getAnchors(window.GLOB.customMenu.components, config.uuid) || []
 
     this.setState({
       visible: true,
       card: card,
-      formlist: getActionForm(card, functip, config, usefulFields, this.props.type, menulist, modules)
+      formlist: getActionForm(card, functip, config, usefulFields, this.props.type, menulist, modules, anchors)
     })
   }
 
@@ -312,6 +323,7 @@
       profVisible: true,
       card: element
     })
+    MKEmitter.emit('modalStatus', '楠岃瘉淇℃伅')
   }
 
   /**
@@ -339,6 +351,7 @@
       }, () => {
         this.props.updateaction({...config, action: _actionlist})
       })
+      MKEmitter.emit('modalStatus', false)
     })
   }
 
@@ -410,9 +423,9 @@
 
     if (element.OpenType === 'pop' || element.OpenType === 'popview' || element.execMode === 'pop') {
       this.props.setSubConfig(element)
-    } else if (element.OpenType === 'innerpage' && element.pageTemplate === 'page') {
-      MKEmitter.emit('changeEditMenu', {MenuID: element.uuid, copyMenuId: element.copyMenuId})
     } else if (element.OpenType === 'innerpage' && element.pageTemplate === 'linkpage') {
+      MKEmitter.emit('changeEditMenu', {MenuID: element.linkmenu})
+    } else if (element.OpenType === 'funcbutton' && (element.funcType === 'copyurl' || element.funcType === 'scan') && element.linkmenu) {
       MKEmitter.emit('changeEditMenu', {MenuID: element.linkmenu})
     } else {
       this.handleAction(element)
@@ -448,14 +461,60 @@
     })
   }
 
-  render() {
+  getVerify = (card) => {
     const { config } = this.props
-    const { actionlist, visible, card, dict, profVisible } = this.state
+    const { dict } = this.state
+
+    if (!card) return null
+
+    if (['pop', 'prompt', 'exec'].includes(card.OpenType)) {
+      return <VerifyCard
+        card={card}
+        dict={dict}
+        config={config}
+        columns={config.columns}
+        wrappedComponentRef={(inst) => this.verifyRef = inst}
+      />
+    } else if (card.OpenType === 'excelIn') {
+      return <VerifyExcelIn
+        card={card}
+        dict={dict}
+        columns={config.columns}
+        wrappedComponentRef={(inst) => this.verifyRef = inst}
+      />
+    } else if (card.OpenType === 'excelOut') {
+      return <VerifyExcelOut
+        card={card}
+        dict={dict}
+        config={config}
+        wrappedComponentRef={(inst) => this.verifyRef = inst}
+      />
+    } else if (card.OpenType === 'funcbutton' && card.funcType === 'print') {
+      return <VerifyPrint
+        card={card}
+        dict={dict}
+        columns={config.columns}
+        wrappedComponentRef={(inst) => this.verifyRef = inst}
+      />
+    } else if (card.OpenType === 'funcbutton' && card.funcType === 'megvii') {
+      return <VerifyMegvii
+        card={card}
+        dict={dict}
+        columns={config.columns}
+        wrappedComponentRef={(inst) => this.verifyRef = inst}
+      />
+    }
+  }
+
+  render() {
+    const { config, type } = this.props
+    const { actionlist, visible, appType, card, dict, profVisible, record } = this.state
 
     return (
-      <div className={'model-menu-action-list'}>
+      <div className={'model-menu-action-list length' + actionlist.length}>
         <DragElement
           list={actionlist}
+          type={appType === 'mob' ? (type || '') : ''}
           handleList={this.handleList}
           dropButton={this.dropButton}
           handleMenu={this.handleAction}
@@ -466,13 +525,13 @@
         />
         {/* 缂栬緫鎸夐挳锛氬鍒躲�佺紪杈� */}
         <Modal
-          title={dict['model.action'] + '-' + (card && card.copyType === 'action' ? dict['model.copy'] : dict['model.edit'])}
+          title="鎸夐挳路缂栬緫"
           visible={visible}
-          width={850}
+          width={920}
           maskClosable={false}
           onCancel={this.editModalCancel}
           footer={[
-            <CreateFunc key="create" dict={dict} ref="btnCreatFunc" trigger={this.creatFunc}/>,
+            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.handleSubmit}>{dict['model.confirm']}</Button>
           ]}
@@ -484,15 +543,15 @@
             formlist={this.state.formlist}
             inputSubmit={this.handleSubmit}
             setting={config.setting}
+            updRecord={(record) => this.setState({record: fromJS(record).toJS()})}
             wrappedComponentRef={(inst) => this.actionFormRef = inst}
           />
         </Modal>
         {/* 鎸夐挳浣跨敤绯荤粺瀛樺偍杩囩▼鏃讹紝楠岃瘉淇℃伅妯℃�佹 */}
         <Modal
-          wrapClassName="model-table-action-verify-modal"
-          title={(card && card.label ? card.label + ' - ' : '') + '楠岃瘉淇℃伅'}
+          wrapClassName="mk-pop-modal"
           visible={profVisible}
-          width={'75vw'}
+          width={'90vw'}
           maskClosable={false}
           okText={dict['model.submit']}
           onOk={this.verifySubmit}
@@ -500,46 +559,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={config}
-              columns={config.columns}
-              wrappedComponentRef={(inst) => this.verifyRef = inst}
-            /> : null
-          }
-          {card && card.execMode ?
-            <VerifyPrint
-              card={card}
-              dict={dict}
-              columns={config.columns}
-              wrappedComponentRef={(inst) => this.verifyRef = inst}
-            /> : null
-          }
-          {card && card.OpenType === 'excelIn' ?
-            <VerifyExcelIn
-              card={card}
-              dict={dict}
-              columns={config.columns}
-              wrappedComponentRef={(inst) => this.verifyRef = inst}
-            /> : null
-          }
-          {card && card.OpenType === 'excelOut' ?
-            <VerifyExcelOut
-              card={card}
-              dict={dict}
-              config={config}
-              wrappedComponentRef={(inst) => this.verifyRef = inst}
-            /> : null
-          }
+          {this.getVerify(card)}
         </Modal>
       </div>
     )

--
Gitblit v1.8.0