king
2023-06-15 a29d9d644a2a30e9ef4afcc6d728c20c218dc359
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 = '未知的返回结果!'