king
2022-03-24 26d0fa42ea8c63a87e8ef93d0915f75f46fb1f9c
src/components/breadview/index.jsx
@@ -1,15 +1,13 @@
import React, {Component} from 'react'
import {connect} from 'react-redux'
import { is, fromJS } from 'immutable'
import { BackTop, Breadcrumb, Icon, notification} from 'antd'
import { BackTop, Breadcrumb, notification} from 'antd'
import { HomeOutlined, RightOutlined, RedoOutlined } from '@ant-design/icons'
import moment from 'moment'
import 'moment/locale/zh-cn'
import asyncComponent from '@/utils/asyncLoadComponent'
import NotFount from '@/components/404'
import options from '@/store/options.js'
import mzhCN from '@/locales/zh-CN/main.js'
import menUS from '@/locales/en-US/main.js'
import MKEmitter from '@/utils/events.js'
import { initActionPermission } from '@/store/action'
import Api from '@/api'
@@ -35,7 +33,6 @@
class BreadView extends Component {
  state = {
    tabview: null, // 标签
    dict: sessionStorage.getItem('lang') !== 'en-US' ? mzhCN : menUS,
    hasNavBar: window.GLOB.navBar === 'linkage_navigation'
  }
@@ -124,7 +121,6 @@
    let home = {
      MenuID: 'home_page_id',
      MenuName: '首页',
      selected: true,
      type: 'Home'
    }
    this.setState({tabview: home})
@@ -134,24 +130,26 @@
    let home = {
      MenuID: 'home_page_id',
      MenuName: '首页',
      selected: true,
      type: 'Home'
    }
    this.setState({tabview: home})
  }
  UNSAFE_componentWillReceiveProps (nextProps) {
    if (nextProps.tabviews && !is(fromJS(this.state.tabviews), fromJS(nextProps.tabviews))) {
      // 保存修改标签集
      this.setState({
        tabview: nextProps.tabviews[nextProps.tabviews.length - 1]
      })
  modifyTabs = (tab, type) => {
    if (!tab || type !== 'replace') return
      let node = document.getElementById('root').parentNode.parentNode
      if (node) {
        node.scrollTop = 0
      }
    this.setState({
      tabview: tab,
    })
    let node = document.getElementById('root').parentNode.parentNode
    if (node) {
      node.scrollTop = 0
    }
  }
  componentDidMount () {
    MKEmitter.addListener('modifyTabs', this.modifyTabs)
  }
  /**
@@ -161,6 +159,7 @@
    this.setState = () => {
      return
    }
    MKEmitter.removeListener('modifyTabs', this.modifyTabs)
  }
  render () {
@@ -170,17 +169,17 @@
      <section id="mk-breadview-wrap" className="mk-breadview-wrap">
        {hasNavBar && tabview ? <Breadcrumb separator="">
          <Breadcrumb.Item>
            <Icon type="home" onClick={this.gotoHome} />
            <HomeOutlined onClick={this.gotoHome} />
          </Breadcrumb.Item>
          {tabview.ParentNames && tabview.ParentNames[0] ?
            <Breadcrumb.Item>{tabview.ParentNames[0]}</Breadcrumb.Item> : null}
          {tabview.ParentNames && tabview.ParentNames[0] ?
              <Breadcrumb.Separator children={<Icon type="right" />} /> : null}
              <Breadcrumb.Separator children={<RightOutlined />} /> : null}
          {tabview.ParentNames && tabview.ParentNames[1] ?
            <Breadcrumb.Item>{tabview.ParentNames[1]}</Breadcrumb.Item> : null}
          {tabview.ParentNames && tabview.ParentNames[1] ?
              <Breadcrumb.Separator children={<Icon type="right" />} /> : null}
          <Breadcrumb.Item><Icon type="redo" onClick={this.refreshTabview}/>{tabview.MenuName}</Breadcrumb.Item>
              <Breadcrumb.Separator children={<RightOutlined />} /> : null}
          <Breadcrumb.Item><RedoOutlined onClick={this.refreshTabview}/>{tabview.MenuName}</Breadcrumb.Item>
        </Breadcrumb> : null}
        {tabview ? this.selectcomponent(tabview) : null}
        <BackTop>
@@ -195,10 +194,8 @@
  }
}
const mapStateToProps = (state) => {
  return {
    tabviews: state.tabviews
  }
const mapStateToProps = () => {
  return {}
}
const mapDispatchToProps = (dispatch) => {