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} 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