From f3d4db769ba9b51b799d981511a710fd443d0e08 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 21 四月 2025 12:18:03 +0800
Subject: [PATCH] Merge branch 'master' into positec

---
 src/components/normalform/modalform/index.jsx |   40 +++++++++++++++++++++++++++++++++++++---
 1 files changed, 37 insertions(+), 3 deletions(-)

diff --git a/src/components/normalform/modalform/index.jsx b/src/components/normalform/modalform/index.jsx
index 59a1ea6..5b1cb47 100644
--- a/src/components/normalform/modalform/index.jsx
+++ b/src/components/normalform/modalform/index.jsx
@@ -22,6 +22,7 @@
 // const MKColor = asyncComponent(() => import('@/tabviews/zshare/mutilform/mkColor'))
 const MkEditIcon = asyncComponent(() => import('@/components/mkIcon'))
 const SourceComponent = asyncComponent(() => import('@/menu/components/share/sourcecomponent'))
+const CodeMirror = asyncComponent(() => import('@/templates/zshare/codemirror'))
 
 class ModalForm extends Component {
   static propTpyes = {
@@ -132,10 +133,11 @@
 
         let cell = fieldMap.get(item.field)
 
-        if (cell.hidden) return
+        cell.$ctrls = cell.$ctrls || []
+        cell.$ctrls.push(key)
 
-        if (cell.skip && supItem.forbid) { // 涓婄骇琛ㄥ崟绂佺敤鏃讹紝姝よ〃鍗曚笉鍙楁帶鍒�
-
+        if (cell.hidden) {
+          
         } else if (supItem.hidden) {
           cell.hidden = true
         } else if (item.notNull) {
@@ -161,6 +163,10 @@
 
     formlist = formlist.map(cell => {
       let item = fieldMap.get(cell.field)
+
+      if (item.$ctrls && item.$ctrls.length === 1) {
+        delete item.$ctrls
+      }
 
       if (item.linkField) {
         let supInitVal = fieldMap.get(item.linkField).initval || ''
@@ -228,6 +234,32 @@
             }
           } else {
             m.hidden = !cell.values.includes(val)
+          }
+
+          if (!m.hidden && m.$ctrls) {
+            m.$ctrls.forEach(n => {
+              if (n === current.field || m.hidden) return
+
+              let oth = map.get(n)
+              let _val = this.record[n]
+
+              if (_val && JSON.stringify(_val) === '[]') {
+                _val = ''
+              }
+
+              let p = oth.controlFields.filter(q => q.field === m.field)[0]
+
+              if (oth.hidden || (p.notNull && !_val)) {
+                m.hidden = true
+              } else if (oth.type === 'checkbox' || oth.type === 'multiselect') {
+                let _vals = [...(_val || []), ...p.values]
+                if (_vals.length === new Set(_vals).size) {
+                  m.hidden = true
+                }
+              } else if (p.values && !p.values.includes(_val)) {
+                m.hidden = true
+              }
+            })
           }
 
           if (m.hidden) {
@@ -331,6 +363,8 @@
         return
       } else if (item.type === 'printTemps') {
         content = <MkPrintTemps onChange={(val) => this.recordChange({[item.field]: val})}/>
+      } else if (item.type === 'codemirror') {
+        content = <CodeMirror mode="text/javascript" theme="cobalt" onChange={(val) => this.recordChange({[item.field]: val})}/>
       }
 
       if (!content) return

--
Gitblit v1.8.0