From 0f79daefced8980fa571dd3d2c781a0e3646614f Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 24 十一月 2020 16:57:19 +0800
Subject: [PATCH] 2020-11-24

---
 src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx |   95 +++++++++++------------------------------------
 1 files changed, 23 insertions(+), 72 deletions(-)

diff --git a/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx b/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx
index 32fe504..c2d4c20 100644
--- a/src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx
+++ b/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>

--
Gitblit v1.8.0