From f895e8af9e6a393f71fec0dc26fdf1b9b6616cb4 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 11 十二月 2020 18:53:04 +0800
Subject: [PATCH] 2020-12-11

---
 src/templates/zshare/modalform/index.jsx |   47 +++++++++++++++++++++++++++++++++++------------
 1 files changed, 35 insertions(+), 12 deletions(-)

diff --git a/src/templates/zshare/modalform/index.jsx b/src/templates/zshare/modalform/index.jsx
index 58d33b1..eb7b333 100644
--- a/src/templates/zshare/modalform/index.jsx
+++ b/src/templates/zshare/modalform/index.jsx
@@ -14,14 +14,14 @@
 const { TextArea } = Input
 
 const modalTypeOptions = {
-  text: ['initval', 'readonly', 'required', 'hidden', 'readin', 'fieldlength', 'regular', 'interception', 'entireLine', 'tooltip'],
-  number: ['initval', 'readonly', 'hidden', 'decimal', 'min', 'max', 'readin', 'entireLine', 'tooltip'],
-  select: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'setAll', 'linkSubField', 'entireLine', 'tooltip', 'emptyText'],
+  text: ['initval', 'readonly', 'required', 'hidden', 'readin', 'fieldlength', 'regular', 'interception', 'entireLine', 'tooltip', 'enter'],
+  number: ['initval', 'readonly', 'hidden', 'decimal', 'min', 'max', 'readin', 'entireLine', 'tooltip', 'enter'],
+  select: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'setAll', 'linkSubField', 'entireLine', 'tooltip', 'emptyText', 'enter'],
   checkbox: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'entireLine', 'tooltip'],
   radio: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'linkSubField', 'entireLine', 'tooltip', 'setAll', 'emptyText'],
   checkcard: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'linkSubField', 'fieldlength', 'display', 'tooltip', 'width', 'multiple'],
   multiselect: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'fieldlength', 'entireLine', 'tooltip'],
-  link: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'setAll', 'linkField', 'entireLine', 'tooltip', 'emptyText'],
+  link: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'setAll', 'linkField', 'entireLine', 'tooltip', 'emptyText', 'enter'],
   fileupload: ['readonly', 'required', 'readin', 'fieldlength', 'maxfile', 'fileType', 'entireLine', 'tooltip'],
   switch: ['initval', 'openVal', 'closeVal', 'readonly', 'hidden', 'readin', 'entireLine', 'tooltip'],
   date: ['initval', 'readonly', 'required', 'hidden', 'readin', 'entireLine', 'tooltip'],
@@ -47,6 +47,7 @@
     resourceType: null,
     supField: '',
     display: 'text',
+    enter: '',
     cFields: [],
     formlist: null,
     linkSubFields: null
@@ -59,6 +60,7 @@
     let resourceType = ''
     let supField = ''
     let display = ''
+    let enter = ''
     let cFields = []
     let linkSubFields = []
 
@@ -67,6 +69,8 @@
         type = cell.initVal
       } else if (cell.key === 'display') {
         display = cell.initVal
+      } else if (cell.key === 'enter') {
+        enter = cell.initVal
       } else if (cell.key === 'fields') {
         cFields = cell.initVal
       } else if (cell.key === 'resourceType') {
@@ -86,9 +90,10 @@
       }
     })
     
-    let _options = this.getOptions(type, resourceType, supField, display)
+    let _options = this.getOptions(type, resourceType, supField, display, enter)
 
     this.setState({
+      enter: enter,
       openType: type,
       supField: supField,
       display: display,
@@ -136,7 +141,7 @@
     }
   }
 
-  getOptions = (type, resourceType, supField, display) => {
+  getOptions = (type, resourceType, supField, display, enter) => {
     let _options = ['label', 'field', 'type', 'blacklist', 'writein', ...fromJS(modalTypeOptions[type]).toJS()]
 
     if (type === 'hint') {
@@ -163,6 +168,12 @@
       }
     }
 
+    if (type === 'text' || type === 'number' || type === 'select' || type === 'link') {
+      if (enter === 'tab' || enter === 'sub') {
+        _options.push('tabField')
+      }
+    }
+
     if (type !== 'funcvar' && type !== 'linkMain') {
       if (supField) {
         _options.push('supField', 'supvalue')
@@ -176,7 +187,7 @@
 
   openTypeChange = (key, value) => {
     if (key === 'type') {
-      let _options = this.getOptions(value, this.state.resourceType, this.state.supField, this.state.display)
+      let _options = this.getOptions(value, this.state.resourceType, this.state.supField, this.state.display, this.state.enter)
       let fieldValue = {}
       
       this.setState({
@@ -222,6 +233,8 @@
             if (form.show) {
               fieldValue.resourceType = form.initVal
             }
+          } else if (form.key === 'enter') {
+            form.initVal = this.state.enter
           } else if (form.key === 'linkSubField') {
             form.initVal = this.state.linkSubFields.map(_field => _field.field)
 
@@ -282,7 +295,7 @@
     const { openType } = this.state
     let value = e.target.value
     if (key === 'resourceType') {
-      let _options = this.getOptions(openType, value, this.state.supField, this.state.display)
+      let _options = this.getOptions(openType, value, this.state.supField, this.state.display, this.state.enter)
       
       this.setState({
         resourceType: value,
@@ -292,10 +305,20 @@
         })
       })
     } else if (key === 'display') {
-      let _options = this.getOptions(openType, this.state.resourceType, this.state.supField, value)
+      let _options = this.getOptions(openType, this.state.resourceType, this.state.supField, value, this.state.enter)
       
       this.setState({
         display: value,
+        formlist: this.state.formlist.map(form => {
+          form.show = _options.includes(form.key)
+          return form
+        })
+      })
+    } else if (key === 'enter') {
+      let _options = this.getOptions(openType, this.state.resourceType, this.state.supField, this.state.display, value)
+      
+      this.setState({
+        enter: value,
         formlist: this.state.formlist.map(form => {
           form.show = _options.includes(form.key)
           return form
@@ -488,9 +511,9 @@
                   onChange={(value) => {this.openTypeChange(item.key, value)}}
                   getPopupContainer={() => document.getElementById('modal-fields-form-box')}
                 >
-                  {item.options.map(option =>
-                    <Select.Option id={option.value} title={option.text} key={option.value} value={option.value}>
-                      {item.key === 'icon' && <Icon type={option.text} />} {option.text}
+                  {item.options.map((option, i) =>
+                    <Select.Option key={`${i}`} value={option.value || option.field}>
+                      {item.key === 'icon' && <Icon type={option.text} />} {option.text || option.label}
                     </Select.Option>
                   )}
                 </Select>

--
Gitblit v1.8.0