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 | 70 ++++++++++++++++++++++++++++++++-- 1 files changed, 65 insertions(+), 5 deletions(-) diff --git a/src/tabviews/custom/components/carousel/cardItem/index.jsx b/src/tabviews/custom/components/carousel/cardItem/index.jsx index 709043f..9b0d0d8 100644 --- a/src/tabviews/custom/components/carousel/cardItem/index.jsx +++ b/src/tabviews/custom/components/carousel/cardItem/index.jsx @@ -3,6 +3,7 @@ import { is, fromJS } from 'immutable' import asyncComponent from '@/utils/asyncComponent' +import MKEmitter from '@/utils/events.js' import './index.scss' @@ -13,10 +14,6 @@ cards: PropTypes.object, // 鍗$墖琛岄厤缃俊鎭� card: PropTypes.object, // 鍗$墖閰嶇疆淇℃伅 data: PropTypes.object, - } - - state = { - card: null, // 鍗$墖淇℃伅锛屽寘鎷鍙嶉潰 } /** @@ -39,11 +36,74 @@ } } + openView = () => { + const { card, data, cards } = this.props + + 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 + } + } + + if (!menu) return + + menu.param = {$BID: data.$$uuid || ''} + + 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 + + if (card.setting.joint === 'true') { + let con = '?' + + if (/\?/ig.test(src)) { + con = '&' + } + + 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', (data.$$uuid || '') + (data.$Index || '')) + } else { + MKEmitter.emit('triggerBtnId', card.setting.linkbtn, data.$$empty ? [] : [data]) + } + } + } + render() { const { card, data, cards } = this.props return ( - <div className="card-item-box" style={card.style}> + <div className="card-item-box" style={card.style} onClick={this.openView}> <CardCellComponent data={data} cards={cards} cardCell={card} elements={card.elements}/> </div> ) -- Gitblit v1.8.0