king
2023-10-04 ae46c8e640ed64abd7605b289554377e0cdc0cb7
src/tabviews/zshare/actionList/normalbutton/index.jsx
@@ -451,12 +451,6 @@
          }
        }
        if (sessionStorage.getItem('dataM') === 'true') { // 数据权限
          param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'')
        } else {
          param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
        }
        param.exec_type = 'y' // 后台解码
        param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
        param.secretkey = Utils.encrypt('', param.timestamp)
@@ -492,12 +486,6 @@
              param.key_back_type = 'Y'
            }
          }
          if (sessionStorage.getItem('dataM') === 'true') { // 数据权限
            param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'')
          } else {
            param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
          }
          param.exec_type = 'y' // 后台解码
          param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
@@ -523,12 +511,6 @@
            if (btn.output) {
              param.key_back_type = 'Y'
            }
          }
          if (sessionStorage.getItem('dataM') === 'true') { // 数据权限
            param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'')
          } else {
            param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
          }
          param.exec_type = 'y' // 后台解码
@@ -596,12 +578,6 @@
              param.key_back_type = 'Y'
            }
          }
          if (sessionStorage.getItem('dataM') === 'true') { // 数据权限
            param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'')
          } else {
            param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
          }
          param.exec_type = 'y' // 后台解码
          param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
@@ -642,12 +618,6 @@
                param.key_back_type = 'Y'
              }
            }
            if (sessionStorage.getItem('dataM') === 'true') { // 数据权限
              param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'')
            } else {
              param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
            }
            param.exec_type = 'y' // 后台解码
            param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
@@ -673,12 +643,6 @@
              if (btn.output) {
                param.key_back_type = 'Y'
              }
            }
            if (sessionStorage.getItem('dataM') === 'true') { // 数据权限
              param.LText = param.LText.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'')
            } else {
              param.LText = param.LText.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
            }
            param.exec_type = 'y' // 后台解码
@@ -769,7 +733,7 @@
      }
      if (retmsg) {
        param.$callbacksql = this.getSysDeclareSql(btn, formdata, data[0], columns, primaryId, this.props.BID)
        param.$callbacksql = this.getSysDeclareSql(btn, formdata, data[0], columns, this.props.BID)
      }
      _params.push(param)
@@ -819,7 +783,7 @@
        }
        if (retmsg) {
          param.$callbacksql = this.getSysDeclareSql(btn, formdata, cell, columns, primaryId, this.props.BID)
          param.$callbacksql = this.getSysDeclareSql(btn, formdata, cell, columns, this.props.BID)
        }
        return param
@@ -832,7 +796,7 @@
  /**
   * @description 获取回调脚本的字段定义
   */
  getSysDeclareSql = (btn, formdata, data, columns, primaryId, BID = '') => {
  getSysDeclareSql = (btn, formdata, data, columns, BID = '') => {
    let datavars = {}                 // 声明的变量,表单及显示列
    // 需要声明的变量集
    let _vars = ['tbid', 'errorcode', 'retmsg', 'billcode', 'bvoucher', 'fibvoucherdate', 'fiyear', 'username', 'fullname', 'modulardetailcode', 'roleid', 'mk_departmentcode', 'mk_organization', 'mk_user_type', 'mk_nation', 'mk_province', 'mk_city', 'mk_district', 'mk_address', 'mk_deleted', 'bid']
@@ -999,20 +963,6 @@
        /* 显示列变量赋值 */
        select ${_initColfields.join(',')}
        `
    }
    _sql = _sql.replace(/@ID@/ig, `'${primaryId || ''}'`)
    _sql = _sql.replace(/@BID@/ig, `'${BID}'`)
    _sql = _sql.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
    _sql = _sql.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
    _sql = _sql.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
    _sql = _sql.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
    _sql = _sql.replace(/@typename@/ig, `'admin'`)
    if (sessionStorage.getItem('dataM') === 'true') { // 数据权限
      _sql = _sql.replace(/@datam@/ig, '\'Y\'')
    } else {
      _sql = _sql.replace(/@datam@/ig, '\'\'')
    }
    return _sql
@@ -1195,6 +1145,8 @@
   * @description 自定义请求循环执行
   */
  customLoopRequest = (params, _resolve) => {
    const { setting, btn } = this.props
    let param = params.shift()
    this.setState({
@@ -1206,6 +1158,10 @@
      ID: param.ID || '',
      callbacksql: param.$callbacksql || '',
      mk_api_key: ''
    }
    if (!record.ID && btn.Ot !== 'notRequired' && param[setting.primaryKey]) {
      record.ID = param[setting.primaryKey]
    }
    delete param.$callbacksql
@@ -1486,7 +1442,22 @@
  getCallBackSql = (result, record) => {
    const { btn } = this.props
    let lines = []
    let pre = btn.callbackType === 'script' ? '@' : ''
    let pre = ''
    let tables = []
    if (btn.callbackType === 'script') { // 使用自定义脚本
      pre = '@'
      btn.verify.cbScripts.forEach(script => {
        if (script.status === 'false') return
        if (/\s#[a-z0-9_]+(\s|\()/ig.test(script.sql)) {
          tables.push(...script.sql.match(/\s#[a-z0-9_]+(\s|\()/ig))
        }
      })
      tables = tables.map(tb => tb.replace(/\s|\(/g, ''))
    }
    let errSql = ''
    if (result.$ErrCode === 'E') {
@@ -1503,6 +1474,11 @@
      let vals = []
      let subObjs = []
      let id = Utils.getuuid()
      let tbName = pre + tb
      if (tables.includes('#' + tb)) {
        tbName = '#' + tb
      }
      delete obj.$$key
@@ -1535,7 +1511,7 @@
      lines.push({
        table: md5(tb + keys),
        insert: `Insert into ${pre}${tb} (${keys},[mk_level],[mk_id],[mk_bid])`,
        insert: `Insert into ${tbName} (${keys},[mk_level],[mk_id],[mk_bid])`,
        select: `Select ${vals.join(',')},'${level}','${id}','${bid}'`
      })
@@ -1567,7 +1543,7 @@
      param.func = 'sPC_TableData_InUpDe'
      
      if (record.BID) {
        param.BID = this.props.BID
        param.BID = record.BID
      }
      if (record.ID) {
        param.ID = record.ID
@@ -1597,6 +1573,8 @@
      if (btn.output) {
        _backCustomScript += `
          aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg,${btn.output} as mk_b_id`
        param.key_back_type = 'Y'
      } else {
        _backCustomScript += `
          aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg`
@@ -1612,7 +1590,7 @@
      sql = sql + _backCustomScript
      sql = sql.replace(/@ID@/ig, `'${record.ID || ''}'`)
      sql = sql.replace(/@BID@/ig, `'${this.props.BID || ''}'`)
      sql = sql.replace(/@BID@/ig, `'${record.BID || ''}'`)
      sql = sql.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
      sql = sql.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
      sql = sql.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
@@ -1626,6 +1604,7 @@
      }
      if (window.GLOB.debugger === true) {
        console.info('%c' + btn.logLabel + '(回调)', 'color: blue')
        console.info(sql.replace(/\n\s{8}/ig, '\n'))
      }
@@ -1771,7 +1750,7 @@
   * @description 外部请求循环执行
   */
  outerLoopRequest = (params, _resolve) => {
    if (!params && params.length === 0) return
    const { setting, btn } = this.props
    let param = params.shift()
@@ -1783,6 +1762,10 @@
      BID: param.BID || '',
      ID: param.ID || '',
      callbacksql: param.$callbacksql || ''
    }
    if (!record.ID && btn.Ot !== 'notRequired' && param[setting.primaryKey]) {
      record.ID = param[setting.primaryKey]
    }
    delete param.$callbacksql
@@ -1855,6 +1838,18 @@
        result.rduri = btn.proInterface
      } else {
        result.rduri = btn.interface
      }
      if (/function:/i.test(result.rduri)) {
        let rduri = result.rduri
        try {
          rduri = rduri.replace(/function:/i, '')
          // eslint-disable-next-line
          let func = new Function(rduri)
          result.rduri = func()
        } catch (e) {
          console.warn(e)
        }
      }
      let host = window.GLOB.baseurl.replace(/http(s):\/\//, '')
@@ -2887,7 +2882,19 @@
        _item.value = _item.value.replace(/\t+|\v+/g, '')       // 去除制表符
        if (item.interception !== 'false') {                    // 去除首尾空格
          _item.value = _item.value.replace(/(^\s*|\s*$)/g, '')
          if (item.interception === 'func') {
            try {
              // eslint-disable-next-line
              let func = new Function('value', 'data', item.func)
              _item.value = func(_item.value, _data)
              _item.value = _item.value !== undefined ? _item.value : ''
            } catch (e) {
              console.warn(e)
              _item.value = ''
            }
          } else {
            _item.value = _item.value.replace(/(^\s*|\s*$)/g, '')
          }
        }
        if (_item.type === 'text' && /@appkey@|@SessionUid@|@bid@/ig.test(_item.value)) { // 特殊字段替换
          _item.value = _item.value.replace(/^(\s*)@appkey@(\s*)$/ig, window.GLOB.appkey).replace(/^(\s*)@SessionUid@(\s*)$/ig, (localStorage.getItem('SessionUid') || '')).replace(/^(\s*)@bid@(\s*)$/ig, (BID || ''))