From c2580fb8de3bdaabb4179b0ce0fcd2fbac802441 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 01 三月 2023 00:49:14 +0800
Subject: [PATCH] 2023-03-01

---
 src/menu/components/share/actioncomponent/actionform/index.jsx |  162 ++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 115 insertions(+), 47 deletions(-)

diff --git a/src/menu/components/share/actioncomponent/actionform/index.jsx b/src/menu/components/share/actioncomponent/actionform/index.jsx
index a92b985..0beb228 100644
--- a/src/menu/components/share/actioncomponent/actionform/index.jsx
+++ b/src/menu/components/share/actioncomponent/actionform/index.jsx
@@ -6,6 +6,7 @@
 import { formRule } from '@/utils/option.js'
 
 import asyncComponent from '@/utils/asyncComponent'
+import KeyInterface from '@/components/keyInterface'
 import './index.scss'
 
 const { TextArea } = Input
@@ -16,8 +17,8 @@
   prompt: ['label', 'OpenType', 'intertype', 'Ot', 'show', 'swipe', 'icon', 'class', 'color', 'execSuccess', 'execError', 'syncComponent', 'switchTab', 'anchors', 'width', 'openmenu', 'refreshTab', 'position', 'tipTitle', 'hidden'],
   exec: ['label', 'OpenType', 'intertype', 'Ot', 'show', 'swipe', 'icon', 'class', 'color', 'execSuccess', 'execError', 'syncComponent', 'switchTab', 'anchors', 'width', 'openmenu', 'refreshTab', 'hidden'],
   excelIn: ['label', 'Ot', 'OpenType', 'intertype', 'show', 'icon', 'class', 'color', 'sheet', 'execSuccess', 'execError', 'syncComponent', 'switchTab', 'width', 'hidden'],
-  excelOut: ['label', 'OpenType', 'intertype', 'show', 'icon', 'class', 'color', 'execSuccess', 'execError', 'syncComponent', 'switchTab', 'pagination', 'search', 'width', 'hidden'],
-  popview: ['label', 'Ot', 'OpenType', 'show', 'icon', 'class', 'color', 'popClose', 'width', 'display', 'ratio', 'syncComponent', 'clickouter', 'hidden'],
+  excelOut: ['label', 'Ot', 'OpenType', 'intertype', 'show', 'icon', 'class', 'color', 'execSuccess', 'execError', 'syncComponent', 'switchTab', 'pagination', 'search', 'width', 'hidden'],
+  popview: ['label', 'Ot', 'OpenType', 'show', 'icon', 'class', 'color', 'popClose', 'width', 'display', 'ratio', 'syncComponent', 'clickouter', 'maskStyle', 'closeButton', 'hidden'],
   tab: ['label', 'Ot', 'OpenType', 'show', 'icon', 'class', 'color', 'linkmenu', 'width', 'hidden'],
   innerpage: ['label', 'Ot', 'OpenType', 'pageTemplate', 'show', 'swipe', 'icon', 'class', 'color', 'width', 'hidden'],
   funcbutton: ['label', 'OpenType', 'funcType', 'show', 'swipe', 'icon', 'class', 'color', 'width', 'hidden'],
@@ -26,7 +27,6 @@
 
 class ActionForm extends Component {
   static propTpyes = {
-    dict: PropTypes.object,      // 瀛楀吀椤�
     type: PropTypes.any,         // type涓�"card"鏃讹紝鍙彲閫夊崟琛屾垨涓嶉�夎
     setting: PropTypes.object,   // 椤甸潰璁剧疆
     formlist: PropTypes.any,     // 琛ㄥ崟淇℃伅
@@ -77,13 +77,13 @@
   record = {}
   
   UNSAFE_componentWillMount () {
-    const { type, dict } = this.props
+    const { type } = this.props
 
     let requireOptions = [
-      { value: 'notRequired', text: dict['header.form.notRequired'] },
-      { value: 'requiredSgl', text: dict['header.form.requiredSgl'] },
-      { value: 'required', text: dict['header.form.required'] },
-      { value: 'requiredOnce', text: dict['header.form.requiredOnce'] }
+      { value: 'notRequired', text: '涓嶉�夋嫨琛�' },
+      { value: 'requiredSgl', text: '閫夋嫨鍗曡' },
+      { value: 'required', text: '閫夋嫨澶氳' },
+      { value: 'requiredOnce', text: '澶氳鎷兼帴' }
     ]
 
     if (type === 'card') {
@@ -178,7 +178,7 @@
         reReadonly.interface = false
         reRequired.interface = true
       } else if (intertype === 'outer') {
-        shows.push('procMode', 'sysInterface', 'interface', 'proInterface', 'outerFunc', 'callbackType', 'output')
+        shows.push('procMode', 'sysInterface', 'outerFunc', 'callbackType', 'output')
         if (this.record.procMode === 'system') {
           shows.push('sql', 'sqlType')
         } else if (this.record.procMode === 'inner') {
@@ -194,9 +194,15 @@
         if (this.record.sysInterface === 'false') {
           reReadonly.interface = false
           reRequired.interface = true
-        } else {
+
+          shows.push('interface', 'proInterface')
+        } else if (this.record.sysInterface === 'true') {
           reReadonly.interface = true
           reRequired.interface = false
+
+          shows.push('interface')
+        } else if (this.record.sysInterface === 'external') {
+          shows.push('exInterface', 'exProInterface')
         }
       } else if (intertype === 'inner') {
         shows.push('innerFunc', 'output')
@@ -207,6 +213,9 @@
 
       if (Ot === 'required') {
         shows.push('progress')
+      }
+      if (Ot === 'required' && (intertype === 'inner' || intertype === 'system')) {
+        shows.push('execType')
       }
       if (this.record.openmenu && this.record.openmenu !== 'goback') {
         shows.push('open')
@@ -234,14 +243,16 @@
 
       if (this.record.formType === 'switch') {
         shows.push('field', 'size', 'openVal', 'closeVal', 'openText', 'closeText')
+      } else if (this.record.formType === 'radio') {
+        shows.push('field', 'checkType', 'openVal', 'closeVal')
       } else {
-        shows.push('field', 'openVal', 'closeVal')
+        shows.push('field')
       }
 
       reOptions.intertype = this.state.interTypeOptions.filter(item => item.value !== 'custom')
 
       if (intertype === 'outer') {
-        shows.push('procMode', 'sysInterface', 'interface', 'proInterface', 'outerFunc', 'callbackType')
+        shows.push('procMode', 'sysInterface', 'outerFunc', 'callbackType')
         if (this.record.procMode === 'system') {
           shows.push('sql', 'sqlType')
         } else if (this.record.procMode === 'inner') {
@@ -257,9 +268,15 @@
         if (this.record.sysInterface === 'false') {
           reReadonly.interface = false
           reRequired.interface = true
-        } else {
+
+          shows.push('interface', 'proInterface')
+        } else if (this.record.sysInterface === 'true') {
           reReadonly.interface = true
           reRequired.interface = false
+
+          shows.push('interface')
+        } else if (this.record.sysInterface === 'external') {
+          shows.push('exInterface', 'exProInterface')
         }
       } else if (intertype === 'inner') {
         shows.push('innerFunc')
@@ -288,16 +305,22 @@
       reOptions.Ot = requireOptions.filter(op => ['notRequired', 'requiredSgl'].includes(op.value))
 
       if (this.record.intertype === 'outer') {
-        shows.push('innerFunc', 'sysInterface', 'interface', 'proInterface', 'outerFunc', 'callbackFunc')
+        shows.push('innerFunc', 'sysInterface', 'outerFunc', 'callbackFunc')
         reRequired.innerFunc = false
         reRequired.callbackFunc = false
 
         if (this.record.sysInterface === 'false') {
           reReadonly.interface = false
           reRequired.interface = true
-        } else {
+
+          shows.push('interface', 'proInterface')
+        } else if (this.record.sysInterface === 'true') {
           reReadonly.interface = true
           reRequired.interface = false
+
+          shows.push('interface')
+        } else if (this.record.sysInterface === 'external') {
+          shows.push('exInterface', 'exProInterface')
         }
       } else if (this.record.intertype === 'inner') {
         shows.push('innerFunc')
@@ -308,17 +331,24 @@
       }
     } else if (openType === 'excelOut') {
       reOptions.intertype = this.state.interTypeOptions.filter(op => op.value !== 'custom')
+      reOptions.Ot = requireOptions.filter(op => ['notRequired', 'requiredOnce'].includes(op.value))
 
       if (this.record.intertype === 'outer') {
-        shows.push('innerFunc', 'sysInterface', 'interface', 'proInterface', 'outerFunc')
+        shows.push('innerFunc', 'sysInterface', 'outerFunc')
         reRequired.innerFunc = false
 
         if (this.record.sysInterface === 'false') {
           reReadonly.interface = false
           reRequired.interface = true
-        } else {
+
+          shows.push('interface', 'proInterface')
+        } else if (this.record.sysInterface === 'true') {
           reReadonly.interface = true
           reRequired.interface = false
+
+          shows.push('interface')
+        } else if (this.record.sysInterface === 'external') {
+          shows.push('exInterface', 'exProInterface')
         }
       } else if (this.record.intertype === 'inner') {
         shows.push('innerFunc')
@@ -327,10 +357,15 @@
       if (this.record.execSuccess === 'grid' || this.record.execError === 'grid') {
         shows.push('resetPageIndex')
       }
+      if (this.record.Ot !== 'notRequired' && this.record.Ot !== 'requiredOnce') {
+        this.record.Ot = 'notRequired'
+      }
     } else if (openType === 'popview') {
       reOptions.Ot = requireOptions.filter(op => ['notRequired', 'requiredSgl'].includes(op.value))
 
-      if (this.record.display === 'drawer') {
+      if (appType === 'mob') {
+        shows.push('placement')
+      } else if (this.record.display === 'drawer') {
         shows.push('placement')
       }
       if (this.record.popClose === 'grid') {
@@ -370,16 +405,22 @@
       if (_funcType === 'print') {
         shows.push('execMode', 'intertype', 'Ot', 'execSuccess', 'execError')
         if (this.record.intertype === 'outer') {
-          shows.push('innerFunc', 'sysInterface', 'interface', 'proInterface', 'outerFunc', 'callbackFunc')
+          shows.push('innerFunc', 'sysInterface', 'outerFunc', 'callbackFunc')
           reRequired.innerFunc = false
           reRequired.callbackFunc = false
 
           if (this.record.sysInterface === 'false') {
             reReadonly.interface = false
             reRequired.interface = true
-          } else {
+  
+            shows.push('interface', 'proInterface')
+          } else if (this.record.sysInterface === 'true') {
             reReadonly.interface = true
             reRequired.interface = false
+  
+            shows.push('interface')
+          } else if (this.record.sysInterface === 'external') {
+            shows.push('exInterface', 'exProInterface')
           }
         } else if (this.record.intertype === 'inner') {
           shows.push('innerFunc')
@@ -387,6 +428,9 @@
         }
         if (this.record.execSuccess === 'grid' || this.record.execError === 'grid') {
           shows.push('resetPageIndex')
+        }
+        if (this.record.execMode === 'pop' || this.record.execMode === 'prompt') {
+          shows.push('position')
         }
       } else if (_funcType === 'mkBinding' || _funcType === 'mkUnBinding') {
         shows.push('execSuccess', 'execError')
@@ -418,12 +462,18 @@
         shows.push('innerFunc', 'Ot', 'execSuccess', 'execError', 'urlkey')
       } else if (_funcType === 'pay') {
         shows.push('payType', 'Ot', 'execSuccess', 'execError', 'syncComponent', 'openmenu')
+        if (this.record.openmenu && this.record.openmenu !== 'goback') {
+          shows.push('open')
+        }
+        reOptions.Ot = requireOptions.filter(op => ['requiredSgl'].includes(op.value))
+      } else if (_funcType === 'refund') {
+        shows.push('Ot', 'execSuccess', 'execError', 'syncComponent', 'openmenu')
         reOptions.Ot = requireOptions.filter(op => ['requiredSgl'].includes(op.value))
       }
     }
     
     if (appType === 'mob') {
-      if (Ot !== 'notRequired') {
+      if (Ot !== 'notRequired' && openType !== 'excelOut') {
         shows.push('control')
         reOptions.control = [
           { value: '', text: '鏃�' },
@@ -438,7 +488,7 @@
         }
       }
     } else {
-      if (Ot !== 'notRequired') {
+      if (Ot !== 'notRequired' && openType !== 'excelOut') {
         reOptions.control = [
           { value: '', text: '鏃�' },
           { value: 'disabled', text: '绂佺敤' },
@@ -511,21 +561,21 @@
       } else if (value === 'excelIn') {
         _fieldval.intertype = 'system'
         _fieldval.Ot = 'notRequired'
-        
-        _fieldval.label = this.props.dict['model.form.excelIn']
+        _fieldval.execSuccess = 'grid'
+        _fieldval.label = '瀵煎叆Excel'
         _fieldval.class = 'dgreen'
         this.record.Ot = 'notRequired'
-        this.record.label = this.props.dict['model.form.excelIn']
+        this.record.label = '瀵煎叆Excel'
         this.record.class = 'dgreen'
-       
-  
+        this.record.execSuccess = 'grid'
       } else if (value === 'excelOut') {
         _fieldval.intertype = 'system'
-        _fieldval.label = this.props.dict['model.form.excelOut']
+        _fieldval.label = '瀵煎嚭Excel'
         _fieldval.class = 'dgreen'
         _fieldval.execSuccess = 'never'
-        this.record.Ot = 'notRequired'
-        this.record.label = this.props.dict['model.form.excelOut']
+        _fieldval.Ot = 'requiredOnce'
+        this.record.Ot = 'requiredOnce'
+        this.record.label = '瀵煎嚭Excel'
         this.record.class = 'dgreen'
         this.record.execSuccess = 'never'
   
@@ -550,10 +600,10 @@
   
       }
       if (value === 'excelIn') {
-        _fieldval.label = this.props.dict['model.form.excelIn']
+        _fieldval.label = '瀵煎叆Excel'
         _fieldval.class = 'dgreen'
       } else if (value === 'excelOut') {
-        _fieldval.label = this.props.dict['model.form.excelOut']
+        _fieldval.label = '瀵煎嚭Excel'
         _fieldval.class = 'dgreen'
         _fieldval.control = ''
         this.record.control = ''
@@ -683,7 +733,6 @@
   }
 
   getFields() {
-    const { dict } = this.props
     const { getFieldDecorator } = this.props.form
     const fields = []
 
@@ -706,7 +755,7 @@
       }
       if (item.type === 'text') {
         rules = [
-          { required: item.required, message: dict['form.required.input'] + item.label + '!' }
+          { required: item.required, message: '璇疯緭鍏�' + item.label + '!' }
         ]
   
         if (item.key === 'innerFunc') {
@@ -714,6 +763,11 @@
           let _patten = new RegExp(str + formRule.func.innerPattern + '$', 'g')
           rules.push(
             { pattern: _patten, message: formRule.func.innerMessage },
+            { max: formRule.func.max, message: formRule.func.maxMessage }
+          )
+        } else if (item.key === 'sql' || item.key === 'sheet') {
+          rules.push(
+            { pattern: /^[a-zA-Z0-9@_]+$/, message: '琛ㄥ悕鍙彲浣跨敤瀛楁瘝銆佹暟瀛椾互鍙奯' },
             { max: formRule.func.max, message: formRule.func.maxMessage }
           )
         } else if (item.key === 'outerFunc' || item.key === 'callbackFunc') {
@@ -746,13 +800,13 @@
         content = <Input placeholder="" autoComplete="off" onPressEnter={this.handleSubmit} />
       } else if (item.type === 'number') {
         rules = [
-          { required: item.required, message: dict['form.required.input'] + item.label + '!' }
+          { required: item.required, message: '璇疯緭鍏�' + item.label + '!' }
         ]
 
         content = <InputNumber min={item.min} max={item.max} precision={item.precision} onPressEnter={this.handleSubmit}/>
       } else if (item.type === 'select') {
         rules = [
-          { required: item.required, message: dict['form.required.select'] + item.label + '!' }
+          { required: item.required, message: '璇烽�夋嫨' + item.label + '!' }
         ]
 
         if (item.extendName) {
@@ -765,7 +819,7 @@
             getPopupContainer={() => document.getElementById('winter')}
           >
             {item.options.map((option, index) =>
-              <Select.Option key={index} extend={option[item.extendName] || ''} value={(option.value || option.field)}>
+              <Select.Option key={index} title={option.text || option.label} extend={option[item.extendName] || ''} value={(option.value || option.field)}>
                 {(option.text || option.label)}
               </Select.Option>
             )}
@@ -779,7 +833,7 @@
             getPopupContainer={() => document.getElementById('winter')}
           >
             {item.options.map((option, index) =>
-              <Select.Option key={index} value={(option.value || option.field)}>
+              <Select.Option key={index} title={option.text || option.label} value={(option.value || option.field)}>
                 {(option.text || option.label)}
               </Select.Option>
             )}
@@ -787,7 +841,7 @@
         }
       } else if (item.type === 'radio') {
         rules = [
-          { required: item.required, message: dict['form.required.select'] + item.label + '!' }
+          { required: item.required, message: '璇烽�夋嫨' + item.label + '!' }
         ]
 
         content = <Radio.Group onChange={(e) => {this.optionChange(item.key, e.target.value)}}>
@@ -795,7 +849,7 @@
         </Radio.Group>
       } else if (item.type === 'checkbox') {
         rules = [
-          { required: item.required, message: dict['form.required.select'] + item.label + '!' }
+          { required: item.required, message: '璇烽�夋嫨' + item.label + '!' }
         ]
 
         content = <Checkbox.Group>
@@ -804,13 +858,13 @@
       } else if (item.type === 'cascader') {
         initVal = item.initVal || []
         rules = [
-          { required: item.required, message: dict['form.required.select'] + item.label + '!' }
+          { required: item.required, message: '璇烽�夋嫨' + item.label + '!' }
         ]
 
         content = <Cascader options={item.options || []} expandTrigger="hover" placeholder=""/>
       } else if (item.type === 'icon') {
         rules = [
-          { required: item.required, message: dict['form.required.select'] + item.label + '!' }
+          { required: item.required, message: '璇烽�夋嫨' + item.label + '!' }
         ]
 
         content = <MkEditIcon options={['edit', 'hint', 'direction', 'normal', 'data']} allowClear/>
@@ -818,10 +872,18 @@
         span = 24
         className = 'textarea'
         rules = [
-          { required: item.readonly ? false : item.required, message: dict['form.required.input'] + item.label + '!' }
+          { required: item.readonly ? false : item.required, message: '璇疯緭鍏�' + item.label + '!' }
         ]
 
         content = <TextArea rows={2} readOnly={item.readonly}/>
+      } else if (item.type === 'keyinterface') {
+        span = 24
+        className = 'textarea'
+        rules = [
+          { required: item.required, message: '璇疯緭鍏�' + item.label + '!' }
+        ]
+
+        content = <KeyInterface type={item.key === 'exInterface' ? 'develop' : 'product'}/>
       }
 
       fields.push(
@@ -863,14 +925,20 @@
           values.uuid = card.uuid
           values.verify = card.verify || null
           values.modal = card.modal || null
+          values.config = card.config || null
 
           if (values.OpenType === 'form') {
-            if (/^(0|[1-9]\d*)$/.test(values.openVal) && /^(0|[1-9]\d*)$/.test(values.closeVal)) {
-              values.openVal = +values.openVal
-              values.closeVal = +values.closeVal
+            if (values.formType !== 'scan') {
+              if (/^(0|[1-9]\d*)$/.test(values.openVal) && /^(0|[1-9]\d*)$/.test(values.closeVal)) {
+                values.openVal = +values.openVal
+                values.closeVal = +values.closeVal
+              }
+            } else {
+              values.show = 'icon'
+              values.icon = 'scan'
             }
           } else if (values.OpenType === 'excelOut') {
-            values.Ot = 'notRequired'
+            values.Ot = values.Ot || 'notRequired'
           } else if (['pop', 'prompt', 'exec'].includes(values.OpenType) && values.verify) {
             if ((values.Ot === 'requiredOnce' || card.Ot === 'requiredOnce') && card.Ot !== values.Ot) {
               values.verify.uniques = []

--
Gitblit v1.8.0