From 31e48d99dc0c595fbcf43eea0b9d486025014d02 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 24 七月 2024 11:05:49 +0800
Subject: [PATCH] 2024-07-24

---
 src/components/normalform/modalform/index.jsx  |   33 +++++++++++++++++++++++++++++++++
 src/menu/components/card/data-card/options.jsx |    5 ++---
 2 files changed, 35 insertions(+), 3 deletions(-)

diff --git a/src/components/normalform/modalform/index.jsx b/src/components/normalform/modalform/index.jsx
index 59a1ea6..544716e 100644
--- a/src/components/normalform/modalform/index.jsx
+++ b/src/components/normalform/modalform/index.jsx
@@ -132,6 +132,9 @@
 
         let cell = fieldMap.get(item.field)
 
+        cell.$ctrls = cell.$ctrls || []
+        cell.$ctrls.push(key)
+
         if (cell.hidden) return
 
         if (cell.skip && supItem.forbid) { // 涓婄骇琛ㄥ崟绂佺敤鏃讹紝姝よ〃鍗曚笉鍙楁帶鍒�
@@ -161,6 +164,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 || ''
@@ -230,6 +237,32 @@
             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.includes(_val)) {
+                m.hidden = true
+              }
+            })
+          }
+
           if (m.hidden) {
             m.initval = this.record[m.field]
           }
diff --git a/src/menu/components/card/data-card/options.jsx b/src/menu/components/card/data-card/options.jsx
index 6a799d2..1e59f01 100644
--- a/src/menu/components/card/data-card/options.jsx
+++ b/src/menu/components/card/data-card/options.jsx
@@ -645,20 +645,19 @@
         {value: 'true', label: '鍚敤'},
         {value: 'false', label: '绂佺敤'},
       ],
-      forbid: !!appType || isprint
+      forbid: !!appType || subtype === 'propcard' || isprint
     },
     {
       type: 'radio',
       field: 'searchBtn',
       label: '鎼滅储鎸夐挳',
       initval: wrap.searchBtn || 'hidden',
-      // tooltip: '鍚敤鎼滅储鏉′欢缂撳瓨鍚庯紝鍦ㄨ彍鍗曞埛鏂版椂鎼滅储鏉′欢涓嶅彉銆�',
       required: false,
       options: [
         {value: 'hidden', label: '闅愯棌'},
         {value: 'show', label: '鏄剧ず'},
       ],
-      forbid: appType === 'mob' || isprint,
+      forbid: appType === 'mob' || subtype === 'propcard' || isprint,
     },
     {
       type: 'radio',

--
Gitblit v1.8.0