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 | 854 ++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 572 insertions(+), 282 deletions(-) diff --git a/src/tabviews/zshare/actionList/normalbutton/index.jsx b/src/tabviews/zshare/actionList/normalbutton/index.jsx index ed0bc66..37d57c9 100644 --- a/src/tabviews/zshare/actionList/normalbutton/index.jsx +++ b/src/tabviews/zshare/actionList/normalbutton/index.jsx @@ -1,7 +1,6 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import moment from 'moment' -import {connect} from 'react-redux' import { is, fromJS } from 'immutable' import { Button, Modal, notification, message, Drawer, Switch, Checkbox, Progress } from 'antd' @@ -268,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({ @@ -286,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({ @@ -300,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紡绯荤粺鎺ュ彛鍦板潃锛�', @@ -308,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 } @@ -534,7 +547,7 @@ } } - if (this.props.menuType === 'HS') { // 鍑芥暟 sPC_TableData_InUpDe 浜戠楠岃瘉 + if (window.GLOB.mkHS) { // 鍑芥暟 sPC_TableData_InUpDe 浜戠楠岃瘉 param.open_key = Utils.encryptOpenKey(param.secretkey, param.timestamp) if (check_param) { check_param.open_key = Utils.encryptOpenKey(check_param.secretkey, check_param.timestamp) @@ -656,7 +669,7 @@ } } - if (this.props.menuType === 'HS') { // 鍑芥暟 sPC_TableData_InUpDe 浜戠楠岃瘉 + if (window.GLOB.mkHS) { // 鍑芥暟 sPC_TableData_InUpDe 浜戠楠岃瘉 param.open_key = Utils.encryptOpenKey(param.secretkey, param.timestamp) } @@ -674,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) { @@ -705,10 +718,14 @@ }) } - if (this.props.menuType === 'HS' && param.func === 's_sDataDictb_TBBack' && param.LTextOut) { // 鍑芥暟 s_sDataDictb_TBBack 浜戠楠岃瘉 + if (window.GLOB.mkHS && param.func === 's_sDataDictb_TBBack' && param.LTextOut) { // 鍑芥暟 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) + } + + if (retmsg) { + param.$callbacksql = this.getSysDeclareSql(btn, formdata, data[0], columns) } _params.push(param) @@ -742,10 +759,14 @@ param[setting.primaryKey] = primaryId } - if (this.props.menuType === 'HS' && param.func === 's_sDataDictb_TBBack' && param.LTextOut) { // 鍑芥暟 s_sDataDictb_TBBack 浜戠楠岃瘉 + if (window.GLOB.mkHS && param.func === 's_sDataDictb_TBBack' && param.LTextOut) { // 鍑芥暟 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) + } + + if (retmsg) { + param.$callbacksql = this.getSysDeclareSql(btn, formdata, cell, columns) } return param @@ -753,6 +774,179 @@ } 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 } /** @@ -834,6 +1028,10 @@ }) }, 600) } + + if (res.status) { + this.triggerNote(res) // 娑堟伅 + } resolve(res) }, () => { this.updateStatus() @@ -872,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) { @@ -933,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) { @@ -975,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) { @@ -985,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() @@ -1102,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' ? '@' : '' @@ -1246,7 +1428,7 @@ param.s_debug_type = 'Y' } - if (this.props.menuType === 'HS') { // 鍑芥暟 sPC_TableData_InUpDe 浜戠楠岃瘉 + if (window.GLOB.mkHS) { // 鍑芥暟 sPC_TableData_InUpDe 浜戠楠岃瘉 param.open_key = Utils.encryptOpenKey(param.secretkey, param.timestamp) } } else { @@ -1270,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 } /** @@ -1327,6 +1494,9 @@ }) }, 600) } + + this.triggerNote(res) // 娑堟伅 + if (params.length === 0) { this.execSuccess(res) _resolve() @@ -1346,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 (this.props.menuType === 'HS' && 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 (this.props.menuType === 'HS') { - 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 (this.props.menuType === 'HS' && _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) @@ -1530,13 +1716,13 @@ }) } - if (btn.verify && btn.verify.noteEnable === 'true') { - this.sendMessage() - } - let id = '' if (btn.output) { id = res.mk_b_id || res[btn.output] || '' + } + + if (res.mk_icon) { + sessionStorage.setItem('avatar', res.mk_icon) } let tabId = '' if (btn.refreshTab && btn.refreshTab.length > 0) { @@ -1592,13 +1778,139 @@ } } - sendMessage = () => { - const { btn : { verify } } = this.props + triggerNote = (res) => { + const { btn } = this.props + if (!btn.verify) return + if (btn.verify.noteEnable !== 'true' && btn.verify.wxNote !== 'true') return + + let id = '' + if (btn.output) { + id = res.mk_b_id || res[btn.output] || '' + } + + if (!id) return + + if (btn.verify.noteEnable === 'true') { + this.sendMessage(btn.verify, id) + } + if (btn.verify.wxNote === 'true') { + this.sendWxMessage(btn.verify, id) + } + } + + sendWxMessage = (verify, id) => { + let param = { + func: 's_get_sms_weixin_local', + upid: id + } + + param.LText = Utils.formatOptions(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 => { + // res.data = [{openid: 'o2E7gvoSFvQRG7I8_gZxf4y3ONkQ', send_id: '2223333', first: '鎮ㄧ殑缂磋垂淇℃伅濡備笅', keyword1: '010000000001', keyword2: '2022骞�07鏈�03鏃�', keyword3: '渚涙殩缂磋垂', keyword4: '20鍏�', keyword5: '鎴愬姛', remark: '鎰熻阿鎮ㄧ殑浣跨敤锛�'}] + if (!res.status) { + notification.warning({ + top: 92, + message: res.message, + duration: 5 + }) + return + } else if (!res.send_data || res.send_data.length === 0) { + return + } + + let _param = { + touser: '', + template_id: verify.wxTemplateId, + data: {} + } + + if (verify.wxNoteLink === 'url' && verify.wxNoteLinkUrl) { + _param.url = verify.wxNoteLinkUrl + } else if (verify.wxNoteLink === 'miniProgram' && window.GLOB.WXminiAppID) { + _param.miniprogram = { + appid: window.GLOB.WXminiAppID, + pagepath: '/pages/index/index' + } + + if (verify.wxNoteLinkMenuId) { + _param.miniprogram.pagepath = `/pages/index/index?MenuId=${verify.wxNoteLinkMenuId}` + } + } + + let keys = [] + verify.wxNoteKeys.forEach(item => { + keys.push(item.key) + + _param.data[item.key] = {value: '', color: item.color} + }) + + let params = res.send_data.map(item => { + let m = fromJS(_param).toJS() + + m.touser = item.openid || '' + if (item.bid && m.miniprogram && m.miniprogram.pagepath.indexOf('MenuId') > -1) { + m.miniprogram.pagepath = m.miniprogram.pagepath + `&BID=${item.bid}` + } + + if (item.send_id) { // 闃查噸鍏d + m.client_msg_id = item.send_id + } + + keys.forEach(key => { + if (item[key] !== undefined) { + m.data[key].value = item[key] + } + }) + + return m + }) + + Api.wxAccessToken().then(res => { + if (!res.oa_access_token) return + + params.forEach(n => { + if (!n.touser) return + + Api.wxNginxRequest(`cgi-bin/message/template/send?access_token=${res.oa_access_token}`, 'post', n).then(re => { + if (verify.wxNoteCallback === 'true') { + let _p = { + func: 's_get_sms_weixin_local_suc_err', + upid: id, + send_id: n.client_msg_id || '', + status_result: re.errcode === 0 ? 'S' : 'E', + msg_result: re.errmsg + } + + _p.LText = Utils.formatOptions(Utils.getuuid()) + _p.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + _p.secretkey = Utils.encrypt(_p.LText, _p.timestamp) + + Api.genericInterface(_p).then(result => { + if (!result.status) { + notification.warning({ + top: 92, + message: result.message, + duration: 5 + }) + } + }) + } + }) + }) + }) + }) + } + + sendMessage = (verify, id) => { let param = { func: 's_get_sms_local', TypeCharOne: verify.noteTemp, // N涓嶅悓鍐呭锛孻鐩稿悓鍐呭 - TypeCharTwo: verify.noteType // N瀹氭椂锛孻瀹炴椂 + TypeCharTwo: verify.noteType, // N瀹氭椂锛孻瀹炴椂 + upid: id } param.LText = Utils.formatOptions(Utils.getuuid()) @@ -1677,13 +1989,14 @@ } 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 = 'http://sso.mk9h.cn/webapi/dostars' + _param.rduri = 'https://sso.mk9h.cn/webapi/dostars' _param.userid = 'bh0bapabtd45epsgra79segbch6c1ibk' _param.LoginUID = 'bh0bapabtd45epsgra79segbch6c1ibk' @@ -1802,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) => { @@ -2051,7 +2353,6 @@ <MutilForm BID={BID} dict={this.state.dict} - menuType={this.props.menuType} action={btnconfig} inputSubmit={this.handleOk} data={this.state.selines[0]} @@ -2094,7 +2395,6 @@ <MutilForm BID={BID} dict={this.state.dict} - menuType={this.props.menuType} action={btnconfig} inputSubmit={this.handleOk} data={this.state.selines[0]} @@ -2136,43 +2436,33 @@ } else if (!btn.$toolbtn) { icon = btn.icon || '' label = btn.label - className = 'mk-btn mk-' + btn.class + className = 'mk-btn mk-' + (btn.class || 'unset') } else { type = '' icon = btn.icon || '' label = btn.label - className = 'mk-btn mk-' + btn.class + className = 'mk-btn mk-' + (btn.class || 'unset') } if (loadingNumber && !loadingTotal && btn.$toolbtn && (!btn.show || btn.show === 'button')) { label = (loadingNumber && !loadingTotal ? `(${loadingNumber})` : '') + btn.label } - return <div style={{display: 'inline-block'}} onClick={(e) => e.stopPropagation()}> + return <> <Button type={type} icon={icon} title={disabled ? (btn.reason || '') : (btn.show === 'icon' ? btn.label : '')} loading={loading} disabled={disabled} - style={btn.style || null} + style={btn.style} className={className} - onClick={() => {this.actionTrigger()}} + onClick={(e) => {e.stopPropagation(); this.actionTrigger()}} >{label}</Button> - {this.getModels()} + <span onClick={(e) => {e.stopPropagation()}}>{this.getModels()}</span> {loadingTotal ? <Progress className="mk-button-progress" percent={(loadingTotal - loadingNumber) / loadingTotal * 100} size="small" showInfo={false} /> : null} - </div> + </> } } -const mapStateToProps = (state) => { - return { - menuType: state.editLevel - } -} - -const mapDispatchToProps = () => { - return {} -} - -export default connect(mapStateToProps, mapDispatchToProps)(NormalButton) \ No newline at end of file +export default NormalButton \ No newline at end of file -- Gitblit v1.8.0