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