king
2020-11-24 0f79daefced8980fa571dd3d2c781a0e3646614f
src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx
@@ -1,7 +1,7 @@
import React, {Component} from 'react'
import PropTypes from 'prop-types'
import { fromJS } from 'immutable'
import { Form, Tabs, Row, Col, Button, Table, Popconfirm, Icon, notification, Modal, message, InputNumber, Radio } from 'antd'
import { Form, Tabs, Row, Col, Button, notification, Modal, message, InputNumber, Radio } from 'antd'
import moment from 'moment'
import Api from '@/api'
@@ -9,10 +9,12 @@
import ColumnForm from './columnform'
import CodeMirror from '@/templates/zshare/codemirror'
import asyncComponent from '@/utils/asyncComponent'
import './index.scss'
const { TabPane } = Tabs
const { confirm } = Modal
const EditTable = asyncComponent(() => import('@/templates/zshare/editTable'))
class VerifyCard extends Component {
  static propTpyes = {
@@ -28,37 +30,26 @@
      {
        title: this.props.dict['model.form.field'],
        dataIndex: 'Column',
        inputType: 'input',
        editable: true,
        unique: true,
        width: '25%'
      },
      {
        title: this.props.dict['model.name'],
        dataIndex: 'Text',
        inputType: 'input',
        editable: true,
        width: '25%'
      },
      {
        title: this.props.dict['model.form.columnWidth'],
        dataIndex: 'Width',
        inputType: 'number',
        min: 5,
        max: 200,
        editable: true,
        width: '25%'
      },
      {
        title: '操作',
        align: 'center',
        dataIndex: 'operation',
        render: (text, record) =>
          (
            <div>
              <span className="operation-btn" title={this.props.dict['model.edit']} onClick={() => this.handleEdit(record, 'columns')} style={{color: '#1890ff'}}><Icon type="edit" /></span>
              <span className="operation-btn" title={this.props.dict['header.form.up']} onClick={() => this.handleUpDown(record, 'columns', 'up')} style={{color: '#1890ff'}}><Icon type="arrow-up" /></span>
              <span className="operation-btn" title={this.props.dict['header.form.down']} onClick={() => this.handleUpDown(record, 'columns', 'down')} style={{color: '#ff4d4f'}}><Icon type="arrow-down" /></span>
              <Popconfirm
                overlayClassName="popover-confirm"
                title={this.props.dict['model.query.delete']}
                onConfirm={() => this.handleDelete(record, 'columns')
              }>
                <span style={{color: '#ff4d4f', cursor: 'pointer'}}><Icon type="delete" /></span>
              </Popconfirm>
            </div>
          )
      }
    ]
  }
@@ -158,27 +149,17 @@
  columnChange = (values) => {
    let verify = JSON.parse(JSON.stringify(this.state.verify))
    if (values.uuid) {
      verify.columns = verify.columns.map(item => {
        if (item.uuid === values.uuid) {
          return values
        } else {
          return item
        }
    let fields = verify.columns.map(item => item.Column)
    if (fields.includes(values.Column)) {
      notification.warning({
        top: 92,
        message: values.Column + '字段已存在!',
        duration: 5
      })
    } else {
      let fields = verify.columns.map(item => item.Column)
      if (fields.includes(values.Column)) {
        notification.warning({
          top: 92,
          message: values.Column + '字段已存在!',
          duration: 5
        })
        return
      }
      values.uuid = Utils.getuuid()
      verify.columns.push(values)
      return
    }
    values.uuid = Utils.getuuid()
    verify.columns.push(values)
    this.setState({
      verify: verify
@@ -191,25 +172,6 @@
    verify.columns = verify.columns.filter(item => item.uuid !== record.uuid)
    this.setState({ verify: verify })
  }
  handleEdit = (record, type) => {
    this.columnForm.edit(record)
    let node = document.getElementById('verify-excelout-box-tab').parentNode
    if (node && node.scrollTop) {
      let inter = Math.ceil(node.scrollTop / 10)
      let timer = setInterval(() => {
        if (node.scrollTop - inter > 0) {
          node.scrollTop = node.scrollTop - inter
        } else {
          node.scrollTop = 0
          clearInterval(timer)
        }
      }, 10)
    }
  }
  handleUpDown = (record, type, direction) => {
@@ -452,25 +414,14 @@
              {verify.columns.length ? <span className="count-tip">{verify.columns.length}</span> : null}
            </span>
          } key="1">
            <ColumnForm
              dict={this.props.dict}
              columnChange={this.columnChange}
              wrappedComponentRef={(inst) => this.columnForm = inst}
            />
            <ColumnForm dict={this.props.dict} columnChange={this.columnChange}/>
            <Button className="excel-col-add mk-green" title="添加显示列字段" onClick={this.columnFieldInput}>
              同步显示列
            </Button>
            <Button className="excel-col-add mk-red" title="清空Excel列" onClick={this.clearField}>
              清空Excel列
            </Button>
            <Table
              bordered
              rowKey="uuid"
              className="custom-table"
              dataSource={verify.columns}
              columns={excelColumns}
              pagination={false}
            />
            <EditTable data={verify.columns} columns={excelColumns} onChange={(columns) => this.setState({verify: {...verify, columns}})}/>
          </TabPane>
          {card.intertype === 'system' ? <TabPane tab={
            <span>