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                               |    9 +
 src/module/login/login.jsx                 |   14 +++
 src/components/common/HeadView/index.jsx   |    4 
 src/routeDom/userRouteDom.jsx              |    4 
 src/menu/menu.user.js                      |    5 +
 src/routeDom/oaRouteDom.jsx                |   39 ++++-----
 src/routeDom/routeDom.jsx                  |   99 ++++++++++++++++++++++++
 src/components/common/NotifyList/index.jsx |    4 
 src/menu/menu.oa.js                        |    2 
 src/module/menu/menu.jsx                   |   28 +++++-
 10 files changed, 171 insertions(+), 37 deletions(-)

diff --git a/src/components/common/HeadView/index.jsx b/src/components/common/HeadView/index.jsx
index b69749f..d629bbf 100644
--- a/src/components/common/HeadView/index.jsx
+++ b/src/components/common/HeadView/index.jsx
@@ -70,7 +70,7 @@
                   (loginUser && Object.keys(loginUser).length) &&
                   <Row type="flex" align="middle" justify="space-between" >
                     <Col>
-                      <Select value={role} size="small" style={{ marginLeft: 20, width: 120 }} onChange={value => {
+                      {/* <Select value={role} size="small" style={{ marginLeft: 20, width: 120 }} onChange={value => {
                         setContext({ role: value });
                         history.push('/')
                       }}>
@@ -79,7 +79,7 @@
                             <Option value={key} key={key}>{name}</Option>
                           ))
                         }
-                      </Select>
+                      </Select> */}
                     </Col>
                     <Col style={{ marginRight: 40 }}>
                       {loginUser.trueName}&nbsp;&nbsp;&nbsp;
diff --git a/src/components/common/NotifyList/index.jsx b/src/components/common/NotifyList/index.jsx
index b6afd7d..5483d32 100644
--- a/src/components/common/NotifyList/index.jsx
+++ b/src/components/common/NotifyList/index.jsx
@@ -65,11 +65,11 @@
         <div className="notify-list-main-dom-msg-title" onClick={() => { notice.id && this.linkDetail(notice.id) }}>
           <marquee onMouseOut={this.onMouseOut} onMouseOver={this.onMouseOver} ref='marquee' style={{ cursor: 'pointer' }}>{notice.documentTitle || ''}</marquee>
         </div>
-        {
+        {/* {
           notice.documentContent ? <Tooltip placement='topLeft' title={this.emoveTAG(notice.documentContent)}>
             <div className="notify-list-main-dom-msg-content" onClick={() => { notice.id && this.linkDetail(notice.id) }}>{this.emoveTAG(notice.documentContent)}</div>
           </Tooltip> : null
-        }
+        } */}
       </div>
       <div className="notify-list-main-dom-fuc" onClick={this.onClick}>[查看全部]</div>
     </div>
diff --git a/src/index.js b/src/index.js
index 167584b..cbc45b2 100644
--- a/src/index.js
+++ b/src/index.js
@@ -19,9 +19,11 @@
 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();
@@ -131,8 +133,9 @@
                         path="/login"
                         component={() => <Login setContext={this.setContext} />}
                       />
-                      {context.role == 'oa' && <OaRouteDom />}
-                      {context.role == 'user' && <UserRouteDom />}
+                      <RouteDomView />
+                      {/* {context.role == 'oa' && <OaRouteDom />}
+                      {context.role == 'user' && <UserRouteDom />} */}
                     </Switch>
                   </Content>
                 </Layout>
diff --git a/src/menu/menu.oa.js b/src/menu/menu.oa.js
index 0fcf654..176aafd 100644
--- a/src/menu/menu.oa.js
+++ b/src/menu/menu.oa.js
@@ -180,7 +180,7 @@
         permKey: '/merits/meritsDispose',
         children: [],
         parentKey: 'merits',
-      }
+      },
     ],
   },
 ];
diff --git a/src/menu/menu.user.js b/src/menu/menu.user.js
index 99927b1..0af9d01 100644
--- a/src/menu/menu.user.js
+++ b/src/menu/menu.user.js
@@ -8,16 +8,19 @@
     name: '用户管理',
     path: '/baseManage/user',
     icon: 'user',
+    key: '/baseManage/user'
   },
   {
     name: '组管理',
     path: '/baseManage/group',
     icon: 'team',
+    key: '/baseManage/group',
   },
   {
     name: '组织管理',
     icon: 'solution',
     path: '/organizationMgt',
+    key: '/organizationMgt',
     children: [
       {
         name: '单位管理',
@@ -40,6 +43,7 @@
     name: '资源管理',
     icon: 'book',
     path: '/resourceMgt',
+    key: '/resourceMgt',
     children: [
       {
         name: '应用服务管理',
@@ -62,6 +66,7 @@
     name: '权限管理',
     icon: 'tool',
     path: '/authorityMgt',
+    key: '/authorityMgt',
     children: [
       {
         name: '角色管理',
diff --git a/src/module/login/login.jsx b/src/module/login/login.jsx
index c8b24b2..ac1e7ad 100644
--- a/src/module/login/login.jsx
+++ b/src/module/login/login.jsx
@@ -68,6 +68,19 @@
     }).then(res => {
       console.log('res', res);
       if (res) {
+        console.log('oa', res.map(({ symbol }) => (symbol)).concat(res.map(({ moduleSymbol }) => (moduleSymbol))).reduce((p, n) => {
+          if (p.indexOf(n) == -1) {
+            return p.concat(n)
+          } else {
+            return p
+          }
+        }, []), getMenuListByPermission(oaMenus, res && res.map(({ symbol }) => (symbol)).concat(res.map(({ moduleSymbol }) => (moduleSymbol))).reduce((p, n) => {
+          if (p.indexOf(n) == -1) {
+            return p.concat(n)
+          } else {
+            return p
+          }
+        }, [])), oaMenus)
         window.localStorage.setItem('menu', JSON.stringify(res));
         window.localStorage.setItem('menusListByRole', JSON.stringify({
           user: { role: 'user', menus: userMenus },
@@ -84,7 +97,6 @@
         message.success('登录成功');
         console.log('this props', this.props);
         history.push({ pathname: "/index" });
-
         this.props.setContext && this.props.setContext({ role: 'oa' })
       }
     })
diff --git a/src/module/menu/menu.jsx b/src/module/menu/menu.jsx
index ccff58d..87ee211 100644
--- a/src/module/menu/menu.jsx
+++ b/src/module/menu/menu.jsx
@@ -37,14 +37,30 @@
     super(props);
     this.state = {
       collapsed: true,
-      menusListByRole: null
+      menusListByRole: null,
+      menusList: null,
     };
   }
 
   componentDidMount() {
     // 获取从登录页面记录在缓存里的菜单数据
     let menusListByRole = window.localStorage.getItem('menusListByRole') ? JSON.parse(window.localStorage.getItem('menusListByRole')) : null;
-    this.setState({ menusListByRole });
+    let menu = window.localStorage.getItem('menu') ? JSON.parse(window.localStorage.getItem('menu')) : [];//获取权限菜单
+    let administration = menu.find(({ moduleSymbol }) => moduleSymbol == 'administration');
+    let menusList = [];
+    if (administration) {
+      // setSelectList(selectList.concat({ name: '用户中心', key: 'user' }));
+      let temp = ["oa", "user"];
+      menusList = temp.reduce((p, n) => {
+        return p.concat(menusListByRole[n].menus)
+      }, []);
+    } else {
+      menusList = menusListByRole['oa'].menus
+    }
+    this.setState({
+      menusList
+    })
+    // this.setState({ menusListByRole });
   }
 
   onCollapse = collapsed => {
@@ -52,7 +68,7 @@
   }
 
   render() {
-    const { collapsed, menusListByRole } = this.state;
+    const { collapsed, menusListByRole, menusList } = this.state;
     return (
       <Context.Consumer>
         {({ role }) => (
@@ -64,11 +80,11 @@
               collapsible={true}
             >
               {
-                menusListByRole && menusListByRole[role] && 
+                menusList &&
                 <MenView
                   history={this.props.history}
-                  pathname={selected(menusListByRole[role].menus, this.props.location.pathname)}
-                  menudata={menusListByRole[role].menus || []}
+                  pathname={selected(menusList, this.props.location.pathname)}
+                  menudata={menusList || []}
                 />
               }
             </Sider>
diff --git a/src/routeDom/oaRouteDom.jsx b/src/routeDom/oaRouteDom.jsx
index e7ccc56..0d981e1 100644
--- a/src/routeDom/oaRouteDom.jsx
+++ b/src/routeDom/oaRouteDom.jsx
@@ -26,25 +26,24 @@
 import MeritsExamine from '../module/oa/merits/meritsExamine';//绩效管理--绩效考核
 
 export default function OaRouteDom({ }) {
-  return (<Switch>
-    <Route path="/baseManage/user" component={UserManage} />
-    <Route path="/document/create/:id?" component={DocumentEdit} />
-    <Route path="/document/detail/:id" component={DocumentDetail} />
-    <Route path="/index/workbench/announcement" component={Announcement} />
-    <Route path="/index/rules" component={System} />
-    <Route path="/index" component={Workbench} />
-    <Route path="/logManage/browseLog" component={BrowseLog} />
-    <Route path="/logManage/operLog" component={OperLog} />
-    <Route path="/logManage/rawler" component={Rawler} />
-    <Route path="/personal/information" component={Information} />
-    <Route path="/merits/meritsOverview/meritsDetail/:userId/:boolean/:meritsMonth" component={MeritsDetail} />
-    <Route path="/merits/meritsOverview" component={MeritsOverview} />
-    <Route path="/merits/meritsDispose" component={MeritsDispose} />
-    <Route path="/merits/meritsExamine" component={MeritsDetail} />
-
-
-    {/* <Route path="/" component={Workbench} /> */}
-    <Redirect from="/" to="/index" component={Workbench} />
-  </Switch>
+  return (
+    <React.Fragment>
+        <Route path="/baseManage/user" component={UserManage} />
+        <Route path="/document/create/:id?" component={DocumentEdit} />
+        <Route path="/document/detail/:id" component={DocumentDetail} />
+        <Route path="/index/workbench/announcement" component={Announcement} />
+        <Route path="/index/rules" component={System} />
+        <Route path="/index" component={Workbench} />
+        <Route path="/logManage/browseLog" component={BrowseLog} />
+        <Route path="/logManage/operLog" component={OperLog} />
+        <Route path="/logManage/rawler" component={Rawler} />
+        <Route path="/personal/information" component={Information} />
+        <Route path="/merits/meritsOverview/meritsDetail/:userId/:boolean/:meritsMonth" component={MeritsDetail} />
+        <Route path="/merits/meritsOverview" component={MeritsOverview} />
+        <Route path="/merits/meritsDispose" component={MeritsDispose} />
+        <Route path="/merits/meritsExamine" component={MeritsDetail} />
+        {/* <Route path="/" component={Workbench} /> */}
+        {/* <Redirect from="/" to="/index" component={Workbench} /> */}
+    </React.Fragment>
   )
 }
diff --git a/src/routeDom/routeDom.jsx b/src/routeDom/routeDom.jsx
new file mode 100644
index 0000000..cbff7a1
--- /dev/null
+++ b/src/routeDom/routeDom.jsx
@@ -0,0 +1,99 @@
+/* eslint-disable */
+/**liuwh
+ * 5/26/2020, 4:44:40 PM
+ * doc comment for the file goes here
+ */
+
+/** Happy Coding */
+import React, { ReactNode, ReactEventHandler, Component, useEffect, useState } from 'react';
+import { Switch, Route, Redirect } from 'react-router-dom';
+
+// 引进页面(pages)
+//oa菜单
+import Workbench from '../module/oa/index/workbench'; //首页--工作台
+import System from '../module/oa/index/System'; //首页--工作制度
+import Announcement from '../module/oa/index/Announcement'; //全部通知
+import DocumentEdit from '../module/oa/document/DocumentEdit'; //新建文档
+import DocumentDetail from '../module/oa/document/DocumentDetail'; //文档详情
+import BrowseLog from '../module/oa/logManage/browseLog'; //浏览日志
+import OperLog from '../module/oa/logManage/operLog'; //操作日志
+import Rawler from '../module/oa/logManage/Rawler'; //爬虫词条管理
+import Information from '../module/oa/personal/information'; //个人信息
+import UserManage from '../components/oa/basicConfig/UserManage'; //用户管理
+import MeritsOverview from '../module/oa/merits/meritsOverview';//绩效管理--绩效总览
+import MeritsDetail from '../module/oa/merits/meritsDetail';//绩效管理--绩效详情
+import MeritsDispose from '../module/oa/merits/meritsDispose';//绩效管理--绩效指标
+import MeritsExamine from '../module/oa/merits/meritsExamine';//绩效管理--绩效考核
+
+// 基础平台
+import BaseUserManage from '../module/huge-base/UserManage'; //用户管理
+import UserDetail from '../module/huge-base/UserDetail'; //用户管理--用户详情
+import GroupManage from '../module/huge-base/GroupManage'; //组管理
+import GroupDetail from '../module/huge-base/GroupDetail'; //组管理--组详情
+import UnitManage from '../module/huge-base/UnitManage'; //组织管理--单位管理
+import DepartmentManage from '../module/huge-base/DepartmentManage'; //组织管理--部门管理
+import JobManage from '../module/huge-base/JobManage'; //组织管理--岗位管理
+import AppServiceManage from '../module/huge-base/AppServiceManage'; //资源管理--应用服务管理
+import AppServiceDetail from '../module/huge-base/AppServiceDetail'; //资源管理--应用服务管理详情
+import ModulesManage from '../module/huge-base/ModulesManage'; //资源管理--模块管理
+import FunctionManage from '../module/huge-base/FunctionManage'; //资源管理--功能管理
+import RoleManage from '../module/huge-base/RoleManage'; //权限管理--角色管理
+import RoleDetail from '../module/huge-base/RoleDetail'; //权限管理--角色管理详情
+import AuthorityManage from '../module/huge-base/AuthorityManage';
+
+export default function RouteDom({ }) {
+    const [renderUser, setRenderUser] = useState(false);
+    useEffect(() => {
+        let menu = window.localStorage.getItem('menu') ? JSON.parse(window.localStorage.getItem('menu')) : [];//获取权限菜单
+        let administration = menu.find(({ moduleSymbol }) => moduleSymbol == 'administration');
+        if (administration) { setRenderUser(true) }
+    }, [])
+
+    return (
+        <Switch>
+
+
+            <Route path="/document/create/:id?" component={DocumentEdit} />
+            <Route path="/document/detail/:id" component={DocumentDetail} />
+            <Route path="/index/workbench/announcement" component={Announcement} />
+            <Route path="/index/rules" component={System} />
+            <Route path="/index" component={Workbench} />
+            <Route path="/logManage/browseLog" component={BrowseLog} />
+            <Route path="/logManage/operLog" component={OperLog} />
+            <Route path="/logManage/rawler" component={Rawler} />
+            <Route path="/personal/information" component={Information} />
+            <Route path="/merits/meritsOverview/meritsDetail/:userId/:boolean/:meritsMonth" component={MeritsDetail} />
+            <Route path="/merits/meritsOverview" component={MeritsOverview} />
+            <Route path="/merits/meritsDispose" component={MeritsDispose} />
+            <Route path="/merits/meritsExamine" component={MeritsDetail} />
+
+            {
+                renderUser &&
+                <React.Fragment>
+                    <Route path="/baseManage/user/Detail/:id/:flag" component={UserDetail} />
+                    <Route path="/baseManage/user" component={UserManage} />
+                    <Route path="/baseManage/group/Detail/:id/:flag" component={GroupDetail} />
+                    <Route path="/baseManage/group" component={GroupManage} />
+                    <Route path="/organizationMgt/unit" component={UnitManage} />
+                    <Route path="/organizationMgt/department" component={DepartmentManage} />
+                    <Route path="/organizationMgt/job" component={JobManage} />
+                    <Route path="/resourceMgt/appService/Detail/:id/:flag" component={AppServiceDetail} />
+                    <Route path="/resourceMgt/appService" component={AppServiceManage} />
+                    <Route path="/resourceMgt/modules" component={ModulesManage} />
+                    <Route path="/resourceMgt/function" component={FunctionManage} />
+                    <Route path="/organizationMgt/role/Detail/:id/:flag" component={RoleDetail} />
+                    <Route path="/authorityMgt/role" component={RoleManage} />
+                    <Route path="/authorityMgt/authority" component={AuthorityManage} />
+                    <Redirect from='/' to="/baseManage/user" component={UserManage} />
+                </React.Fragment>
+            }
+
+            <div>
+                
+            </div>
+
+            <Route path="/" component={Workbench} />
+            <Redirect from="/" to="/index" component={Workbench} />
+        </Switch>
+    )
+}
diff --git a/src/routeDom/userRouteDom.jsx b/src/routeDom/userRouteDom.jsx
index c18a8c7..e9d9e6c 100644
--- a/src/routeDom/userRouteDom.jsx
+++ b/src/routeDom/userRouteDom.jsx
@@ -26,7 +26,7 @@
 
 export default function UserRouteDom({ }) {
   return (
-    <Switch>
+    <React.Fragment>
       <Route path="/baseManage/user/Detail/:id/:flag" component={UserDetail} />
       <Route path="/baseManage/user" component={UserManage} />
       <Route path="/baseManage/group/Detail/:id/:flag" component={GroupDetail} />
@@ -42,6 +42,6 @@
       <Route path="/authorityMgt/role" component={RoleManage} />
       <Route path="/authorityMgt/authority" component={AuthorityManage} />
       <Redirect from='/' to="/baseManage/user" component={UserManage} />
-    </Switch>
+    </React.Fragment>
   )
 }

--
Gitblit v1.8.0