From caeedb709671e9fa81195d096ec62b9ccadbfa82 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 15 六月 2023 14:26:30 +0800 Subject: [PATCH] Merge branch 'master' into positec --- src/tabviews/zshare/actionList/normalbutton/index.jsx | 122 +++++++++++++++++++++++++++++++++++++++- 1 files changed, 119 insertions(+), 3 deletions(-) diff --git a/src/tabviews/zshare/actionList/normalbutton/index.jsx b/src/tabviews/zshare/actionList/normalbutton/index.jsx index 07a4c6c..dad5061 100644 --- a/src/tabviews/zshare/actionList/normalbutton/index.jsx +++ b/src/tabviews/zshare/actionList/normalbutton/index.jsx @@ -832,6 +832,93 @@ return _params } + getLineParam = (data, formdata, retmsg) => { + const { setting, btn, columns } = this.props + let _params = [] + + if (btn.Ot === 'notRequired') { + if (retmsg) { + let param = { + $callbacksql: this.getSysDeclareSql(btn, formdata, data[0], columns, '', this.props.BID) + } + + _params.push(param) + } else { + _params.push({}) + } + } else if ( btn.Ot === 'requiredSgl' || btn.Ot === 'requiredOnce' ) { + let param = {} + + if (this.props.BID) { + param.BID = this.props.BID + } + + let primaryId = '' + + if ((btn.Ot === 'requiredSgl' || btn.Ot === 'requiredOnce') && setting.primaryKey) { + let ids = data.map(d => { return d[setting.primaryKey] || ''}) + ids = ids.filter(Boolean) + primaryId = ids.join(',') + } + + if (setting.primaryKey) { + param[setting.primaryKey] = primaryId // 璁剧疆涓婚敭鍙傛暟 + } + + if (btn.OpenType === 'pop' || btn.OpenType === 'formSubmit' || btn.OpenType === 'form') { // 琛ㄥ崟 + formdata.forEach(_data => { + param[_data.key] = _data.value + }) + } + + if (retmsg) { + param.$callbacksql = this.getSysDeclareSql(btn, formdata, data[0], columns, primaryId, this.props.BID) + } + + _params.push(param) + } else if (btn.Ot === 'required') { + _params = data.map((cell, index) => { + let param = {} + + if (this.props.BID) { + param.BID = this.props.BID + } + + let primaryId = setting.primaryKey ? cell[setting.primaryKey] || '' : '' + + if (btn.OpenType === 'pop') { // 琛ㄥ崟 + if (index !== 0) { + let _cell = {} + Object.keys(cell).forEach(key => { + _cell[key.toLowerCase()] = cell[key] + }) + formdata = formdata.map(_data => { + if (_data.readin && _cell.hasOwnProperty(_data.key.toLowerCase())) { + _data.value = _cell[_data.key.toLowerCase()] + } + return _data + }) + } + + formdata.forEach(_data => { + param[_data.key] = _data.value + }) + } + if (setting.primaryKey) { + param[setting.primaryKey] = primaryId + } + + if (retmsg) { + param.$callbacksql = this.getSysDeclareSql(btn, formdata, cell, columns, primaryId, this.props.BID) + } + + return param + }) + } + + return _params + } + /** * @description 鑾峰彇鍥炶皟鑴氭湰鐨勫瓧娈靛畾涔� */ @@ -1156,8 +1243,10 @@ item.script_type = 'Y' return item }) - } else { + } else if (btn.procMode === 'inner') { _params = this.getInnerParam(data, formdata, btn.callbackType === 'script') + } else { + _params = this.getLineParam(data, formdata, btn.callbackType === 'script') } if (_params.length > 1 && btn.progress === 'progressbar' && btn.$toolbtn) { @@ -1177,8 +1266,10 @@ item.script_type = 'Y' return item }) - } else { + } else if (btn.procMode === 'inner') { params = this.getInnerParam(data, formdata, btn.callbackType === 'script') + } else { + params = this.getLineParam(data, formdata, btn.callbackType === 'script') } if (params.length > 1 && btn.progress === 'progressbar' && btn.$toolbtn) { @@ -1269,7 +1360,32 @@ param[key] = result[key] }) - Api.directRequest(url, btn.method, param, btn.cross).then(res => { + let _params = { + url: url, + method: btn.method || 'post' + } + + if (btn.cross === 'true') { + if (JSON.stringify(param) !== '{}') { + _params.data = param + } + } else { + let _url = url + if (_params.method === 'get' && JSON.stringify(param) !== '{}') { + let keys = Object.keys(param).map(key => `${key}=${param[key]}`) + _url = _url + '?' + keys.join('&') + } else if (_params.method === 'post') { + _params.data = param + } + + _url = _url.replace(/&/ig, '%26') + + _params.url = '/trans/redirect?rd=' + _url + '&method=' + _params.method + + _params.method = 'post' + } + + Api.directRequest(_params).then(res => { if (typeof(res) !== 'object') { let error = '鏈煡鐨勮繑鍥炵粨鏋滐紒' -- Gitblit v1.8.0