king
2024-05-21 f0bf8c399c354c22227f8f1a76ed806098db59c0
src/tabviews/custom/components/table/edit-table/normalTable/index.jsx
@@ -562,6 +562,10 @@
      if (config.noValue === 'hide' && !value) {
        value = 0
      }
      if (config.required === 'true' && !value) {
        err = `${config.label}不可为${config.noValue === 'hide' ? '空' : '0'}`
      } else {
        if (typeof(config.max) === 'number' && value > config.max) {
          err = config.label + '最大为' + config.max
@@ -727,7 +731,7 @@
  }
  render() {
    let { col, config, record, style, className, ...resProps } = this.props
    let { col, record, style, className, ...resProps } = this.props
    const { editing } = this.state
    if (!col) return (<td {...resProps} className={className} style={style}/>)
@@ -747,10 +751,10 @@
      if (col.editType === 'select' && col.options.length > 0) {
        content = col.map.get(content) || content
      } else if (col.editType === 'switch') {
        if (content === config.openVal) {
          content = config.openText
        } else if (content === config.closeVal) {
          content = config.closeText
        if (content === col.openVal) {
          content = col.openText
        } else if (content === col.closeVal) {
          content = col.closeText
        }
      } else if (col.editType === 'popSelect') {
        if (col.showField) {
@@ -866,6 +870,7 @@
        }
  
        if (col.format === 'thdSeparator') {
          content = content + ''
          content = content.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,')
        }
  
@@ -1009,7 +1014,7 @@
      }
      children = (
        <CardCellComponent data={record} cards={config} elements={col.elements}/>
        <CardCellComponent data={record} cards={col.config} elements={col.elements}/>
      )
    }
@@ -1040,7 +1045,7 @@
  }
  render() {
    let { col, config, record, style, className, ...resProps } = this.props
    let { col, record, style, className, ...resProps } = this.props
    if (!col) return (<td {...resProps} className={className} style={style}/>)
@@ -1091,10 +1096,10 @@
        if (col.editType === 'select' && col.options.length > 0) {
          content = col.map.get(content) || content
        } else if (col.editType === 'switch') {
          if (content === config.openVal) {
            content = config.openText
          } else if (content === config.closeVal) {
            content = config.closeText
          if (content === col.openVal) {
            content = col.openText
          } else if (content === col.closeVal) {
            content = col.closeText
          }
        } else if (col.editType === 'popSelect') {
          if (col.showField) {
@@ -1190,6 +1195,7 @@
          }
    
          if (col.format === 'thdSeparator') {
            content = content + ''
            content = content.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,')
          }
    
@@ -1322,7 +1328,7 @@
      }
      children = (
        <CardCellComponent data={record} cards={config} elements={col.elements}/>
        <CardCellComponent data={record} cards={col.config} elements={col.elements}/>
      )
    }
@@ -1383,7 +1389,6 @@
    let deForms = []
    let _forms = {}
    let hasBid = false
    let index = 0
    let checkForms = []
    let allForms = []
@@ -1396,25 +1401,12 @@
          cell.children = getColumns(item.subcols, sk || item.uuid)
        } else {
          if (item.editable === 'true') {
            item.$sort = index
            index++
            _forms[item.field] = item
            allForms.push({uuid: sk || item.uuid, field: item.field})
            checkForms.push(item.field)
            if (item.ctrlField) {
              item.ctrlValue = item.ctrlValue.split(',')
            }
            if (item.type === 'number' && item.clearField) {
              fields.forEach(cell => {
                if (cell.field === item.clearField) {
                  item.clearName = cell.label
                }
              })
            } else if (item.type === 'text' && item.editType === 'select') {
              item.map = new Map()
            if (item.type === 'text' && item.editType === 'select') {
              if (item.resourceType === '1') {
                let _option = Utils.getSelectQueryOptions(item)
  
@@ -1426,20 +1418,6 @@
                item.arr_field = _option.field
        
                deForms.push(item)
              } else {
                item.options.forEach(cell => {
                  item.map.set(cell.value, cell.label)
                })
              }
            } else if (item.type === 'text' && item.editType === 'date') {
              item.format = 'YYYY-MM-DD'
              if (item.precision === 'hour') {
                item.format = 'YYYY-MM-DD HH'
              } else if (item.precision === 'minute') {
                item.format = 'YYYY-MM-DD HH:mm'
              } else if (item.precision === 'second') {
                item.format = 'YYYY-MM-DD HH:mm:ss'
              }
            }
          }
@@ -1459,8 +1437,7 @@
            $key: item.uuid,
            onCell: record => ({
              record,
              col: item,
              config: item.type === 'custom' ? {setting, columns: fields} : null,
              col: item
            })
          }
        }
@@ -1537,11 +1514,44 @@
  }
  UNSAFE_componentWillReceiveProps(nextProps) {
    const { BID } = this.props
    const { BID, parCtrl } = this.props
    const { deForms } = this.state
    if (deForms && nextProps.BID !== BID) {
      this.improveActionForm(deForms, nextProps.BID)
    }
    if (parCtrl && !is(fromJS(this.props.columns), fromJS(nextProps.columns))) {
      let getColumns = (cols, sk) => {
        return cols.map(item => {
          let cell = null
          if (item.type === 'colspan') {
            cell = { title: item.label, align: item.Align, $key: item.uuid }
            cell.children = getColumns(item.subcols, sk || item.uuid)
          } else {
            cell = {
              align: item.Align,
              dataIndex: item.uuid,
              title: item.editable === 'true' ? <span>{item.label}<EditOutlined className="system-color mk-edit-sign"/></span> : item.label,
              sorter: (item.field || item.sortField) && item.IsSort === 'true',
              width: item.Width || 120,
              $key: item.uuid,
              onCell: record => ({
                record,
                col: item
              })
            }
          }
          return cell
        })
      }
      let _columns = getColumns(nextProps.columns)
      this.setState({
        columns: _columns
      })
    }
  }
@@ -1656,7 +1666,9 @@
      } else if (col.type === 'number') {
        let val = record[col.field]
        if (col.noValue === 'hide' && !val) {
        if (col.required === 'true' && !val) {
          err = `${col.label}不可为${col.noValue === 'hide' ? '空' : '0'}`
        } else if (col.noValue === 'hide' && !val) {
          if (col.clearField && checkForms.includes(col.clearField) && !record[col.clearField]) {
            err = `请填写 ${col.label} 或 ${col.clearName}`
          }
@@ -1748,7 +1760,10 @@
  transferData = (data, type) => {
    const { edData, tableId } = this.state
    if (type === 'delete') {
    if (type === 'clear') {
      this.setState({edData: [], midData: []})
      return
    } else if (type === 'delete') {
    } else if (type === 'line') {
      let value = ''
@@ -2270,7 +2285,9 @@
          item[col.field] = val
        } else if (col.type === 'number') {
          let val = item[col.field]
          if (col.noValue === 'hide' && !val) {
          if (col.required === 'true' && !val) {
            err = `${col.label}不可为${col.noValue === 'hide' ? '空' : '0'}`
          } else if (col.noValue === 'hide' && !val) {
            if (col.clearField && checkForms.includes(col.clearField) && !item[col.clearField]) {
              let msg = `请填写 ${col.label} 或 ${col.clearName}`
              if (!line.includes(msg)) {
@@ -2652,7 +2669,7 @@
        {setting.hasSubmit && edData.length > 0 ? <div className="edit-custom-table-btn-wrap" style={submit.wrapStyle}>
          <Button style={submit.style} onClick={() => setTimeout(() => {this.submit()}, 10)} loading={loading} className="submit-table" type="link">提交</Button>
        </div> : null}
        <div className={`edit-custom-table ${setting.tableHeader || ''} ${height ? 'fixed-height' : ''} ${setting.mode || ''} table-vertical-${setting.vertical || ''} mk-edit-${setting.editType || 'simple'}`} style={style}>
        <div className={`edit-custom-table ${setting.tableHeader || ''} ${setting.parity === 'true' ? 'mk-parity' : ''} ${height ? 'fixed-height' : ''} ${setting.mode || ''} table-vertical-${setting.vertical || ''} mk-edit-${setting.editType || 'simple'}`} style={style}>
          <Table
            rowKey="$$uuid"
            components={components}