king
2022-09-22 c33ac9ddcdbed91bd2267bed2a96199441806a04
src/templates/sharecomponent/actioncomponent/verifyexcelin/columnform/index.jsx
@@ -3,48 +3,15 @@
import { Form, Row, Col, Select, Button, Input, InputNumber, Radio } from 'antd'
import './index.scss'
class UniqueForm extends Component {
class ExcelInColumn extends Component {
  static propTpyes = {
    dict: PropTypes.object,         // 字典项
    columns: PropTypes.array,       // 列名集合
    columnChange: PropTypes.func    // 修改函数
  }
  state = {
    editItem: null, // 编辑元素
    type: 'Nvarchar(50)',
    locked: false
  }
  edit = (record) => {
    this.setState({
      editItem: record,
      type: record.type || 'Nvarchar(50)'
    }, () => {
      if (!/^Nvarchar/.test(record.type)) {
        this.props.form.setFieldsValue({
          min: record.min,
          max: record.max
        })
      }
    })
    this.props.form.setFieldsValue({
      Column: record.Column,
      Text: record.Text,
      required: record.required,
      type: record.type
    })
    if (record.type === 'Int' || /^Decimal/ig.test(record.type)) {
      this.setState({
        locked: true
      })
    } else {
      this.setState({
        locked: false
      })
    }
  }
  typeChange = (val) => {
@@ -68,14 +35,11 @@
  handleConfirm = () => {
    // const { columns } = this.props
    // 表单提交时检查输入值是否正确
    this.props.form.validateFieldsAndScroll((err, values) => {
      if (!err) {
        values.uuid = this.state.editItem ? this.state.editItem.uuid : ''
        if (/^Nvarchar/ig.test(values.type)) {
          values.limit = values.type.match(/\d+/)[0]
          values.limit = values.type.match(/\d+/) ? values.type.match(/\d+/)[0] : '20000'
        } else if (/^Decimal/ig.test(values.type)) {
          values.limit = values.type.match(/\d+/ig)[1]
        } else {
@@ -84,7 +48,6 @@
        this.props.columnChange(values)
        this.setState({
          editItem: null,
          locked: false,
          type: 'Nvarchar(50)'
        })
@@ -92,6 +55,7 @@
          Column: '',
          Text: '',
          required: 'true',
          import: 'true',
          type: 'Nvarchar(50)'
        })
      }
@@ -112,12 +76,10 @@
      }
    }
    let haslimit = !/^Nvarchar/.test(this.state.type)
    return (
      <Form {...formItemLayout} className="verify-form">
        <Row gutter={24}>
          <Col span={7}>
          <Col span={6}>
            <Form.Item label={dict['model.form.field']}>
              {getFieldDecorator('Column', {
                initialValue: '',
@@ -130,7 +92,7 @@
              })(<Input placeholder="" autoComplete="off" />)}
            </Form.Item>
          </Col>
          <Col span={7}>
          <Col span={6}>
            <Form.Item label={dict['model.name']}>
              {getFieldDecorator('Text', {
                initialValue: '',
@@ -143,7 +105,7 @@
              })(<Input placeholder="" autoComplete="off" />)}
            </Form.Item>
          </Col>
          <Col span={7}>
          <Col span={6}>
            <Form.Item label={dict['model.form.type']}>
              {getFieldDecorator('type', {
                initialValue: 'Nvarchar(50)'
@@ -153,22 +115,22 @@
                  <Select.Option value="Nvarchar(20)"> Nvarchar(20) </Select.Option>
                  <Select.Option value="Nvarchar(50)"> Nvarchar(50) </Select.Option>
                  <Select.Option value="Nvarchar(100)"> Nvarchar(100) </Select.Option>
                  <Select.Option value="Nvarchar(256)"> Nvarchar(256) </Select.Option>
                  <Select.Option value="Nvarchar(512)"> Nvarchar(512) </Select.Option>
                  <Select.Option value="Nvarchar(1024)"> Nvarchar(1024) </Select.Option>
                  <Select.Option value="Nvarchar(2048)"> Nvarchar(2048) </Select.Option>
                  <Select.Option value="Nvarchar(max)"> Nvarchar(max) </Select.Option>
                  <Select.Option value="Int"> Int </Select.Option>
                  <Select.Option value="Decimal(18,0)"> Decimal(18,0) </Select.Option>
                  <Select.Option value="Decimal(18,2)"> Decimal(18,2) </Select.Option>
                  <Select.Option value="Decimal(18,4)"> Decimal(18,4) </Select.Option>
                  <Select.Option value="Decimal(18,6)"> Decimal(18,6) </Select.Option>
                  <Select.Option value="date"> date </Select.Option>
                </Select>
              )}
            </Form.Item>
          </Col>
          <Col span={3} className="add">
            <Button onClick={this.handleConfirm} type="primary" className="mk-green">
              {dict['model.save']}
            </Button>
          </Col>
          <Col span={7}>
          <Col span={6}>
            <Form.Item label={dict['model.required']}>
              {getFieldDecorator('required', {
                initialValue: 'true'
@@ -180,24 +142,43 @@
              )}
            </Form.Item>
          </Col>
          {haslimit ? <Col span={7}>
            <Form.Item label={'最小值'}>
          <Col span={6}>
            <Form.Item style={{marginBottom: 0}} label={dict['model.import']}>
              {getFieldDecorator('import', {
                initialValue: 'true'
              })(
                <Radio.Group>
                  <Radio value="true">{dict['model.true']}</Radio>
                  <Radio value="false">{dict['model.false']}</Radio>
                </Radio.Group>
              )}
            </Form.Item>
          </Col>
          <Col span={6}>
            <Form.Item style={{marginBottom: 0}} label={'最小值'}>
              {getFieldDecorator('min', {
                initialValue: ''
              })(<InputNumber />)}
            </Form.Item>
          </Col> : null}
          {haslimit ? <Col span={7}>
            <Form.Item label={'最大值'}>
          </Col>
          <Col span={6}>
            <Form.Item style={{marginBottom: 0}} label={'最大值'}>
              {getFieldDecorator('max', {
                initialValue: ''
              })(<InputNumber />)}
            </Form.Item>
          </Col> : null}
          </Col>
          <Col span={6}>
            <Form.Item style={{marginBottom: 0}} label={' '} colon={false}>
              <Button onClick={this.handleConfirm} type="primary" className="mk-green">
                {dict['model.add']}
              </Button>
            </Form.Item>
          </Col>
        </Row>
      </Form>
    )
  }
}
export default Form.create()(UniqueForm)
export default Form.create()(ExcelInColumn)