From ae46c8e640ed64abd7605b289554377e0cdc0cb7 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 04 十月 2023 22:10:30 +0800 Subject: [PATCH] 2023-10-04 --- src/tabviews/zshare/actionList/normalbutton/index.jsx | 260 +++++++++++++++++++++++++++------------------------- 1 files changed, 135 insertions(+), 125 deletions(-) diff --git a/src/tabviews/zshare/actionList/normalbutton/index.jsx b/src/tabviews/zshare/actionList/normalbutton/index.jsx index f07a1dd..816e450 100644 --- a/src/tabviews/zshare/actionList/normalbutton/index.jsx +++ b/src/tabviews/zshare/actionList/normalbutton/index.jsx @@ -451,12 +451,6 @@ } } - 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.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt('', param.timestamp) @@ -492,12 +486,6 @@ 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.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') @@ -523,12 +511,6 @@ 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爜 @@ -596,12 +578,6 @@ 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.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') @@ -642,12 +618,6 @@ 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.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') @@ -673,12 +643,6 @@ 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爜 @@ -740,6 +704,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 +733,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 +745,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 +783,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 +796,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 +840,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 +894,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' } @@ -989,20 +963,6 @@ /* 鏄剧ず鍒楀彉閲忚祴鍊� */ select ${_initColfields.join(',')} ` - } - - _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 @@ -1185,6 +1145,8 @@ * @description 鑷畾涔夎姹傚惊鐜墽琛� */ customLoopRequest = (params, _resolve) => { + const { setting, btn } = this.props + let param = params.shift() this.setState({ @@ -1196,6 +1158,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 @@ -1428,7 +1394,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' @@ -1477,7 +1442,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') { @@ -1494,6 +1474,11 @@ let vals = [] let subObjs = [] let id = Utils.getuuid() + let tbName = pre + tb + + if (tables.includes('#' + tb)) { + tbName = '#' + tb + } delete obj.$$key @@ -1522,9 +1507,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}'` }) @@ -1556,7 +1543,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 @@ -1586,6 +1573,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` @@ -1601,26 +1590,25 @@ 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.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt('', param.timestamp) @@ -1762,7 +1750,7 @@ * @description 澶栭儴璇锋眰寰幆鎵ц */ outerLoopRequest = (params, _resolve) => { - if (!params && params.length === 0) return + const { setting, btn } = this.props let param = params.shift() @@ -1774,6 +1762,10 @@ BID: param.BID || '', ID: param.ID || '', callbacksql: param.$callbacksql || '' + } + + if (!record.ID && btn.Ot !== 'notRequired' && param[setting.primaryKey]) { + record.ID = param[setting.primaryKey] } delete param.$callbacksql @@ -1829,58 +1821,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 => { 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 } @@ -2001,10 +1997,12 @@ callParam.open_key = Utils.encryptOpenKey(callParam.secretkey, callParam.timestamp) } - if (callParam.UpType === 'SSO' && window.GLOB.mainSystemApi) { - ssoParam = fromJS(callParam).toJS() + callParam.userid = sessionStorage.getItem('LocalUserID') || '' + callParam.LoginUID = sessionStorage.getItem('LocalLoginUID') || '' - ssoParam.rduri = window.GLOB.mainSystemApi + if (callParam.UpType === 'SSO' && window.GLOB.localSystemApi) { + ssoParam = fromJS(callParam).toJS() + ssoParam.rduri = window.GLOB.localSystemApi delete ssoParam.UpType } else { @@ -2197,22 +2195,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) { // 鏍囩鍏抽棴鍒锋柊 @@ -2884,7 +2882,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 || '')) -- Gitblit v1.8.0