From d1d9dc29318cb2a9a466246adff7b78fe36cf623 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期六, 11 三月 2023 17:51:29 +0800
Subject: [PATCH] Merge branch 'master' into positec

---
 src/tabviews/zshare/mutilform/index.jsx |   67 ++++++++++++++++++++++++++++-----
 1 files changed, 57 insertions(+), 10 deletions(-)

diff --git a/src/tabviews/zshare/mutilform/index.jsx b/src/tabviews/zshare/mutilform/index.jsx
index b68d21f..a1ea659 100644
--- a/src/tabviews/zshare/mutilform/index.jsx
+++ b/src/tabviews/zshare/mutilform/index.jsx
@@ -27,6 +27,7 @@
 const MKColor = asyncComponent(() => import('./mkColor'))
 const MkFormula = asyncComponent(() => import('./mkFormula'))
 const MkCascader = asyncComponent(() => import('./mkCascader'))
+const MkVercode = asyncComponent(() => import('./mkVercode'))
 const MKEditor = asyncComponent(() => import('@/components/editor'))
 
 class MainSearch extends Component {
@@ -41,7 +42,10 @@
 
   state = {
     formlist: [],    // 琛ㄥ崟椤�
-    ID: ''
+    ID: '',
+    send_type: '',
+    timestamp: '',
+    n_id: ''
   }
 
   record = {}
@@ -100,6 +104,12 @@
         delete item.style.marginRight
       }
 
+      if (item.type === 'split' && item.splitctrl) {
+        if (data.hasOwnProperty(item.splitctrl.toLowerCase()) && data[item.splitctrl.toLowerCase()] === '') {
+          return false
+        }
+      }
+
       if (item.type === 'split' || item.type === 'formula') return true
       if (item.type === 'hint') {
         if (item.field && data[item.field.toLowerCase()]) {
@@ -114,7 +124,7 @@
         item.precision = 'second'
       }
 
-      if (!item.field || !['text', 'number', 'switch', 'rate', 'select', 'link', 'cascader', 'linkMain', 'funcvar', 'date', 'datemonth', 'radio', 'checkbox', 'checkcard', 'fileupload', 'textarea', 'multiselect', 'brafteditor', 'color'].includes(item.type)) return false
+      if (!item.field || !['text', 'number', 'switch', 'rate', 'select', 'link', 'cascader', 'linkMain', 'funcvar', 'date', 'datemonth', 'radio', 'checkbox', 'checkcard', 'fileupload', 'textarea', 'multiselect', 'brafteditor', 'color', 'vercode'].includes(item.type)) return false
 
       if (/^\s+$/.test(item.label)) {
         item.style = item.style || {}
@@ -161,6 +171,10 @@
           })
         }
         item.oriOptions = fromJS(item.options).toJS()
+
+        if (item.empty === 'hidden' && item.oriOptions.length === 0) {
+          item.hidden = true
+        }
       }
 
       let newval = '$empty'
@@ -351,7 +365,7 @@
             message: formRule.input.formMessage.replace('@max', item.fieldlength)
           }
         ]
-      } else if (item.type === 'linkMain') {
+      } else if (item.type === 'linkMain' || item.type === 'vercode') {
         item.rules = [
           {
             required: item.required === 'true',
@@ -540,7 +554,7 @@
     let cache = action.setting.cache !== 'false'
     let debug = window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')
 
-    let _sql = `Declare @mk_organization nvarchar(512)  select @mk_organization='${sessionStorage.getItem('organization') || ''}'\n`
+    let _sql = `Declare @mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@mk_user_type nvarchar(20)  select @mk_departmentcode='${sessionStorage.getItem('departmentcode') || ''}',@mk_organization='${sessionStorage.getItem('organization') || ''}',@mk_user_type='${sessionStorage.getItem('mk_user_type') || ''}'\n`
     let _sso = _sql
 
     deForms.forEach(item => {
@@ -662,7 +676,7 @@
   improveSimpleActionForm = (deForms) => {
     let cache = this.props.action.setting.cache !== 'false'
     let debug = window.GLOB.debugger === true || (window.debugger === true && options.sysType !== 'cloud')
-    let _sql = `Declare @mk_organization nvarchar(512)  select @mk_organization='${sessionStorage.getItem('organization') || ''}'\n`
+    let _sql = `Declare @mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@mk_user_type nvarchar(20)  select @mk_departmentcode='${sessionStorage.getItem('departmentcode') || ''}',@mk_organization='${sessionStorage.getItem('organization') || ''}',@mk_user_type='${sessionStorage.getItem('mk_user_type') || ''}'\n`
 
     let deffers = deForms.map((form, index) => {
       let param = {
@@ -806,6 +820,10 @@
             })
           }
         }
+
+        if (item.empty === 'hidden' && item.oriOptions.length > 0) {
+          item.hidden = false
+        }
       }
       
       return item
@@ -897,7 +915,6 @@
 
     formlist.forEach((item, index) => {
       if (item.hidden) return
-      if (item.empty === 'hidden' && item.options.length === 0) return
 
       if (item.type === 'split') {
         fields.push(
@@ -957,6 +974,8 @@
           content = (<MKTextArea config={item} onChange={(val, defer) => !defer && this.recordChange({[item.field]: val})}/>)
         } else if (item.type === 'rate') {
           content = (<Rate count={item.rateCount} disabled={item.readonly} style={{color: item.color || '#fadb14'}} onChange={(val) => this.recordChange({[item.field]: val})} character={item.character ? <MkIcon type={item.character}/> : <StarFilled />} allowHalf={item.allowHalf}/>)
+        } else if (item.type === 'vercode') {
+          content = (<MkVercode config={item} record={this.record} onSend={(send_type, timestamp, n_id) => this.setState({send_type, timestamp, n_id})} onChange={(val) => this.recordChange({[item.field]: val})} onSubmit={this.props.inputSubmit}/>)
         } else if (item.type === 'brafteditor') {
           content = (<MKEditor config={item} onChange={(val) => this.recordChange({[item.field]: val})}/>)
           label = item.hidelabel !== 'true' ? label : ''
@@ -988,7 +1007,7 @@
   }
 
   handleConfirm = () => {
-    const { formlist } = this.state
+    const { formlist, send_type, timestamp, n_id } = this.state
 
     // 琛ㄥ崟鎻愪氦鏃舵鏌ヨ緭鍏ュ�兼槸鍚︽纭�
     return new Promise((resolve, reject) => {
@@ -997,7 +1016,7 @@
           reject(err)
           return
         }
-        let search = []
+        let forms = []
         let record = {...this.record, ...values}
 
         formlist.forEach(item => {
@@ -1039,12 +1058,40 @@
             if (item.declareType === 'nvarchar(50)') {
               _item.type = 'text'
             }
+          } else if (item.type === 'vercode') {
+            _item.type = 'text'
+            forms.push({
+              type: 'text',
+              readin: false,
+              writein: false,
+              fieldlen: 50,
+              key: 'mk_timestamp',
+              value: timestamp || ''
+            })
+
+            forms.push({
+              type: 'text',
+              readin: false,
+              writein: false,
+              fieldlen: 50,
+              key: 'mk_send_type',
+              value: send_type || ''
+            })
+
+            forms.push({
+              type: 'text',
+              readin: false,
+              writein: false,
+              fieldlen: 50,
+              key: 'mk_n_id',
+              value: n_id || ''
+            })
           }
     
-          search.push(_item)
+          forms.push(_item)
         })
 
-        resolve(search)
+        resolve(forms)
       })
     })
   }

--
Gitblit v1.8.0