From 3c6862fdfc6af3ae176436d2e22f1b7f8bcc8479 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 07 六月 2023 17:55:07 +0800
Subject: [PATCH] 2023-06-07

---
 src/tabviews/custom/popview/index.jsx                          |   24 ++++++++
 src/tabviews/custom/components/table/base-table/index.jsx      |    2 
 src/tabviews/custom/index.jsx                                  |   24 ++++++++
 src/tabviews/subtable/index.jsx                                |    2 
 src/tabviews/subtabtable/index.jsx                             |    2 
 src/tabviews/commontable/index.jsx                             |    2 
 src/tabviews/custom/components/card/double-data-card/index.jsx |   51 ++++++++++++++--
 src/tabviews/custom/components/table/normal-table/index.jsx    |    8 +-
 src/tabviews/custom/components/card/cardItem/index.jsx         |   19 ++---
 src/tabviews/custom/components/card/data-card/index.jsx        |   10 +-
 10 files changed, 113 insertions(+), 31 deletions(-)

diff --git a/src/tabviews/commontable/index.jsx b/src/tabviews/commontable/index.jsx
index f1a4fa3..2428d19 100644
--- a/src/tabviews/commontable/index.jsx
+++ b/src/tabviews/commontable/index.jsx
@@ -781,7 +781,7 @@
           item.$Index = start + index + ''
 
           if (setting.controlField) {
-            if (setting.controlVal.includes(item[setting.controlField])) {
+            if (setting.controlVal.includes(item[setting.controlField] + '')) {
               item.$disabled = true
             }
           }
diff --git a/src/tabviews/custom/components/card/cardItem/index.jsx b/src/tabviews/custom/components/card/cardItem/index.jsx
index 92777c5..c378930 100644
--- a/src/tabviews/custom/components/card/cardItem/index.jsx
+++ b/src/tabviews/custom/components/card/cardItem/index.jsx
@@ -40,14 +40,16 @@
     }
   }
 
-  openView = () => {
+  openView = (e) => {
     const { card, data, cards, onClick } = this.props
 
     onClick && onClick()
     
     if (!card.setting.click || data.$disabled) return
 
-    if (card.setting.click === 'menus' && cards.subtype === 'datacard' && card.$cardType !== 'extendCard') {
+    e.stopPropagation()
+
+    if (card.setting.click === 'menus') {
       let menu = null
       
       if (card.menus && card.menus.length > 0) {
@@ -57,14 +59,7 @@
           menu = m
         })
       }
-      if (!menu || !menu.MenuID) {
-        notification.warning({
-          top: 92,
-          message: '鏈煡璇㈠埌鑿滃崟淇℃伅锛�',
-          duration: 5
-        })
-        return
-      }
+      if (!menu) return
 
       let newtab = {
         MenuID: menu.MenuID,
@@ -79,12 +74,13 @@
 
         Object.keys(data).forEach(key => {
           if (/^\$/.test(key)) return
+          if (key === 'children') return
           newtab.param[key] = data[key]
         })
       }
 
       MKEmitter.emit('modifyTabs', newtab, true)
-    } else if (card.setting.click === 'menu' && card.setting.menu) {
+    } else if (card.setting.click === 'menu') {
       let menuId = card.setting.MenuID || card.setting.menu.slice(-1)[0]
       let menu = window.GLOB.mkThdMenus.filter(m => m.MenuID === menuId)[0]
 
@@ -116,6 +112,7 @@
         
         Object.keys(data).forEach(key => {
           if (/^\$/.test(key)) return
+          if (key === 'children') return
           newtab.param[key] = data[key]
         })
       }
diff --git a/src/tabviews/custom/components/card/data-card/index.jsx b/src/tabviews/custom/components/card/data-card/index.jsx
index fe8bcec..6d1c6ea 100644
--- a/src/tabviews/custom/components/card/data-card/index.jsx
+++ b/src/tabviews/custom/components/card/data-card/index.jsx
@@ -134,7 +134,7 @@
         item.$Index = index + 1 + ''
 
         if (_config.wrap.controlField) {
-          if (_config.wrap.controlVal.includes(item[_config.wrap.controlField])) {
+          if (_config.wrap.controlVal.includes(item[_config.wrap.controlField] + '')) {
             item.$disabled = true
           }
         }
@@ -232,7 +232,7 @@
           item.$Index = index + 1 + ''
 
           if (config.wrap.controlField) {
-            if (config.wrap.controlVal.includes(item[config.wrap.controlField])) {
+            if (config.wrap.controlVal.includes(item[config.wrap.controlField] + '')) {
               item.$disabled = true
             }
           }
@@ -264,7 +264,7 @@
           item.$Index = index + 1 + ''
 
           if (config.wrap.controlField) {
-            if (config.wrap.controlVal.includes(item[config.wrap.controlField])) {
+            if (config.wrap.controlVal.includes(item[config.wrap.controlField] + '')) {
               item.$disabled = true
             }
           }
@@ -706,7 +706,7 @@
           item.$Index = index + 1 + ''
 
           if (config.wrap.controlField) {
-            if (config.wrap.controlVal.includes(item[config.wrap.controlField])) {
+            if (config.wrap.controlVal.includes(item[config.wrap.controlField] + '')) {
               item.$disabled = true
             }
           }
@@ -721,7 +721,7 @@
           item.$Index = index + start + ''
 
           if (config.wrap.controlField) {
-            if (config.wrap.controlVal.includes(item[config.wrap.controlField])) {
+            if (config.wrap.controlVal.includes(item[config.wrap.controlField] + '')) {
               item.$disabled = true
             }
           }
diff --git a/src/tabviews/custom/components/card/double-data-card/index.jsx b/src/tabviews/custom/components/card/double-data-card/index.jsx
index 3d10bf5..33637fa 100644
--- a/src/tabviews/custom/components/card/double-data-card/index.jsx
+++ b/src/tabviews/custom/components/card/double-data-card/index.jsx
@@ -133,9 +133,9 @@
     subcard.setting = subcard.backSetting
 
     if (_card.setting.position === 'inner') {
-      wrapStyle = {}
+      wrapStyle = {backgroundColor: '#ffffff'}
       Object.keys(_card.style).forEach(key => {
-        if (!/^(margin|border|box)/.test(key)) return
+        if (!/^(margin|border|box|backgroundColor)/.test(key)) return
         wrapStyle[key] = _card.style[key]
         delete _card.style[key]
       })
@@ -245,7 +245,7 @@
           item.$Index = index + 1 + ''
 
           if (config.wrap.controlField) {
-            if (config.wrap.controlVal.includes(item[config.wrap.controlField])) {
+            if (config.wrap.controlVal.includes(item[config.wrap.controlField] + '')) {
               item.$disabled = true
             }
           }
@@ -605,7 +605,7 @@
           item.$Index = index + 1 + ''
 
           if (config.wrap.controlField) {
-            if (config.wrap.controlVal.includes(item[config.wrap.controlField])) {
+            if (config.wrap.controlVal.includes(item[config.wrap.controlField] + '')) {
               item.$disabled = true
             }
           }
@@ -644,7 +644,7 @@
           item.$Index = index + start + ''
 
           if (config.wrap.controlField) {
-            if (config.wrap.controlVal.includes(item[config.wrap.controlField])) {
+            if (config.wrap.controlVal.includes(item[config.wrap.controlField] + '')) {
               item.$disabled = true
             }
           }
@@ -886,6 +886,43 @@
     }
   }
 
+  changeSubCard = (item) => {
+    const { subcard, card } = this.state
+
+    if (subcard.setting.click || card.setting.position !== 'inner' || card.setting.click !== 'menu') return
+    
+    let menuId = card.setting.MenuID || card.setting.menu.slice(-1)[0]
+    let menu = window.GLOB.mkThdMenus.filter(m => m.MenuID === menuId)[0]
+
+    if (!menu && card.setting.MenuName && card.setting.tabType) {
+      menu = {
+        MenuID: menuId,
+        MenuName: card.setting.MenuName,
+        MenuNo: card.setting.MenuNo || '',
+        type: card.setting.tabType
+      }
+    }
+
+    if (!menu) return
+
+    let newtab = {
+      ...menu,
+      param: {}
+    }
+
+    if (card.setting.joint === 'true') {
+      newtab.param.$BID = item.$$uuid || ''
+      
+      Object.keys(item).forEach(key => {
+        if (/^\$/.test(key)) return
+        if (key === 'children') return
+        newtab.param[key] = item[key]
+      })
+    }
+
+    MKEmitter.emit('modifyTabs', newtab, true)
+  }
+
   onDoubleClick = (i, subClass) => {
     const { opens, card } = this.state
 
@@ -975,7 +1012,7 @@
                 let unfold = true
 
                 if (item.$disabled) {
-                  className = 'mk-disabled ' + mainBox
+                  className = 'card-item-wrap mk-disabled ' + mainBox
                 } else if (activeKey === index) {
                   className += 'active'
                 } else if (selectKeys.indexOf(index) > -1) {
@@ -1000,7 +1037,7 @@
                         {card.setting.controlIcon === 'left' ? (!unfold ? <PlusSquareOutlined className={subClass} onClick={(e) => this.changeUnfold(e, index, subClass)}/> : <MinusSquareOutlined className={subClass} onClick={(e) => this.changeUnfold(e, index, subClass)}/>) : null}
                         {card.setting.controlIcon === 'right' ? <UpOutlined className={subClass} onClick={(e) => this.changeUnfold(e, index, subClass)}/> : null}
                       </CardItem>
-                      <div className={'sub-card-wrap ' + subClass + (config.wrap.parity === 'true' ? ' mk-parity-bg' : '')}>
+                      <div className={'sub-card-wrap ' + subClass + (config.wrap.parity === 'true' ? ' mk-parity-bg' : '')} onClick={() => this.changeSubCard(item)}>
                         {item.children.map((cell, index) => <Col key={'sub' + index} span={subcard.setting.width || 24}>
                           <CardItem card={subcard} cards={subconfig} data={cell} />
                         </Col>)}
diff --git a/src/tabviews/custom/components/table/base-table/index.jsx b/src/tabviews/custom/components/table/base-table/index.jsx
index fec59dd..9658a04 100644
--- a/src/tabviews/custom/components/table/base-table/index.jsx
+++ b/src/tabviews/custom/components/table/base-table/index.jsx
@@ -200,7 +200,7 @@
             })
           }
           if (setting.controlField) {
-            if (setting.controlVal.includes(item[setting.controlField])) {
+            if (setting.controlVal.includes(item[setting.controlField] + '')) {
               item.$disabled = true
             }
           }
diff --git a/src/tabviews/custom/components/table/normal-table/index.jsx b/src/tabviews/custom/components/table/normal-table/index.jsx
index b882510..ca20ae8 100644
--- a/src/tabviews/custom/components/table/normal-table/index.jsx
+++ b/src/tabviews/custom/components/table/normal-table/index.jsx
@@ -112,7 +112,7 @@
         }
 
         if (setting.controlField) {
-          if (setting.controlVal.includes(item[setting.controlField])) {
+          if (setting.controlVal.includes(item[setting.controlField] + '')) {
             item.$disabled = true
           }
         }
@@ -273,7 +273,7 @@
         }
 
         if (setting.controlField) {
-          if (setting.controlVal.includes(item[setting.controlField])) {
+          if (setting.controlVal.includes(item[setting.controlField] + '')) {
             item.$disabled = true
           }
         }
@@ -630,7 +630,7 @@
           }
 
           if (setting.controlField) {
-            if (setting.controlVal.includes(item[setting.controlField])) {
+            if (setting.controlVal.includes(item[setting.controlField] + '')) {
               item.$disabled = true
             }
           }
@@ -701,7 +701,7 @@
           }
 
           if (setting.controlField) {
-            if (setting.controlVal.includes(item[setting.controlField])) {
+            if (setting.controlVal.includes(item[setting.controlField] + '')) {
               item.$disabled = true
             }
           }
diff --git a/src/tabviews/custom/index.jsx b/src/tabviews/custom/index.jsx
index 0eef227..3c6b9b3 100644
--- a/src/tabviews/custom/index.jsx
+++ b/src/tabviews/custom/index.jsx
@@ -612,6 +612,30 @@
             return cell.eleType !== 'button' || pass || permAction[cell.uuid]
           })
 
+          if (card.setting.click === 'menus') {
+            if (card.menus) {
+              card.menus = card.menus.filter(m => !!m.MenuID)
+              if (card.menus.length === 0) {
+                card.menus = null
+              }
+            }
+            if (!card.menus || item.subtype !== 'datacard' || card.$cardType === 'extendCard') {
+              card.setting.click = ''
+            }
+          } else if (card.setting.click === 'menu') {
+            if (!Array.isArray(card.setting.menu)) {
+              card.setting.click = ''
+            }
+          }
+
+          if (item.subtype === 'dualdatacard' && card.$cardType !== 'extendCard') {
+            if (card.backSetting && card.backSetting.click === 'menu') {
+              if (!Array.isArray(card.backSetting.menu)) {
+                card.backSetting.click = ''
+              }
+            }
+          }
+
           if (!card.backElements || card.backElements.length === 0) return
 
           card.backElements = card.backElements.filter(cell => {
diff --git a/src/tabviews/custom/popview/index.jsx b/src/tabviews/custom/popview/index.jsx
index 92c41c2..0093459 100644
--- a/src/tabviews/custom/popview/index.jsx
+++ b/src/tabviews/custom/popview/index.jsx
@@ -421,6 +421,30 @@
             return true
           })
 
+          if (card.setting.click === 'menus') {
+            if (card.menus) {
+              card.menus = card.menus.filter(m => !!m.MenuID)
+              if (card.menus.length === 0) {
+                card.menus = null
+              }
+            }
+            if (!card.menus || item.subtype !== 'datacard' || card.$cardType === 'extendCard') {
+              card.setting.click = ''
+            }
+          } else if (card.setting.click === 'menu') {
+            if (!Array.isArray(card.setting.menu)) {
+              card.setting.click = ''
+            }
+          }
+
+          if (item.subtype === 'dualdatacard' && card.$cardType !== 'extendCard') {
+            if (card.backSetting && card.backSetting.click === 'menu') {
+              if (!Array.isArray(card.backSetting.menu)) {
+                card.backSetting.click = ''
+              }
+            }
+          }
+
           if (!card.backElements || card.backElements.length === 0) return
 
           card.backElements = card.backElements.filter(cell => {
diff --git a/src/tabviews/subtable/index.jsx b/src/tabviews/subtable/index.jsx
index ac80f8f..694a47d 100644
--- a/src/tabviews/subtable/index.jsx
+++ b/src/tabviews/subtable/index.jsx
@@ -657,7 +657,7 @@
           item.$Index = start + index + ''
 
           if (setting.controlField) {
-            if (setting.controlVal.includes(item[setting.controlField])) {
+            if (setting.controlVal.includes(item[setting.controlField] + '')) {
               item.$disabled = true
             }
           }
diff --git a/src/tabviews/subtabtable/index.jsx b/src/tabviews/subtabtable/index.jsx
index ef20200..8be474a 100644
--- a/src/tabviews/subtabtable/index.jsx
+++ b/src/tabviews/subtabtable/index.jsx
@@ -591,7 +591,7 @@
           item.$Index = start + index + ''
 
           if (setting.controlField) {
-            if (setting.controlVal.includes(item[setting.controlField])) {
+            if (setting.controlVal.includes(item[setting.controlField] + '')) {
               item.$disabled = true
             }
           }

--
Gitblit v1.8.0