From eb31b84962c192de57abbb473cb4733a09bf4363 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 14 五月 2020 18:09:40 +0800
Subject: [PATCH] 2020-05-14

---
 src/templates/sharecomponent/actioncomponent/actionform/index.jsx |  146 +++++++++++++++++++++++++++++-------------------
 1 files changed, 89 insertions(+), 57 deletions(-)

diff --git a/src/templates/sharecomponent/actioncomponent/actionform/index.jsx b/src/templates/sharecomponent/actioncomponent/actionform/index.jsx
index 5bb6f79..329d0c8 100644
--- a/src/templates/sharecomponent/actioncomponent/actionform/index.jsx
+++ b/src/templates/sharecomponent/actioncomponent/actionform/index.jsx
@@ -23,18 +23,7 @@
     interType: null, // 鎺ュ彛绫诲瀷锛氬唴閮ㄣ�佸閮�
     funcType: null,  // 鍔熻兘绫诲瀷
     position: null,  // 鎸夐挳浣嶇疆
-    reqOptionSgl: [{
-      value: 'requiredSgl',
-      text: this.props.dict['header.form.requiredSgl']
-    }],
-    reqOptions: [{
-      value: 'notRequired',
-      text: this.props.dict['header.form.notRequired']
-    }, {
-      value: 'requiredSgl',
-      text: this.props.dict['header.form.requiredSgl']
-    }],
-    reqOptionsMutil: [{
+    requireOptions: [{
       value: 'notRequired',
       text: this.props.dict['header.form.notRequired']
     }, {
@@ -56,6 +45,9 @@
     }, {
       value: 'update',
       text: this.props.dict['header.form.action.update']
+    }, {
+      value: 'audit',
+      text: this.props.dict['header.form.action.audit']
     }],
     deleteOptions: [{
       value: '',
@@ -74,30 +66,15 @@
 
   
   UNSAFE_componentWillMount () {
-    let _opentype = ''   // 鎵撳紑鏂瑰紡
-    let _intertype = ''  // 鎺ュ彛绫诲瀷
-    let _position = ''   // 鎸夐挳浣嶇疆
-    let _tabType = ''    // 鎸夐挳涓哄脊绐楋紙鏍囩锛夋椂锛屾爣绛剧殑绫诲瀷
-    let _funcType = ''   // 鍔熻兘鎸夐挳绫诲瀷
-    let _options = null  // 閫夐」鍒楄〃
+    const { card } = this.props
 
-    this.props.formlist.forEach(form => {
-      if (form.key === 'OpenType') {
-        if (this.props.card.execMode) { // 杞崲鎵撳嵃鏃舵墦寮�鏂瑰紡
-          _opentype = 'funcbutton'
-        } else {
-          _opentype = form.initVal
-        }
-      } else if (form.key === 'intertype') {
-        _intertype = form.initVal
-      } else if (form.key === 'position') {
-        _position = form.initVal
-      } else if (form.key === 'tabType') {
-        _tabType = form.initVal
-      } else if (form.key === 'funcType') {
-        _funcType = form.initVal
-      }
-    })
+    let _opentype = card.OpenType             // 鎵撳紑鏂瑰紡
+    let _tabType = card.tabType || 'SubTable' // 鎸夐挳涓哄脊绐楋紙鏍囩锛夋椂锛屾爣绛剧殑绫诲瀷
+    let _options = null                       // 閫夐」鍒楄〃
+
+    if (card.execMode) {           // 杞崲鎵撳嵃鏃舵墦寮�鏂瑰紡
+      _opentype = 'funcbutton'
+    }
 
     let _tabs = this.props.tabs.filter(tab => tab.type === _tabType)
 
@@ -110,31 +87,31 @@
     } else if (_opentype === 'popview') {                                // 妯℃�佹鏍囩椤�
       _options = ['label', 'Ot', 'OpenType', 'icon', 'class', 'position', 'tabType', 'linkTab', 'popClose']
     } else if (_opentype === 'excelOut') {    // 瀵煎叆瀵煎嚭
-      if (_intertype === 'outer') {
+      if (card.intertype === 'outer') {
         _options = ['label', 'OpenType', 'intertype', 'innerFunc', 'sysInterface', 'interface', 'outerFunc', 'icon', 'class', 'execSuccess', 'execError', 'pagination', 'search']
       } else {
         _options = ['label', 'OpenType', 'intertype', 'innerFunc', 'icon', 'class', 'execSuccess', 'execError', 'pagination', 'search']
       }
     } else if (_opentype === 'excelIn') {    // 瀵煎叆瀵煎嚭
-      if (_intertype === 'outer') {
+      if (card.intertype === 'outer') {
         _options = ['label', 'Ot', 'OpenType', 'intertype', 'innerFunc', 'sysInterface', 'interface', 'outerFunc', 'callbackFunc', 'icon', 'class', 'sheet', 'execSuccess', 'execError']
       } else {
         _options = ['label', 'Ot', 'OpenType', 'intertype', 'innerFunc', 'icon', 'class', 'sheet', 'execSuccess', 'execError']
       }
     } else if (_opentype === 'funcbutton') {
-      if (!_funcType) {
+      if (!card.funcType) {
         _options = ['label', 'OpenType', 'funcType', 'icon', 'class']
-      } else if (_funcType === 'changeuser') {
+      } else if (card.funcType === 'changeuser') {
         _options = ['label', 'OpenType', 'funcType', 'icon', 'class']
-      } else if (_funcType === 'print') {
-        if (_intertype === 'outer') {
+      } else if (card.funcType === 'print') {
+        if (card.intertype === 'outer') {
           _options = ['label', 'OpenType', 'funcType', 'execMode', 'intertype', 'innerFunc', 'sysInterface', 'interface', 'outerFunc', 'callbackFunc', 'Ot', 'icon', 'class', 'execSuccess', 'execError']
         } else {
           _options = ['label', 'OpenType', 'funcType', 'execMode', 'intertype', 'innerFunc', 'Ot', 'icon', 'class', 'execSuccess', 'execError']
         }
       }
     } else {
-      if (_intertype === 'outer') {
+      if (card.intertype === 'outer') {
         _options = ['label', 'position', 'OpenType', 'intertype', 'innerFunc', 'sysInterface', 'interface', 'outerFunc', 'callbackFunc', 'Ot', 'icon', 'class', 'execSuccess', 'execError']
       } else {
         _options = ['label', 'position', 'OpenType', 'intertype', 'innerFunc', 'Ot', 'icon', 'class', 'execSuccess', 'execError', 'sql', 'sqlType']
@@ -142,21 +119,23 @@
     }
     this.setState({
       openType: _opentype,
-      interType: _intertype,
-      position: _position,
-      funcType: _funcType,
+      interType: card.intertype || 'inner',
+      position: card.position || 'toolbar',
+      funcType: card.funcType,
       formlist: this.props.formlist.map(item => {
         if (item.key === 'class') {
           item.options = btnClasses
         } else if (item.key === 'icon') {
           item.options = btnIcons
         } else if (item.key === 'Ot') {
-          if (_opentype === 'innerpage' || _position === 'grid') {
-            item.options = this.state.reqOptionSgl
+          if (_opentype === 'innerpage' || card.position === 'grid') {
+            item.options = this.state.requireOptions.filter(op => ['requiredSgl'].includes(op.value))
           } else if (['outerpage', 'blank', 'tab', 'popview', 'excelIn'].includes(_opentype)) {
-            item.options = this.state.reqOptions
+            item.options = this.state.requireOptions.filter(op => ['notRequired', 'requiredSgl'].includes(op.value))
+          } else if (card.sqlType === 'insert') {
+            item.options = this.state.requireOptions.filter(op => ['notRequired', 'requiredSgl', 'required'].includes(op.value))
           } else {
-            item.options = this.state.reqOptionsMutil
+            item.options = this.state.requireOptions
           }
         } else if (item.key === 'sqlType') {
           if (['prompt', 'exec'].includes(_opentype)) {
@@ -255,16 +234,16 @@
           _fieldval.intertype = this.state.interType
         } else if (item.key === 'Ot') {
           if (value === 'innerpage' || this.state.position === 'grid') {
-            item.options = this.state.reqOptionSgl
+            item.options = this.state.requireOptions.filter(op => ['requiredSgl'].includes(op.value))
             _fieldval.Ot = 'requiredSgl'
           } else if (['outerpage', 'blank', 'tab', 'popview'].includes(value)) {
-            item.options = this.state.reqOptions
+            item.options = this.state.requireOptions.filter(op => ['notRequired', 'requiredSgl'].includes(op.value))
             _fieldval.Ot = 'requiredSgl'
           } else if (value === 'excelIn') {
-            item.options = this.state.reqOptions
+            item.options = this.state.requireOptions.filter(op => ['notRequired', 'requiredSgl'].includes(op.value))
             _fieldval.Ot = 'notRequired'
           } else {
-            item.options = this.state.reqOptionsMutil
+            item.options = this.state.requireOptions
           }
         } else if (item.key === 'sqlType') {
           if (['prompt', 'exec'].includes(value)) {
@@ -282,6 +261,14 @@
         openType: value,
         formlist: _formlist
       }, () => {
+        if (value === 'excelIn') {
+          _fieldval.label = this.props.dict['header.form.excelIn']
+          _fieldval.class = 'border-dgreen'
+        } else if (value === 'excelOut') {
+          _fieldval.label = this.props.dict['header.form.excelOut']
+          _fieldval.class = 'dgreen'
+        }
+
         this.props.form.setFieldsValue(_fieldval)
       })
     } else if (key === 'position') {
@@ -292,13 +279,13 @@
         formlist: this.state.formlist.map(item => {
           if (item.key === 'Ot') {
             if (this.state.openType === 'innerpage' || value === 'grid') {
-              item.options = this.state.reqOptionSgl
+              item.options = this.state.requireOptions.filter(op => ['requiredSgl'].includes(op.value))
               _fieldval.Ot = 'requiredSgl'
             } else if (['outerpage', 'blank', 'tab', 'popview'].includes(this.state.openType)) {
-              item.options = this.state.reqOptions
+              item.options = this.state.requireOptions.filter(op => ['notRequired', 'requiredSgl'].includes(op.value))
               _fieldval.Ot = 'requiredSgl'
             } else {
-              item.options = this.state.reqOptionsMutil
+              item.options = this.state.requireOptions
             }
           }
           return item
@@ -347,11 +334,43 @@
           if (item.hidden) return item
 
           if (item.key === 'Ot' && value === 'print') {
-            item.options = this.state.reqOptionsMutil
+            item.options = this.state.requireOptions
           }
 
           return item
         })
+      })
+    } else if (key === 'sqlType') {
+      let _fieldval = {}
+      this.setState({
+        formlist: this.state.formlist.map(item => {
+          if (item.key === 'Ot' && value === 'insert') {
+            item.options = this.state.requireOptions.filter(op => ['notRequired', 'requiredSgl', 'required'].includes(op.value))
+          } else if (item.key === 'Ot') {
+            item.options = this.state.requireOptions
+          }
+          return item
+        })
+      }, () => {
+        if (value === 'insert') {
+          _fieldval.label = '娣诲姞'
+          _fieldval.class = 'green'
+          _fieldval.Ot = 'notRequired'
+        } else if (value === 'update') {
+          _fieldval.label = '淇敼'
+          _fieldval.class = 'purple'
+          _fieldval.Ot = 'requiredSgl'
+        } else if (value === 'audit') {
+          _fieldval.label = '瀹℃牳'
+          _fieldval.class = 'purple'
+          _fieldval.Ot = 'requiredSgl'
+        } else if (value === 'LogicDelete' || value === 'delete') {
+          _fieldval.label = '鍒犻櫎'
+          _fieldval.class = 'danger'
+          _fieldval.Ot = 'required'
+        }
+
+        this.props.form.setFieldsValue(_fieldval)
       })
     }
   }
@@ -359,6 +378,7 @@
   onChange = (e, key) => {
     const { openType } = this.state
     let value = e.target.value
+
     if (key === 'intertype') {
       let _options = null
       if (openType === 'excelOut') {
@@ -396,9 +416,15 @@
             item.readonly = false
           } else if (item.key === 'sysInterface') {
             item.initVal = 'false'
+          } else if (item.key === 'Ot') {
+            item.options = this.state.requireOptions
           }
           return item
         })
+      }, () => {
+        if (this.props.form.getFieldValue('sqlType') !== undefined) {
+          this.props.form.setFieldsValue({sqlType: ''})
+        }
       })
     } else if (key === 'sysInterface') {
       if (value === 'true') {
@@ -611,6 +637,12 @@
             if (values.funcType === 'print') {
               values.OpenType = values.execMode
             }
+          } else if (['pop', 'prompt', 'exec'].includes(values.OpenType) && values.verify) {
+            if (values.Ot === 'requiredOnce' && ['notRequired', 'requiredSgl', 'required'].includes(this.props.card.Ot)) {
+              values.verify.uniques = []
+            } else if (this.props.card.Ot === 'requiredOnce' && ['notRequired', 'requiredSgl', 'required'].includes(values.Ot)) {
+              values.verify.uniques = []
+            }
           }
 
           if (values.innerFunc === '' && values.sql === '') {

--
Gitblit v1.8.0