From 1da6506bf58270bacc2a4345002c6b082835580e Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 21 十月 2021 23:17:08 +0800
Subject: [PATCH] 2021-10-21

---
 src/tabviews/zshare/mutilform/index.jsx |   56 ++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 34 insertions(+), 22 deletions(-)

diff --git a/src/tabviews/zshare/mutilform/index.jsx b/src/tabviews/zshare/mutilform/index.jsx
index 7006e7b..c855e56 100644
--- a/src/tabviews/zshare/mutilform/index.jsx
+++ b/src/tabviews/zshare/mutilform/index.jsx
@@ -52,6 +52,7 @@
     let record = {}
     let formlist = fromJS(action.fields).toJS()
     let fieldMap = new Map()
+    let check = action.setting.formType === 'check'
 
     formlist = formlist.filter(item => {
       if (item.supField && item.supvalue) { // 澶氬眰琛ㄥ崟鎺у埗
@@ -75,13 +76,15 @@
       if (!item.field || !['text', 'number', 'switch', 'select', 'link', 'linkMain', 'funcvar', 'date', 'datemonth', 'datetime', 'radio', 'checkbox', 'checkcard', 'fileupload', 'textarea', 'multiselect', 'brafteditor', 'color'].includes(item.type)) return false
 
       // 鏁版嵁鑷姩濉厖
-      item.readin = item.readin !== 'false'
-      item.readonly = item.readonly === 'true'
+      let readin = item.readin !== 'false'
+      item.readin = item.readin !== 'false' && item.readin !== 'top'
+      item.readonly = check || item.readonly === 'true'
       item.writein = item.writein !== 'false'
       item.hidden = item.hidden === 'true'
       item.fieldlength = item.fieldlength || 50
 
       if (item.type === 'funcvar') {
+        readin = false
         item.readin = false
         item.hidden = true
       } else if (item.type === 'number') {
@@ -110,7 +113,7 @@
 
       let newval = '$empty'
 
-      if (item.readin && data && data.hasOwnProperty(item.field)) {
+      if (readin && data && data.hasOwnProperty(item.field)) {
         newval = data[item.field]
       }
       if (item.type === 'linkMain') {
@@ -324,7 +327,7 @@
       }
 
       // 涓嬬骇琛ㄥ崟鎺у埗-瀛楁鍐欏叆
-      if ((['select', 'radio'].includes(item.type) || (item.type === 'checkcard' && item.multiple !== 'true')) && item.linkSubField) {
+      if ((['select', 'radio', 'link'].includes(item.type) || (item.type === 'checkcard' && item.multiple !== 'true')) && item.linkSubField) {
         item.subFields = []
         item.linkSubField.forEach(m => {
           let n = fieldMap.get(m)
@@ -488,7 +491,7 @@
    * @description 娴嬭瘯绯荤粺鑾峰彇涓嬫媺琛ㄥ崟閫夐」淇℃伅
    */
   improveSimpleActionForm = (deForms) => {
-    let deffers = deForms.map(form => {
+    let deffers = deForms.map((form, index) => {
       let param = {
         func: 'sPC_Get_SelectedList',
         LText: form.data_sql,
@@ -502,16 +505,18 @@
   
       return (
         new Promise(resolve => {
-          Api.getSystemCacheConfig(param).then(res => {
-            if (!res.status) {
-              notification.warning({
-                top: 92,
-                message: res.message,
-                duration: 5
-              })
-            }
-            resolve(res)
-          })
+          setTimeout(() => {
+            Api.getSystemCacheConfig(param).then(res => {
+              if (!res.status) {
+                notification.warning({
+                  top: 92,
+                  message: res.message,
+                  duration: 5
+                })
+              }
+              resolve(res)
+            })
+          }, index * 30)
         })
       )
     })
@@ -532,7 +537,7 @@
   }
 
   resetFormList = (result) => {
-    let _formlist = this.state.formlist.map(item => {
+    let _formlist = fromJS(this.state.formlist).toJS().map(item => {
       if (['select', 'link', 'radio', 'checkbox', 'checkcard', 'multiselect'].includes(item.type) && result[item.field] && result[item.field].length > 0) {
         let options = []
         result[item.field].forEach(cell => {
@@ -549,10 +554,15 @@
   
           if (item.type === 'link') {
             _cell.ParentID = cell[item.linkField] === undefined ? '' : cell[item.linkField]
-          } else if (item.subFields) {
+          }
+          if (item.subFields) {
             item.subFields.forEach(m => {
-              _cell[m.field] = (cell[m.field] || cell[m.field] === 0) ? cell[m.field] : ''
+              _cell[m.field] = cell[m.field] === undefined ? '' : cell[m.field]
             })
+          }
+
+          if (item.disableField && cell[item.disableField] && /^true$/ig.test(cell[item.disableField])) {
+            _cell.$disabled = true
           }
   
           options.push(_cell)
@@ -672,7 +682,7 @@
         } else if (item.type === 'color') {
           content = (<MKColor config={item} onChange={(val) => this.recordChange({[item.field]: val})}/>)
         } else if (item.type === 'checkcard') {
-          className = "checkcard"
+          className = 'checkcard'
           content = (<MKCheckCard config={item} onChange={(val, other) => this.recordChange({[item.field]: val, ...other}, item)}/>)
         } else if (item.type === 'switch') {
           content = (<MKSwitch config={item} onChange={(val) => this.recordChange({[item.field]: val})}/>)
@@ -683,6 +693,8 @@
         } else if (item.type === 'date' || item.type === 'datemonth' || item.type === 'datetime') {
           content = (<MKDatePicker config={item} onChange={(val) => this.recordChange({[item.field]: val})} />)
         } else if (item.type === 'fileupload') {
+          className = item.readonly ? 'readonly' : ''
+          className += item.fileType === 'picture-card' ? ' file-upload' : ''
           content = (<MKFileUpload config={item} onChange={(val) => this.recordChange({[item.field]: val})} />)
         } else if (item.type === 'textarea') {
           content = (<MKTextArea config={item} onChange={(val, defer) => !defer && this.recordChange({[item.field]: val})}/>)
@@ -744,13 +756,13 @@
     
           if (item.type === 'funcvar') {
             _item.value = ''
-          } else if (_item.value && (item.type === 'text' || item.type === 'textarea' || item.type === 'linkMain')) {
+          } else if (_item.value && (item.type === 'text' || item.type === 'textarea' || item.type === 'linkMain') && typeof(_item.value) === 'string') {
             _item.value = _item.value.replace(/\t*|\v*/g, '')       // 鍘婚櫎鍒惰〃绗�
     
             if (item.interception === 'true') {           // 鍘婚櫎棣栧熬绌烘牸
               _item.value = _item.value.replace(/(^\s*|\s*$)/g, '')
             }
-            if (item.type === 'text' && typeof(_item.value) === 'string') { // 鐗规畩瀛楁鏇挎崲
+            if (item.type === 'text') { // 鐗规畩瀛楁鏇挎崲
               _item.value = _item.value.replace(/^(\s*)@appkey@(\s*)$/ig, window.GLOB.appkey)
               _item.value = _item.value.replace(/^(\s*)@SessionUid@(\s*)$/ig, (localStorage.getItem('SessionUid') || ''))
               _item.value = _item.value.replace(/^(\s*)@bid@(\s*)$/ig, (this.props.BID || ''))
@@ -778,7 +790,7 @@
     }
 
     return (
-      <Form className={'main-form-field ' + _align} id="main-form-box">
+      <Form className={'main-form-field ' + _align}>
         <Row gutter={24}>{this.getFields()}</Row>
       </Form>
     )

--
Gitblit v1.8.0