From d896af364e0be1c2e0a48402ed59d00e0804f931 Mon Sep 17 00:00:00 2001
From: liyj <1003249715@qq.com>
Date: Wed, 24 Jun 2020 17:27:22 +0800
Subject: [PATCH] ..
---
src/index.js | 67 +++++++++++++++++++++++----------
1 files changed, 47 insertions(+), 20 deletions(-)
diff --git a/src/index.js b/src/index.js
index cb0f05c..167584b 100644
--- a/src/index.js
+++ b/src/index.js
@@ -17,10 +17,12 @@
// 公用结构组件
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 { oaMenus, userMenus } from './menu';
export const Context = React.createContext();
@@ -32,7 +34,7 @@
super(props);
this.state = {
context: {
- role: 'oa',
+ role: '',
roleMenuList: [],
setContext: this.setContext,
},
@@ -41,27 +43,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 +77,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 +99,7 @@
...data,
}, //更新context
});
+ window.localStorage.setItem('role', data.role || '');
};
render() {
@@ -105,8 +126,14 @@
</Switch>
<Layout>
<Content>
- {context.role == 'oa' && <OaRouteDom />}
- {context.role == 'user' && <UserRouteDom />}
+ <Switch>
+ <Route
+ path="/login"
+ component={() => <Login setContext={this.setContext} />}
+ />
+ {context.role == 'oa' && <OaRouteDom />}
+ {context.role == 'user' && <UserRouteDom />}
+ </Switch>
</Content>
</Layout>
</Layout>
--
Gitblit v1.8.0