From 5cfe6db94c1449810a44660b299dba8e7e98e5c5 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 10 六月 2021 14:43:39 +0800
Subject: [PATCH] 2021-06-10

---
 src/menu/components/table/normal-table/columns/editColumn/index.jsx |   30 ++++++++++++++++++++++++++----
 1 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/src/menu/components/table/normal-table/columns/editColumn/index.jsx b/src/menu/components/table/normal-table/columns/editColumn/index.jsx
index 43c63ac..3a18837 100644
--- a/src/menu/components/table/normal-table/columns/editColumn/index.jsx
+++ b/src/menu/components/table/normal-table/columns/editColumn/index.jsx
@@ -16,7 +16,8 @@
   picture: ['label', 'field', 'type', 'Align', 'Hide', 'IsSort', 'Width', 'blacklist', 'scale', 'lenWidRadio', 'picSort'],
   colspan: ['label', 'type', 'Align', 'Hide', 'blacklist'],
   custom: ['label', 'type', 'Align', 'Hide', 'Width', 'blacklist'],
-  action: ['label', 'type', 'Align', 'Width']
+  action: ['label', 'type', 'Align', 'Width'],
+  index: ['label', 'type', 'Align', 'Width']
 }
 
 class MainSearch extends Component {
@@ -103,13 +104,34 @@
         }
       })
     } else if (key === 'field') {
-      this.props.form.setFieldsValue({label: option.props.children})
-      if (this.state.type === 'number') {
+      let values = {label: option.props.children}
+      if (/Decimal|int/ig.test(option.props.datatype)) {
         let decimal = 0
         if (/Decimal/ig.test(option.props.datatype)) {
           decimal = +option.props.datatype.replace(/Decimal\(18,/ig, '').replace(')', '')
         }
-        this.props.form.setFieldsValue({decimal})
+        values.type = 'number'
+        values.decimal = decimal
+      } else if (/nvarchar/ig.test(option.props.datatype)) {
+        values.type = 'text'
+      }
+
+      if (values.type !== this.state.type) {
+        values.perspective = ''
+        let _options = fromJS(columnTypeOptions[values.type]).toJS()
+
+        this.setState({
+          type: values.type,
+          formlist: this.state.formlist.map(item => {
+            item.hidden = !_options.includes(item.key)
+
+            return item
+          })
+        }, () => {
+          this.props.form.setFieldsValue(values)
+        })
+      } else {
+        this.props.form.setFieldsValue(values)
       }
     } else if (key === 'format' && value === 'percent') {
       this.props.form.setFieldsValue({postfix: '%'})

--
Gitblit v1.8.0