king
2023-06-14 08cce3334a2dc81d690b518136b0aaea64e48b0b
src/tabviews/zshare/actionList/printbutton/index.jsx
@@ -94,7 +94,7 @@
      if (data.length > 0) {
        data.forEach(item => {
          let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
          if (btn.controlVals.includes(s)) {
          if (btn.controlVals.includes(s) || item.$lock) {
            disabled = true
          }
        })
@@ -1183,6 +1183,7 @@
  printOuterLoopRequest = (params, btn, _list, _resolve) => {
    let param = params.shift()
    let _outParam = null
    let ver_token = false
    new Promise(resolve => {
      // 内部请求
@@ -1240,6 +1241,7 @@
          } else {
            res.$token = btn.exInterface || ''
          }
          ver_token = true
        } else {
          if (window.GLOB.systemType === 'production' && btn.proInterface) {
            res.rduri = btn.proInterface
@@ -1262,7 +1264,10 @@
    }).then(response => {
      if (!response) return
      if (btn.callbackFunc) {
      if (ver_token && response.ErrMesg === 'token_error') {
        this.execError(response)
        _resolve({next: false, list: []})
      } else if (btn.callbackFunc) {
        // 存在回调函数时,调用
        delete response.message
        delete response.status
@@ -1967,7 +1972,7 @@
  actionSettingError = () => {
    notification.warning({
      top: 92,
      message: this.state.dict['main.action.settingerror'],
      message: '按钮设置错误!',
      duration: 5
    })
  }
@@ -2115,62 +2120,98 @@
    
    btnconfig.fields.forEach(item => {
      if (!item.field) return
      let _readin = item.readin !== 'false'
      let _initval = item.initval
      if (item.type === 'linkMain' || item.type === 'funcvar') {
        _readin = false
      }
      if (item.type === 'linkMain' && BData.hasOwnProperty(item.field.toLowerCase())) {
        _initval = BData[item.field.toLowerCase()]
      } else if (_readin && _data.hasOwnProperty(item.field.toLowerCase())) {
        _initval = _data[item.field.toLowerCase()]
      } else if (item.type === 'date' && _initval) {
        _initval = moment().subtract(_initval, 'days').format('YYYY-MM-DD')
      } else if (item.type === 'datemonth' && _initval) {
        _initval = moment().subtract(_initval, 'month').format('YYYY-MM')
      } else if (item.type === 'datetime' && _initval) {
        _initval = moment().subtract(_initval, 'days').format('YYYY-MM-DD HH:mm:ss')
      }
      let _fieldlen = item.fieldlength || 50
      if (item.type === 'textarea' || item.type === 'fileupload' || item.type === 'multiselect') {
        _fieldlen = item.fieldlength || 512
      } else if (item.type === 'number') {
        _fieldlen = item.decimal ? item.decimal : 0
      } else if (item.type === 'rate') {
        item.rateCount = item.rateCount || 5
        let allowHalf = item.allowHalf === 'true'
        if (allowHalf) {
          _initval = parseFloat(_initval)
          if (_initval % 0.5 !== 0) {
            _initval = parseInt(_initval)
          }
        } else {
          _initval = parseInt(_initval)
        }
        if (isNaN(_initval) || _initval < 0) {
          _initval = 0
        } else if (_initval > item.rateCount) {
          _initval = item.rateCount
        }
      }
      if (_initval === undefined) {
        _initval = ''
      }
      result.push({
      let _item = {
        key: item.field,
        readonly: item.readonly === 'true',
        readin: item.readin !== 'false' && item.readin !== 'top',
        fieldlen: _fieldlen,
        fieldlen: item.fieldlength || 50,
        writein: item.writein !== 'false',
        type: item.type,
        value: _initval
      })
        value: item.initval,
        isconst: item.constant === 'true'
      }
      let key = item.field.toLowerCase()
      let _readin = item.readin !== 'false'
      if (_item.type === 'date') { // 时间兼容
        _item.precision = item.precision || 'day'
      } else if (_item.type === 'datetime') {
        _item.type = 'date'
        _item.precision = 'second'
      } else if (['funcvar', 'linkMain'].includes(_item.type)) {
        _readin = false
        _item.readin = false
      } else if (['select', 'link', 'radio'].includes(_item.type)) { // 选中第一项
        if (/^\s*\$first\s*$/.test(_item.value)) {
          _item.value = ''
          if (item.resourceType === '0' && item.options[0] && item.options[0].Value) {
            _item.value = item.options[0].Value
          }
        }
      }
      if (_item.type === 'funcvar') {
        _item.value = ''
      } else if (_item.type === 'linkMain' && BData.hasOwnProperty(key)) {
        _item.value = BData[key]
      } else if (_readin && _data.hasOwnProperty(key)) {
        _item.value = _data[key]
      } else if (_item.type === 'date' && _item.value) {
        _item.value = moment().subtract(_item.value, 'days').format(_item.precision === 'day' ? 'YYYY-MM-DD' : 'YYYY-MM-DD HH:mm:ss')
      } else if (_item.type === 'datemonth' && _item.value) {
        _item.value = moment().subtract(_item.value, 'month').format('YYYY-MM')
      }
      _item.value = _item.value === undefined ? '' : _item.value
      if (_item.type === 'number' || item.declare === 'decimal') {
        _item.type = 'number'
        _item.fieldlen = item.decimal || 0
      } else if (['text', 'textarea', 'linkMain'].includes(_item.type)) {
        _item.value = _item.value + ''
        _item.value = _item.value.replace(/\t*|\v*/g, '')       // 去除制表符
        if (item.interception !== 'false') {                    // 去除首尾空格
          _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, (this.props.BID || ''))
        }
        if (_item.type === 'text' && item.lenControl && item.lenControl !== 'limit') {
          if (item.lenControl === 'left') {
            _item.value = _item.value.substr(0, item.fieldlength)
          } else {
            _item.value = _item.value.slice(-item.fieldlength)
          }
        }
      } else if (_item.type === 'datemonth') {
        _item.type = 'text'
      } else  if (_item.type === 'date') {
        _item.type = item.declareType === 'nvarchar(50)' ? 'text' : 'date'
      } else if (_item.type === 'switch' || _item.type === 'check') {
        if (_readin) {
          _item.value = _item.value === item.openVal ? item.openVal : item.closeVal
        } else {
          if (item.initval === true) {
            _item.value = item.openVal
          } else {
            _item.value = item.closeVal
          }
        }
      } else if (_item.type === 'rate') {
        let count = item.rateCount || 5
        _item.value = parseInt(_item.value)
        if (isNaN(_item.value) || _item.value < 0) {
          _item.value = 0
        } else if (_item.value > count) {
          _item.value = count
        }
      }
      result.push(_item)
    })
    if (btnconfig.setting.display === 'exec') {