123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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_MANAGER, ROLE_ORG_USER, ROLE_QUERY_PERSON } from '@/utils/user';
  7. import { PROCESS_APPLY_DELAY, PROCESS_APPLY_END, PROCESS_APPLY_REJECT, PROCESS_APPLY_VERIFY, PROCESS_ASSIGNED, PROCESS_END, PROCESS_START } from '@/utils/biz';
  8. import { getApplyNum } from '@/services/taissueapply';
  9. import Head from './components/Head';
  10. import Banner from './components/Banner';
  11. import StatCard from './components/StatCard';
  12. import './index.less';
  13. const getRejctApply = () => getApplyNum({ applyType: PROCESS_APPLY_REJECT });
  14. const getDelayApply = () => getApplyNum({ applyType: PROCESS_APPLY_DELAY });
  15. const getVerifyApply = () => getApplyNum({ applyType: PROCESS_APPLY_VERIFY });
  16. const getEdnApply = () => getApplyNum({ applyType: PROCESS_APPLY_END });
  17. const menus = {
  18. // 督查员
  19. [ROLE_INSPECTOR]: [
  20. { icon: 'icon9', text: '我的上报', link: '/pages/issue/list/index?mine=true' },
  21. { icon: 'icon11', text: '消息通知', link: '/pages/message/list/index' },
  22. { icon: 'icon10', text: '模拟测评', link: '/pages/check/list/index' },
  23. ],
  24. // 平台管理员
  25. [ROLE_MANAGER]: [
  26. { icon: 'icon1', text: '待 交 办', link: `/pages/issue/list2/index?title=待交办&bizStatus=${PROCESS_START}` },
  27. { icon: 'icon2', text: '已 交 办', link: `/pages/issue/list2/index?title=已交办&bizStatus=${PROCESS_ASSIGNED}`, },
  28. { icon: 'icon3', text: '已 办 结', link: `/pages/issue/list2/index?title=已办结&bizStatus=${PROCESS_END}` },
  29. { icon: 'icon4', text: '消单申请', request: getEdnApply, link: `/pages/apply/list/index?title=消单申请&applyType=${PROCESS_APPLY_END}` },
  30. { icon: 'icon5', text: '逾期警告', link: `/pages/issue/list2/index?title=逾期警告&bizStatus=expired` },
  31. { icon: 'icon6', text: '延期申请', request: getDelayApply, link: `/pages/apply/list/index?title=延期申请&applyType=${PROCESS_APPLY_DELAY}` },
  32. { icon: 'icon12', text: '驳回申请', request: getRejctApply, link: `/pages/apply/list/index?title=驳回申请&applyType=${PROCESS_APPLY_REJECT}` },
  33. { icon: 'icon7', text: '统计查询', link: '/subpkg1/pages/statistics/index' },
  34. { icon: 'icon9', text: '我的上报', link: '/pages/issue/list2/index?title=我的上报&mine=true' },
  35. { icon: 'icon11', text: '消息通知', link: '/pages/message/list/index' },
  36. ],
  37. // 责任单位用户
  38. [ROLE_ORG_USER]: [
  39. { icon: 'icon2', text: '处 理 中', link: `/pages/org/issue/list/index?title=处理中&bizStatus=${PROCESS_ASSIGNED}` },
  40. { icon: 'icon3', text: '已 办 结', link: `/pages/org/issue/list/index?title=已办结&bizStatus=${PROCESS_END}` },
  41. { icon: 'icon5', text: '已 逾 期', link: '/pages/org/issue/list/index?title=已逾期&bizStatus=expired' },
  42. { icon: 'icon11', text: '消息通知', link: '/pages/message/list/index'},
  43. // { icon: 'icon10', text: '我的上报', link: '/pages/reportList/index?title=我的上报'},
  44. ],
  45. // 责任交办单位管理员
  46. [ROLE_ORG_MANAGER]: [
  47. { icon: 'icon2', text: '处 理 中', link: `/pages/org/issue/list/index?title=处理中&bizStatus=${PROCESS_ASSIGNED}` },
  48. { icon: 'icon3', text: '已 办 结', link: `/pages/org/issue/list/index?title=已办结&bizStatus=${PROCESS_END}` },
  49. { icon: 'icon5', text: '已 逾 期', link: '/pages/org/issue/list/index?title=已逾期&bizStatus=expired' },
  50. { icon: 'icon9', text: '审核申请', request: getVerifyApply, link: `/pages/apply/list/index?title=审核申请&applyType=${PROCESS_APPLY_VERIFY}` },
  51. { icon: 'icon11', text: '消息通知', link: '/pages/message/list/index' },
  52. { icon: 'person', text: '人员管理', link: '/pages/user/list/index' },
  53. ],
  54. // 查询人员
  55. [ROLE_QUERY_PERSON]: [
  56. { icon: 'icon1', text: '未 处 理', link: `/pages/issue/list2/index?title=未处理&bizStatus=${PROCESS_START}` },
  57. { icon: 'icon2', text: '处 理 中', link: `/pages/issue/list2/index?title=处理中&bizStatus=${PROCESS_ASSIGNED}` },
  58. { icon: 'icon3', text: '已 办 结', link: `/pages/issue/list2/index?title=已办结&bizStatus=${PROCESS_END}` },
  59. { icon: 'icon5', text: '逾期警告', link: `/pages/issue/list2/index?title=逾期警告&bizStatus=expired` },
  60. { icon: 'icon7', text: '统计查询', link: '/subpkg1/pages/statistics/index' },
  61. ],
  62. // 市民
  63. [ROLE_CITIZEN]: [
  64. { icon: 'icon1', text: '未处理', link: `/pages/feedback/issuelist/index?title=未处理&bizStatus=${PROCESS_START}` },
  65. { icon: 'icon2', text: '已处理', link: `/pages/feedback/issuelist/index?title=已处理&bizStatus=${PROCESS_ASSIGNED}` },
  66. { icon: 'icon12', text: '已打回', link: `/pages/feedback/issuelist/index?title=已打回&bizStatus=reject` },
  67. ],
  68. }
  69. export default (props) => {
  70. const userModel = useModel('user');
  71. const { user, duty, signOut, changePwd } = userModel || {};
  72. const menuArr = React.useMemo(() => {
  73. if (!duty) return [];
  74. return menus[duty];
  75. }, [duty])
  76. return (
  77. <Page tabBar="home" className="home-page">
  78. <Head
  79. userModel={userModel}
  80. onChangePwd={changePwd}
  81. onExit={signOut}
  82. />
  83. <Banner duty={duty} />
  84. <StatCard duty={duty} />
  85. <View className="menu-icons">
  86. {
  87. menuArr.map(x => (
  88. <MenuIcon key={x.text} {...x} />
  89. ))
  90. }
  91. </View>
  92. </Page>
  93. );
  94. }