index.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import PageContent from '@/components/PageContent';
  2. import TabsContent from '@/components/TabsContent';
  3. import { getNotificationList } from '@/services/message';
  4. import { UnityAction } from '@/utils/utils';
  5. import { useParams, useRequest } from '@umijs/max';
  6. import { Button } from 'antd';
  7. import dayjs from 'dayjs';
  8. import { useState } from 'react';
  9. import styles from './index.less';
  10. const icon1 = require('@/assets/message/work.png');
  11. const icon2 = require('@/assets/message/check.png');
  12. const MessageCenter = () => {
  13. const { projectId } = useParams();
  14. const [tab, setTab] = useState('1');
  15. const { data, run, loading } = useRequest(getNotificationList, {
  16. defaultParams: [{ projectId, msgType: 11 }], //, msgType: 工况:11, 自检:12
  17. });
  18. const handleTabsChange = (tab) => {
  19. setTab(tab);
  20. tab == '1'
  21. ? run({ projectId, msgType: 11 })
  22. : run({ projectId, msgType: 12 });
  23. };
  24. const handleReadClick = () => {
  25. UnityAction.sendMsg('notiReadAll', '');
  26. };
  27. const handlerSeeClick = () => {
  28. UnityAction.sendMsg('noti', tab == '1' ? 'gongKuang' : 'ziJian');
  29. };
  30. const renderItem = (item) => {
  31. const time = item?.CreatedOn
  32. ? dayjs(item.CreatedOn).format('YYYY-MM-DD hh:mm:ss')
  33. : '';
  34. return (
  35. <div className={`card-box ${styles.itemContent}`}>
  36. <img className={styles.img} src={tab == '1' ? icon1 : icon2} />
  37. <div>
  38. <div className={styles.text}>{item.MsgBody}</div>
  39. <div className={styles.time}>{time}</div>
  40. </div>
  41. <div className={styles.right}>
  42. <div
  43. className={item?.ReadStatus ? styles.redPoint : styles.nonePoint}
  44. />
  45. <Button
  46. className={styles.btn}
  47. type="primary"
  48. onClick={handlerSeeClick}
  49. >
  50. 查看
  51. </Button>
  52. </div>
  53. </div>
  54. );
  55. };
  56. return (
  57. <PageContent tabs>
  58. <TabsContent
  59. center={false}
  60. defaultActiveKey="1"
  61. onChange={handleTabsChange}
  62. items={[
  63. {
  64. label: `水厂工况`,
  65. key: '1',
  66. children: data?.list?.map((item) => renderItem(item)),
  67. },
  68. {
  69. label: `系统自检`,
  70. key: '2',
  71. children: data?.list?.map((item) => renderItem(item)),
  72. },
  73. ]}
  74. />
  75. <div className={styles.allRead} onClick={handleReadClick}>
  76. 全部已读
  77. </div>
  78. </PageContent>
  79. );
  80. };
  81. export default MessageCenter;