From f7e9b835c30e5b3287b2c04e24950871cafa907d Mon Sep 17 00:00:00 2001 From: liyj <1003249715@qq.com> Date: Mon, 07 Sep 2020 15:28:45 +0800 Subject: [PATCH] Merge branch 'master' of http://120.79.193.119:9090/r/huge/frontEnd/hugeOA --- src/index.js | 72 +++++++++++++++++++++++++---------- 1 files changed, 51 insertions(+), 21 deletions(-) diff --git a/src/index.js b/src/index.js index cb0f05c..cbc45b2 100644 --- a/src/index.js +++ b/src/index.js @@ -17,10 +17,14 @@ // 公用结构组件 import Menu from './module/menu/menu'; import Header from './components/common/HeadView'; +import Login from './module/login/login'; -// oa路由映射 +// 路由映射 import OaRouteDom from './routeDom/oaRouteDom'; import UserRouteDom from './routeDom/userRouteDom'; +import RouteDomView from './routeDom/routeDom'; + +import { oaMenus, userMenus } from './menu'; export const Context = React.createContext(); @@ -32,7 +36,7 @@ super(props); this.state = { context: { - role: 'oa', + role: '', roleMenuList: [], setContext: this.setContext, }, @@ -41,27 +45,33 @@ componentDidMount() { let pathname = history.location.pathname; + console.log(history, pathname); let menusListByRole = window.localStorage.getItem('menusListByRole') ? JSON.parse(window.localStorage.getItem('menusListByRole')) : []; - let role = Object.keys(menusListByRole).reduce((p, n) => { - if ( - menusListByRole[n].menus - .reduce((p, n) => { - if (n.children) { - return p.concat(n.children); - } else { - return p.concat(n); - } - }, []) - .find(({ path }) => path == pathname) - ) { - return p.concat(n); - } else { - return p; - } - }, []); + // let menuMap = { oa: { menus: oaMenus }, user: { menus: userMenus } }; + + let role = Object.keys(menusListByRole) + .reduce((p, n) => { + if ( + menusListByRole[n].menus + .reduce((p, n) => { + if (n.children) { + return p.concat(n.children); + } else { + return p.concat(n); + } + }, []) + .find(({ path }) => path == pathname) + ) { + return p.concat(n); + } else { + return p; + } + }, []) + .join(''); + console.log('role', role); this.setState({ context: { @@ -69,6 +79,18 @@ role, }, }); + + if (!role && menusListByRole.length == 0) { + history.push('/login'); + } + if (!role && window.localStorage.getItem('role')) { + this.setState({ + context: { + ...this.state.context, + role: window.localStorage.getItem('role'), + }, + }); + } } setContext = (data) => { @@ -79,6 +101,7 @@ ...data, }, //更新context }); + window.localStorage.setItem('role', data.role || ''); }; render() { @@ -105,8 +128,15 @@ </Switch> <Layout> <Content> - {context.role == 'oa' && <OaRouteDom />} - {context.role == 'user' && <UserRouteDom />} + <Switch> + <Route + path="/login" + component={() => <Login setContext={this.setContext} />} + /> + <RouteDomView /> + {/* {context.role == 'oa' && <OaRouteDom />} + {context.role == 'user' && <UserRouteDom />} */} + </Switch> </Content> </Layout> </Layout> -- Gitblit v1.8.0