forked from huge/frontEnd/hugeOA

liyj
2020-09-07 f7e9b835c30e5b3287b2c04e24950871cafa907d
Merge branch 'master' of http://120.79.193.119:9090/r/huge/frontEnd/hugeOA
1 files added
9 files modified
208 ■■■■ changed files
src/components/common/HeadView/index.jsx 4 ●●●● patch | view | raw | blame | history
src/components/common/NotifyList/index.jsx 4 ●●●● patch | view | raw | blame | history
src/index.js 9 ●●●●● patch | view | raw | blame | history
src/menu/menu.oa.js 2 ●●● patch | view | raw | blame | history
src/menu/menu.user.js 5 ●●●●● patch | view | raw | blame | history
src/module/login/login.jsx 14 ●●●●● patch | view | raw | blame | history
src/module/menu/menu.jsx 28 ●●●● patch | view | raw | blame | history
src/routeDom/oaRouteDom.jsx 39 ●●●● patch | view | raw | blame | history
src/routeDom/routeDom.jsx 99 ●●●●● patch | view | raw | blame | history
src/routeDom/userRouteDom.jsx 4 ●●●● 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}&nbsp;&nbsp;&nbsp;
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>
  )
}