king
2020-02-17 0594fe8d97286a535177f8ba05972d0305fc7dee
src/templates/tableshare/verifycardexcelin/index.jsx
@@ -1,7 +1,6 @@
import React, {Component} from 'react'
import PropTypes from 'prop-types'
import { Form, Tabs, Row, Col, Input, Button, Table, Popconfirm, Icon, notification, Modal, message, InputNumber } from 'antd'
import { formRule } from '@/utils/option.js'
import Utils from '@/utils/utils.js'
@@ -133,7 +132,7 @@
    this.setState({
      verify: {
        ..._verify,
        sheet: _verify.sheet || '',
        sheet: _verify.sheet || 'Sheet1',
        range: _verify.range || 0,
        columns: _verify.columns || [],
        scripts: _verify.scripts || []
@@ -272,38 +271,53 @@
    })
  }
  sheetChange = (e) => {
  handleConfirm = () => {
    const { verify } = this.state
    // 表单提交时检查输入值是否正确
    return new Promise((resolve, reject) => {
      this.props.form.validateFieldsAndScroll((err, values) => {
        if (!err) {
          let _verify = {...verify, ...values}
    this.setState({}, () => {
      this.props.form.validateFields(['sheet'], (errors, values) => {
        if (!errors) {
          this.setState({
            verify: {
              ...verify,
              ...values
          let cols = _verify.columns.map(col => col.Column)
          cols = Array.from(new Set(cols))
          if (_verify.columns.length === 0) {
            notification.warning({
              top: 92,
              message: '请设置Excel列字段!',
              duration: 10
            })
            return
          } else if (_verify.columns.length > cols.length) {
            notification.warning({
              top: 92,
              message: 'Excel列字段名,不可重复!',
              duration: 10
            })
            return
          } else if (_verify.range === 1) {
            let tEmptys = _verify.columns.filter(op => !op.Text)
            if (tEmptys.length > 0) {
              notification.warning({
                top: 92,
                message: '忽略首行时,会使用Text值校验Excel首行内容,Text值与Excel表首行内容相同,且均不可为空!',
                duration: 10
              })
              return
            }
          })
          }
          console.log(_verify)
          resolve(_verify)
        } else {
          this.setState({
            verify: {
              ...verify,
              sheet: ''
            }
          notification.warning({
            top: 92,
            message: '请设置Excel表名!',
            duration: 10
          })
        }
      })
    })
  }
  rangeChange = (value) => {
    const { verify } = this.state
    this.setState({
      verify: {
        ...verify,
        range: value || 0
      }
    })
  }
@@ -365,28 +379,23 @@
            <Form {...formItemLayout}>
              <Row gutter={24}>
                <Col span={8}>
                  <Form.Item label={this.props.dict['header.form.tablename']}>
                  <Form.Item label={'Excel表名'}>
                    {getFieldDecorator('sheet', {
                      initialValue: verify.sheet || '',
                      rules: [
                        {
                          required: true,
                          message: this.props.dict['form.required.input'] + this.props.dict['header.form.tablename'] + '!'
                        },
                        {
                          pattern: formRule.table.pattern,
                          message: formRule.table.message
                        }, {
                          max: formRule.table.max,
                          message: formRule.table.maxMessage
                        }
                      ]
                    })(<Input placeholder="" autoComplete="off" onChange={this.sheetChange} />)}
                    })(<Input placeholder="" autoComplete="off" />)}
                  </Form.Item>
                </Col>
                <Col span={8}>
                  <Form.Item label={'忽略行'}>
                    <InputNumber min={0} max={100} precision={0} defaultValue={0} onChange={this.rangeChange} />
                    {getFieldDecorator('range', {
                      initialValue: verify.range || 0
                    })(<InputNumber min={0} max={100} precision={0} />)}
                  </Form.Item>
                </Col>
              </Row>
@@ -437,7 +446,7 @@
                </Col>
                <Col span={8}>
                  <Form.Item label={'停留时间'}>
                    <InputNumber defaultValue={2} min={1} max={10000} precision={0} onChange={(val) => {this.timeChange(val, 'stime')}} />
                    <InputNumber defaultValue={verify.stime || 2} min={1} max={10000} precision={0} onChange={(val) => {this.timeChange(val, 'stime')}} />
                  </Form.Item>
                </Col>
              </Row>
@@ -460,7 +469,7 @@
                </Col>
                <Col span={8}>
                  <Form.Item label={'停留时间'}>
                    <InputNumber defaultValue={15} min={1} max={10000} precision={0} onChange={(val) => {this.timeChange(val, 'ntime')}} />
                    <InputNumber defaultValue={verify.ntime || 15} min={1} max={10000} precision={0} onChange={(val) => {this.timeChange(val, 'ntime')}} />
                  </Form.Item>
                </Col>
              </Row>
@@ -475,7 +484,7 @@
                </Col>
                <Col span={8}>
                  <Form.Item label={'停留时间'}>
                    <InputNumber defaultValue={15} min={1} max={10000} precision={0} onChange={(val) => {this.timeChange(val, 'ftime')}} />
                    <InputNumber defaultValue={verify.ftime || 15} min={1} max={10000} precision={0} onChange={(val) => {this.timeChange(val, 'ftime')}} />
                  </Form.Item>
                </Col>
              </Row>