From 162440a345abe2432df48b933bb858e6f1b56449 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 18 一月 2024 11:26:38 +0800
Subject: [PATCH] 2024-01-18

---
 src/menu/datasource/verifycard/settingform/index.scss     |    9 +++
 src/tabviews/custom/popview/index.jsx                     |   24 ++++++--
 src/utils/utils-datamanage.js                             |    6 ++
 src/tabviews/basetable/index.jsx                          |   24 ++++++--
 src/tabviews/custom/components/table/base-table/index.jsx |    2 
 src/api/index.js                                          |   22 ++++++
 src/tabviews/custom/index.jsx                             |   24 ++++++--
 src/components/editor/index.jsx                           |    1 
 src/templates/zshare/verifycard/baseform/index.jsx        |    6 +-
 src/menu/datasource/verifycard/settingform/index.jsx      |   17 +++++
 src/tabviews/zshare/actionList/normalbutton/index.jsx     |   10 +-
 11 files changed, 113 insertions(+), 32 deletions(-)

diff --git a/src/api/index.js b/src/api/index.js
index cb9a698..1c2f745 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -834,7 +834,7 @@
    * @description 鑾峰彇涓氬姟閫氱敤鎺ュ彛
    * 璁块棶 'https://sso.mk9h.cn/webapi/dostars'鎴栦簯绔椂锛屼紶鍏serid銆丩oginUID
    */
-  genericInterface (param) {
+  genericInterface (param, script = '', position) {
     param.userid = param.userid || sessionStorage.getItem('UserID') || ''
     param.lang = param.lang || sessionStorage.getItem('lang') || ''
     param.SessionUid = localStorage.getItem('SessionUid') || ''
@@ -859,7 +859,25 @@
       }
     }
 
-    if (param.$login) {
+    if (script) {
+      try {
+        // eslint-disable-next-line
+        let func = new Function('axios', 'Api', 'param', 'position', 'systemType', script)
+        let promise = func(axios, this, param, position, window.GLOB.systemType)
+
+        if (promise instanceof Promise) {
+          return promise
+        }
+      } catch (e) {
+        console.warn(e)
+      }
+
+      return Promise.resolve({
+        status: false,
+        message: '鑷畾涔夎剼鏈墽琛岄敊璇�',
+        ErrCode: 'E'
+      })
+    } else if (param.$login) {
       let rduri = param.rduri || ''
 
       delete param.$login
diff --git a/src/components/editor/index.jsx b/src/components/editor/index.jsx
index fb02a69..ede20dc 100644
--- a/src/components/editor/index.jsx
+++ b/src/components/editor/index.jsx
@@ -4,7 +4,6 @@
 import BraftEditor from 'braft-editor'
 import 'braft-editor/dist/index.css'
 import 'braft-extensions/dist/table.css'
-// import 'braft-editor/dist/output.css'
 import Table from 'braft-extensions/dist/table'
 import SparkMD5 from 'spark-md5'
 import moment from 'moment'
diff --git a/src/menu/datasource/verifycard/settingform/index.jsx b/src/menu/datasource/verifycard/settingform/index.jsx
index 5f5d523..d52d420 100644
--- a/src/menu/datasource/verifycard/settingform/index.jsx
+++ b/src/menu/datasource/verifycard/settingform/index.jsx
@@ -264,7 +264,7 @@
                 </Radio.Group>)}
               </Form.Item>
             </Col>
-            {setting.interType === 'outer' ? <Col span={8}>
+            {setting.interType === 'outer' ? <Col span={8} className="compact">
               <Form.Item label={
                 <Tooltip placement="topLeft" title="涓氬姟绯荤粺鎸囧悓涓�sso涓嬬殑鍏朵粬涓氬姟绯荤粺锛屽閮ㄧ郴缁熸寚涓嶅悓sso涓嬬殑鍏朵粬涓氬姟绯荤粺銆�">
                   <QuestionCircleOutlined className="mk-form-tip" />
@@ -284,6 +284,7 @@
                   <Radio value="false">涓氬姟</Radio>
                   <Radio value="true">鍗曠偣</Radio>
                   <Radio value="external">澶栭儴</Radio>
+                  <Radio value="custom">鑷畾涔�</Radio>
                 </Radio.Group>)}
               </Form.Item>
             </Col> : null}
@@ -332,7 +333,7 @@
                 })(<KeyInterface type="develop"/>)}
               </Form.Item>
             </Col> : null}
-            {setting.interType === 'outer' && setting.sysInterface === 'false' ? <Col className="outer-interface" span={24}>
+            {setting.interType === 'outer' && (setting.sysInterface === 'false' || setting.sysInterface === 'custom') ? <Col className="outer-interface" span={24}>
               <Form.Item label={<Tooltip placement="topLeft" title="姝e紡绯荤粺鎺ュ彛鍦板潃锛屼负绌烘椂浣跨敤鎺ュ彛鍦板潃銆�">
                   <QuestionCircleOutlined className="mk-form-tip" />
                   姝e紡鍦板潃
@@ -354,6 +355,18 @@
                 })(<KeyInterface type="product"/>)}
               </Form.Item>
             </Col> : null}
+            {setting.interType === 'outer' && setting.sysInterface === 'custom' ? <Col span={24} className="data-source" style={{paddingLeft: '7px'}}>
+              <Form.Item labelCol={{xs: { span: 24 }, sm: { span: 2 }}} wrapperCol={ {xs: { span: 24 }, sm: { span: 22 }} } label={
+                <Tooltip placement="topLeft" title="澶栭儴鎺ュ彛鍏ュ弬鍙婂嚭鍙傜殑鑷畾涔夊鐞嗐��">
+                  <QuestionCircleOutlined className="mk-form-tip" />
+                  鑷畾涔夎剼鏈�
+                </Tooltip>
+              }>
+                {getFieldDecorator('js_script', {
+                  initialValue: setting.js_script || ''
+                })(<CodeMirror mode="text/javascript" theme="cobalt" />)}
+              </Form.Item>
+            </Col> : null}
             {setting.interType === 'outer' ? <Col span={8}>
               <Form.Item label="澶栭儴鍑芥暟">
                 {getFieldDecorator('outerFunc', {
diff --git a/src/menu/datasource/verifycard/settingform/index.scss b/src/menu/datasource/verifycard/settingform/index.scss
index bdd6da1..87630fa 100644
--- a/src/menu/datasource/verifycard/settingform/index.scss
+++ b/src/menu/datasource/verifycard/settingform/index.scss
@@ -17,6 +17,15 @@
   .ant-radio-group {
     white-space: nowrap;
   }
+  .compact {
+    padding-left: 0px!important;
+    .ant-radio-group {
+      span.ant-radio + * {
+        padding-left: 6px;
+        padding-right: 6px;
+      }
+    }
+  }
   .outer-interface {
     .ant-form-item-label {
       width: 10.5%;
diff --git a/src/tabviews/basetable/index.jsx b/src/tabviews/basetable/index.jsx
index 87436e1..83f496c 100644
--- a/src/tabviews/basetable/index.jsx
+++ b/src/tabviews/basetable/index.jsx
@@ -506,12 +506,24 @@
     }
 
     if (cell.verify && cell.verify.preHandle === 'true') {
-      try {
-        // eslint-disable-next-line
-        let func = new Function('btn', 'systemType', cell.verify.pre_func)
-        func(cell, window.GLOB.systemType)
-      } catch (e) {
-        console.warn(e)
+      let script = cell.verify.pre_func
+      if (!/#position-/.test(script) || /#position-init/.test(script)) {
+        try {
+          // eslint-disable-next-line
+          let func = new Function('btn', 'position', 'systemType', script)
+          func(cell, 'init', window.GLOB.systemType)
+        } catch (e) {
+          console.warn(e)
+        }
+      }
+      if (/#position-inner/.test(script)) {
+        cell.$innerScript = script
+      }
+      if (/#position-outer/.test(script)) {
+        cell.$outerScript = script
+      }
+      if (/#position-callback/.test(script)) {
+        cell.$callbackScript = script
       }
     }
 
diff --git a/src/tabviews/custom/components/table/base-table/index.jsx b/src/tabviews/custom/components/table/base-table/index.jsx
index aca8592..7c86fca 100644
--- a/src/tabviews/custom/components/table/base-table/index.jsx
+++ b/src/tabviews/custom/components/table/base-table/index.jsx
@@ -137,7 +137,7 @@
     let _orderBy = orderBy || setting.order
     let param = UtilsDM.getQueryDataParams(setting, searches, _orderBy, pageIndex, pageSize, BID)
 
-    let result = await Api.genericInterface(param)
+    let result = await Api.genericInterface(param, setting.js_script)
     if (result.status) {
       if (repage === 'false' && result.data && result.data.length === 0 && result.total > 0 && pageIndex > 1) {
         let _pageIndex = Math.ceil(result.total / pageSize)
diff --git a/src/tabviews/custom/index.jsx b/src/tabviews/custom/index.jsx
index c6c0b26..aa98810 100644
--- a/src/tabviews/custom/index.jsx
+++ b/src/tabviews/custom/index.jsx
@@ -919,12 +919,24 @@
     }
 
     if (cell.verify && cell.verify.preHandle === 'true') {
-      try {
-        // eslint-disable-next-line
-        let func = new Function('btn', 'systemType', cell.verify.pre_func)
-        func(cell, window.GLOB.systemType)
-      } catch (e) {
-        console.warn(e)
+      let script = cell.verify.pre_func
+      if (!/#position-/.test(script) || /#position-init/.test(script)) {
+        try {
+          // eslint-disable-next-line
+          let func = new Function('btn', 'position', 'systemType', script)
+          func(cell, 'init', window.GLOB.systemType)
+        } catch (e) {
+          console.warn(e)
+        }
+      }
+      if (/#position-inner/.test(script)) {
+        cell.$innerScript = script
+      }
+      if (/#position-outer/.test(script)) {
+        cell.$outerScript = script
+      }
+      if (/#position-callback/.test(script)) {
+        cell.$callbackScript = script
       }
     }
 
diff --git a/src/tabviews/custom/popview/index.jsx b/src/tabviews/custom/popview/index.jsx
index 2810e2b..403cace 100644
--- a/src/tabviews/custom/popview/index.jsx
+++ b/src/tabviews/custom/popview/index.jsx
@@ -636,12 +636,24 @@
     }
 
     if (cell.verify && cell.verify.preHandle === 'true') {
-      try {
-        // eslint-disable-next-line
-        let func = new Function('btn', 'systemType', cell.verify.pre_func)
-        func(cell, window.GLOB.systemType)
-      } catch (e) {
-        console.warn(e)
+      let script = cell.verify.pre_func
+      if (!/#position-/.test(script) || /#position-init/.test(script)) {
+        try {
+          // eslint-disable-next-line
+          let func = new Function('btn', 'position', 'systemType', script)
+          func(cell, 'init', window.GLOB.systemType)
+        } catch (e) {
+          console.warn(e)
+        }
+      }
+      if (/#position-inner/.test(script)) {
+        cell.$innerScript = script
+      }
+      if (/#position-outer/.test(script)) {
+        cell.$outerScript = script
+      }
+      if (/#position-callback/.test(script)) {
+        cell.$callbackScript = script
       }
     }
 
diff --git a/src/tabviews/zshare/actionList/normalbutton/index.jsx b/src/tabviews/zshare/actionList/normalbutton/index.jsx
index 1a4ac29..6c4548b 100644
--- a/src/tabviews/zshare/actionList/normalbutton/index.jsx
+++ b/src/tabviews/zshare/actionList/normalbutton/index.jsx
@@ -1301,7 +1301,7 @@
       return
     }
 
-    Api.genericInterface(param).then(res => {
+    Api.genericInterface(param, btn.$innerScript, 'inner').then(res => {
       record.mk_api_key = res.mk_api_key || ''
 
       if (res.status) {
@@ -1541,7 +1541,7 @@
       param.menuname = param.menuname + '(鍥炶皟)'
     }
 
-    Api.genericInterface(param).then(res => {
+    Api.genericInterface(param, btn.$callbackScript, 'callback').then(res => {
       if (res.status) {
         this.triggerNote(res, param.ID) // 娑堟伅
 
@@ -1898,7 +1898,7 @@
       return
     }
 
-    Api.genericInterface(param).then(res => {
+    Api.genericInterface(param, btn.$innerScript, 'inner').then(res => {
       if (res.status) {
         if ((res.mk_ex_invoke === 'false' || res.mk_ex_invoke === false) && params.length === 0) {
           this.execSuccess(res)
@@ -1996,7 +1996,7 @@
       }
     }
 
-    Api.genericInterface(result).then(res => {
+    Api.genericInterface(result, btn.$outerScript, 'outer').then(res => {
       if (!res) return // LoginError鏃朵腑鏂姹�
       if (ver_token && res.ErrCode === 'token_error') {
         res.ErrCode = 'E'
@@ -2088,7 +2088,7 @@
       param.menuname = param.menuname + '(鍥炶皟)'
     }
 
-    Api.genericInterface(param).then(res => {
+    Api.genericInterface(param, btn.$callbackScript, 'callback').then(res => {
       if (res.status) {
         this.triggerNote(res, param.ID) // 娑堟伅
 
diff --git a/src/templates/zshare/verifycard/baseform/index.jsx b/src/templates/zshare/verifycard/baseform/index.jsx
index e9f2311..c408e74 100644
--- a/src/templates/zshare/verifycard/baseform/index.jsx
+++ b/src/templates/zshare/verifycard/baseform/index.jsx
@@ -137,7 +137,7 @@
     } else if (verify.accountdate === 'true' && !verify.accountfield) {
       error = '寮�鍚处鏈熸椂锛岄渶瑕侀�夋嫨楠岃瘉鍏徃锛�'
     } else if (verify.preHandle === 'true' && !verify.pre_func) {
-      error = '寮�鍚寜閽澶勭悊鏃讹紝闇�瑕佸~鍐欏鐞嗗嚱鏁帮紒'
+      error = '寮�鍚嚜瀹氫箟鑴氭湰鏃讹紝闇�瑕佸~鍐欏鐞嗗嚱鏁帮紒'
     } else if (verify.wxNote === 'true') {
       if (!verify.wxTemplateId) {
         error = '寮�鍚叕浼楀彿娑堟伅鎺ㄩ�佹椂锛岄渶瑕侀�夋嫨娑堟伅妯℃澘锛�'
@@ -697,9 +697,9 @@
           <Col span={24}></Col>
           <Col span={8}>
             <Form.Item label={
-              <Tooltip placement="topRight" title="杩愯鏃朵慨鏀规寜閽弬鏁帮紝鍏ュ弬涓猴紙btn, systemType锛夈�傛敞锛歴ystemType涓虹郴缁熺被鍨嬶紝姝e紡绯荤粺涓簆roduction">
+              <Tooltip placement="topRight" title="杩愯鏃朵慨鏀规寜閽弬鏁帮紝鍏ュ弬涓猴紙btn, position, systemType锛�,鏍囪#position-(init,inner,outer,callback)">
                 <QuestionCircleOutlined className="mk-form-tip" />
-                鎸夐挳棰勫鐞�
+                鑷畾涔夎剼鏈�
               </Tooltip>
             }>
               <Radio.Group value={verify.preHandle || 'false'} onChange={(e) => {this.onOptionChange(e.target.value, 'preHandle')}}>
diff --git a/src/utils/utils-datamanage.js b/src/utils/utils-datamanage.js
index eef1007..a1fbc18 100644
--- a/src/utils/utils-datamanage.js
+++ b/src/utils/utils-datamanage.js
@@ -69,6 +69,12 @@
         } else {
           param.$token = setting.exInterface || ''
         }
+      } else if (setting.sysInterface === 'custom') {
+        if (window.GLOB.systemType === 'production') {
+          param.rduri = setting.proInterface
+        } else {
+          param.rduri = setting.interface
+        }
       } else {
         if (window.GLOB.systemType === 'production' && setting.proInterface) {
           param.rduri = setting.proInterface

--
Gitblit v1.8.0