From abf582fbe18c20ab4f01458a9209878c77fea9c0 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 15 一月 2020 18:59:52 +0800
Subject: [PATCH] 2020-01-15

---
 src/templates/comtableconfig/actionform/index.jsx |  116 +++++++++++++++++++++++++--------------------------------
 1 files changed, 51 insertions(+), 65 deletions(-)

diff --git a/src/templates/comtableconfig/actionform/index.jsx b/src/templates/comtableconfig/actionform/index.jsx
index d20dd80..7ce988f 100644
--- a/src/templates/comtableconfig/actionform/index.jsx
+++ b/src/templates/comtableconfig/actionform/index.jsx
@@ -167,10 +167,15 @@
     }
   }
 
-  // 鎵撳紑鏂瑰紡鎴栨樉绀轰綅缃彉鍖�
+  /**
+   * @description 涓嬫媺鍒囨崲
+   * 1銆佹墦寮�鏂瑰紡鍒囨崲锛岄噸缃彲瑙佽〃鍗曞拰琛ㄥ崟鍊�
+   * 2銆佹樉绀轰綅缃垏鎹紝閲嶇疆閫夋嫨琛�
+   * 3銆佸垏鎹㈡爣绛剧被鍨嬶紝閲嶇疆鍙�夋爣绛�
+   */
   openTypeChange = (key, value) => {
     if (key === 'OpenType') {
-      let _options = null
+      let _options = []
       if (value === 'innerpage') {
         _options = ['label', 'Ot', 'OpenType', 'pageTemplate', 'icon', 'class', 'position']
       } else if (value === 'outerpage') {
@@ -192,64 +197,57 @@
           _options = ['label', 'position', 'OpenType', 'intertype', 'innerFunc', 'Ot', 'icon', 'class', 'execSuccess', 'execError', 'sysInterface', 'interface', 'outerFunc', 'callbackFunc', 'method']
         }
       }
+
+      let _fieldval = {}
+      
+      let _formlist = this.state.formlist.map(item => {
+        item.hidden = !_options.includes(item.key)
+
+        if (item.hidden) return item
+
+        if (item.key === 'intertype') {
+          _fieldval.intertype = this.state.interType
+        } else if (item.key === 'Ot') {
+          if (value === 'innerpage' || this.state.position === 'grid') {
+            item.options = this.state.reqOptionSgl
+            _fieldval.Ot = 'requiredSgl'
+          } else if (['outerpage', 'blank', 'tab', 'popview'].includes(value)) {
+            item.options = this.state.reqOptions
+            _fieldval.Ot = 'requiredSgl'
+          } else {
+            item.options = this.state.reqOptionsMutil
+          }
+        } else if (item.key === 'sqlType') {
+          if (['prompt', 'exec'].includes(value)) {
+            item.options = this.state.deleteOptions
+          } else {
+            item.options = this.state.insertUpdateOptions
+          }
+          _fieldval.sqlType = ''
+        }
+
+        return item
+      })
+
       this.setState({
         openType: value,
-        formlist: this.state.formlist.map(item => {
-          if (_options) {
-            item.hidden = !_options.includes(item.key)
-            if (item.key === 'intertype') {
-              item.initVal = this.state.interType
-            }
-          }
-          if (item.key === 'Ot') {
-            if (value === 'innerpage' || this.state.position === 'grid') {
-              item.options = this.state.reqOptionSgl
-              item.initVal = 'requiredSgl'
-            } else if (['outerpage', 'blank', 'tab', 'popview'].includes(value)) {
-              item.options = this.state.reqOptions
-              item.initVal = 'requiredSgl'
-            } else {
-              item.options = this.state.reqOptionsMutil
-            }
-            item.hidden = true
-          } else if (item.key === 'sqlType') {
-            if (['prompt', 'exec'].includes(value)) {
-              item.options = this.state.deleteOptions
-            } else {
-              item.options = this.state.insertUpdateOptions
-            }
-            item.initVal = ''
-            item.hidden = true
-          }
-          return item
-        })
+        formlist: _formlist
       }, () => {
-        if (['excelIn', 'excelOut'].includes(value)) return
-
-        this.setState({
-          formlist: this.state.formlist.map(item => {
-            if (item.key === 'Ot') {
-              item.hidden = false
-            } else if (item.key === 'sqlType' && ['prompt', 'exec', 'pop'].includes(value)) {
-              item.hidden = false
-            }
-            return item
-          })
-        })
+        this.props.form.setFieldsValue(_fieldval)
       })
     } else if (key === 'position') {
+      let _fieldval = {}
+
       this.setState({
         position: value,
         formlist: this.state.formlist.map(item => {
           if (item.key === 'Ot') {
             if (this.state.openType === 'innerpage' || value === 'grid') {
               item.options = this.state.reqOptionSgl
-              item.initVal = 'requiredSgl'
-              item.hidden = true
+              _fieldval.Ot = 'requiredSgl'
             } else if (['outerpage', 'blank', 'tab', 'popview'].includes(this.state.openType)) {
               item.options = this.state.reqOptions
-              item.initVal = 'requiredSgl'
-              item.hidden = true
+              _fieldval.Ot = 'requiredSgl'
             } else {
               item.options = this.state.reqOptionsMutil
             }
@@ -257,17 +255,11 @@
           return item
         })
       }, () => {
-        this.setState({
-          formlist: this.state.formlist.map(item => {
-            if (item.key === 'Ot') {
-              item.hidden = false
-            }
-            return item
-          })
-        })
+        this.props.form.setFieldsValue(_fieldval)
       })
     } else if (key === 'tabType') {
       let _tabs = this.props.tabs.filter(tab => tab.type === value)
+      let _fieldval = {}
 
       this.setState({
         formlist: this.state.formlist.map(item => {
@@ -279,20 +271,12 @@
               },
               ..._tabs
             ]
-            item.initVal = ''
-            item.hidden = true
+            _fieldval.linkTab = ''
           }
           return item
         })
       }, () => {
-        this.setState({
-          formlist: this.state.formlist.map(item => {
-            if (item.key === 'linkTab') {
-              item.hidden = false
-            }
-            return item
-          })
-        })
+        this.props.form.setFieldsValue(_fieldval)
       })
     }
   }
@@ -306,10 +290,12 @@
       } else {
         _options = ['label', 'position', 'OpenType', 'intertype', 'innerFunc', 'Ot', 'icon', 'class', 'execSuccess', 'execError', 'sysInterface', 'interface', 'outerFunc', 'callbackFunc', 'method']
       }
+
       this.setState({
         interType: value,
         formlist: this.state.formlist.map(item => {
           item.hidden = !_options.includes(item.key)
+
           if (item.key === 'interface') {
             item.readonly = false
           } else if (item.key === 'sysInterface') {

--
Gitblit v1.8.0