Index.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. import React, { useEffect } from 'react';
  2. import { Layout, Menu } from 'antd';
  3. import { connect } from 'dva';
  4. import RightContent from './RightContent';
  5. import Link from 'umi/link';
  6. const { Header, Content, Footer } = Layout;
  7. const { SubMenu } = Menu;
  8. // 布局
  9. function LayoutDetail(props) {
  10. const { currentUser, permission } = props;
  11. const isAdmin = currentUser.UserName == 'admin';
  12. var logoStyle = {
  13. color: 'white',
  14. fontWeight: 600,
  15. fontSize: 20,
  16. verticalAlign: 'middle',
  17. marginRight: 60,
  18. width: 120,
  19. };
  20. useEffect(() => {
  21. // 查询用户信息
  22. props.dispatch({
  23. type: 'user/fetchCurrent',
  24. });
  25. }, []);
  26. const checkReport = state => {
  27. if (isAdmin) return true;
  28. const manager = currentUser.is_leader || currentUser.is_opt_mgr || currentUser.is_wty_mgr;
  29. switch (state) {
  30. case 0:
  31. return currentUser.is_accountant || manager || permission['func-01-point-works-report'];
  32. case 1:
  33. return manager || permission['func-01-point-works-report-p'];
  34. case 2:
  35. return permission['func-01-point-works-report-d'];
  36. case 3:
  37. return currentUser.is_accountant || permission['func-01-point-works-report-p-s'];
  38. }
  39. };
  40. return (
  41. <Layout>
  42. <Header>
  43. <div style={{ display: 'flex', height: '100%', justifyContent: 'space-between' }}>
  44. <div style={{ display: 'flex', width: '70%' }}>
  45. <div style={logoStyle}>金科环境</div>
  46. <Menu
  47. theme="dark"
  48. mode="horizontal"
  49. defaultSelectedKeys={[props.location.pathname]}
  50. style={{ lineHeight: '64px', width: '100%' }}
  51. >
  52. <SubMenu key="/home/work-hours" title="工时管理">
  53. <Menu.Item key="/home/work-hours">
  54. <Link to="/home/work-hours">上报工时</Link>
  55. </Menu.Item>
  56. <Menu.Item key="/home/work-hours-auth">
  57. <Link to="/home/work-hours-auth">审批工时</Link>
  58. </Menu.Item>
  59. </SubMenu>
  60. <SubMenu key="/home/approval" title="项目立项">
  61. <Menu.Item key="/home/approval/list">
  62. <Link to="/home/approval/list">项目列表</Link>
  63. </Menu.Item>
  64. <Menu.Item key="/home/approval/auth">
  65. <Link to="/home/approval/auth">审核列表</Link>
  66. </Menu.Item>
  67. </SubMenu>
  68. {checkReport(0) && (
  69. <SubMenu key="/home/report" title="工时报表">
  70. {/* <Menu.Item key="/home/report/resource">
  71. <Link to="/home/report/resource">资源报表</Link>
  72. </Menu.Item> */}
  73. {checkReport(1) && (
  74. <Menu.Item key="/home/report/project">
  75. <Link to="/home/report/project">项目报表</Link>
  76. </Menu.Item>
  77. )}
  78. {checkReport(2) && (
  79. <Menu.Item key="/home/report/department">
  80. <Link to="/home/report/department">部门报表</Link>
  81. </Menu.Item>
  82. )}
  83. {checkReport(3) && (
  84. <Menu.Item key="/home/report/finance">
  85. <Link to="/home/report/finance">财务报表</Link>
  86. </Menu.Item>
  87. )}
  88. </SubMenu>
  89. )}
  90. {/* <Menu.Item key="/home/demo" title="demo">
  91. <Link to="/home/demo">demo</Link>
  92. </Menu.Item> */}
  93. {/* {isAdmin && (
  94. <Menu.Item key="/home">
  95. <Link to="/home">采购清单</Link>
  96. </Menu.Item>
  97. )} */}
  98. {/* <Menu.Item key="/home/flow-list">
  99. <Link to="/home/flow-list">流程图</Link>
  100. </Menu.Item> */}
  101. </Menu>
  102. </div>
  103. <RightContent />
  104. </div>
  105. </Header>
  106. <Content style={{ padding: '0 50px', minHeight: 'calc(100vh - 64px)' }}>
  107. <div style={{ background: '#fff', padding: 24, minHeight: 280 }}>{props.children}</div>
  108. </Content>
  109. {/* <Footer style={{ textAlign: 'center' }}>Ant Design ©2018 Created by Ant UED</Footer> */}
  110. </Layout>
  111. );
  112. }
  113. export default connect(({ user }) => ({
  114. currentUser: user.currentUser,
  115. permission: user.currentUser.Permission,
  116. }))(LayoutDetail);