king
2022-01-21 46f79b491173d284a4900d19e7aecf7509481438
src/tabviews/custom/components/tabs/antv-tabs/index.jsx
@@ -1,9 +1,10 @@
import React, {Component} from 'react'
import PropTypes from 'prop-types'
import { is, fromJS } from 'immutable'
import { Tabs, Icon } from 'antd'
import { Tabs } from 'antd'
import asyncComponent from '@/utils/asyncComponent'
import MkIcon from '@/components/mk-icon'
import MKEmitter from '@/utils/events.js'
import './index.scss'
@@ -28,8 +29,9 @@
  UNSAFE_componentWillMount () {
    const { config, bids } = this.props
    this.setState({
      tabs: config,
      tabs: fromJS(config).toJS(),
      parentIds: config.parentIds || [],
      bids: bids ? bids : {}
    })
@@ -60,13 +62,33 @@
  }
  resetParentParam = (MenuID, id, data) => {
    const { parentIds, bids } = this.state
    const { parentIds, bids, tabs } = this.state
    if (!parentIds.includes(MenuID)) return
    if (parentIds.includes(MenuID)) {
      this.setState({
        bids: {...bids, [MenuID]: id, [MenuID + '_data']: data}
      })
    }
    this.setState({
      bids: {...bids, [MenuID]: id, [MenuID + '_data']: data}
    })
    if (tabs.setting.supModule === MenuID) {
      if (!data || data[tabs.setting.controlField] === undefined) {
        this.setState({
          tabs: {...tabs, subtabs: this.props.config.subtabs}
        })
      } else {
        let val = data[tabs.setting.controlField]
        this.setState({
          tabs: {...tabs, subtabs: this.props.config.subtabs.filter(tab => {
            if (tab.controlVal === val) {
              return false
            } else if (/,/ig.test(tab.controlVal)) {
              return tab.controlVal.split(',').includes(val)
            }
            return true
          })}
        })
      }
    }
  }
  autoSwitch = (interval) => {
@@ -101,7 +123,7 @@
      <div className={'menu-antv-tabs-wrap ' + tabs.setting.tabLabel} style={tabs.style}>
        <Tabs defaultActiveKey="1" tabPosition={tabs.setting.position} type={tabs.setting.tabStyle}>
          {tabs.subtabs.map(tab => (
            <TabPane tab={<span id={'tab' + tab.uuid}>{tab.icon ? <Icon type={tab.icon} /> : null}{tab.label}</span>} key={tab.uuid}>
            <TabPane tab={<span id={'tab' + tab.uuid}>{tab.icon ? <MkIcon type={tab.icon} /> : null}{tab.label}</span>} key={tab.uuid}>
              <TabTransfer BID={BID} config={tab} bids={bids} mainSearch={mainSearch}/>
            </TabPane>
          ))}