From c98e45bfac25e9110ad0383faac54a54d98ea9d5 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 18 十一月 2021 20:47:04 +0800 Subject: [PATCH] 2021-11-18 --- src/components/breadview/index.jsx | 96 ++++++++++++++++++++++++++++++++++++------------ 1 files changed, 72 insertions(+), 24 deletions(-) diff --git a/src/components/breadview/index.jsx b/src/components/breadview/index.jsx index 2302004..a772bb6 100644 --- a/src/components/breadview/index.jsx +++ b/src/components/breadview/index.jsx @@ -1,16 +1,17 @@ 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' 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' import './index.scss' const Home = asyncComponent(() => import('@/tabviews/home')) @@ -41,7 +42,52 @@ const { tabview } = this.state window.GLOB.CacheMap = new Map() - MKEmitter.emit('reloadMenuView', tabview.MenuID) + if (options.sysType === 'local' && window.GLOB.systemType !== 'production') { + 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 { + MKEmitter.emit('reloadMenuView', tabview.MenuID) + } } selectcomponent = (view) => { @@ -76,8 +122,7 @@ let home = { MenuID: 'home_page_id', - MenuName: this.state.dict['main.homepage'], - selected: true, + MenuName: '棣栭〉', type: 'Home' } this.setState({tabview: home}) @@ -86,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) } /** @@ -114,6 +161,7 @@ this.setState = () => { return } + MKEmitter.removeListener('modifyTabs', this.modifyTabs) } render () { @@ -148,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) \ No newline at end of file -- Gitblit v1.8.0