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/tabviews/tableshare/actionList/index.jsx | 429 ++++++++++++++++++++++------------------------------- 1 files changed, 177 insertions(+), 252 deletions(-) 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 鏃讹紝鏄剧ず鎴愬姛淇℃伅鍚庣郴缁熼粯璁や俊鎭� -- Gitblit v1.8.0