From 655ac8aef54bc134c1420c19975023182a10cae4 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 08 十二月 2020 19:25:27 +0800
Subject: [PATCH] 2020-12-08

---
 src/templates/sharecomponent/fieldscomponent/index.jsx |  124 ++++++++++++++++++++++++++++++++++++-----
 1 files changed, 108 insertions(+), 16 deletions(-)

diff --git a/src/templates/sharecomponent/fieldscomponent/index.jsx b/src/templates/sharecomponent/fieldscomponent/index.jsx
index 2aefd5c..941ae06 100644
--- a/src/templates/sharecomponent/fieldscomponent/index.jsx
+++ b/src/templates/sharecomponent/fieldscomponent/index.jsx
@@ -67,6 +67,24 @@
           columns.set(item.field, {...item, selected: true, datatype: _datatype})
         }
       })
+    } else if (type === 'form') {
+      if (config.groups.length > 1) {
+        config.groups.forEach(group => {
+          group.sublist.forEach(item => {
+            if (columns.has(item.field)) {
+              let _datatype = columns.get(item.field).datatype
+              columns.set(item.field, {...item, selected: true, datatype: _datatype})
+            }
+          })
+        })
+      } else {
+        config.fields.forEach(item => {
+          if (columns.has(item.field)) {
+            let _datatype = columns.get(item.field).datatype
+            columns.set(item.field, {...item, selected: true, datatype: _datatype})
+          }
+        })
+      }
     }
 
     // 鏄剧ず瀛楁闆嗗脊绐�
@@ -153,6 +171,7 @@
           items.push(newcard)
         }
       })
+      config.search = items
     } else if (type === 'columns') {
       config.columns.forEach(item => {
         if (columnsMap.has(item.field)) {
@@ -191,6 +210,7 @@
           items.push(newcard)
         }
       })
+      config.columns = items
     } else if (type === 'fields') {
       config.columns.forEach(item => {
         if (columnsMap.has(item.field)) {
@@ -219,24 +239,96 @@
           items.push(newcard)
         }
       })
+    } else if (type === 'form') {
+      if (config.groups.length > 1) {
+        config.groups.forEach(group => {
+          group.sublist.forEach(item => {
+            if (columnsMap.has(item.field)) {
+              let cell = columnsMap.get(item.field)
+      
+              if (cell.selected && cell.type === item.type) { // 鏁版嵁閫夋嫨鐘舵�佸強绫诲瀷鏈慨鏀规椂锛岀洿鎺ユ坊鍔�
+                items.push(item)
+              } else if (cell.selected) {                     // 鏁版嵁绫诲瀷淇敼鏃讹紝閲嶇疆绫诲瀷鍙婂垵濮嬪��
+                item.type = cell.type
+                item.initval = ''
+                items.push(item)
+              }
+              columnsMap.delete(item.field)
+            } else if (!item.origin) {                        // 杩囨护绀轰緥椤�
+              items.push(item)
+            }
+          })
+          group.sublist = items
+        })
+        
+        let _columns = [...columnsMap.values()]
+    
+        let _additems = _columns.map(item => { // 寰幆娣诲姞鏂板瀛楁
+          return {
+            uuid: Utils.getuuid(),
+            label: item.label,
+            field: item.field,
+            initval: '',
+            type: item.type,
+            resourceType: '0',
+            setAll: 'false',
+            options: [],
+            dataSource: '',
+            orderType: 'asc',
+            decimal: item.decimal,
+            readonly: 'false',
+            required: 'true'
+          }
+        })
+        config.groups[config.groups.length - 1].sublist = [...config.groups.slice(-1)[0].sublist, ..._additems]
+      } else {
+        config.fields.forEach(item => {
+          if (columnsMap.has(item.field)) {
+            let cell = columnsMap.get(item.field)
+    
+            if (cell.selected && cell.type === item.type) { // 鏁版嵁閫夋嫨鐘舵�佸強绫诲瀷鏈慨鏀规椂锛岀洿鎺ユ坊鍔�
+              items.push(item)
+            } else if (cell.selected) {                     // 鏁版嵁绫诲瀷淇敼鏃讹紝閲嶇疆绫诲瀷鍙婂垵濮嬪��
+              item.type = cell.type
+              item.initval = ''
+              items.push(item)
+            }
+            columnsMap.delete(item.field)
+          } else if (!item.origin) {                        // 杩囨护绀轰緥椤�
+            items.push(item)
+          }
+        })
+    
+        let _columns = [...columnsMap.values()]
+    
+        _columns.forEach(item => { // 寰幆娣诲姞鏂板瀛楁
+          if (item.selected) {
+            let newcard = {
+              uuid: Utils.getuuid(),
+              label: item.label,
+              field: item.field,
+              initval: '',
+              type: item.type,
+              resourceType: '0',
+              setAll: 'false',
+              options: [],
+              dataSource: '',
+              decimal: item.decimal,
+              orderType: 'asc',
+              readonly: 'false',
+              required: 'true'
+            }
+    
+            items.push(newcard)
+          }
+        })
+    
+        config.fields = items
+      }
     }
 
-    let _config = null
-
-    if (type === 'search') {
-      _config = {...this.props.config, search: items}
-
-      this.props.updatefield(_config)
-
-      notification.success({
-        top: 92,
-        message: '鎿嶄綔鎴愬姛',
-        duration: 2
-      })
-    } else if (type === 'columns') {
-      _config = {...this.props.config, columns: items}
-
-      this.props.updatefield(_config)
+    if (type === 'search' || type === 'columns' || type === 'form') {
+      this.props.updatefield(config)
 
       notification.success({
         top: 92,

--
Gitblit v1.8.0