From 67036fb0ed31d77ca33b660ce5f9f47c29ae65c0 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期日, 03 三月 2024 11:47:46 +0800 Subject: [PATCH] 2024-03-03 --- src/tabviews/zshare/actionList/normalbutton/index.jsx | 1064 ++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 729 insertions(+), 335 deletions(-) diff --git a/src/tabviews/zshare/actionList/normalbutton/index.jsx b/src/tabviews/zshare/actionList/normalbutton/index.jsx index 7dfd165..8bf447f 100644 --- a/src/tabviews/zshare/actionList/normalbutton/index.jsx +++ b/src/tabviews/zshare/actionList/normalbutton/index.jsx @@ -3,7 +3,7 @@ import moment from 'moment' import qs from 'qs' import { is, fromJS } from 'immutable' -import { Button, Modal, notification, message, Drawer, Switch, Checkbox, Progress } from 'antd' +import { Button, Modal, notification, message, Popover, Drawer, Switch, Checkbox, Progress } from 'antd' import md5 from 'md5' import Api from '@/api' @@ -47,6 +47,7 @@ } moduleParams = null + preCallback = null UNSAFE_componentWillMount () { const { btn, selectedData, BData, disabled } = this.props @@ -180,33 +181,17 @@ } actionSubmit = (res) => { - const { btn, setting, BID } = this.props + const { btn } = this.props const { selines } = this.state if (btn.uuid !== res.menuId) return let data = selines || [] - if (setting.supModule && !BID) { - notification.warning({ - top: 92, - message: '闇�瑕佷笂绾т富閿�硷紒', - duration: 3 - }) - return - } else if (btn.Ot !== 'notRequired' && data.length === 0) { - notification.warning({ - top: 92, - message: '璇烽�夋嫨琛岋紒', - duration: 5 - }) - return - } else if (btn.Ot === 'requiredSgl' && data.length !== 1) { - notification.warning({ - top: 92, - message: '璇烽�夋嫨鍗曡鏁版嵁锛�', - duration: 5 - }) + let valid = this.checkBtnData(data) + + if (!valid) { + this.preCallback && this.preCallback() return } @@ -214,122 +199,36 @@ this.execSubmit(data, () => {}, res.form) } - - /** - * @description 鎸夐挳鐘舵�佹敼鍙� - */ - updateStatus = () => { - this.setState({ - loading: false, - visible: false, - confirmLoading: false - }) - } /** * @description 瑙﹀彂鎸夐挳鎿嶄綔 */ - actionTrigger = (triggerId, record, type) => { - const { BID, btn, selectedData, setting } = this.props + actionTrigger = (triggerId, record, type, callback) => { + const { btn, selectedData } = this.props const { loading, disabled } = this.state + + if (type === 'preButton') { + if (btn.uuid !== triggerId) return + + this.preTrigger(callback) + return + } else { + this.preCallback = null + } if (loading || disabled) return if (triggerId && btn.uuid !== triggerId) return - - if (setting.supModule && !BID) { - notification.warning({ - top: 92, - message: '闇�瑕佷笂绾т富閿�硷紒', - duration: 5 - }) - return - } else if (type === 'linkbtn' && !btn.$toolbtn && !is(fromJS(selectedData || []), fromJS(record))) { - return - } + if (type === 'linkbtn' && !btn.$toolbtn && !is(fromJS(selectedData || []), fromJS(record))) return + if (btn.OpenType === 'form' && btn.formType === 'count_line') return this.setState({autoMatic: type === 'autoMatic'}) let _this = this let data = record || selectedData || [] - if (btn.Ot !== 'notRequired' && data.length === 0) { - // 闇�瑕侀�夋嫨琛屾椂锛屾牎楠屾暟鎹� - notification.warning({ - top: 92, - message: '璇烽�夋嫨琛岋紒', - duration: 5 - }) - return - } else if (btn.Ot === 'requiredSgl' && data.length !== 1) { - // 闇�瑕侀�夋嫨鍗曡鏃讹紝鏍¢獙鏁版嵁 - notification.warning({ - top: 92, - message: '璇烽�夋嫨鍗曡鏁版嵁锛�', - duration: 5 - }) - return - } else if (btn.intertype === 'system') { - // 浣跨敤鍐呴儴鎺ュ彛鏃讹紝鎿嶄綔绫诲瀷鍜屾暟鎹簮涓嶅彲涓虹┖ - if (!btn.sql || !btn.sqlType) { - notification.warning({ - top: 92, - message: '鎸夐挳鎿嶄綔绫诲瀷閿欒锛�', - duration: 5 - }) - return - } else if (data.length === 0 && btn.verify && btn.verify.voucher && btn.verify.voucher.enabled) { - notification.warning({ - top: 92, - message: '浣跨敤鍒涘缓鍑瘉鍑芥暟锛岄渶瑕侀�夋嫨琛岋紒', - duration: 5 - }) - return - } - } else if (btn.intertype === 'inner') { - // 浣跨敤鍐呴儴鎺ュ彛鏃讹紝鍐呴儴鍑芥暟涓嶅彲涓虹┖ - if (!btn.innerFunc) { - notification.warning({ - top: 92, - message: '鎸夐挳鍐呴儴鍑芥暟涓嶅彲涓虹┖锛�', - duration: 5 - }) - return - } - } else if (btn.intertype === 'custom' || btn.intertype === 'outer') { - if (btn.callbackType === 'script' && (!btn.verify || !btn.verify.cbScripts || !btn.verify.cbScripts.filter(item => item.status !== 'false').length === 0)) { - notification.warning({ - top: 92, - message: '浣跨敤鑷畾涔夎剼鏈洖璋冩椂锛屽洖璋冭剼鏈笉鍙负绌猴紒', - duration: 5 - }) - return - } else if (btn.procMode === 'system' && data.length === 0 && btn.verify && btn.verify.voucher && btn.verify.voucher.enabled) { - notification.warning({ - top: 92, - message: '浣跨敤鍒涘缓鍑瘉鍑芥暟锛岄渶瑕侀�夋嫨琛岋紒', - duration: 5 - }) - return - } else if (btn.intertype === 'custom' && window.GLOB.systemType === 'production' && !btn.proInterface) { - notification.warning({ - top: 92, - message: '灏氭湭璁剧疆姝e紡绯荤粺鎺ュ彛鍦板潃锛�', - duration: 5 - }) - return - } - } else if (!['inner', 'outer', 'system', 'custom'].includes(btn.intertype)) { - if (btn.OpenType === 'form' && btn.formType === 'count_line') { - return - } - // 鎺ュ彛绫诲瀷閿欒 - notification.warning({ - top: 92, - message: '鎸夐挳鎺ュ彛绫诲瀷閿欒锛�', - duration: 5 - }) - return - } + let valid = this.checkBtnData(data) + + if (!valid) return this.setState({ selines: data @@ -339,7 +238,6 @@ this.setState({}, () => { MKEmitter.emit('mkFormSubmit', btn.uuid) }) - return } else if (btn.OpenType === 'prompt') { this.setState({loading: true}) confirm({ @@ -410,10 +308,158 @@ let _change = { prompt: '鎻愮ず妗�', exec: '鐩存帴鎵ц', - pop: '寮圭獥锛堣〃鍗曪級' + pop: '寮圭獥锛堣〃鍗曪級', + formSubmit: '琛ㄥ崟', + form: '琛ㄥ崟', } MKEmitter.emit('queryTrigger', {menuId: btn.uuid, name: _change[btn.OpenType]}) } + } + + preTrigger = (callback) => { + const { btn, selectedData } = this.props + const { loading, disabled } = this.state + + if (loading || disabled) { + callback() + return + } else if (btn.OpenType === 'form') { + callback() + return + } + + let _this = this + let data = selectedData || [] + + let valid = this.checkBtnData(data) + + if (!valid) { + callback() + return + } + + this.preCallback = callback + + this.setState({ + selines: data + }) + + if (btn.OpenType === 'formSubmit') { + this.setState({}, () => { + MKEmitter.emit('mkFormSubmit', btn.uuid, callback) + }) + } else if (btn.OpenType === 'prompt') { + this.setState({loading: true}) + confirm({ + title: btn.tipTitle || '纭畾瑕佹墽琛屽悧?', + onOk() { + return new Promise(resolve => { + _this.execSubmit(data, resolve) + }) + }, + onCancel() { + callback() + _this.setState({loading: false}) + } + }) + } else if (btn.OpenType === 'exec') { + this.setState({loading: true}) + this.execSubmit(data, () => { this.setState({loading: false})}) + } else if (btn.OpenType === 'pop') { + let modal = this.state.btnconfig + if (!modal && btn.modal) { + modal = this.handleModelConfig(btn.modal) + } + + this.setState({ + loading: true, + btnconfig: modal + }) + + if (modal) { + if (modal.setting.display === 'prompt' || modal.setting.display === 'exec') { + this.modelconfirm() + } else { + this.setState({ + visible: true + }) + } + } + } + } + + /** + * @description 鎸夐挳鐘舵�佹敼鍙� + */ + updateStatus = () => { + this.setState({ + loading: false, + visible: false, + confirmLoading: false + }) + } + + checkBtnData = (data) => { + const { BID, btn, setting } = this.props + + if (setting.supModule && !BID) { + notification.warning({ + top: 92, + message: '闇�瑕佷笂绾т富閿�硷紒', + duration: 5 + }) + return false + } else if (btn.Ot !== 'notRequired' && data.length === 0) { + // 闇�瑕侀�夋嫨琛屾椂锛屾牎楠屾暟鎹� + notification.warning({ + top: 92, + message: '璇烽�夋嫨琛岋紒', + duration: 5 + }) + return false + } else if (btn.Ot === 'requiredSgl' && data.length !== 1) { + // 闇�瑕侀�夋嫨鍗曡鏃讹紝鏍¢獙鏁版嵁 + notification.warning({ + top: 92, + message: '璇烽�夋嫨鍗曡鏁版嵁锛�', + duration: 5 + }) + return false + } else if (btn.intertype === 'system') { + if (data.length === 0 && btn.verify && btn.verify.voucher && btn.verify.voucher.enabled) { + notification.warning({ + top: 92, + message: '浣跨敤鍒涘缓鍑瘉鍑芥暟锛岄渶瑕侀�夋嫨琛岋紒', + duration: 5 + }) + return false + } + } else if (btn.intertype === 'custom' || btn.intertype === 'outer') { + if (btn.callbackType === 'script' && (!btn.verify || !btn.verify.cbScripts || !btn.verify.cbScripts.filter(item => item.status !== 'false').length === 0)) { + notification.warning({ + top: 92, + message: '浣跨敤鑷畾涔夎剼鏈洖璋冩椂锛屽洖璋冭剼鏈笉鍙负绌猴紒', + duration: 5 + }) + return false + } else if (btn.procMode === 'system' && data.length === 0 && btn.verify && btn.verify.voucher && btn.verify.voucher.enabled) { + notification.warning({ + top: 92, + message: '浣跨敤鍒涘缓鍑瘉鍑芥暟锛岄渶瑕侀�夋嫨琛岋紒', + duration: 5 + }) + return false + } else if (btn.intertype === 'custom' && window.GLOB.systemType === 'production' && !btn.proInterface) { + notification.warning({ + top: 92, + message: '灏氭湭璁剧疆姝e紡绯荤粺鎺ュ彛鍦板潃锛�', + duration: 5 + }) + return false + } + } + + return true } getSystemParam = (data, formdata, retmsg) => { @@ -441,23 +487,17 @@ param.ID = primaryId if (retmsg) { - const { sql, callbacksql } = getSysDefaultSql(btn, setting, '', param, data[0], columns, retmsg, this.moduleParams, Utils.getAllSearchOptions) // 鏁版嵁婧� + const { sql, callbacksql } = getSysDefaultSql(btn, setting, '', param, data[0], columns, retmsg, this.moduleParams) // 鏁版嵁婧� param.LText = sql param.$callbacksql = callbacksql } else { - param.LText = getSysDefaultSql(btn, setting, '', param, data[0], columns, false, this.moduleParams, Utils.getAllSearchOptions) // 鏁版嵁婧� + param.LText = getSysDefaultSql(btn, setting, '', param, data[0], columns, false, this.moduleParams) // 鏁版嵁婧� if (btn.output) { param.key_back_type = 'Y' } } - if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺 - param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'') - } else { - param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'') - } - - param.exec_type = 'y' // 鍚庡彴瑙g爜 + param.exec_type = window.GLOB.execType || 'y' // 鍚庡彴瑙g爜 param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt('', param.timestamp) @@ -468,7 +508,7 @@ param.LText = param.LText.replace(/\$check@|@check\$/ig, '') } - param.LText = Utils.formatOptions(param.LText) + param.LText = Utils.formatOptions(param.LText, param.exec_type) } else if (btn.OpenType === 'pop' || btn.OpenType === 'formSubmit' || btn.OpenType === 'form') { // 琛ㄥ崟 if (btn.sqlType === 'insert') { // 绯荤粺鍑芥暟娣诲姞鏃讹紝鐢熸垚uuid primaryId = '' @@ -483,23 +523,17 @@ param.ID = primaryId || Utils.getguid() if (retmsg) { - const { sql, callbacksql } = getSysDefaultSql(btn, setting, formdata, param, data[0], columns, retmsg, this.moduleParams, Utils.getAllSearchOptions) // 鏁版嵁婧� + const { sql, callbacksql } = getSysDefaultSql(btn, setting, formdata, param, data[0], columns, retmsg, this.moduleParams) // 鏁版嵁婧� param.LText = sql param.$callbacksql = callbacksql } else { - param.LText = getSysDefaultSql(btn, setting, formdata, param, data[0], columns, false, this.moduleParams, Utils.getAllSearchOptions) // 鏁版嵁婧� + param.LText = getSysDefaultSql(btn, setting, formdata, param, data[0], columns, false, this.moduleParams) // 鏁版嵁婧� if (btn.output) { param.key_back_type = 'Y' } } - - if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺 - param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'') - } else { - param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'') - } - param.exec_type = 'y' // 鍚庡彴瑙g爜 + param.exec_type = window.GLOB.execType || 'y' // 鍚庡彴瑙g爜 param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt('', param.timestamp) @@ -510,28 +544,22 @@ param.LText = param.LText.replace(/\$check@|@check\$/ig, '') } - param.LText = Utils.formatOptions(param.LText) + param.LText = Utils.formatOptions(param.LText, param.exec_type) } else { param.ID = primaryId if (retmsg) { - const { sql, callbacksql } = getSysDefaultSql(btn, setting, formdata, param, data[0], columns, retmsg, this.moduleParams, Utils.getAllSearchOptions) // 鏁版嵁婧� + const { sql, callbacksql } = getSysDefaultSql(btn, setting, formdata, param, data[0], columns, retmsg, this.moduleParams) // 鏁版嵁婧� param.LText = sql param.$callbacksql = callbacksql } else { - param.LText = getSysDefaultSql(btn, setting, formdata, param, data[0], columns, false, this.moduleParams, Utils.getAllSearchOptions) // 鏁版嵁婧� + param.LText = getSysDefaultSql(btn, setting, formdata, param, data[0], columns, false, this.moduleParams) // 鏁版嵁婧� if (btn.output) { param.key_back_type = 'Y' } } - - if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺 - param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'') - } else { - param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'') - } - param.exec_type = 'y' // 鍚庡彴瑙g爜 + param.exec_type = window.GLOB.execType || 'y' // 鍚庡彴瑙g爜 param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt('', param.timestamp) @@ -542,7 +570,7 @@ param.LText = param.LText.replace(/\$check@|@check\$/ig, '') } - param.LText = Utils.formatOptions(param.LText) + param.LText = Utils.formatOptions(param.LText, param.exec_type) } } @@ -562,7 +590,7 @@ if (param.$unCheckParam) { param.$unCheckParam.LText = param.$unCheckParam.LText.replace(/\$check@/ig, '/*').replace(/@check\$/ig, '*/') - param.$unCheckParam.LText = Utils.formatOptions(param.$unCheckParam.LText) + param.$unCheckParam.LText = Utils.formatOptions(param.$unCheckParam.LText, param.exec_type) param.$unCheckParam.menuname = btn.logLabel if (window.GLOB.probation) { @@ -587,23 +615,17 @@ param.ID = primaryId if (retmsg) { - const { sql, callbacksql } = getSysDefaultSql(btn, setting, '', param, cell, columns, retmsg, this.moduleParams, Utils.getAllSearchOptions) // 鏁版嵁婧� + const { sql, callbacksql } = getSysDefaultSql(btn, setting, '', param, cell, columns, retmsg, this.moduleParams) // 鏁版嵁婧� param.LText = sql param.$callbacksql = callbacksql } else { - param.LText = getSysDefaultSql(btn, setting, '', param, cell, columns, false, this.moduleParams, Utils.getAllSearchOptions) // 鏁版嵁婧� + param.LText = getSysDefaultSql(btn, setting, '', param, cell, columns, false, this.moduleParams) // 鏁版嵁婧� if (btn.output) { param.key_back_type = 'Y' } } - - if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺 - param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'') - } else { - param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'') - } - param.exec_type = 'y' // 鍚庡彴瑙g爜 + param.exec_type = window.GLOB.execType || 'y' // 鍚庡彴瑙g爜 param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt('', param.timestamp) @@ -614,7 +636,7 @@ param.LText = param.LText.replace(/\$check@|@check\$/ig, '') } - param.LText = Utils.formatOptions(param.LText) + param.LText = Utils.formatOptions(param.LText, param.exec_type) } else if (btn.OpenType === 'pop') { // 琛ㄥ崟 if (index !== 0) { let _cell = {} @@ -633,23 +655,17 @@ param.ID = Utils.getguid() if (retmsg) { - const { sql, callbacksql } = getSysDefaultSql(btn, setting, formdata, param, cell, columns, retmsg, this.moduleParams, Utils.getAllSearchOptions) // 鏁版嵁婧� + const { sql, callbacksql } = getSysDefaultSql(btn, setting, formdata, param, cell, columns, retmsg, this.moduleParams) // 鏁版嵁婧� param.LText = sql param.$callbacksql = callbacksql } else { - param.LText = getSysDefaultSql(btn, setting, formdata, param, cell, columns, false, this.moduleParams, Utils.getAllSearchOptions) // 鏁版嵁婧� + param.LText = getSysDefaultSql(btn, setting, formdata, param, cell, columns, false, this.moduleParams) // 鏁版嵁婧� if (btn.output) { param.key_back_type = 'Y' } } - - if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺 - param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'') - } else { - param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'') - } - param.exec_type = 'y' // 鍚庡彴瑙g爜 + param.exec_type = window.GLOB.execType || 'y' // 鍚庡彴瑙g爜 param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt('', param.timestamp) @@ -660,28 +676,22 @@ param.LText = param.LText.replace(/\$check@|@check\$/ig, '') } - param.LText = Utils.formatOptions(param.LText) + param.LText = Utils.formatOptions(param.LText, param.exec_type) } else { param.ID = primaryId if (retmsg) { - const { sql, callbacksql } = getSysDefaultSql(btn, setting, formdata, param, cell, columns, retmsg, this.moduleParams, Utils.getAllSearchOptions) // 鏁版嵁婧� + const { sql, callbacksql } = getSysDefaultSql(btn, setting, formdata, param, cell, columns, retmsg, this.moduleParams) // 鏁版嵁婧� param.LText = sql param.$callbacksql = callbacksql } else { - param.LText = getSysDefaultSql(btn, setting, formdata, param, cell, columns, false, this.moduleParams, Utils.getAllSearchOptions) // 鏁版嵁婧� + param.LText = getSysDefaultSql(btn, setting, formdata, param, cell, columns, false, this.moduleParams) // 鏁版嵁婧� if (btn.output) { param.key_back_type = 'Y' } } - - if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺 - param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'') - } else { - param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'') - } - param.exec_type = 'y' // 鍚庡彴瑙g爜 + param.exec_type = window.GLOB.execType || 'y' // 鍚庡彴瑙g爜 param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt('', param.timestamp) @@ -692,7 +702,7 @@ param.LText = param.LText.replace(/\$check@|@check\$/ig, '') } - param.LText = Utils.formatOptions(param.LText) + param.LText = Utils.formatOptions(param.LText, param.exec_type) } } @@ -711,7 +721,7 @@ if (param.$unCheckParam) { param.$unCheckParam.LText = param.$unCheckParam.LText.replace(/\$check@/ig, '/*').replace(/@check\$/ig, '*/') - param.$unCheckParam.LText = Utils.formatOptions(param.$unCheckParam.LText) + param.$unCheckParam.LText = Utils.formatOptions(param.$unCheckParam.LText, param.exec_type) param.$unCheckParam.menuname = btn.logLabel if (window.GLOB.probation) { @@ -740,6 +750,11 @@ if (this.props.BID) { param.BID = this.props.BID } + + if (btn.recordUser === 'true') { + param.username = sessionStorage.getItem('User_Name') || '' + param.fullname = sessionStorage.getItem('Full_Name') || '' + } let primaryId = '' @@ -764,7 +779,7 @@ } if (retmsg) { - param.$callbacksql = this.getSysDeclareSql(btn, formdata, data[0], columns, primaryId, this.props.BID) + param.$callbacksql = this.getSysDeclareSql(btn, formdata, data[0], columns, this.props.BID) } _params.push(param) @@ -776,6 +791,11 @@ if (this.props.BID) { param.BID = this.props.BID + } + + if (btn.recordUser === 'true') { + param.username = sessionStorage.getItem('User_Name') || '' + param.fullname = sessionStorage.getItem('Full_Name') || '' } let primaryId = setting.primaryKey ? cell[setting.primaryKey] || '' : '' @@ -809,7 +829,7 @@ } if (retmsg) { - param.$callbacksql = this.getSysDeclareSql(btn, formdata, cell, columns, primaryId, this.props.BID) + param.$callbacksql = this.getSysDeclareSql(btn, formdata, cell, columns, this.props.BID) } return param @@ -822,7 +842,7 @@ /** * @description 鑾峰彇鍥炶皟鑴氭湰鐨勫瓧娈靛畾涔� */ - getSysDeclareSql = (btn, formdata, data, columns, primaryId, BID = '') => { + getSysDeclareSql = (btn, formdata, data, columns, BID = '') => { let datavars = {} // 澹版槑鐨勫彉閲忥紝琛ㄥ崟鍙婃樉绀哄垪 // 闇�瑕佸0鏄庣殑鍙橀噺闆� let _vars = ['tbid', 'errorcode', 'retmsg', 'billcode', 'bvoucher', 'fibvoucherdate', 'fiyear', 'username', 'fullname', 'modulardetailcode', 'roleid', 'mk_departmentcode', 'mk_organization', 'mk_user_type', 'mk_nation', 'mk_province', 'mk_city', 'mk_district', 'mk_address', 'mk_deleted', 'bid'] @@ -866,7 +886,7 @@ if (!_vars.includes(_key)) { _vars.push(_key) - if (form.fieldlen && form.fieldlen > 2048) { + if (form.fieldlen && form.fieldlen > 4000) { form.fieldlen = 'max' } @@ -920,7 +940,7 @@ if (col.datatype) { _declarefields.push(`@${_key} ${col.datatype}`) } else { - if (col.fieldlength && col.fieldlength > 2048) { + if (col.fieldlength && col.fieldlength > 4000) { col.fieldlength = 'max' } @@ -991,41 +1011,98 @@ ` } - _sql = _sql.replace(/@ID@/ig, `'${primaryId || ''}'`) - _sql = _sql.replace(/@BID@/ig, `'${BID}'`) - _sql = _sql.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`) - _sql = _sql.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`) - _sql = _sql.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`) - _sql = _sql.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`) - _sql = _sql.replace(/@typename@/ig, `'admin'`) - - if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺 - _sql = _sql.replace(/@datam@/ig, '\'Y\'') - } else { - _sql = _sql.replace(/@datam@/ig, '\'\'') - } - return _sql } /** * @description 鎸夐挳鎻愪氦鎵ц */ - execSubmit = (data, _resolve, formdata) => { + execSubmit = (data, _resolve, formdata, force) => { const { setting, btn } = this.props this.moduleParams = null - if ( - (btn.intertype === 'system' || (btn.intertype === 'custom' && btn.procMode === 'system')) && - btn.sqlType !== 'insert' && btn.Ot !== 'notRequired' && btn.verify && btn.verify.invalid === 'true' && - setting.dataresource - ) { + if (btn.preButton && !force) { + this.trigger(btn.preButton, data, _resolve, formdata, 0) + } else if (btn.verify && btn.verify.invalid === 'true' && setting.dataresource) { MKEmitter.emit('queryModuleParam', btn.$menuId, (param) => { - this.moduleParams = param + let datasource = setting.dataresource + let customScript = setting.customScript || '' + let allSearch = Utils.getAllSearchOptions(param.search) + + let regoptions = allSearch.map(item => { + return { + reg: new RegExp('@' + item.key + '@', 'ig'), + value: `'${item.value}'` + } + }) + + regoptions.push({ + reg: new RegExp('@userName@', 'ig'), + value: `'${sessionStorage.getItem('User_Name') || ''}'` + }, { + reg: new RegExp('@fullName@', 'ig'), + value: `'${sessionStorage.getItem('Full_Name') || ''}'` + }, { + reg: new RegExp('@orderBy@', 'ig'), + value: setting.order + }, { + reg: new RegExp('@pageSize@', 'ig'), + value: 10 + }, { + reg: new RegExp('@pageIndex@', 'ig'), + value: 1 + }) + + regoptions.forEach(item => { + datasource = datasource.replace(item.reg, item.value) + customScript = customScript.replace(item.reg, item.value) + }) + + this.moduleParams = { + datasource, + customScript + } + this.execRealSubmit(data, _resolve, formdata) }) } else { this.execRealSubmit(data, _resolve, formdata) + } + } + + trigger = (btnId, data, resolve, formdata, times) => { + if (times > 50) { + notification.warning({ + top: 92, + message: '鍓嶇疆鎸夐挳鍔犺浇澶辫触锛�', + duration: 5 + }) + this.setState({loading: false}) + resolve() + return + } + times++ + + let node = document.getElementById('button' + btnId) + + if (node) { + MKEmitter.emit('triggerBtnId', btnId, null, 'preButton', (res) => { + if (!res) { + this.setState({loading: false}) + resolve() + return + } + + if (res.status) { + this.execSubmit(data, resolve, formdata, true) + } else { + this.execError(res) + } + }) + } else { + setTimeout(() => { + this.trigger(btnId, data, resolve, formdata, times) + }, 100) } } @@ -1047,6 +1124,12 @@ if (btn.intertype === 'system') { params = this.getSystemParam(data, formdata) + if (btn.returnValue === 'true') { + params = params.map(item => { + item.script_type = 'Y' + return item + }) + } } else { params = this.getInnerParam(data, formdata) } @@ -1185,6 +1268,8 @@ * @description 鑷畾涔夎姹傚惊鐜墽琛� */ customLoopRequest = (params, _resolve) => { + const { setting, btn } = this.props + let param = params.shift() this.setState({ @@ -1196,6 +1281,10 @@ ID: param.ID || '', callbacksql: param.$callbacksql || '', mk_api_key: '' + } + + if (!record.ID && btn.Ot !== 'notRequired' && param[setting.primaryKey]) { + record.ID = param[setting.primaryKey] } delete param.$callbacksql @@ -1212,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) { @@ -1226,7 +1315,13 @@ if (Array.isArray(res.mk_ex_data) && res.mk_ex_data.length > 0) { let pices = res.mk_ex_data.map(item => { item.$pice = true - item.$record = record + item.$record = {...record} + + if (item.hasOwnProperty('mk_api_key')) { + item.$record.mk_api_key = item.mk_api_key || record.mk_api_key || '' + + delete item.mk_api_key + } return item }) params = [...pices, ...params] @@ -1422,7 +1517,6 @@ result.status = false result.message = result.$ErrMesg result.ErrCode = 'E' - result.ErrMesg = result.$ErrMesg } else { result.status = result.status !== false result.ErrCode = result.ErrCode || '-1' @@ -1447,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) // 娑堟伅 @@ -1471,7 +1565,22 @@ getCallBackSql = (result, record) => { const { btn } = this.props let lines = [] - let pre = btn.callbackType === 'script' ? '@' : '' + let pre = '' + let tables = [] + + if (btn.callbackType === 'script') { // 浣跨敤鑷畾涔夎剼鏈� + pre = '@' + + btn.verify.cbScripts.forEach(script => { + if (script.status === 'false') return + + if (/\s#[a-z0-9_]+(\s|\()/ig.test(script.sql)) { + tables.push(...script.sql.match(/\s#[a-z0-9_]+(\s|\()/ig)) + } + }) + + tables = tables.map(tb => tb.replace(/\s|\(/g, '')) + } let errSql = '' if (result.$ErrCode === 'E') { @@ -1488,6 +1597,11 @@ let vals = [] let subObjs = [] let id = Utils.getuuid() + let tbName = pre + tb + + if (tables.includes('#' + tb)) { + tbName = '#' + tb + } delete obj.$$key @@ -1516,9 +1630,11 @@ } }) + keys = keys.join(',') + lines.push({ - table: tb, - insert: `Insert into ${pre}${tb} (${keys.join(',')},[mk_level],[mk_id],[mk_bid])`, + table: md5(tb + keys), + insert: `Insert into ${tbName} (${keys},[mk_level],[mk_id],[mk_bid])`, select: `Select ${vals.join(',')},'${level}','${id}','${bid}'` }) @@ -1550,7 +1666,7 @@ param.func = 'sPC_TableData_InUpDe' if (record.BID) { - param.BID = this.props.BID + param.BID = record.BID } if (record.ID) { param.ID = record.ID @@ -1580,6 +1696,8 @@ if (btn.output) { _backCustomScript += ` aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg,${btn.output} as mk_b_id` + + param.key_back_type = 'Y' } else { _backCustomScript += ` aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg` @@ -1595,30 +1713,29 @@ sql = sql + _backCustomScript sql = sql.replace(/@ID@/ig, `'${record.ID || ''}'`) - sql = sql.replace(/@BID@/ig, `'${this.props.BID || ''}'`) + sql = sql.replace(/@BID@/ig, `'${record.BID || ''}'`) sql = sql.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`) sql = sql.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`) sql = sql.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`) sql = sql.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`) sql = sql.replace(/@typename@/ig, `'admin'`) + if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺 + sql = sql.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, `'Y'`) + } else { + sql = sql.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, `''`) + } + if (window.GLOB.debugger === true) { + console.info('%c' + btn.logLabel + '(鍥炶皟)', 'color: blue') console.info(sql.replace(/\n\s{8}/ig, '\n')) } param.LText = sql - - if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺 - param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'') - } else { - param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'') - } - param.LText = param.LText.replace(/\$check@|@check\$/ig, '') - - param.exec_type = 'y' // 鍚庡彴瑙g爜 + param.exec_type = window.GLOB.execType || 'y' // 鍚庡彴瑙g爜 param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt('', param.timestamp) - param.LText = Utils.formatOptions(param.LText) + param.LText = Utils.formatOptions(param.LText, param.exec_type) param.menuname = btn.logLabel if (window.GLOB.probation) { @@ -1756,7 +1873,7 @@ * @description 澶栭儴璇锋眰寰幆鎵ц */ outerLoopRequest = (params, _resolve) => { - if (!params && params.length === 0) return + const { setting, btn } = this.props let param = params.shift() @@ -1770,6 +1887,10 @@ callbacksql: param.$callbacksql || '' } + if (!record.ID && btn.Ot !== 'notRequired' && param[setting.primaryKey]) { + record.ID = param[setting.primaryKey] + } + delete param.$callbacksql if (!param.func) { @@ -1777,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) @@ -1823,58 +1944,62 @@ if (btn.outerFunc) { result.func = btn.outerFunc } - if (window.GLOB.mkHS) { - if (btn.outerFunc === 's_app_version_upt') { // special 鏇存柊鐗堟湰鍙锋椂璁块棶sso - if (window.GLOB.mainSystemApi) { - result.rduri = window.GLOB.mainSystemApi - } - } else if (btn.sysInterface === 'true' && window.GLOB.cloudServiceApi) { - result.rduri = window.GLOB.cloudServiceApi - result.userid = sessionStorage.getItem('CloudUserID') || '' - result.LoginUID = sessionStorage.getItem('CloudLoginUID') || '' - } else if (btn.sysInterface !== 'true') { - if (window.GLOB.systemType === 'production' && btn.proInterface) { - result.rduri = btn.proInterface - } else { - result.rduri = btn.interface + + if (btn.sysInterface === 'true') { + if (window.GLOB.mainSystemApi) { + result.rduri = window.GLOB.mainSystemApi + } + } else if (btn.sysInterface === 'external') { + if (window.GLOB.systemType === 'production') { + result.$token = btn.exProInterface || '' + } else { + result.$token = btn.exInterface || '' + } + ver_token = true + } else { + if (window.GLOB.systemType === 'production' && btn.proInterface) { + result.rduri = btn.proInterface + } else { + result.rduri = btn.interface + } + + if (/function:/i.test(result.rduri)) { + let rduri = result.rduri + try { + rduri = rduri.replace(/function:/i, '') + // eslint-disable-next-line + let func = new Function(rduri) + result.rduri = func() + } catch (e) { + console.warn(e) } } - // special 鍑芥暟 s_sDataDictb_TBBack 浜戠楠岃瘉 - if (result.func === 's_sDataDictb_TBBack' && result.LTextOut) { + let host = window.GLOB.baseurl.replace(/http(s):\/\//, '') + if (result.rduri.indexOf(host) === -1 && /\/dostars/.test(result.rduri)) { + result.$login = true + } + } + + if (window.GLOB.mkHS) { + if (result.func === 's_app_version_upt') { // special 鏇存柊鐗堟湰鍙锋椂璁块棶sso + delete result.rduri + if (window.GLOB.localSystemApi) { + result.rduri = window.GLOB.localSystemApi + } + result.userid = sessionStorage.getItem('LocalUserID') || '' + result.LoginUID = sessionStorage.getItem('LocalLoginUID') || '' + } else if (result.func === 's_sDataDictb_TBBack' && result.LTextOut) { // special 鍑芥暟 s_sDataDictb_TBBack 浜戠楠岃瘉 result.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') result.secretkey = Utils.encrypt(result.LTextOut, result.timestamp) result.open_key = Utils.encryptOpenKey(result.secretkey, result.timestamp) } - } else { - if (btn.sysInterface === 'true') { - if (window.GLOB.mainSystemApi) { - result.rduri = window.GLOB.mainSystemApi - } - } else if (btn.sysInterface === 'external') { - if (window.GLOB.systemType === 'production') { - result.$token = btn.exProInterface || '' - } else { - result.$token = btn.exInterface || '' - } - ver_token = true - } else { - if (window.GLOB.systemType === 'production' && btn.proInterface) { - result.rduri = btn.proInterface - } else { - result.rduri = btn.interface - } - - let host = window.GLOB.baseurl.replace(/http(s):\/\//, '') - if (result.rduri.indexOf(host) === -1 && /\/dostars/.test(result.rduri)) { - result.$login = true - } - } } - Api.genericInterface(result).then(res => { + Api.genericInterface(result, btn.$outerScript, 'outer').then(res => { if (!res) return // LoginError鏃朵腑鏂姹� - if (ver_token && res.ErrMesg === 'token_error') { + if (ver_token && res.ErrCode === 'token_error') { + res.ErrCode = 'E' this.execError(res) return } @@ -1934,11 +2059,14 @@ func: btn.callbackFunc } - // special 鍑芥暟 s_sDataDictb_TBBack 浜戠楠岃瘉 - if (window.GLOB.mkHS && param.func === 's_sDataDictb_TBBack' && param.LTextOut) { - param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') - param.secretkey = Utils.encrypt(param.LTextOut, param.timestamp) - param.open_key = Utils.encryptOpenKey(param.secretkey, param.timestamp) + if (window.GLOB.mkHS) { + if (btn.callbackFunc === 's_sVersion_Local_add' && window.GLOB.forcedUpdate) { // special 浼犺緭鍙锋坊鍔犲洖璋冨鐞� + param.local_userid = sessionStorage.getItem('LocalUserID') || '' + } else if (btn.callbackFunc === 's_sDataDictb_TBBack' && param.LTextOut) { // special 鍑芥暟 s_sDataDictb_TBBack 浜戠楠岃瘉 + param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + param.secretkey = Utils.encrypt(param.LTextOut, param.timestamp) + param.open_key = Utils.encryptOpenKey(param.secretkey, param.timestamp) + } } } else { if (result.status) { @@ -1960,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) // 娑堟伅 @@ -1984,28 +2112,76 @@ delete result.message delete result.status - result.func = btn.callbackFunc - let ssoParam = null + let sinParam = null let callParam = {...outParam, ...result} - if (callParam.LTextOut) { + callParam.func = btn.callbackFunc + callParam.userid = sessionStorage.getItem('LocalUserID') || '' + callParam.LoginUID = sessionStorage.getItem('LocalLoginUID') || '' + + if (result.LTextOut) { callParam.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') callParam.secretkey = Utils.encrypt(callParam.LTextOut, callParam.timestamp) callParam.open_key = Utils.encryptOpenKey(callParam.secretkey, callParam.timestamp) + } else { + callParam = {...outParam} + callParam.func = btn.callbackFunc + callParam.MenuNO = 'sVersionDetail_LocalM' + callParam.UpType = 'SSO' + callParam.LTextOut = 'minke' + callParam.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + callParam.secretkey = Utils.encrypt(callParam.LTextOut, callParam.timestamp) + callParam.open_key = Utils.encryptOpenKey(callParam.secretkey, callParam.timestamp) + callParam.userid = sessionStorage.getItem('LocalUserID') || '' + callParam.LoginUID = sessionStorage.getItem('LocalLoginUID') || '' + + delete result.ErrCode + delete result.ErrMesg + + sinParam = {...result} + sinParam.func = 'sPC_TrdMenu_AddUpt_sso' + + if (window.GLOB.sysType === 'local') { + if (!window.GLOB.systemType && window.GLOB.cloudServiceApi) { + sinParam.rduri = window.GLOB.cloudServiceApi + } else if (window.GLOB.localSystemApi) { + sinParam.rduri = window.GLOB.localSystemApi + sinParam.userid = sessionStorage.getItem('LocalUserID') || '' + sinParam.LoginUID = sessionStorage.getItem('LocalLoginUID') || '' + } + } } - - if (callParam.UpType === 'SSO' && window.GLOB.mainSystemApi) { + + if (result.UpType === 'SSO' && window.GLOB.localSystemApi) { ssoParam = fromJS(callParam).toJS() - - ssoParam.rduri = window.GLOB.mainSystemApi + ssoParam.rduri = window.GLOB.localSystemApi delete ssoParam.UpType - } else { - delete callParam.UpType } - if (ssoParam) { + if (sinParam) { + Api.genericInterface(sinParam).then(res => { + if (!res.status) { + this.execError(res) + _resolve() + } else { + Api.genericInterface(callParam).then(re => { + if (!re.status) { + this.execError(re) + _resolve() + } else { + if (params.length === 0) { + this.execSuccess(res) + _resolve() + } else { + this.outerLoopRequest(params, _resolve) + } + } + }) + } + }) + } else if (ssoParam) { Api.genericInterface(ssoParam).then(res => { if (!res.status) { this.execError(res) @@ -2055,7 +2231,30 @@ const { btn } = this.props const { autoMatic } = this.state - if (autoMatic) { + if (btn.resetForms) { + let data = {} + + Object.keys(res).forEach(key => { + data[key.toLowerCase()] = res[key] + }) + + delete data.errcode + delete data.errmesg + delete data.message + delete data.status + + MKEmitter.emit('resetForms', btn.uuid, data) + MKEmitter.emit('refreshByButtonResult', btn.$menuId, 'resetData', btn, null, null, data) + } + + if (this.preCallback) { + this.setState({ + loading: false, + visible: false + }) + this.preCallback(res) + return + } else if (autoMatic) { this.setState({ loading: false, visible: false @@ -2145,6 +2344,10 @@ tabId = btn.refreshTab[btn.refreshTab.length - 1] } + if (btn.formCache === 'clear') { // 娓呴櫎琛ㄥ崟缂撳瓨 + window.GLOB.CacheMap = new Map() + } + if (tabId && btn.$MenuID === tabId) { // 鍒锋柊褰撳墠鑿滃崟鏃讹紝鍋滄鍏朵粬鎿嶄綔 MKEmitter.emit('reloadMenuView', tabId, 'table') return @@ -2166,11 +2369,24 @@ if (btn.syncComponentId === 'multiComponent') { btn.syncComponentIds.forEach((id, i) => { setTimeout(() => { - MKEmitter.emit('reloadData', id) + if (/\$focus/.test(id)) { + MKEmitter.emit('reloadData', id.split('$')[0], id.split('$')[1]) + } else { + MKEmitter.emit('reloadData', id) + } }, 20 * i) }) + } else if (/\$focus/.test(btn.syncComponentId)) { + MKEmitter.emit('reloadData', btn.syncComponentId.split('$')[0], btn.syncComponentId.split('$')[1]) } else { - MKEmitter.emit('reloadData', btn.syncComponentId) + if (btn.syncDelay) { + this.delayTimer && clearTimeout(this.delayTimer) + this.delayTimer = setTimeout(() => { + MKEmitter.emit('reloadData', btn.syncComponentId) + }, btn.syncDelay) + } else { + MKEmitter.emit('reloadData', btn.syncComponentId) + } } } @@ -2191,22 +2407,22 @@ if (btn.openmenu && Array.isArray(btn.openmenu) && btn.openmenu.length > 0 && sign !== '@no_target_menu@') { let menuId = btn.openmenu.slice(-1)[0] - let newtab = window.GLOB.mkThdMenus.filter(m => m.MenuID === menuId)[0] + let menu = null - if (!newtab && btn.MenuID) { - newtab = { + if (window.GLOB.mkThdMenus.has(menuId)) { + menu = {...window.GLOB.mkThdMenus.get(menuId), param: { $BID: id }} + } else if (btn.MenuID) { + menu = { MenuID: btn.MenuID, MenuName: btn.MenuName, - MenuNo: btn.MenuNo, - type: btn.tabType + type: btn.tabType, + param: { $BID: id } } - } else if (!newtab) { - return } - newtab = {...newtab, param: { $BID: id }} - - MKEmitter.emit('modifyTabs', newtab, true) + if (menu) { + MKEmitter.emit('modifyTabs', menu, true) + } } if (btn.execSuccess === 'popclose' && btn.$tabId) { // 鏍囩鍏抽棴鍒锋柊 @@ -2218,7 +2434,7 @@ const { btn } = this.props if (!btn.verify) return - if (btn.verify.noteEnable !== 'true' && btn.verify.wxNote !== 'true' && btn.verify.printEnable !== 'true') return + if (btn.verify.noteEnable !== 'true' && btn.verify.wxNote !== 'true' && btn.verify.printEnable !== 'true' && btn.verify.emailEnable !== 'true') return let id = '' if (btn.output) { @@ -2233,6 +2449,9 @@ if (btn.verify.noteEnable === 'true') { this.sendMessage(btn.verify, id) + } + if (btn.verify.emailEnable === 'true') { + this.sendEmail(btn.verify, id) } if (btn.verify.wxNote === 'true') { if (btn.verify.wxTemplateId === 'mk_category_temp') { @@ -2275,7 +2494,7 @@ upid: id } - param.LText = Utils.formatOptions(Utils.getuuid()) + param.LText = Utils.getuuid() param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt(param.LText, param.timestamp) @@ -2369,7 +2588,7 @@ msg_result: msg } - _p.LText = Utils.formatOptions(Utils.getuuid()) + _p.LText = Utils.getuuid() _p.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') _p.secretkey = Utils.encrypt(_p.LText, _p.timestamp) @@ -2412,12 +2631,12 @@ sendMessage = (verify, id) => { let param = { func: 's_get_sms_local', - TypeCharOne: verify.noteTemp, // N涓嶅悓鍐呭锛孻鐩稿悓鍐呭 - TypeCharTwo: verify.noteType, // N瀹氭椂锛孻瀹炴椂 + TypeCharOne: verify.noteTemp || 'Y', // N涓嶅悓鍐呭锛孻鐩稿悓鍐呭 + TypeCharTwo: verify.noteType || 'N', // N瀹氭椂锛孻瀹炴椂 upid: id } - param.LText = Utils.formatOptions(Utils.getuuid()) + param.LText = Utils.getuuid() param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt(param.LText, param.timestamp) @@ -2432,9 +2651,9 @@ } let _param = { - templatecode: verify.noteCode, // 妯℃澘缂栫爜 - TypeCharOne: verify.noteTemp, // N涓嶅悓鍐呭锛孻鐩稿悓鍐呭 - ID: verify.noteId || '' // 妯℃澘Id锛屾殏鏃舵湭浣跨敤 + templatecode: verify.noteCode, // 妯℃澘缂栫爜 + TypeCharOne: verify.noteTemp || 'Y', // N涓嶅悓鍐呭锛孻鐩稿悓鍐呭 + ID: verify.noteId || '' // 妯℃澘Id锛屾殏鏃舵湭浣跨敤 } _param.submitdate = res.submitdate @@ -2442,17 +2661,17 @@ let limit = 5 // 瀹炴椂鏈�澶т负5鏉★紝瀹氭椂鏈�澶т负100鏉� let mobMap = new Map() - if (verify.noteType === 'N') { + if (verify.noteType === 'Y') { + _param.func = 's_get_sms_sso_realtime' + } else { _param.func = 's_get_sms_sso_timer' limit = 100 - } else if (verify.noteType === 'Y') { - _param.func = 's_get_sms_sso_realtime' } let Ltext = [] let error = false - if (verify.noteTemp === 'Y') { + if (verify.noteTemp !== 'N') { _param.p1 = res.p1 || '' _param.p2 = res.p2 || '' _param.p3 = res.p3 || '' @@ -2461,25 +2680,156 @@ let _p = _param.p1 + _param.p2 + _param.p3 + _param.p4 + _param.p5 - if (/\/|\.|.*鍏�.*浜.*涔�.*杩憒闈㈣瘯|閭�璇穦涓嬭浇|绾㈠寘|鎷涜仒|濂借瘎|璇勪环|鏀垮姟閫氱煡|缂磋垂|淇濋櫓|鑲$エ|閲戣瀺|鎴垮湴浜鏁欒偛|娓告垙|寰俊|Q/.test(_p)) { + if (/\/|.*鍏�.*浜.*涔�.*杩憒闈㈣瘯|閭�璇穦涓嬭浇|绾㈠寘|鎷涜仒|濂借瘎|璇勪环|鏀垮姟閫氱煡|缂磋垂|淇濋櫓|鑲$エ|閲戣瀺|鎴垮湴浜鏁欒偛|娓告垙|寰俊/.test(_p)) { error = true } } res.send_data && res.send_data.forEach(item => { if (item.mob && !mobMap.has(item.mob) && Ltext.length < limit) { - if (verify.noteTemp === 'Y') { + if (verify.noteTemp !== 'N') { Ltext.push(`'${item.mob}'`) } else { let _p = `'${item.p1 || ''}','${item.p2 || ''}','${item.p3 || ''}','${item.p4 || ''}','${item.p5 || ''}','${item.mob}'` - if (/\/|\.|.*鍏�.*浜.*涔�.*杩憒闈㈣瘯|閭�璇穦涓嬭浇|绾㈠寘|鎷涜仒|濂借瘎|璇勪环|鏀垮姟閫氱煡|缂磋垂|淇濋櫓|鑲$エ|閲戣瀺|鎴垮湴浜鏁欒偛|娓告垙|寰俊|Q/.test(_p)) { + if (/\/|.*鍏�.*浜.*涔�.*杩憒闈㈣瘯|閭�璇穦涓嬭浇|绾㈠寘|鎷涜仒|濂借瘎|璇勪环|鏀垮姟閫氱煡|缂磋垂|淇濋櫓|鑲$エ|閲戣瀺|鎴垮湴浜鏁欒偛|娓告垙|寰俊/.test(_p)) { error = true } Ltext.push(_p) } mobMap.set(item.mob, true) + } + }) + + if (error) { + notification.warning({ + top: 92, + message: '娑堟伅涓惈鏈夐潪娉曞瓧绗�', + duration: 5 + }) + return + } + + if (Ltext.length === 0) return + + Ltext = Ltext.join(';') + + _param.LText = window.btoa(window.encodeURIComponent(Ltext)) + _param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + _param.secretkey = Utils.encrypt(_param.LText, _param.timestamp) + + _param.rduri = 'https://sso.mk9h.cn/webapi/dostars' + + _param.userid = 'bh0bapabtd45epsgra79segbch6c1ibk' + _param.LoginUID = 'bh0bapabtd45epsgra79segbch6c1ibk' + + Api.genericInterface(_param).then(result => { + if (!result.status) { + notification.warning({ + top: 92, + message: result.message, + duration: 5 + }) + } + }, (error) => { + if (error && error.ErrCode === 'LoginError') { + let param = { + func: 's_visitor_login', + timestamp: moment().format('YYYY-MM-DD HH:mm:ss'), + SessionUid: 'bh0bapabtd45epsgra79segbch6c1ibk', + TypeCharOne: 'pc', + appkey: '202004041613277377A6A2456D34A4948AE84' + } + + param.LText = md5(window.btoa('bh0bapabtd45epsgra79segbch6c1ibk' + param.timestamp)) + param.secretkey = md5(param.LText + 'mingke' + param.timestamp) + + let params = { + url: 'https://sso.mk9h.cn/webapi/dologon', + method: 'post', + data: JSON.stringify(param) + } + + Api.directRequest(params) + + return + } + }) + }) + } + + sendEmail = (verify, id) => { + let param = { + func: 's_get_email_local', + TypeCharOne: verify.emailTemp || 'Y', // N涓嶅悓鍐呭锛孻鐩稿悓鍐呭 + TypeCharTwo: verify.emailType || 'N', // N瀹氭椂锛孻瀹炴椂 + upid: id + } + + param.LText = Utils.getuuid() + param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + param.secretkey = Utils.encrypt(param.LText, param.timestamp) + + Api.genericInterface(param).then(res => { + if (!res.status) { + notification.warning({ + top: 92, + message: res.message, + duration: 5 + }) + return + } + + let _param = { + msn_email_temp_no: verify.emailCode, // 妯℃澘缂栫爜 + TypeCharOne: verify.emailTemp || 'Y', // N涓嶅悓鍐呭锛孻鐩稿悓鍐呭 + ID: verify.emailId || '' // 妯℃澘Id锛屾殏鏃舵湭浣跨敤 + } + + _param.submitdate = res.submitdate + + let limit = 5 // 瀹炴椂鏈�澶т负5鏉★紝瀹氭椂鏈�澶т负100鏉� + let mobMap = new Map() + + if (verify.emailType === 'Y') { + _param.func = 's_get_email_sso_realtime' + } else { + _param.func = 's_get_email_sso_timer' + limit = 100 + } + + let Ltext = [] + let error = false + + if (verify.emailTemp !== 'N') { + _param.p1 = res.p1 || '' + _param.p2 = res.p2 || '' + _param.p3 = res.p3 || '' + _param.p4 = res.p4 || '' + _param.p5 = res.p5 || '' + + let _p = _param.p1 + _param.p2 + _param.p3 + _param.p4 + _param.p5 + + if (/\/|.*鍏�.*浜.*涔�.*杩憒闈㈣瘯|閭�璇穦涓嬭浇|绾㈠寘|鎷涜仒|濂借瘎|璇勪环|鏀垮姟閫氱煡|缂磋垂|淇濋櫓|鑲$エ|閲戣瀺|鎴垮湴浜鏁欒偛|娓告垙|寰俊/.test(_p)) { + error = true + } + } + + res.send_data && res.send_data.forEach(item => { + if (item.email && !mobMap.has(item.email) && Ltext.length < limit) { + if (verify.emailTemp !== 'N') { + Ltext.push(`'${item.email}'`) + } else { + let _p = `'${item.p1 || ''}','${item.p2 || ''}','${item.p3 || ''}','${item.p4 || ''}','${item.p5 || ''}','${item.email}'` + + if (/\/|.*鍏�.*浜.*涔�.*杩憒闈㈣瘯|閭�璇穦涓嬭浇|绾㈠寘|鎷涜仒|濂借瘎|璇勪环|鏀垮姟閫氱煡|缂磋垂|淇濋櫓|鑲$エ|閲戣瀺|鎴垮湴浜鏁欒偛|娓告垙|寰俊/.test(_p)) { + error = true + } + + Ltext.push(_p) + } + mobMap.set(item.email, true) } }) @@ -2550,7 +2900,14 @@ const { btn } = this.props const { autoMatic } = this.state - if (autoMatic) { + if (this.preCallback) { + this.setState({ + loading: false, + visible: false + }) + this.preCallback(res) + return + } else if (autoMatic) { notification.error({ top: 92, message: res.message || '鎵ц澶辫触锛�', @@ -2620,6 +2977,13 @@ }) } else if (res.ErrCode === 'NM') { message.error(res.message || '鎵ц澶辫触锛�') + } else if (res.ErrCode === '-2') { + this.setState({ + loadingNumber: '', + loadingTotal: '', + loading: false + }) + return } this.errorContinue(sign) @@ -2800,6 +3164,8 @@ visible: false, confirmLoading: false }) + + this.preCallback && this.preCallback() } modelconfirm = () => { @@ -2878,7 +3244,19 @@ _item.value = _item.value.replace(/\t+|\v+/g, '') // 鍘婚櫎鍒惰〃绗� if (item.interception !== 'false') { // 鍘婚櫎棣栧熬绌烘牸 - _item.value = _item.value.replace(/(^\s*|\s*$)/g, '') + if (item.interception === 'func') { + try { + // eslint-disable-next-line + let func = new Function('value', 'data', item.func) + _item.value = func(_item.value, _data) + _item.value = _item.value !== undefined ? _item.value : '' + } catch (e) { + console.warn(e) + _item.value = '' + } + } else { + _item.value = _item.value.replace(/(^\s*|\s*$)/g, '') + } } if (_item.type === 'text' && /@appkey@|@SessionUid@|@bid@/ig.test(_item.value)) { // 鐗规畩瀛楁鏇挎崲 _item.value = _item.value.replace(/^(\s*)@appkey@(\s*)$/ig, window.GLOB.appkey).replace(/^(\s*)@SessionUid@(\s*)$/ig, (localStorage.getItem('SessionUid') || '')).replace(/^(\s*)@bid@(\s*)$/ig, (BID || '')) @@ -2929,6 +3307,7 @@ }) }, onCancel() { + _this.preCallback && _this.preCallback() _this.setState({ loading: false }) } }) @@ -2990,6 +3369,13 @@ if (btnconfig.setting.container === 'tab' && btn.ContainerId) { width = btnconfig.setting.width > 100 ? btnconfig.setting.width : btnconfig.setting.width + '%' container = () => document.getElementById(btn.ContainerId) + } + + if (btnconfig.setting.icon) { + title = <> + <span className={'mk-modal-icon-' + btnconfig.setting.iconType} style={{background: btnconfig.setting.iconColor || 'unset', color: btnconfig.setting.iconColor || 'inherit'}}><MkIcon type={btnconfig.setting.icon}/></span> + {title} + </> } return ( @@ -3140,18 +3526,26 @@ label = (loadingNumber ? `(${loadingNumber})` : '') + btn.label } + let BTN = <Button + type={type} + icon={icon} + id={'button' + btn.uuid} + title={disabled ? (btn.reason || '') : (btn.show === 'icon' ? btn.label : '')} + loading={loading} + disabled={disabled} + style={btn.style} + className={className} + onClick={(e) => {e.stopPropagation(); this.actionTrigger()}} + >{label}</Button> + + if (btn.hoverTitle) { + BTN = <Popover mouseLeaveDelay={0.3} mouseEnterDelay={0.3} content={btn.hoverTitle} trigger="hover"> + {BTN} + </Popover> + } + return <> - <Button - type={type} - icon={icon} - id={'button' + btn.uuid} - title={disabled ? (btn.reason || '') : (btn.show === 'icon' ? btn.label : '')} - loading={loading} - disabled={disabled} - style={btn.style} - className={className} - onClick={(e) => {e.stopPropagation(); this.actionTrigger()}} - >{label}</Button> + {BTN} <span onClick={(e) => {e.stopPropagation()}}>{this.getModels()}</span> {loadingTotal ? <Progress className="mk-button-progress" percent={(loadingTotal - loadingNumber) / loadingTotal * 100} size="small" showInfo={false} /> : null} </> -- Gitblit v1.8.0