From b7c41fce93fbe30ac8334fc03eef700b1640bc15 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 06 二月 2020 15:16:38 +0800 Subject: [PATCH] 2020-02-06 --- src/components/header/index.jsx | 8 src/templates/tableshare/verifycard/index.jsx | 16 + src/utils/utils.js | 56 +++--- src/tabviews/tableshare/actionList/index.jsx | 429 +++++++++++++++++++---------------------------- 4 files changed, 227 insertions(+), 282 deletions(-) diff --git a/src/components/header/index.jsx b/src/components/header/index.jsx index 0b35b0b..769a009 100644 --- a/src/components/header/index.jsx +++ b/src/components/header/index.jsx @@ -157,6 +157,10 @@ } let result = await Api.getSystemConfig(_param) + + // 鐧诲綍瓒呮椂 + if (!result) return + if (result.status) { if (result.debug === 'true') { // 鏄惁涓篸ebug妯″紡锛屽嵆鍙鍒惰彍鍗曞弬鏁� this.props.resetDebug() @@ -201,6 +205,10 @@ async getRolesMenu () { // 鑾峰彇瑙掕壊鏉冮檺 let result = await Api.getSystemConfig({func: 'sPC_Get_RolesMenu'}) + + // 鐧诲綍瓒呮椂 + if (!result) return + if (result.status) { let _permAction = {} let _permFuncField = [] diff --git a/src/tabviews/tableshare/actionList/index.jsx b/src/tabviews/tableshare/actionList/index.jsx index d624e27..a0ddc24 100644 --- a/src/tabviews/tableshare/actionList/index.jsx +++ b/src/tabviews/tableshare/actionList/index.jsx @@ -225,7 +225,6 @@ param.secretkey = Utils.encrypt(param.LText, param.timestamp) } } - Api.genericInterface(param).then((res) => { if (res.status) { @@ -236,7 +235,7 @@ _resolve() }) } else if (btn.Ot === 'required' || (btn.Ot === 'requiredOnce' && btn.OpenType === 'pop')) { - let deffers = data.map(cell => { + let _params = data.map(cell => { let param = { func: 'sPC_TableData_InUpDe', BID: this.props.BID @@ -260,14 +259,13 @@ if (btn.innerFunc) { param.func = btn.innerFunc - if (setting.primaryKey) { - param[setting.primaryKey] = primaryId - } - formdata.forEach(_data => { param[_data.key] = _data.value }) + if (setting.primaryKey) { + param[setting.primaryKey] = primaryId + } } else if (btn.sql) { param.ID = primaryId param.LText = Utils.formatOptions(Utils.getSysDefaultSql(btn, setting, formdata, param, cell, logcolumns)) // 鏁版嵁婧� @@ -276,30 +274,38 @@ } } - return new Promise(resolve => { - Api.genericInterface(param).then(res => { - resolve(res) + return param + }) + + if (_params.length <= 20) { + let deffers = _params.map(param => { + return new Promise(resolve => { + Api.genericInterface(param).then(res => { + resolve(res) + }) }) }) - }) - Promise.all(deffers).then(result => { - let iserror = false - let errorMsg = '' - result.forEach(res => { - if (res.status) { - errorMsg = res + Promise.all(deffers).then(result => { + let iserror = false + let errorMsg = '' + result.forEach(res => { + if (res.status) { + errorMsg = res + } else { + iserror = true + errorMsg = res + } + }) + if (!iserror) { + this.execSuccess(btn, errorMsg) } else { - iserror = true - errorMsg = res + this.execError(errorMsg, btn) } + _resolve() }) - if (!iserror) { - this.execSuccess(btn, errorMsg) - } else { - this.execError(errorMsg, btn) - } - _resolve() - }) + } else { // 瓒呭嚭20涓姹傛椂寰幆鎵ц + this.innerLoopRequest(_params, btn, _resolve) + } } else { this.actionSettingError() _resolve() @@ -307,9 +313,6 @@ } } else if (btn.intertype === 'outer') { /** *********************璋冪敤澶栭儴鎺ュ彛************************* */ - let param = { - BID: this.props.BID - } if (!btn.interface) { // 鎺ュ彛鍦板潃涓嶅瓨鍦ㄦ椂鎶ラ敊 this.actionSettingError() @@ -317,7 +320,19 @@ return } + let _params = [] // 璇锋眰鍙傛暟鏁扮粍 + if (btn.Ot === 'notRequired' || btn.Ot === 'requiredSgl' || btn.Ot === 'requiredOnce') { + let param = { + BID: this.props.BID + } + + if (btn.OpenType === 'pop' && formdata) { // 琛ㄥ崟 + formdata.forEach(_data => { + param[_data.key] = _data.value + }) + } + // 鑾峰彇id if (btn.Ot === 'notRequired') { @@ -328,244 +343,37 @@ param[setting.primaryKey] = ids.join(',') } - if (btn.OpenType === 'pop' && formdata) { // 琛ㄥ崟 - formdata.forEach(_data => { - param[_data.key] = _data.value - }) - } - - let _outParam = null - - new Promise(resolve => { - // 鍐呴儴璇锋眰 - if (btn.innerFunc) { - param.func = btn.innerFunc - // 瀛樺湪鍐呴儴鍑芥暟鏃讹紝鏁版嵁棰勫鐞� - Api.genericInterface(param).then(res => { - if (res.status) { - delete res.ErrCode - delete res.ErrMesg - delete res.message - delete res.status - - if (btn.sysInterface === 'true') { - res.rduri = window.GLOB.mainSystemApi || window.GLOB.subSystemApi - } else { - res.rduri = btn.interface - } - // res.method = btn.method - if (btn.outerFunc) { - res.func = btn.outerFunc - } - // 浣跨敤澶勭悊鍚庣殑鏁版嵁璋冪敤澶栭儴鎺ュ彛 - resolve(res) - } else { - this.execError(res, btn) - _resolve() - } - }) - } else { - // 涓嶅瓨鍦ㄥ唴閮ㄥ嚱鏁版椂锛岀敓鎴愬閮ㄨ姹傚弬鏁� - if (btn.sysInterface === 'true') { - param.rduri = window.GLOB.mainSystemApi || window.GLOB.subSystemApi - } else { - param.rduri = btn.interface - } - // param.method = btn.method - if (btn.outerFunc) { - param.func = btn.outerFunc - } - resolve(param) - } - }).then(res => { - if (!res) return - // 澶栭儴璇锋眰 - _outParam = JSON.parse(JSON.stringify(res)) - - res.appkey = window.GLOB.appkey || '' // 澶栭儴璇锋眰鏃讹紝缁熶竴娣诲姞appkey - - return Api.genericInterface(res) - }).then(response => { - if (!response) return - // 鍥炶皟璇锋眰 - if (btn.callbackFunc) { - // 瀛樺湪鍥炶皟鍑芥暟鏃讹紝璋冪敤 - delete response.ErrMesg - delete response.message - delete response.status - - delete _outParam.rduri - - response.func = btn.callbackFunc - - let _callbackparam = {..._outParam, ...response} - return Api.genericInterface(_callbackparam) - } else { - if (response.status) { - this.execSuccess(btn, response) - _resolve() - } else { - this.execError(response, btn) - _resolve() - } - } - }).then(res => { - if (!res) return - - if (res.status) { - this.execSuccess(btn, res) - } else { - this.execError(res, btn) - } - _resolve() - }) - + _params.push(param) } else if (btn.Ot === 'required') { // 閫夋嫨澶氳锛屽惊鐜皟鐢� - new Promise(resolve => { - // 鍐呴儴璇锋眰 - if (btn.innerFunc) { - let deffers = data.map(cell => { - let _param = { - BID: this.props.BID, - func: btn.innerFunc - } - if (setting.primaryKey) { - _param[setting.primaryKey] = cell[setting.primaryKey] - } - return new Promise(resolve => { - Api.genericInterface(_param).then(res => { - resolve(res) - }) - }) - }) - Promise.all(deffers).then(result => { - let iserror = false - let errorMsg = '' - result.forEach(res => { - if (!res.status) { - iserror = true - errorMsg = res.message - } - }) - if (!iserror) { - resolve(result) - } else { - notification.error({ - top: 92, - message: errorMsg, - duration: 15 - }) - this.refreshdata(btn, 'error') - _resolve() - } - }) - } else { - let params = data.map(cell => { - let _cell = { - BID: this.props.BID, - } - if (setting.primaryKey) { - _cell[setting.primaryKey] = cell[setting.primaryKey] - } - - return _cell - }) - resolve(params) - } - }).then(result => { - // 澶栭儴璇锋眰 - if (!result) return - - let deffers = result.map(res => { - delete res.ErrCode - delete res.ErrMesg - delete res.message - delete res.status - - if (btn.sysInterface === 'true') { - res.rduri = window.GLOB.mainSystemApi || window.GLOB.subSystemApi - } else { - res.rduri = btn.interface - } - // res.method = btn.method - if (btn.outerFunc) { - res.func = btn.outerFunc - } - return new Promise(resolve => { - Api.genericInterface(res).then(response => { - resolve(response) - }) - }) + let _formparam = {} + if (btn.OpenType === 'pop' && formdata) { // 琛ㄥ崟 + formdata.forEach(_data => { + _formparam[_data.key] = _data.value }) - return Promise.all(deffers) + } - }).then(result => { - // 鍥炶皟璇锋眰 - let iserror = false - let errorMsg = '' - result.forEach(res => { - if (!res.status) { - iserror = true - errorMsg = res - } else { - errorMsg = res - } - }) - if (iserror) { - this.execError(errorMsg, btn) - _resolve() - return + _params = data.map(cell => { + let _cell = { + BID: this.props.BID, } - - if (btn.callbackFunc) { - // 瀛樺湪鍥炶皟鍑芥暟鏃讹紝璋冪敤 - let deffers = result.map(res => { - delete res.ErrCode - delete res.ErrMesg - delete res.message - delete res.status - - res.func = btn.callbackFunc - return new Promise(resolve => { - Api.genericInterface(res).then(response => { - resolve(response) - }) - }) - }) - return Promise.all(deffers) - } else { - _resolve() - this.execSuccess(btn, errorMsg) + if (setting.primaryKey) { + _cell[setting.primaryKey] = cell[setting.primaryKey] } - }).then(result => { - if (!result) return - let iserror = false - let errorMsg = '' - result.forEach(res => { - if (!res.status) { - iserror = true - errorMsg = res - } else { - errorMsg = res - } - }) - if (iserror) { - this.execError(errorMsg, btn) - return - } else { - this.execSuccess(btn, errorMsg) - } - _resolve() + _cell = {..._formparam, ..._cell} + + return _cell }) - } else { this.actionSettingError() _resolve() return } + + // 寰幆璋冪敤澶栭儴鎺ュ彛锛堝寘鎷唴閮ㄥ強鍥炶皟鍑芥暟锛� + this.outerLoopRequest(_params, btn, _resolve) } else { this.actionSettingError() @@ -575,6 +383,123 @@ } /** + * @description 鍐呴儴璇锋眰寰幆鎵ц + */ + innerLoopRequest = (params, btn, _resolve) => { + if (!params && params.length === 0) return + + let param = params.shift() + + Api.genericInterface(param).then(res => { + if (res.status) { + if (params.length === 0) { + this.execSuccess(btn, res) + _resolve() + } else { + this.innerLoopRequest(params, btn, _resolve) + } + } else { + this.execError(res, btn) + _resolve() + } + }) + } + + /** + * @description 澶栭儴璇锋眰寰幆鎵ц + */ + outerLoopRequest = (params, btn, _resolve) => { + if (!params && params.length === 0) return + + let param = params.shift() + let _outParam = null + + new Promise(resolve => { + // 鍐呴儴璇锋眰 + if (btn.innerFunc) { + param.func = btn.innerFunc + // 瀛樺湪鍐呴儴鍑芥暟鏃讹紝鏁版嵁棰勫鐞� + Api.genericInterface(param).then(res => { + if (res.status) { + delete res.ErrCode + delete res.ErrMesg + delete res.message + delete res.status + + // 浣跨敤澶勭悊鍚庣殑鏁版嵁璋冪敤澶栭儴鎺ュ彛 + resolve(res) + } else { + this.execError(res, btn) + resolve(false) + _resolve() + } + }) + } else { + resolve(param) + } + }).then(res => { + if (!res) return + // 澶栭儴璇锋眰 + _outParam = JSON.parse(JSON.stringify(res)) + + if (btn.sysInterface === 'true') { + res.rduri = window.GLOB.mainSystemApi || window.GLOB.subSystemApi + } else { + res.rduri = btn.interface + } + // res.method = btn.method + if (btn.outerFunc) { + res.func = btn.outerFunc + } + + res.appkey = window.GLOB.appkey || '' // 澶栭儴璇锋眰鏃讹紝缁熶竴娣诲姞appkey + + 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} + return Api.genericInterface(_callbackparam) + } else { + if (response.status) { + // 涓�娆¤姹傛垚鍔燂紝杩涜涓嬩竴椤硅姹� + + if (params.length === 0) { + this.execSuccess(btn, response) + _resolve() + } else { + this.outerLoopRequest(params, btn, _resolve) + } + } else { + this.execError(response, btn) + _resolve() + } + } + }).then(res => { + if (!res) return + + if (res.status) { + if (params.length === 0) { + this.execSuccess(btn, res) + _resolve() + } else { + this.outerLoopRequest(params, btn, _resolve) + } + } else { + this.execError(res, btn) + _resolve() + } + }) + } + + /** * @description 鎿嶄綔鎴愬姛鍚庡鐞� * 1銆乪xcel瀵煎嚭锛屾垚鍔熷悗鍙栨秷瀵煎嚭鎸夐挳鍔犺浇涓姸鎬� * 2銆佺姸鎬佺爜涓� S 鏃讹紝鏄剧ず鎴愬姛淇℃伅鍚庣郴缁熼粯璁や俊鎭� diff --git a/src/templates/tableshare/verifycard/index.jsx b/src/templates/tableshare/verifycard/index.jsx index e9e35a7..c704bc2 100644 --- a/src/templates/tableshare/verifycard/index.jsx +++ b/src/templates/tableshare/verifycard/index.jsx @@ -1,6 +1,6 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' -import { Form, Tabs, Row, Col, Radio, Button, Table, Popconfirm, Icon, notification, Modal, message, InputNumber } from 'antd' +import { Form, Tabs, Row, Col, Radio, Button, Table, Popconfirm, Icon, notification, Modal, message, InputNumber, Tooltip } from 'antd' import moment from 'moment' import Api from '@/api' @@ -361,6 +361,7 @@ this.setState({ verify: { + default: _verify.default || 'true', invalid: _verify.invalid || 'false', uniques: _verify.uniques || [], contrasts: _verify.contrasts || [], @@ -923,6 +924,19 @@ <Form {...formItemLayout}> <Row gutter={24}> <Col span={12}> + <Form.Item label={ + <Tooltip placement="bottomLeft" title={'榛樿sql鎵ц椤哄簭涓鸿嚜瀹氫箟鑴氭湰涔嬪墠'}> + <Icon type="question-circle" style={{color: '#c49f47', marginRight: '5px'}} /> + 榛樿sql + </Tooltip> + }> + <Radio.Group value={verify.default} onChange={(e) => {this.onOptionChange(e, 'default')}}> + <Radio value="true">鎵ц</Radio> + <Radio value="false">涓嶆墽琛�</Radio> + </Radio.Group> + </Form.Item> + </Col> + <Col span={12}> <Form.Item label={'璐︽湡楠岃瘉'}> <Radio.Group value={verify.accountdate} onChange={(e) => {this.onOptionChange(e, 'accountdate')}}> <Radio value="true">寮�鍚�</Radio> diff --git a/src/utils/utils.js b/src/utils/utils.js index df4d668..74c1c0e 100644 --- a/src/utils/utils.js +++ b/src/utils/utils.js @@ -448,7 +448,7 @@ static getSysDefaultSql (btn, setting, formdata, param, data, logcolumns) { let primaryId = param.ID let BID = param.BID - let verify = btn.verify + let verify = btn.verify || {} let _formFieldValue = {} // 闇�瑕佸0鏄庣殑鍙橀噺闆� let _vars = ['tbid', 'ErrorCode', 'retmsg', 'BillCode', 'BVoucher', 'FIBVoucherDate', 'FiYear', 'UserName', 'FullName', 'ID', 'BID'] @@ -507,22 +507,20 @@ } // 鍘婚櫎绂佺敤鐨勯獙璇� - if (verify) { - if (verify.contrasts) { - verify.contrasts = verify.contrasts.filter(item => item.status !== 'false') - } - if (verify.uniques) { - verify.uniques = verify.uniques.filter(item => item.status !== 'false') - } - if (verify.customverifys) { - verify.customverifys = verify.customverifys.filter(item => item.status !== 'false') - } - if (verify.billcodes) { - verify.billcodes = verify.billcodes.filter(item => item.status !== 'false') - } - if (verify.scripts) { - verify.scripts = verify.scripts.filter(item => item.status !== 'false') - } + if (verify.contrasts) { + verify.contrasts = verify.contrasts.filter(item => item.status !== 'false') + } + if (verify.uniques) { + verify.uniques = verify.uniques.filter(item => item.status !== 'false') + } + if (verify.customverifys) { + verify.customverifys = verify.customverifys.filter(item => item.status !== 'false') + } + if (verify.billcodes) { + verify.billcodes = verify.billcodes.filter(item => item.status !== 'false') + } + if (verify.scripts) { + verify.scripts = verify.scripts.filter(item => item.status !== 'false') } // 鍒濆鍖栧嚟璇佸瓧娈� @@ -530,7 +528,7 @@ ` // 鍚敤璐︽湡楠岃瘉 - if (verify && verify.accountdate === 'true') { + if (verify.accountdate === 'true') { _sql += `exec s_FIBVoucherDateCheck @ErrorCode=@ErrorCode OUTPUT,@retmsg=@retmsg OUTPUT if @ErrorCode!='' GOTO aaa @@ -538,7 +536,7 @@ } // 澶辨晥楠岃瘉锛屾坊鍔犳暟鎹椂涓嶇敤 - if (btn.sqlType !== 'insert' && verify && verify.invalid === 'true' && setting.dataresource) { + if (btn.sqlType !== 'insert' && verify.invalid === 'true' && setting.dataresource) { let datasource = setting.dataresource if (/\s/.test(datasource)) { // 鎷兼帴鍒悕 datasource = '(' + datasource + ') tb' @@ -555,7 +553,7 @@ } // 姣旇緝楠岃瘉 - if (verify && verify.contrasts && verify.contrasts.length > 0) { + if (verify.contrasts && verify.contrasts.length > 0) { verify.contrasts.forEach(item => { _sql += `If ${item.frontfield} ${item.operator} ${item.backfield} Begin @@ -567,7 +565,7 @@ } // 鍞竴鎬ч獙璇侊紝蹇呴』瀛樺湪琛ㄥ崟锛堣〃鍗曞瓨鍦ㄦ椂锛屼富閿潎涓哄崟鍊硷級,蹇呴』濉啓鏁版嵁婧� - if (formdata && verify && verify.uniques.length > 0) { + if (formdata && verify.uniques && verify.uniques.length > 0) { verify.uniques.forEach(item => { let _fieldValue = [] // 琛ㄥ崟閿�煎field=value let _value = [] // 琛ㄥ崟鍊硷紝鐢ㄤ簬閿欒鎻愮ず @@ -595,7 +593,7 @@ } // 鑷畾涔夐獙璇� - if (verify && verify.customverifys.length > 0) { + if (verify.customverifys && verify.customverifys.length > 0) { verify.customverifys.forEach(item => { _sql += `select @tbid='', @ErrorCode='',@retmsg='' select top 1 @tbid='X' from (${item.sql}) a @@ -609,7 +607,7 @@ } // 鍗曞彿鐢熸垚锛屼娇鐢ㄤ笂绾d锛圔ID锛夋垨鍒楄〃鏁版嵁锛屽0鏄庡彉閲忥紙妫�楠岋級 - if (verify && verify.billcodes.length > 0) { + if (verify.billcodes && verify.billcodes.length > 0) { verify.billcodes.forEach(item => { let _ModularDetailCode = '' if (item.TypeCharOne === 'Lp' || item.TypeCharOne === 'BN') { @@ -650,7 +648,7 @@ let _updateconfig = '' // 鍑瘉-鏄剧ず鍒椾腑閫夊彇,蹇呴』閫夎 - if (verify && verify.voucher && verify.voucher.enabled && data) { + if (verify.voucher && verify.voucher.enabled && data) { let _voucher = verify.voucher _updateconfig = ',BVoucher=@BVoucher,FIBVoucherDate=@FIBVoucherDate,FiYear=@FiYear' @@ -676,7 +674,7 @@ ` // 娣诲姞銆佷慨鏀广�侀�昏緫鍒犻櫎銆佺墿鐞嗗垹闄� - if (btn.OpenType === 'pop' && btn.sqlType === 'insert') { + if (btn.OpenType === 'pop' && btn.sqlType === 'insert' && verify.default !== 'false') { let keys = [] let values = [] formdata.forEach(item => { @@ -696,7 +694,7 @@ values = values.join(',') _sql += _user _sql += `insert into ${btn.sql} (${keys},createuserid,CreateUser,CreateStaff,BID) select ${values},@userid,@username,@fullname,@BID;` - } else if (btn.OpenType === 'pop' && btn.sqlType === 'update') { + } else if (btn.OpenType === 'pop' && btn.sqlType === 'update' && verify.default !== 'false') { let _form = [] formdata.forEach(item => { if (item.type === 'funcvar') { @@ -709,9 +707,9 @@ }) _form = _form.join(',') _sql += `update ${btn.sql} set ${_form},modifydate=getdate(),modifyuserid=@userid${_updateconfig} where ${primaryKey}=@${primaryKey};` - } else if ((btn.OpenType === 'prompt' || btn.OpenType === 'exec') && btn.sqlType === 'LogicDelete') { // 閫昏緫鍒犻櫎 + } else if ((btn.OpenType === 'prompt' || btn.OpenType === 'exec') && btn.sqlType === 'LogicDelete' && verify.default !== 'false') { // 閫昏緫鍒犻櫎 _sql += `update ${btn.sql} set deleted=1,modifydate=getdate(),modifyuserid=@userid where ${primaryKey}=@${primaryKey};` - } else if ((btn.OpenType === 'prompt' || btn.OpenType === 'exec') && btn.sqlType === 'delete') { // 鐗╃悊鍒犻櫎 + } else if ((btn.OpenType === 'prompt' || btn.OpenType === 'exec') && btn.sqlType === 'delete' && verify.default !== 'false') { // 鐗╃悊鍒犻櫎 let _msg = '' if (data && logcolumns && logcolumns.length > 0) { logcolumns.forEach(col => { @@ -723,7 +721,7 @@ } // 鎷兼帴鑷畾涔夎剼鏈� - if (verify && verify.scripts && verify.scripts.length > 0) { + if (verify.scripts && verify.scripts.length > 0) { let _scripts = '' verify.scripts.forEach(item => { _scripts += ` -- Gitblit v1.8.0