king
2023-10-27 6555f1f63a5389d49fbb98b5b2dca16a61239c64
src/tabviews/custom/components/table/edit-table/normalTable/index.jsx
@@ -15,6 +15,7 @@
const { Paragraph } = Typography
const MkIcon = asyncComponent(() => import('@/components/mk-icon'))
const MKPopSelect = asyncComponent(() => import('./mkPopSelect'))
const CardCellComponent = asyncComponent(() => import('@/tabviews/custom/components/card/cardcellList'))
class CusSwitch extends Component {
@@ -370,6 +371,10 @@
    }, 10)
  }
  onPopChange = () => {
  }
  render() {
    let { col, config, record, style, className, ...resProps } = this.props
    const { editing, value, err } = this.state
@@ -445,6 +450,12 @@
            return (<td onClick={(e) => e.stopPropagation()} className="editing_table_cell">
              <CusSwitch config={col} defaultValue={_value} autoFocus={true} onChange={this.onSwitchChange} onBlur={this.switchBlur}/>
            </td>)
          } else if (col.editType === 'popSelect') {
            let _value = record[col.field] !== undefined ? record[col.field] : ''
            return (<td onClick={(e) => e.stopPropagation()} className="editing_table_cell">
              <MKPopSelect defaultValue={_value} config={col} BID={record.$$BID} ID={record.$$uuid} onChange={this.onPopChange} onSubmit={() => {}}/>
            </td>)
          } else {
            let _value = record[col.field] !== undefined ? record[col.field] : ''
@@ -747,10 +758,6 @@
    if (value !== record[col.field]) {
      MKEmitter.emit('changeRecord', col.tableId, {...record, [col.field]: val})
    }
    // if (col.blur) {
    //   MKEmitter.emit('subLine', col, record)
    // }
  }
  onSwitchChange = (val, label) => {
@@ -837,6 +844,10 @@
    MKEmitter.emit('changeRecord', col.tableId, {...record, [col.field]: _val})
  }
  onPopChange = () => {
  }
  render() {
    let { col, config, record, style, className, ...resProps } = this.props
    const { err } = this.state
@@ -866,6 +877,10 @@
        } else if (col.editType === 'date') {
          children = (
            <CusDatePicker config={col} value={record[col.field] || null} onChange={this.onDateChange} blur={() => {}}/>
          )
        } else if (col.editType === 'popSelect') {
          children = (
            <MKPopSelect config={col} defaultValue={record[col.field] || ''} BID={record.$$BID} ID={record.$$uuid} onChange={this.onPopChange} onSubmit={() => {}}/>
          )
        } else {
          children = (<>
@@ -1384,7 +1399,7 @@
    if (menuid !== MenuID) return
    if (setting.commit !== 'all' && setting.standard !== 'change') {
    if (setting.commit !== 'all' && setting.commit !== 'blur' && setting.standard !== 'change') {
      if (type !== 'line') {
        data.forEach(item => {
          let value = ''
@@ -1774,6 +1789,8 @@
      this.setState({edData: _data}, () => {
        if (setting.commit === 'simple') {
          this.submit()
        } else if (setting.commit === 'blur') {
          this.submit(record)
        }
      })
    }
@@ -1785,7 +1802,9 @@
    if (id !== tableId) return
    if (!record.$sign) {
    if (setting.commit === 'blur') {
    } else if (!record.$sign) {
      record.$origin = false
      record.$lock = true
      delete record.$forbid
@@ -1816,7 +1835,11 @@
      if (setting.tableType && setting.hasAction && this.state.selectedRowKeys.includes(record.$$uuid)) {
        this.selectdata(this.state.selectedRowKeys)
      }
      if (setting.commit === 'blur') {
        this.submit(record)
      }
    })
  }
  addRecord = (id, record) => {
@@ -1974,7 +1997,71 @@
    return data
  }
  submit = () => {
  checkLineData = (item) => {
    const { forms } = this.state
    let record = fromJS(item).toJS()
    let err = ''
    forms.forEach(col => {
      if (col.editable !== 'true' || record.$deleted) {
        if (col.type === 'number') {
          record[col.field] = +record[col.field]
          if (isNaN(record[col.field])) {
            record[col.field] = 0
          }
        } else {
          record[col.field] = record[col.field] !== undefined ? (record[col.field] + '') : ''
        }
        return
      }
      if (col.type === 'text') {
        let val = record[col.field] !== undefined ? (record[col.field] + '') : ''
        if (col.required === 'true' && !val) {
          err = `${col.label}不可为空`
        } else if (col.datatype === 'datetime' && !val) {
          val = '1949-10-01'
        }
        record[col.field] = val
      } else if (col.type === 'number') {
        let val = record[col.field]
        if (col.noValue === 'hide' && !val) {
          val = 0
        } else if (!val && val !== 0) {
          err = `${col.label}不可为空`
          return
        }
        val = +val
        if (isNaN(val)) {
          err = `${col.label}数据格式错误`
          return
        }
        val = +val.toFixed(col.decimal || 0)
        if (typeof(col.max) === 'number' && val > col.max) {
          err = `${col.label}不可大于${col.max}`
        } else if (typeof(col.min) === 'number' && val < col.min) {
          err = `${col.label}不可小于${col.min}`
        }
        record[col.field] = val
      }
    })
    if (err) {
      notification.warning({
        top: 92,
        message: err,
        duration: 5
      })
      return null
    }
    return [record]
  }
  submit = (record) => {
    const { submit, BID, setting } = this.props
    const { forms } = this.state
@@ -1990,7 +2077,14 @@
      return
    }
    let data = this.checkData()
    if (setting.commit === 'blur' && !record) return
    let data = null
    if (setting.commit === 'blur') {
      data = this.checkLineData(record)
    } else {
      data = this.checkData()
    }
    if (!data) return