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/tabviews/zshare/actionList/normalbutton/index.jsx | 665 ++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 417 insertions(+), 248 deletions(-) diff --git a/src/tabviews/zshare/actionList/normalbutton/index.jsx b/src/tabviews/zshare/actionList/normalbutton/index.jsx index 473d3e1..37d57c9 100644 --- a/src/tabviews/zshare/actionList/normalbutton/index.jsx +++ b/src/tabviews/zshare/actionList/normalbutton/index.jsx @@ -267,12 +267,20 @@ return } else if (!['requiredSgl', 'notRequired', 'requiredOnce', 'required'].includes(btn.Ot)) { // 鏁版嵁閫夋嫨绫诲瀷鏍¢獙 - this.actionSettingError() + notification.warning({ + top: 92, + message: '鎸夐挳琛岃缃敊璇紒', + duration: 5 + }) return } else if (btn.intertype === 'system') { // 浣跨敤鍐呴儴鎺ュ彛鏃讹紝鎿嶄綔绫诲瀷鍜屾暟鎹簮涓嶅彲涓虹┖ if (!btn.sql || !btn.sqlType) { - this.actionSettingError() + notification.warning({ + top: 92, + message: '鎸夐挳鎿嶄綔绫诲瀷閿欒锛�', + duration: 5 + }) return } else if (data.length === 0 && btn.verify && btn.verify.voucher && btn.verify.voucher.enabled) { notification.warning({ @@ -285,12 +293,20 @@ } else if (btn.intertype === 'inner') { // 浣跨敤鍐呴儴鎺ュ彛鏃讹紝鍐呴儴鍑芥暟涓嶅彲涓虹┖ if (!btn.innerFunc) { - this.actionSettingError() + notification.warning({ + top: 92, + message: '鎸夐挳鍐呴儴鍑芥暟涓嶅彲涓虹┖锛�', + duration: 5 + }) return } - } else if (btn.intertype === 'custom') { + } 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)) { - this.actionSettingError() + 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({ @@ -299,7 +315,7 @@ duration: 5 }) return - } else if (window.GLOB.systemType === 'production' && !btn.proInterface) { + } else if (btn.intertype === 'custom' && window.GLOB.systemType === 'production' && !btn.proInterface) { notification.warning({ top: 92, message: '灏氭湭璁剧疆姝e紡绯荤粺鎺ュ彛鍦板潃锛�', @@ -307,15 +323,13 @@ }) return } - } else if (btn.intertype === 'outer') { - // 鎺ュ彛鍦板潃涓嶅瓨鍦ㄦ椂鎶ラ敊 - if (!btn.interface && btn.sysInterface !== 'true') { - this.actionSettingError() - return - } } else if (!['inner', 'outer', 'system', 'custom'].includes(btn.intertype)) { // 鎺ュ彛绫诲瀷閿欒 - this.actionSettingError() + notification.warning({ + top: 92, + message: '鎸夐挳鎺ュ彛绫诲瀷閿欒锛�', + duration: 5 + }) return } @@ -673,13 +687,13 @@ return _params } - getInnerParam = (data, formdata) => { - const { setting, btn } = this.props + getInnerParam = (data, formdata, retmsg) => { + const { setting, btn, columns } = this.props let _params = [] if ( btn.Ot === 'notRequired' || btn.Ot === 'requiredSgl' || btn.Ot === 'requiredOnce' ) { let param = { - func: btn.innerFunc + func: btn.innerFunc || '' } if (this.props.BID) { @@ -708,6 +722,10 @@ 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 (retmsg) { + param.$callbacksql = this.getSysDeclareSql(btn, formdata, data[0], columns) } _params.push(param) @@ -747,11 +765,188 @@ param.open_key = Utils.encryptOpenKey(param.secretkey, param.timestamp) } + if (retmsg) { + param.$callbacksql = this.getSysDeclareSql(btn, formdata, cell, columns) + } + return param }) } return _params + } + + /** + * @description 鑾峰彇鍥炶皟鑴氭湰鐨勫瓧娈靛畾涔� + */ + getSysDeclareSql = (btn, formdata, data, columns) => { + 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', 'bid'] + + // sql璇彞 + let _sql = '' + + let _initvars = [] // 宸茶祴鍊煎瓧娈甸泦 + let _initFormfields = [] + let _initColfields = [] + let _declarefields = [] + + // 鑾峰彇瀛楁閿�煎 + formdata && formdata.forEach(form => { + let _key = form.key.toLowerCase() + datavars[_key] = form.value + + if (!_initvars.includes(_key)) { + _initvars.push(_key) + + if (form.type === 'number' || form.type === 'rate') { + let val = form.value + if (typeof(val) !== 'number') { + val = parseFloat(val) + if (isNaN(val)) { + val = 0 + } + } + _initFormfields.push(`@${_key}=${val}`) + } else if (['date', 'datemonth', 'datetime'].includes(form.type)) { + _initFormfields.push(`@${_key}='${form.value || '1949-10-01'}'`) + } else { + _initFormfields.push(`@${_key}='${form.value}'`) + } + } + + if (!_vars.includes(_key)) { + _vars.push(_key) + + if (form.fieldlen && form.fieldlen > 2048) { + form.fieldlen = 'max' + } + + let _type = `nvarchar(${form.fieldlen})` + + if (form.type.match(/date/ig)) { + _type = 'datetime' + } else if (form.type === 'number') { + _type = `decimal(18,${form.fieldlen})` + } else if (form.type === 'rate') { + _type = `decimal(18,2)` + } + + _declarefields.push(`@${_key} ${_type}`) + } + }) + + if (data) { + Object.keys(data).forEach(key => { + data[key.toLowerCase()] = data[key] + }) + } + + // 娣诲姞鏁版嵁涓瓧娈碉紝琛ㄥ崟鍊间紭鍏�(鎸夐挳涓嶉�夎鎴栧琛屾嫾鎺ユ椂璺宠繃) + if (data && btn.Ot !== 'notRequired' && btn.Ot !== 'requiredOnce') { + datavars = {...data, ...datavars} + + const setField = (col) => { + if (!col.field) return + let _key = col.field.toLowerCase() + + if (!_initvars.includes(_key)) { + let _val = datavars.hasOwnProperty(_key) ? datavars[_key] : '' + + if (col.datatype && /^date/ig.test(col.datatype) && !_val) { + _val = '1949-10-01' + } + + _initvars.push(_key) + _initColfields.push(`@${_key}='${_val}'`) + } + + if (!_vars.includes(_key)) { + _vars.push(_key) + + if (col.datatype) { + _declarefields.push(`@${_key} ${col.datatype}`) + } else { + if (col.fieldlength && col.fieldlength > 2048) { + col.fieldlength = 'max' + } + + let _type = `nvarchar(${col.fieldlength || 50})` + + if (col.type === 'number') { + let _length = col.decimal ? col.decimal : 0 + _type = `decimal(18,${_length})` + } else if (col.type === 'picture' || col.type === 'textarea') { + _type = `nvarchar(${col.fieldlength || 512})` + } + + _declarefields.push(`@${_key} ${_type}`) + } + } + } + + if (columns && columns.length > 0) { + columns.forEach(col => { + if (col.type === 'colspan' || col.type === 'old_colspan') { + col.subcols.forEach(cell => { + setField(cell) + }) + } else { + setField(col) + } + }) + } + } + + // 鍙橀噺澹版槑 + _declarefields = _declarefields.join(',') + if (_declarefields) { + _declarefields = ',' + _declarefields + } + _sql = `/* 绯荤粺鐢熸垚 */ + Declare @tbid nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@BillCode nvarchar(50),@BVoucher nvarchar(50),@FIBVoucherDate nvarchar(50), @FiYear nvarchar(50),@ModularDetailCode nvarchar(50), @UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(50),@mk_organization nvarchar(50),@mk_user_type nvarchar(20),@mk_nation nvarchar(50),@mk_province nvarchar(50),@mk_city nvarchar(50),@mk_district nvarchar(50),@mk_address nvarchar(100),@bid nvarchar(50)${_declarefields} + ` + + let userName = sessionStorage.getItem('User_Name') || '' + let fullName = sessionStorage.getItem('Full_Name') || '' + let RoleID = sessionStorage.getItem('role_id') || '' + let departmentcode = sessionStorage.getItem('departmentcode') || '' + let organization = sessionStorage.getItem('organization') || '' + let mk_user_type = sessionStorage.getItem('mk_user_type') || '' + let nation = sessionStorage.getItem('nation') || '' + let province = sessionStorage.getItem('province') || '' + let city = sessionStorage.getItem('city') || '' + let district = sessionStorage.getItem('district') || '' + let address = sessionStorage.getItem('address') || '' + + if (sessionStorage.getItem('isEditState') === 'true') { + userName = sessionStorage.getItem('CloudUserName') || '' + fullName = sessionStorage.getItem('CloudFullName') || '' + } + + // 鍒濆鍖栧嚟璇佸強鐢ㄦ埛淇℃伅瀛楁 + _sql += ` + /* 鍑瘉鍙婄敤鎴蜂俊鎭垵濮嬪寲璧嬪�� */ + select @BVoucher='',@FIBVoucherDate='',@FiYear='',@ErrorCode='',@retmsg='',@UserName='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @mk_user_type='${mk_user_type}', @mk_nation='${nation}', @mk_province='${province}', @mk_city='${city}', @mk_district='${district}', @mk_address='${address}', @BillCode='', @ModularDetailCode='' + ` + + // 琛ㄥ崟鍙橀噺璧嬪�� + if (_initFormfields.length > 0) { + _sql += ` + /* 琛ㄥ崟鍙橀噺璧嬪�� */ + select ${_initFormfields.join(',')} + ` + } + // 鏄剧ず鍒楀彉閲忚祴鍊� + if (_initColfields.length > 0) { + _sql += ` + /* 鏄剧ず鍒楀彉閲忚祴鍊� */ + select ${_initColfields.join(',')} + ` + } + + return _sql } /** @@ -875,58 +1070,10 @@ /** *********************璋冪敤澶栭儴鎺ュ彛************************* */ let _params = [] // 璇锋眰鍙傛暟鏁扮粍 - if (btn.Ot === 'notRequired' || btn.Ot === 'requiredSgl' || btn.Ot === 'requiredOnce') { - let param = {} - - if (this.props.BID) { - param.BID = this.props.BID - } - - if ((btn.OpenType === 'pop' || btn.OpenType === 'formSubmit' || btn.OpenType === 'form') && formdata) { // 琛ㄥ崟 - formdata.forEach(_data => { - param[_data.key] = _data.value - }) - } - - // 鑾峰彇id - if (btn.Ot === 'notRequired') { - - } else if (btn.Ot === 'requiredSgl' && setting.primaryKey) { - param[setting.primaryKey] = data[0][setting.primaryKey] - } else if (btn.Ot === 'requiredOnce' && setting.primaryKey) { - let ids = data.map(d => { return d[setting.primaryKey]}) - param[setting.primaryKey] = ids.join(',') - } - - _params.push(param) - } else if (btn.Ot === 'required') { - // 閫夋嫨澶氳锛屽惊鐜皟鐢� - _params = data.map((cell, index) => { - let _cell = {} - - if (this.props.BID) { - _cell.BID = this.props.BID - } - - let _formparam = {} - if (btn.OpenType === 'pop' && formdata) { // 琛ㄥ崟 - formdata.forEach(_data => { - if (index !== 0 && _data.readin && cell.hasOwnProperty(_data.key)) { - _formparam[_data.key] = cell[_data.key] - } else { - _formparam[_data.key] = _data.value - } - }) - } - - if (setting.primaryKey) { - _cell[setting.primaryKey] = cell[setting.primaryKey] - } - - _cell = {..._formparam, ..._cell} - - return _cell - }) + if (btn.procMode === 'system') { + _params = this.getSystemParam(data, formdata, btn.callbackType === 'script') + } else { + _params = this.getInnerParam(data, formdata, btn.callbackType === 'script') } if (_params.length > 1 && btn.progress === 'progressbar' && btn.$toolbtn) { @@ -936,18 +1083,18 @@ } // 寰幆璋冪敤澶栭儴鎺ュ彛锛堝寘鎷唴閮ㄥ強鍥炶皟鍑芥暟锛� - this.outerLoopRequest(_params, btn, _resolve) + this.outerLoopRequest(_params, _resolve) } else if (btn.intertype === 'custom') { // 绯荤粺鎺ュ彛 let params = [] if (btn.procMode === 'system') { - params = this.getSystemParam(data, formdata, true) + params = this.getSystemParam(data, formdata, btn.callbackType === 'script') params = params.map(item => { item.script_type = 'Y' return item }) } else { - params = this.getInnerParam(data, formdata) + params = this.getInnerParam(data, formdata, btn.callbackType === 'script') } if (params.length > 1 && btn.progress === 'progressbar' && btn.$toolbtn) { @@ -978,6 +1125,11 @@ delete param.$callbacksql + if (!param.func) { + this.customOuterRequest(params, param, record, _resolve) + return + } + Api.genericInterface(param).then(res => { if (res.status) { if ((res.mk_ex_invoke === 'false' || res.mk_ex_invoke === false) && params.length === 0) { @@ -988,41 +1140,6 @@ } else { this.customOuterRequest(params, res, record, _resolve) } - } else if (res.ErrCode === 'C' && this.state.checkParam) { - const _this = this - confirm({ - title: res.message || res.ErrMesg, - content: '缁х画鎵ц锛�', - onOk() { - return new Promise(resolve => { - Api.genericInterface(_this.state.checkParam).then((result) => { - if (result.status) { - if ((result.mk_ex_invoke === 'false' || result.mk_ex_invoke === false) && params.length === 0) { - _this.execSuccess(result) - _resolve() - } else if ((result.mk_ex_invoke === 'false' || result.mk_ex_invoke === false) && params.length > 0) { - _this.customLoopRequest(params, _resolve) - } else { - _this.customOuterRequest(params, result, record, _resolve) - } - } else { - _this.execError(result) - _resolve() - } - resolve() - }, () => { - _this.updateStatus() - resolve() - _resolve() - }) - }) - }, - onCancel() { - _this.execError({...res, ErrCode: 'P'}) - _resolve() - } - }) - this.setState({checkParam: null}) } else { this.execError(res) _resolve() @@ -1105,6 +1222,68 @@ * @description 鍥炶皟璇锋眰寰幆鎵ц */ customCallbackRequest = (params, result, record, _resolve) => { + const { btn } = this.props + + let param = null + + if (btn.callbackType === 'script' || btn.callbackType === 'default') { + param = this.getCallBackSql(result, record) + } else if (btn.callbackType === 'func') { + param = { + func: btn.callbackFunc, + ...result + } + if (result.$ErrCode === 'E') { + delete param.$ErrCode + delete param.$ErrMesg + + param.ErrCode = 'E' + } + } else { + if (result.$ErrCode === 'E') { + 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' + } + + if (result.status) { + if (params.length === 0) { + this.execSuccess(result) + _resolve() + } else { + this.customLoopRequest(params, _resolve) + } + } else { + this.execError(result) + _resolve() + } + + return + } + + Api.genericInterface(param).then(res => { + if (res.status) { + if (params.length === 0) { + this.execSuccess(res) + _resolve() + } else { + this.customLoopRequest(params, _resolve) + } + } else { + this.execError(res) + _resolve() + } + }, () => { + this.updateStatus() + _resolve() + }) + } + + getCallBackSql = (result, record) => { const { btn } = this.props let lines = [] let pre = btn.callbackType === 'script' ? '@' : '' @@ -1273,22 +1452,7 @@ } } - Api.genericInterface(param).then(res => { - if (res.status) { - if (params.length === 0) { - this.execSuccess(res) - _resolve() - } else { - this.customLoopRequest(params, _resolve) - } - } else { - this.execError(res) - _resolve() - } - }, () => { - this.updateStatus() - _resolve() - }) + return param } /** @@ -1352,137 +1516,153 @@ /** * @description 澶栭儴璇锋眰寰幆鎵ц */ - outerLoopRequest = (params, btn, _resolve) => { + outerLoopRequest = (params, _resolve) => { if (!params && params.length === 0) return let param = params.shift() - let _outParam = null this.setState({ loadingNumber: params.length }) - new Promise(resolve => { - // 鍐呴儴璇锋眰 - if (btn.innerFunc) { - param.func = btn.innerFunc + let record = { + BID: param.BID || '', + ID: param.ID || '', + callbacksql: param.$callbacksql || '' + } - // 鍑芥暟 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) - } + delete param.$callbacksql - // 瀛樺湪鍐呴儴鍑芥暟鏃讹紝鏁版嵁棰勫鐞� - Api.genericInterface(param).then(res => { - if (res.status) { - delete res.ErrCode - delete res.ErrMesg - delete res.message - delete res.status + if (!param.func) { + this.outerOuterRequest(params, param, record, _resolve) + return + } - // 浣跨敤澶勭悊鍚庣殑鏁版嵁璋冪敤澶栭儴鎺ュ彛 - let keys = Object.keys(res) // 鎻愪氦澶栭儴鎺ュ彛鍓嶏紝娣诲姞BID - if (this.props.BID && keys.filter(key => key.toLowerCase() === 'bid').length === 0) { - res.BID = this.props.BID - } - - resolve(res) - } else { - this.execError(res, btn) - resolve(false) - _resolve() - } - }, () => { - this.updateStatus() - _resolve() - }) - } else { - resolve(param) - } - }).then(res => { - if (!res) return - // 澶栭儴璇锋眰 - _outParam = JSON.parse(JSON.stringify(res)) - - if (btn.outerFunc) { - res.func = btn.outerFunc - } - if (window.GLOB.mkHS) { - if (btn.sysInterface === 'true' && options.cloudServiceApi) { - res.rduri = options.cloudServiceApi - } else if (btn.sysInterface !== 'true') { - if (window.GLOB.systemType === 'production' && btn.proInterface) { - res.rduri = btn.proInterface - } else { - res.rduri = btn.interface - } - } - - // 鍑芥暟 s_sDataDictb_TBBack 浜戠楠岃瘉 - if (res.func === 's_sDataDictb_TBBack' && res.LTextOut) { - res.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') - res.secretkey = Utils.encrypt(res.LTextOut, res.timestamp) - res.open_key = Utils.encryptOpenKey(res.secretkey, res.timestamp) - } - } else { - if (btn.sysInterface === 'true' && window.GLOB.mainSystemApi) { - res.rduri = window.GLOB.mainSystemApi - } else if (btn.sysInterface !== 'true') { - if (window.GLOB.systemType === 'production' && btn.proInterface) { - res.rduri = btn.proInterface - } else { - res.rduri = btn.interface - } - } - } - - return Api.genericInterface(res) - }).then(response => { - if (!response) return - // 鍥炶皟璇锋眰 - if (btn.callbackFunc) { - // 瀛樺湪鍥炶皟鍑芥暟鏃讹紝璋冪敤 - delete response.message - delete response.status - - response.func = btn.callbackFunc - - let _callbackparam = {..._outParam, ...response} - - // 鍑芥暟 s_sDataDictb_TBBack 浜戠楠岃瘉 - if (window.GLOB.mkHS && _callbackparam.func === 's_sDataDictb_TBBack' && _callbackparam.LTextOut) { - _callbackparam.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') - _callbackparam.secretkey = Utils.encrypt(_callbackparam.LTextOut, _callbackparam.timestamp) - _callbackparam.open_key = Utils.encryptOpenKey(_callbackparam.secretkey, _callbackparam.timestamp) - } - - return Api.genericInterface(_callbackparam) - } else { - if (response.status) { - // 涓�娆¤姹傛垚鍔燂紝杩涜涓嬩竴椤硅姹� - - if (params.length === 0) { - this.execSuccess(response) - _resolve() - } else { - this.outerLoopRequest(params, btn, _resolve) - } - } else { - this.execError(response) - _resolve() - } - } - }).then(res => { - if (!res) return - + Api.genericInterface(param).then(res => { if (res.status) { + if ((res.mk_ex_invoke === 'false' || res.mk_ex_invoke === false) && params.length === 0) { + this.execSuccess(res) + _resolve() + } else if ((res.mk_ex_invoke === 'false' || res.mk_ex_invoke === false) && params.length > 0) { + this.outerLoopRequest(params, _resolve) + } else { + delete res.mk_ex_invoke + delete res.ErrCode + delete res.ErrMesg + delete res.message + delete res.status + + // 浣跨敤澶勭悊鍚庣殑鏁版嵁璋冪敤澶栭儴鎺ュ彛 + let keys = Object.keys(res) // 鎻愪氦澶栭儴鎺ュ彛鍓嶏紝娣诲姞BID + if (this.props.BID && keys.filter(key => key.toLowerCase() === 'bid').length === 0) { + res.BID = this.props.BID + } + + this.outerOuterRequest(params, res, record, _resolve) + } + } else { + this.execError(res) + _resolve() + } + }, () => { + this.updateStatus() + _resolve() + }) + } + + outerOuterRequest = (params, result, record, _resolve) => { + const { btn } = this.props + let outParam = JSON.parse(JSON.stringify(result)) + + if (btn.outerFunc) { + result.func = btn.outerFunc + } + if (window.GLOB.mkHS) { + if (btn.sysInterface === 'true' && options.cloudServiceApi) { + result.rduri = options.cloudServiceApi + } else if (btn.sysInterface !== 'true') { + if (window.GLOB.systemType === 'production' && btn.proInterface) { + result.rduri = btn.proInterface + } else { + result.rduri = btn.interface + } + } + + // 鍑芥暟 s_sDataDictb_TBBack 浜戠楠岃瘉 + if (result.func === 's_sDataDictb_TBBack' && result.LTextOut) { + 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' && window.GLOB.mainSystemApi) { + result.rduri = window.GLOB.mainSystemApi + } else if (btn.sysInterface !== 'true') { + if (window.GLOB.systemType === 'production' && btn.proInterface) { + result.rduri = btn.proInterface + } else { + result.rduri = btn.interface + } + } + } + + Api.genericInterface(result).then(res => { + this.outerCallbackRequest(params, res, record, outParam, _resolve) + }, () => { + this.outerCallbackRequest(params, {status: false, message: 500, ErrCode: 'E', ErrMesg: 500}, record, outParam, _resolve) + }) + } + + /** + * @description 鍥炶皟璇锋眰寰幆鎵ц + */ + outerCallbackRequest = (params, result, record, outParam, _resolve) => { + const { btn } = this.props + + let param = null + + if (btn.callbackType === 'script' || btn.callbackType === 'default') { + param = this.getCallBackSql(result, record) + } else if (btn.callbackType === 'func' || btn.callbackFunc) { + delete result.message + delete result.status + + param = { + func: btn.callbackFunc, + ...outParam, + ...result + } + + // 鍑芥暟 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) + } + } else { + if (result.status) { + if (params.length === 0) { + this.execSuccess(result) + _resolve() + } else { + this.outerLoopRequest(params, _resolve) + } + } else { + this.execError(result) + _resolve() + } + + return + } + + Api.genericInterface(param).then(res => { + if (res.status) { + // 涓�娆¤姹傛垚鍔燂紝杩涜涓嬩竴椤硅姹� if (params.length === 0) { this.execSuccess(res) _resolve() } else { - this.outerLoopRequest(params, btn, _resolve) + this.outerLoopRequest(params, _resolve) } } else { this.execError(res) @@ -1935,17 +2115,6 @@ let data = this.props.selectedData && this.props.selectedData[0] ? this.props.selectedData[0] : null this.setState({check: data && data[btn.field] === btn.openVal}) } - } - - /** - * @description 鎸夐挳閰嶇疆淇℃伅閿欒鎻愮ず - */ - actionSettingError = () => { - notification.warning({ - top: 92, - message: this.state.dict['main.action.settingerror'], - duration: 5 - }) } handleModelConfig = (config) => { -- Gitblit v1.8.0