king
2023-03-22 afb39f8ab004b2607bb718edab02e99c7a010114
src/menu/components/table/edit-table/columns/editColumn/index.jsx
@@ -17,6 +17,7 @@
  number: ['label', 'field', 'type', 'Align', 'Hide', 'IsSort', 'Width', 'decimal', 'format', 'prefix', 'postfix', 'editable', 'initval', 'sum', 'blacklist'],
  textarea: ['label', 'field', 'type', 'Align', 'Hide', 'Width', 'prefix', 'initval', 'postfix', 'blacklist'],
  custom: ['label', 'type', 'Align', 'Hide', 'Width', 'blacklist'],
  colspan: ['label', 'type', 'Align', 'Hide', 'blacklist'],
  action: ['label', 'type', 'Align', 'Width'],
  formula: ['label', 'type', 'Align', 'Hide', 'Width', 'prefix', 'postfix', 'eval', 'formula', 'blacklist'],
  index: ['label', 'type', 'Align', 'Width']
@@ -24,7 +25,6 @@
class EdiTableColumn extends Component {
  static propTpyes = {
    dict: PropTypes.object,     // 字典项
    visible: PropTypes.bool,
    column: PropTypes.object,
    columns: PropTypes.array,
@@ -85,7 +85,12 @@
  }
  editColumn = (column) => {
    let formlist = getColumnForm(column, this.props.fields, this.props.columns)
    let fields = fromJS(this.props.fields).toJS().map(item => {
      item.text = `${item.field}(${item.label})`
      return item
    })
    let formlist = getColumnForm(column, fields, this.props.columns)
    this.column = fromJS(column).toJS()
    this.column.editType = this.column.editType || 'text'
@@ -127,12 +132,12 @@
          return item
        })
      }, () => {
        if (value === 'action') {
        if (value === 'action' || value === 'colspan') {
          this.props.form.setFieldsValue({Align: 'center'})
        }
      })
    } else if (key === 'field') {
      let values = {label: option.props.children}
      let values = {label: option.props.label || option.props.children}
      if (/Decimal|int/ig.test(option.props.datatype)) {
        let decimal = 0
        if (/Decimal/ig.test(option.props.datatype)) {
@@ -210,7 +215,11 @@
    let resource = this.props.form.getFieldValue('dataSource') || ''
    resource = `select '' as ${field},'全部' as ${text} union all \n${resource}`
    if (field === text) {
      resource = `select '' as ${field} union all \n${resource}`
    } else {
      resource = `select '' as ${field},'全部' as ${text} union all \n${resource}`
    }
    this.props.form.setFieldsValue({dataSource: resource})
  }
@@ -220,7 +229,6 @@
  }
  getFields() {
    const { dict } = this.props
    const { getFieldDecorator } = this.props.form
    const { formlist, transfield } = this.state
    const fields = []
@@ -239,7 +247,7 @@
      if (item.type === 'text') {
        rules = [
          { required: item.required, message: dict['form.required.input'] + item.label + '!' },
          { required: item.required, message: '请输入' + item.label + '!' },
          {
            max: formRule.input.max,
            message: formRule.input.message
@@ -249,7 +257,7 @@
        content = <Input placeholder="" autoComplete="off" onPressEnter={this.handleSubmit} />
      } else if (item.type === 'number') {
        rules = [
          { required: item.required, message: dict['form.required.input'] + item.label + '!' }
          { required: item.required, message: '请输入' + item.label + '!' }
        ]
        initVal = item.initVal
@@ -260,7 +268,7 @@
        }
      } else if (item.type === 'select') {
        rules = [
          { required: item.required, message: dict['form.required.select'] + item.label + '!' }
          { required: item.required, message: '请选择' + item.label + '!' }
        ]
        content = <Select
          showSearch
@@ -270,14 +278,14 @@
          getPopupContainer={() => document.getElementById('edit-table-column-winter')}
        >
          {item.options.map((option, i) =>
            <Select.Option key={i} datatype={option.datatype || ''} value={(option.value || option.field || option.MenuID)}>
            <Select.Option key={i} datatype={option.datatype || ''} label={option.label || ''} value={(option.value || option.field || option.MenuID)}>
              {(option.text || option.label || option.MenuName)}
            </Select.Option>
          )}
        </Select>
      } else if (item.type === 'radio') {
        rules = [
          { required: item.required, message: dict['form.required.select'] + item.label + '!' }
          { required: item.required, message: '请选择' + item.label + '!' }
        ]
        initVal = item.initVal
@@ -299,13 +307,13 @@
        span = 24
        className = 'text-area'
        rules = [
          { required: item.required, message: dict['form.required.input'] + item.label + '!' }
          { required: item.required, message: '请输入' + item.label + '!' }
        ]
        content = <TextArea rows={item.rows || 2}/>
      } else if (item.type === 'codemirror') {
        rules = [
          { required: item.required, message: dict['form.required.input'] + item.label + '!' }
          { required: item.required, message: '请输入' + item.label + '!' }
        ]
        span = 24
        className = 'text-area'
@@ -342,21 +350,18 @@
  }
  handleSubmit = () => {
    const { columns, column } = this.props
    // const { columns } = this.props
    // 表单提交时检查输入值是否正确
    this.props.form.validateFieldsAndScroll((err, values) => {
      if (!err) {
        values.uuid = column.uuid
        values.marks = column.marks || []
        if (values.field && columns.filter(col => col.field && col.uuid !== values.uuid && col.field === values.field).length > 0) {
          notification.warning({
            top: 92,
            message: '字段已添加!',
            duration: 5
          })
          return
        }
        // if (values.field && columns.filter(col => col.field && col.uuid !== values.uuid && col.field === values.field).length > 0) {
        //   notification.warning({
        //     top: 92,
        //     message: '字段已添加!',
        //     duration: 5
        //   })
        //   return
        // }
        this.setState({visible: false, formlist: null})
        this.props.submitCol(values)