From b69b5f6329ca5f87932436b7a6c1ddfc3377e10f Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 16 五月 2024 10:56:41 +0800
Subject: [PATCH] 2024-05-16

---
 src/tabviews/custom/components/carousel/cardItem/index.jsx |   60 +++++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 35 insertions(+), 25 deletions(-)

diff --git a/src/tabviews/custom/components/carousel/cardItem/index.jsx b/src/tabviews/custom/components/carousel/cardItem/index.jsx
index 94144cb..9b0d0d8 100644
--- a/src/tabviews/custom/components/carousel/cardItem/index.jsx
+++ b/src/tabviews/custom/components/carousel/cardItem/index.jsx
@@ -16,10 +16,6 @@
     data: PropTypes.object,
   }
 
-  state = {
-    card: null,            // 鍗$墖淇℃伅锛屽寘鎷鍙嶉潰
-  }
-
   /**
    * @description 鎼滅储鏉′欢鍒濆鍖�
    */
@@ -43,29 +39,32 @@
   openView = () => {
     const { card, data, cards } = this.props
 
-    if (card.setting.click === 'menu' && card.setting.MenuID) {
-      let menu = {
-        MenuID: card.setting.MenuID,
-        MenuName: card.setting.MenuName,
-        MenuNo: card.setting.MenuNo,
-        type: card.setting.tabType
+    if (!card.setting.click || data.$disabled) return
+
+    if (card.setting.click === 'menu') {
+      let menuId = card.setting.menu.slice(-1)[0]
+      let menu = null
+
+      if (window.GLOB.mkThdMenus.has(menuId)) {
+        menu = {...window.GLOB.mkThdMenus.get(menuId)}
+      } else if (card.setting.MenuID) {
+        menu = {
+          MenuID: card.setting.MenuID,
+          MenuName: card.setting.MenuName,
+          type: card.setting.tabType
+        }
       }
 
-      let newtab = {
-        ...menu,
-        selected: true,
-        param: {}
-      }
+      if (!menu) return
 
-      if (card.setting.joint === 'true') {
-        newtab.param.$BID = data.$$uuid || ''
-      }
+      menu.param = {$BID: data.$$uuid || ''}
 
-      if (['linkage_navigation', 'linkage', 'menu_board'].includes(window.GLOB.navBar)) {
-        MKEmitter.emit('modifyTabs', newtab, 'replace')
-      } else {
-        MKEmitter.emit('modifyTabs', newtab, 'plus')
-      }
+      Object.keys(data).forEach(key => {
+        if (/^\$/.test(key)) return
+        menu.param[key] = data[key]
+      })
+
+      MKEmitter.emit('modifyTabs', menu, true)
     } else if (card.setting.click === 'link') {
       let src = card.setting.linkurl
 
@@ -77,14 +76,25 @@
         }
 
         src = src + `${con}id=${data.$$uuid || ''}&appkey=${window.GLOB.appkey}&userid=${sessionStorage.getItem('UserID')}&LoginUID=${sessionStorage.getItem('LoginUID') || ''}`
+      } else if (/@/.test(src)) {
+        src = src.replace(/@id@/ig, data.$$uuid || '')
+        src = src.replace(/@appkey@/ig, window.GLOB.appkey)
+        src = src.replace(/@userid@/ig, sessionStorage.getItem('UserID'))
+        src = src.replace(/@LoginUID@/ig, sessionStorage.getItem('LoginUID'))
+
+        Object.keys(data).forEach(key => {
+          if (/^\$/.test(key)) return
+          let reg = new RegExp('@' + key + '@', 'ig')
+          src = src.replace(reg, data[key])
+        })
       }
 
       window.open(src)
     } else if (card.setting.click === 'button' && card.setting.linkbtn) {
       if (cards.subtype === 'datacard') {
-        MKEmitter.emit('triggerBtnId', card.setting.linkbtn, [data], 'linkbtn')
+        MKEmitter.emit('triggerBtnId', card.setting.linkbtn, [data], 'linkbtn', (data.$$uuid || '') + (data.$Index || ''))
       } else {
-        MKEmitter.emit('triggerBtnId', card.setting.linkbtn, [data])
+        MKEmitter.emit('triggerBtnId', card.setting.linkbtn, data.$$empty ? [] : [data])
       }
     }
   }

--
Gitblit v1.8.0