| | |
| | | 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 获取回调脚本的字段定义 |
| | | */ |
| | |
| | | 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) { |
| | |
| | | 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) { |
| | |
| | | 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 = '未知的返回结果!' |
| | | |