From b419b2add64d70bf1bdb2f491c3eb090dda2cfa3 Mon Sep 17 00:00:00 2001
From: liyj <1003249715@qq.com>
Date: Wed, 27 May 2020 11:44:34 +0800
Subject: [PATCH] Merge branch 'master' of http://120.79.193.119:9090/r/huge/frontEnd/hugeOA

---
 src/index.js |  164 ++++++++++++++++++++++++++++++++----------------------
 1 files changed, 96 insertions(+), 68 deletions(-)

diff --git a/src/index.js b/src/index.js
index ffa772b..aa04fd0 100644
--- a/src/index.js
+++ b/src/index.js
@@ -3,9 +3,6 @@
 import ReactDOM from 'react-dom';
 import './index.css';
 
-import Menu from './pages/menu/menu';
-import Header from './components/common/HeadView';
-
 import * as serviceWorker from './serviceWorker';
 import { Router, Route, Switch, Redirect } from 'react-router-dom';
 import { ConfigProvider } from 'antd';
@@ -17,82 +14,113 @@
 import 'react-app-polyfill/ie11';
 import 'react-app-polyfill/stable';
 
-// 引进页面(pages)
-import Index from './pages/Index';
-import Login from './pages/login/login';
-import Workbench from './pages/index/workbench'; //首页--工作台
-import System from './pages/index/System'; //首页--工作制度
-import Announcement from './pages/index/Announcement'; //全部通知
+// 公用结构组件
+import Menu from './module/menu/menu';
+import Header from './components/common/HeadView';
+import Login from './module/login/login';
 
-import DocumentEdit from './pages/document/DocumentEdit'; //新建文档
-import DocumentDetail from './pages/document/DocumentDetail'; //文档详情
-import BrowseLog from './pages/logManage/browseLog'; //浏览日志
-import OperLog from './pages/logManage/operLog'; //操作日志
-import Rawler from './pages/logManage/Rawler'; //爬虫词条管理
-import Information from './pages/personal/information'; //个人信息
+// oa路由映射
+import OaRouteDom from './routeDom/oaRouteDom';
+import UserRouteDom from './routeDom/userRouteDom';
 
-// 基础平台
-import UserManage from './components/page/basicConfig/UserManage';//用户管理
+export const Context = React.createContext();
 
 const { Content } = Layout;
 const history = createHashHistory();
 
-ReactDOM.render(
-  <ConfigProvider locale={zh_CN}>
-    <Router history={history}>
-      <Layout className="h-100">
-        <Switch>
-          <Route path="/login" component={null} />
-          <Route component={Menu} />
-        </Switch>
-        <Layout>
-          <Switch>
-            <Route path="/login" component={null} />
-            <Route component={Header} />
-          </Switch>
-          <Content>
-            <Switch>
-              {/* 基础平台 */}
-              <Route path="/baseManage/user" component={UserManage} />
+class RouteDom extends React.Component {
+  constructor(props) {
+    super(props);
+    this.state = {
+      context: {
+        role: 'oa',
+        roleMenuList: [],
+        setContext: this.setContext,
+      },
+    };
+  }
 
-              {/* 新建文档 */}
-              <Route path="/document/create/:id?" component={DocumentEdit} />
-              {/* 文档、通知详情 */}
-              <Route path="/document/detail/:id" component={DocumentDetail} />
+  componentDidMount() {
+    let pathname = history.location.pathname;
+    let menusListByRole = window.localStorage.getItem('menusListByRole')
+      ? JSON.parse(window.localStorage.getItem('menusListByRole'))
+      : [];
 
-              {/* 全部通知 */}
-              <Route
-                path="/index/workbench/announcement"
-                component={Announcement}
-              />
-              {/* 规章制度 */}
-              <Route path="/index/rules" component={System} />
-              {/* 首页 */}
-              <Route path="/index" component={Workbench} />
+    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;
+      }
+    }, []);
 
-              {/* 浏览日志 */}
-              <Route path="/logManage/browseLog" component={BrowseLog} />
-              {/* 操作日志 */}
-              <Route path="/logManage/operLog" component={OperLog} />
-              {/* 爬虫词条管理 */}
-              <Route path="/logManage/rawler" component={Rawler} />
-              {/* 个人信息 */}
-              <Route path="/personal/information" component={Information} />
+    this.setState({
+      context: {
+        ...this.state.context,
+        role,
+      },
+    });
+  }
 
-              {/* 登录页 */}
-              <Route path="/login" component={Login} />
-              <Route path="/" component={Workbench} />
+  setContext = (data) => {
+    console.log('data', data);
+    this.setState({
+      context: {
+        ...this.state.context,
+        ...data,
+      }, //更新context
+    });
+  };
 
-              {/* 路由的页面重定向 */}
-              <Redirect to="/" component={Workbench} />
-            </Switch>
-          </Content>
-        </Layout>
-      </Layout>
-    </Router>
-  </ConfigProvider>,
-  document.getElementById('root')
-);
+  render() {
+    let { context } = this.state;
+    return (
+      <ConfigProvider locale={zh_CN}>
+        <Context.Provider value={context}>
+          <Router history={history}>
+            <Layout className="h-100">
+              {/* 顶部-侧边布局-通栏 */}
+              {/* 顶部 */}
+              <Switch>
+                <Route path="/login" component={null} />
+                <Route
+                  component={() => (
+                    <Header setContext={this.setContext} props={this.props} />
+                  )}
+                />
+              </Switch>
+              <Layout>
+                <Switch>
+                  <Route path="/login" component={null} />
+                  <Route component={Menu} />
+                </Switch>
+                <Layout>
+                  <Content>
+                    {context.role == 'oa' && <OaRouteDom />}
+                    {context.role == 'user' && <UserRouteDom />}
+                    <Route path="/login" component={Login} />
+                  </Content>
+                </Layout>
+              </Layout>
+            </Layout>
+          </Router>
+        </Context.Provider>
+      </ConfigProvider>
+    );
+  }
+}
+
+ReactDOM.render(<RouteDom></RouteDom>, document.getElementById('root'));
 
 // If you want your app to work offline and load faster, you can change
 // unregister() to register() below. Note this comes with some pitfalls.

--
Gitblit v1.8.0