king
2021-10-08 24bba05db141f358bf1a8bb7213a2432c9de355e
src/menu/components/table/edit-table/columns/editColumn/index.jsx
@@ -9,7 +9,7 @@
const columnTypeOptions = {
  text: ['label', 'field', 'type', 'Align', 'Hide', 'IsSort', 'Width', 'prefix', 'postfix', 'textFormat', 'editable', 'blacklist'],
  number: ['label', 'field', 'type', 'Align', 'Hide', 'IsSort', 'Width', 'decimal', 'format', 'prefix', 'postfix', 'editable', 'blacklist'],
  number: ['label', 'field', 'type', 'Align', 'Hide', 'IsSort', 'Width', 'decimal', 'format', 'prefix', 'postfix', 'editable', 'sum', 'blacklist'],
  textarea: ['label', 'field', 'type', 'Align', 'Hide', 'Width', 'prefix', 'postfix', 'blacklist'],
  custom: ['label', 'type', 'Align', 'Hide', 'Width', 'blacklist'],
  action: ['label', 'type', 'Align', 'Width'],
@@ -21,6 +21,7 @@
    dict: PropTypes.object,     // 字典项
    visible: PropTypes.bool,
    column: PropTypes.object,
    columns: PropTypes.array,
    fields: PropTypes.array,
    submitCol: PropTypes.func,  // 提交事件
    cancelCol: PropTypes.func   // 取消时删除事件
@@ -38,8 +39,16 @@
  }
  editColumn = (column) => {
    let formlist = getColumnForm(column, this.props.fields)
    let formlist = getColumnForm(column, this.props.fields, this.props.columns)
    let _options = fromJS(columnTypeOptions[column.type]).toJS()
    if (column.editable === 'true') {
      if (column.type === 'text') {
        _options.push('required', 'initval', 'enter', 'footEnter')
      } else if (column.type === 'number') {
        _options.push('max', 'min', 'initval', 'enter', 'footEnter')
      }
    }
    this.setState({
      visible: true,
@@ -63,12 +72,24 @@
  }
  typeChange = (key, value, option) => {
    const { editable, type } = this.state
    if (key === 'type') {
      let _options = fromJS(columnTypeOptions[value]).toJS()
      if (editable === 'true') {
        if (value === 'text') {
          _options.push('required', 'initval', 'enter', 'footEnter')
        } else if (value === 'number') {
          _options.push('max', 'min', 'initval', 'enter', 'footEnter')
        }
      }
      this.setState({
        type: value,
        formlist: this.state.formlist.map(item => {
          if (item.key === 'editable') {
            item.initVal = editable
          }
          item.hidden = !_options.includes(item.key)
          return item
@@ -94,9 +115,20 @@
      if (values.type !== this.state.type) {
        let _options = fromJS(columnTypeOptions[values.type]).toJS()
        if (editable === 'true') {
          if (values.type === 'text') {
            _options.push('required', 'initval', 'enter', 'footEnter')
          } else if (values.type === 'number') {
            _options.push('max', 'min', 'initval', 'enter', 'footEnter')
          }
        }
        this.setState({
          type: values.type,
          formlist: this.state.formlist.map(item => {
            if (item.key === 'editable') {
              item.initVal = editable
            }
            item.hidden = !_options.includes(item.key)
            return item
@@ -110,7 +142,24 @@
    } else if (key === 'format' && value === 'percent') {
      this.props.form.setFieldsValue({postfix: '%'})
    } else if (key === 'editable') {
      let _options = fromJS(columnTypeOptions[type]).toJS()
      if (value === 'true') {
        if (type === 'text') {
          _options.push('required', 'initval', 'enter', 'footEnter')
        } else if (type === 'number') {
          _options.push('max', 'min', 'initval', 'enter', 'footEnter')
        }
      }
      this.setState({
        editable: value,
        formlist: this.state.formlist.map(item => {
          item.hidden = !_options.includes(item.key)
          return item
        })
      })
    }
  }