king
2024-05-16 b69b5f6329ca5f87932436b7a6c1ddfc3377e10f
src/tabviews/custom/components/carousel/cardItem/index.jsx
@@ -1,10 +1,8 @@
import React, {Component} from 'react'
import PropTypes from 'prop-types'
import { connect } from 'react-redux'
import { is, fromJS } from 'immutable'
import asyncComponent from '@/utils/asyncComponent'
import { modifyTabview } from '@/store/action'
import MKEmitter from '@/utils/events.js'
import './index.scss'
@@ -16,10 +14,6 @@
    cards: PropTypes.object,    // 卡片行配置信息
    card: PropTypes.object,     // 卡片配置信息
    data: PropTypes.object,
  }
  state = {
    card: null,            // 卡片信息,包括正反面
  }
  /**
@@ -45,41 +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
      let newtab = {
        ...menu,
        selected: true,
        param: {}
      }
    if (card.setting.click === 'menu') {
      let menuId = card.setting.menu.slice(-1)[0]
      let menu = null
      if (card.setting.joint === 'true') {
        newtab.param.$BID = data.$$uuid || ''
      }
      if (['linkage_navigation', 'linkage', 'menu_board'].includes(window.GLOB.navBar)) {
        this.props.modifyTabview([newtab])
      } else {
        let tabs = this.props.tabviews.filter((tab, i) => {
          tab.selected = false
          return tab.MenuID !== newtab.MenuID
        })
        if (this.props.tabviews.length > tabs.length) {
          this.props.modifyTabview(fromJS(tabs).toJS())
      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
        }
        this.setState({}, () => {
          tabs.push(newtab)
          this.props.modifyTabview(tabs)
        })
      }
      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
@@ -91,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])
      }
    }
  }
@@ -114,16 +110,4 @@
  }
}
const mapStateToProps = (state) => {
  return {
    tabviews: state.tabviews,
  }
}
const mapDispatchToProps = (dispatch) => {
  return {
    modifyTabview: (tabviews) => dispatch(modifyTabview(tabviews))
  }
}
export default connect(mapStateToProps, mapDispatchToProps)(CardBoxComponent)
export default CardBoxComponent