king
2021-11-17 c51f5e007a3e03c9d6731ab7f28f0080de009990
src/tabviews/formtab/actionList/index.jsx
@@ -2,7 +2,7 @@
import PropTypes from 'prop-types'
import moment from 'moment'
import { Button, Modal, notification, message } from 'antd'
import Utils from '@/utils/utils.js'
import Utils, { getSysDefaultSql } from '@/utils/utils.js'
import options from '@/store/options.js'
import Api from '@/api'
import './index.scss'
@@ -15,7 +15,6 @@
    MenuID: PropTypes.string,      // 菜单ID
    primaryId: PropTypes.string,   // 主键
    actions: PropTypes.array,      // 按钮组
    logcolumns: PropTypes.array,   // 显示列
    dict: PropTypes.object,        // 字典项
    data: PropTypes.any,           // 数据
    setting: PropTypes.any,        // 页面通用设置
@@ -25,7 +24,6 @@
  state = {
    formdata: null,
    tabledata: null,
    loadingUuid: ''
  }
  
@@ -66,20 +64,46 @@
   * @description 按钮提交执行
   */
  execSubmit = (btn, data, _resolve, formdata) => {
    const { setting, logcolumns, primaryId } = this.props
    const { setting, primaryId } = this.props
    let _primaryId = primaryId
    if (btn.intertype === 'inner') {
      // 使用内部接口时,内部函数和数据源不可同时为空, 使用系统函数时,类型不可为空
      if (!btn.innerFunc && (!btn.sql || (btn.sql && !btn.sqlType))) {
      let param = { // 系统存储过程
        func: btn.innerFunc,
        BID: ''
      }
      param[setting.primaryKey] = primaryId
      formdata.forEach(_data => {
        param[_data.key] = _data.value
      })
      if (!param[setting.primaryKey]) {
        param[setting.primaryKey] = Utils.getguid()
      }
      _primaryId = param[setting.primaryKey]
      Api.genericInterface(param).then((res) => {
        if (res.status) {
          this.execSuccess(btn, res, _primaryId, formdata)
        } else {
          this.execError(res, btn)
        }
        _resolve()
      })
    } else if (btn.intertype === 'system') {
      // 使用系统接口时,数据源不可为空, 使用系统函数时,类型不可为空
      if (!btn.sql || !btn.sqlType) {
        this.actionSettingError()
        _resolve()
        return
      }
      // 创建凭证时,需要选择行时
      if (!data && !btn.innerFunc && btn.verify && btn.verify.voucher && btn.verify.voucher.enabled) {
      if (!data && btn.verify && btn.verify.voucher && btn.verify.voucher.enabled) {
        notification.warning({
          top: 92,
          message: '使用创建凭证函数,需要选择行!',
@@ -90,64 +114,32 @@
      let param = { // 系统存储过程
        func: 'sPC_TableData_InUpDe',
        exec_type: 'y', // 后台解码
        BID: ''
      }
      if (btn.innerFunc) {
        param.func = btn.innerFunc
        param[setting.primaryKey] = primaryId
        formdata.forEach(_data => {
          param[_data.key] = _data.value
        })
        if (!param[setting.primaryKey]) {
          param[setting.primaryKey] = Utils.getguid()
        }
        _primaryId = param[setting.primaryKey]
      } else if (btn.sql && btn.sqlType === 'insert') { // 系统函数添加时,生成uuid
      if (btn.sql && btn.sqlType === 'insert') { // 系统函数添加时,生成uuid
        param.ID = Utils.getguid()
        param.LText = Utils.getSysDefaultSql(btn, setting, formdata, param, data, logcolumns) // 数据源
        let { LText, LText1, LText2 } = Utils.sPCInUpDeFormatOptions(param.LText)
        param.LText2 = LText2
        param.LText1 = LText1
        param.LText = LText
        param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000'
        param.secretkey = Utils.encrypt(param.LText, param.timestamp)
        param.LText = getSysDefaultSql(btn, setting, formdata, param, data, []) // 数据源
        param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
        param.secretkey = Utils.encrypt('', param.timestamp)
        param.LText = Utils.formatOptions(param.LText)
        _primaryId = param.ID
      } else if (btn.sql && btn.sqlType === 'insertOrUpdate') { // 系统函数添加或修改时
        param.ID = primaryId || Utils.getguid()
        param.LText = Utils.getSysDefaultSql(btn, setting, formdata, param, data, logcolumns) // 数据源
        let { LText, LText1, LText2 } = Utils.sPCInUpDeFormatOptions(param.LText)
        param.LText2 = LText2
        param.LText1 = LText1
        param.LText = LText
        param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000'
        param.secretkey = Utils.encrypt(param.LText, param.timestamp)
        param.LText = getSysDefaultSql(btn, setting, formdata, param, data, []) // 数据源
        param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
        param.secretkey = Utils.encrypt('', param.timestamp)
        param.LText = Utils.formatOptions(param.LText)
        _primaryId = param.ID
      } else if (btn.sql) {
        param.ID = primaryId
        param.LText = Utils.getSysDefaultSql(btn, setting, formdata, param, data, logcolumns) // 数据源
        let { LText, LText1, LText2 } = Utils.sPCInUpDeFormatOptions(param.LText)
        param.LText2 = LText2
        param.LText1 = LText1
        param.LText = LText
        param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000'
        param.secretkey = Utils.encrypt(param.LText, param.timestamp)
        param.LText = getSysDefaultSql(btn, setting, formdata, param, data, []) // 数据源
        param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
        param.secretkey = Utils.encrypt('', param.timestamp)
        param.LText = Utils.formatOptions(param.LText)
      }
      if (this.props.menuType === 'HS' && param.timestamp) { // 云端验证
@@ -312,14 +304,14 @@
      notification.error({
        top: 92,
        message: res.message || res.ErrMesg,
        duration: btn.errorTime || 10
        duration: 10
      })
    } else if (res.ErrCode === 'F') {
      notification.error({
        className: 'notification-custom-error',
        top: 92,
        message: res.message || res.ErrMesg,
        duration: btn.errorTime || 10
        duration: 10
      })
    } else if (res.ErrCode === 'NM') {
      message.error(res.message || res.ErrMesg)