index.jsx 3.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import React from 'react'
  2. import { View, Text, Image } from '@tarojs/components'
  3. import Page from '@/layouts/index';
  4. import { useModel } from '@/store';
  5. import MenuIcon from '@/components/MenuIcon';
  6. import { ROLE_CITIZEN, ROLE_INSPECTOR, ROLE_MANAGER, ROLE_ORG_USER, ROLE_QUERY_PERSON } from '@/utils/user';
  7. import Head from './components/Head';
  8. import Banner from './components/Banner';
  9. import StatCard from './components/StatCard';
  10. import './index.less';
  11. const menus = {
  12. // 督察员
  13. [ROLE_INSPECTOR]: [
  14. { icon: 'icon9', text: '我的上报', link: '/pages/issue/list/index' },
  15. { icon: 'icon11', text: '消息通知', link: '/pages/message/list/index' },
  16. { icon: 'icon10', text: '模拟测评', link: '/pages/check/list/index' },
  17. ],
  18. // 平台管理员
  19. [ROLE_MANAGER]: [
  20. { icon: 'icon1', text: '待 交 办', link: '/pages/issue/list2/index?title=待交办&bizStatus=start' },
  21. { icon: 'icon2', text: '已 交 办', link: '/pages/issue/list2/index?title=已交办&bizStatus=assigned' },
  22. { icon: 'icon3', text: '已 办 结', link: '/pages/issue/list2/index?title=已办结&bizStatus=end' },
  23. { icon: 'icon4', text: '消单申请', link: '/pages/apply/list/index?title=消单申请&applyType=end' },
  24. { icon: 'icon5', text: '逾期警告', link: '/pages/issue/list2/index?title=逾期警告&bizStatus=expired' },
  25. { icon: 'icon6', text: '延期申请', link: '/pages/apply/list/index?title=延期申请&applyType=delay' },
  26. { icon: 'icon7', text: '统计查询', link: '' },
  27. { icon: 'icon9', text: '我的上报', link: '/pages/issue/list2/index?title=我的上报&mine=true' },
  28. { icon: 'icon11', text: '消息通知', link: '/pages/message/list/index' },
  29. ],
  30. // 责任单位用户
  31. [ROLE_ORG_USER]: [
  32. { icon: 'icon2', text: '处 理 中', link: '/pages/org/issue/list/index?title=处理中&bizStatus=assigned' },
  33. { icon: 'icon3', text: '已 办 结', link: '/pages/org/issue/list/index?title=已办结&bizStatus=end' },
  34. { icon: 'icon5', text: '已 逾 期', link: '' },
  35. { icon: 'icon7', text: '统计查询', link: '' },
  36. { icon: 'icon11', text: '消息通知', link: '/pages/message/list/index' },
  37. ],
  38. // 查询人员
  39. [ROLE_QUERY_PERSON]: [
  40. { icon: 'icon1', text: '未 处 理', link: '/pages/issue/list2/index?title=未处理&bizStatus=start' },
  41. { icon: 'icon2', text: '处 理 中', link: '/pages/issue/list2/index?title=处理中&bizStatus=assigned' },
  42. { icon: 'icon3', text: '已 办 结', link: '/pages/issue/list2/index?title=已办结&bizStatus=end' },
  43. { icon: 'icon7', text: '统计查询', link: '' },
  44. ],
  45. // 市民
  46. [ROLE_CITIZEN]: [
  47. { icon: 'icon1', text: '未处理', link: '/pages/issue/list2/index?title=未处理&bizStatus=start&from=citizen' },
  48. { icon: 'icon2', text: '已处理', link: '/pages/issue/list2/index?title=已处理&bizStatus=assigned&from=citizen' },
  49. { icon: 'icon12', text: '已打回', link: '/pages/issue/list2/index?title=已打回&bizStatus=reject&from=citizen' },
  50. ],
  51. }
  52. export default (props) => {
  53. const { user, person, duty, updateDuty } = useModel('user');
  54. const menuArr = React.useMemo(() => {
  55. if (!duty) return [];
  56. return menus[duty];
  57. }, [duty])
  58. return (
  59. <Page tabBar="home" className="home-page">
  60. <Head user={user} person={person} duty={duty} onDutyChange={updateDuty} />
  61. <Banner duty={duty} />
  62. <StatCard duty={duty} />
  63. <View className="menu-icons">
  64. {
  65. menuArr.map(x => (
  66. <MenuIcon key={x.text} {...x} />
  67. ))
  68. }
  69. </View>
  70. </Page>
  71. );
  72. }