king
2021-11-18 c98e45bfac25e9110ad0383faac54a54d98ea9d5
src/components/breadview/index.jsx
@@ -1,7 +1,6 @@
import React, {Component} from 'react'
import {connect} from 'react-redux'
import { is, fromJS } from 'immutable'
import { BackTop, Breadcrumb, Icon} from 'antd'
import { BackTop, Breadcrumb, Icon, notification} from 'antd'
import moment from 'moment'
import 'moment/locale/zh-cn'
@@ -11,6 +10,7 @@
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'
import './index.scss'
@@ -43,9 +43,46 @@
    window.GLOB.CacheMap = new Map()
    if (options.sysType === 'local' && window.GLOB.systemType !== 'production') {
      Api.getAppVersion().then(() => {
        MKEmitter.emit('reloadMenuView', tabview.MenuID)
      }, () => {
      let roledefer = new Promise(resolve => {
        Api.getSystemConfig({
          func: 's_Get_TrdMenu_Role',
          edition_type: 'A',
          pro_sys: ''
        }).then(result => {
          if (!result) return
          if (!result.status) {
            notification.error({
              top: 92,
              message: result.message,
              duration: 10
            })
          } else {
            let _permAction = {loaded: true} // 按钮权限
            if (result.UserRoles_Menu) {
              result.UserRoles_Menu.forEach(menu => {
                if (!menu.MenuID) return
                _permAction[menu.MenuID] = true
              })
            }
            this.props.initActionPermission(_permAction)
          }
          resolve()
        })
      })
      // 获取主菜单参数
      let menudefer = new Promise(resolve => {
        Api.getAppVersion().then(() => {
          resolve()
        }, () => {
          resolve()
        })
      })
      Promise.all([roledefer, menudefer]).then(() => {
        MKEmitter.emit('reloadMenuView', tabview.MenuID)
      })
    } else {
@@ -85,8 +122,7 @@
    let home = {
      MenuID: 'home_page_id',
      MenuName: this.state.dict['main.homepage'],
      selected: true,
      MenuName: '首页',
      type: 'Home'
    }
    this.setState({tabview: home})
@@ -95,25 +131,27 @@
  gotoHome = () => {
    let home = {
      MenuID: 'home_page_id',
      MenuName: this.state.dict['main.homepage'],
      selected: true,
      MenuName: '首页',
      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)
  }
  /**
@@ -123,6 +161,7 @@
    this.setState = () => {
      return
    }
    MKEmitter.removeListener('modifyTabs', this.modifyTabs)
  }
  render () {
@@ -157,14 +196,14 @@
  }
}
const mapStateToProps = (state) => {
  return {
    tabviews: state.tabviews
  }
const mapStateToProps = () => {
  return {}
}
const mapDispatchToProps = () => {
  return {}
const mapDispatchToProps = (dispatch) => {
  return {
    initActionPermission: (permAction) => dispatch(initActionPermission(permAction)),
  }
}
export default connect(mapStateToProps, mapDispatchToProps)(BreadView)