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, 50 insertions(+), 22 deletions(-)

diff --git a/src/index.js b/src/index.js
index aa04fd0..cbc45b2 100644
--- a/src/index.js
+++ b/src/index.js
@@ -19,9 +19,12 @@
 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();
 
@@ -33,7 +36,7 @@
     super(props);
     this.state = {
       context: {
-        role: 'oa',
+        role: '',
         roleMenuList: [],
         setContext: this.setContext,
       },
@@ -42,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: {
@@ -70,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) => {
@@ -80,6 +101,7 @@
         ...data,
       }, //更新context
     });
+    window.localStorage.setItem('role', data.role || '');
   };
 
   render() {
@@ -106,9 +128,15 @@
                 </Switch>
                 <Layout>
                   <Content>
-                    {context.role == 'oa' && <OaRouteDom />}
-                    {context.role == 'user' && <UserRouteDom />}
-                    <Route path="/login" component={Login} />
+                    <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