king
2023-11-03 88f178df654b08411470a7eab75b3d5fed8817c0
src/tabviews/custom/components/table/edit-table/index.jsx
@@ -46,10 +46,10 @@
  UNSAFE_componentWillMount () {
    let _config = fromJS(this.props.config).toJS()
    let setting = {..._config.setting, ..._config.wrap}
    setting.tableId = Utils.getuuid()
    let BID = ''
    let BData = ''
    setting.tableId = Utils.getuuid().substr(-6).toUpperCase()
    if (_config.setting.supModule) {
      BData = window.GLOB.CacheData.get(_config.setting.supModule)
@@ -76,9 +76,12 @@
    })
    let _columns = []
    setting.initId = ''
    let triMap = new Map()
    let initId = ''
    setting.hasSubmit = false
    if (setting.commit === 'change' || setting.commit === 'simple') {
      setting.commit = 'change'
    }
    let getColumns = (cols) => {
      return cols.filter(item => {
@@ -115,14 +118,25 @@
          }
          if (item.editable === 'true') {
            setting.hasSubmit = true
            if (!setting.initId) {
              setting.initId = item.uuid
            setting.hasSubmit = setting.commit !== 'change'
            item.$ctrl = setting.commit === 'change'
            if (!initId) {
              initId = item.uuid
            }
            if (item.type === 'text' && (item.editType === 'switch' || item.editType === 'select')) {
              triMap.set(item.uuid, item.editType)
            if (item.enter === '$sub') {
              item.enter = '$noAct'
            } else if (item.enter === '$next') {
              item.enter = '$next_' + initId
            }
            if (item.type === 'text' && item.editType === 'select') {
            if (item.linkSubField && item.linkSubField.length === 0) {
              item.linkSubField = null
            }
            if (item.type === 'number') {
            } else if (item.editType === 'select') {
              item.options = item.options || []
              item.options = item.options.filter(cell => {
                cell.value = cell.Value
@@ -130,6 +144,16 @@
        
                return !cell.Hide
              })
            } else if (item.editType === 'popSelect') {
              if (item.pops) {
                item.pops.forEach(cell => {
                  cell.linkSubField = item.linkSubField
                  this.resetPop(cell)
                  cell.tabName = cell.initval.replace(/^tab:/, '')
                })
              } else {
                this.resetPop(item)
              }
            }
          }
        }
@@ -140,25 +164,7 @@
    _columns = getColumns(_config.cols)
    if (triMap.size > 0) {
      let setColumns = (cols) => {
        return cols.map(item => {
          if (item.type === 'colspan') {
            item.subcols = setColumns(item.subcols)
          } else if (item.editable === 'true' && triMap.has(item.enter)) {
            item.triType = 'click'
          }
          return item
        })
      }
      _columns = setColumns(_columns)
      if (setting.initId && triMap.has(setting.initId)) {
        setting.triType = 'click'
      }
    }
    setting.initId = initId
    if (!_config.lineMarks || _config.lineMarks.length === 0) {
      _config.lineMarks = null
@@ -174,10 +180,6 @@
      }
    } else {
      _config.colsCtrls = null
    }
    if (setting.commit === 'blur') {
      setting.hasSubmit = false
    }
    this.setState({
@@ -198,6 +200,67 @@
        }, _config.setting.delay || 0)
      }
    })
  }
  resetPop = (config) => {
    let arrfield = config.columns.map(f => f.field)
    if (config.linkSubField && config.linkSubField.length > 0) {
      config.linkSubField.forEach(n => {
        if (!arrfield.includes(n)) {
          arrfield.push(n)
        }
      })
    }
    if (sessionStorage.getItem('dataM') === 'true') { // 数据权限
      config.dataSource = config.dataSource.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'')
    } else {
      config.dataSource = config.dataSource.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'')
    }
    config.dataSource = config.dataSource.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
    config.dataSource = config.dataSource.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
    config.dataSource = config.dataSource.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
    config.dataSource = config.dataSource.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
    if (/\s/.test(config.dataSource)) { // 拼接别名
      config.dataSource = '(' + config.dataSource + ') tb'
    }
    let labels = {}
    config.cols = []
    config.columns.forEach(col => {
      labels[col.field] = col.label
      if (col.Hide === 'true') return
      config.cols.push({
        dataIndex: col.field,
        title: col.label,
        sorter: col.IsSort === 'true',
        width: col.Width || 120
      })
    })
    let placeholder = ''
    if (!config.searchKey) {
      config.onload = 'true'
    } else {
      placeholder = []
      config.searchKey.split(',').forEach(key => {
        if (!labels[key]) {
          placeholder = ''
        } else if (placeholder) {
          placeholder.push(labels[key])
        }
      })
      placeholder = placeholder ? placeholder.join('、') : ''
    }
    config.placeholder = placeholder
    config.arr_field = arrfield.join(',')
  }
  /**
@@ -287,7 +350,7 @@
        loading: false
      })
      MKEmitter.emit('transferData', config.uuid, data)
      MKEmitter.emit('transferData' + setting.tableId, data)
      if (result.message) {
        if (result.ErrCode === 'Y') {
@@ -395,7 +458,7 @@
        return item
      })
      MKEmitter.emit('transferData', config.uuid, _data, 'line')
      MKEmitter.emit('transferData' + setting.tableId, _data, 'line')
      MKEmitter.emit('resetSelectLine', config.uuid, _data.$$uuid, _data)
      this.setState({