index.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. import PageContent from '@/components/PageContent';
  2. import PageTitle from '@/components/PageTitle';
  3. import { queryDailyWorkReport } from '@/services/user';
  4. import { useParams, useRequest } from '@umijs/max';
  5. import { Spin } from 'antd';
  6. import dayjs from 'dayjs';
  7. import styles from './index.less';
  8. const SystemDaily = (props) => {
  9. const { projectId } = useParams();
  10. const { data = {}, loading } = useRequest(queryDailyWorkReport, {
  11. defaultParams: [projectId],
  12. formatResult: (res) => {
  13. const data = res.data;
  14. const result = {
  15. ...data,
  16. task_percent:
  17. data.push_task !== 0 ? data.push_complete_task / data.push_task : 0,
  18. work_percent:
  19. data.work_order_task !== 0
  20. ? data.work_order_complete_task / data.work_order_task
  21. : 0,
  22. };
  23. return result;
  24. },
  25. });
  26. const {
  27. automatic_task = 0,
  28. push_optimize_task = 0,
  29. self_inspection_task = 0,
  30. self_inspection_normal_task = 0,
  31. self_inspection_abnormal_task = 0,
  32. push_task = 0,
  33. task_percent = 0,
  34. work_order_task = 0,
  35. work_percent = 0,
  36. user_name = '',
  37. user_name_count = 0,
  38. } = data;
  39. const handleOnClick = () => {
  40. history.back();
  41. };
  42. const renderItem = (value, unit) => {
  43. return (
  44. <>
  45. <span className={styles.value}>{value || 0}</span>
  46. <span className={styles.unit}>{unit}</span>
  47. </>
  48. );
  49. };
  50. return (
  51. <PageContent closeable={false}>
  52. <Spin spinning={loading}>
  53. <div>
  54. <PageTitle children="系统工作日报" returnable />
  55. <div className={styles.time}>{dayjs().format('MM月DD日')}</div>
  56. </div>
  57. <div className={styles.box}>
  58. <div className={styles.main_in}>
  59. <div className={styles.titleContent}>日报</div>
  60. <div className={styles.content}>
  61. <div className={styles.text}>
  62. 执行自控指令次数:{renderItem(automatic_task, '次')}
  63. </div>
  64. <div className={styles.text}>
  65. 推送优化建议:{renderItem(push_optimize_task, '条')}
  66. </div>
  67. <div className={styles.text}>
  68. 系统自检次数:
  69. {renderItem(self_inspection_task, '条')}
  70. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;正常次数:
  71. {renderItem(self_inspection_normal_task, '条')}
  72. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;异常次数:
  73. {renderItem(self_inspection_abnormal_task, '条')}
  74. </div>
  75. <div className={styles.text}>
  76. 推送任务:
  77. {renderItem(push_task, '条')}
  78. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 任务完成率:
  79. {renderItem(task_percent, '%')}
  80. </div>
  81. <div className={styles.text}>
  82. 工单数量:
  83. {renderItem(work_order_task, '条')}
  84. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;工单完成率:
  85. {renderItem(work_percent, '%')}
  86. </div>
  87. <div className={styles.text}>
  88. 工单完成人员第一名:
  89. {/* <span className={styles.value}> */}
  90. {user_name
  91. ? `${user_name}完成${user_name_count}个工单`
  92. : '暂无'}
  93. {/* </span> */}
  94. </div>
  95. </div>
  96. </div>
  97. </div>
  98. </Spin>
  99. </PageContent>
  100. );
  101. };
  102. export default SystemDaily;