src/components/common/HeadView/index.jsx | ●●●●● patch | view | raw | blame | history | |
src/components/common/NotifyList/index.jsx | ●●●●● patch | view | raw | blame | history | |
src/index.js | ●●●●● patch | view | raw | blame | history | |
src/menu/menu.oa.js | ●●●●● patch | view | raw | blame | history | |
src/menu/menu.user.js | ●●●●● patch | view | raw | blame | history | |
src/module/login/login.jsx | ●●●●● patch | view | raw | blame | history | |
src/module/menu/menu.jsx | ●●●●● patch | view | raw | blame | history | |
src/routeDom/oaRouteDom.jsx | ●●●●● patch | view | raw | blame | history | |
src/routeDom/routeDom.jsx | ●●●●● patch | view | raw | blame | history | |
src/routeDom/userRouteDom.jsx | ●●●●● patch | view | raw | blame | history |
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} 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> 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> src/menu/menu.oa.js
@@ -180,7 +180,7 @@ permKey: '/merits/meritsDispose', children: [], parentKey: 'merits', } }, ], }, ]; 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: '角色管理', 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' }) } }) 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> 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> ) } src/routeDom/routeDom.jsx
New file @@ -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> ) } 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> ) }