index.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  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. <br />
  72. <div className={styles.textFlex}>
  73. <div className={styles.textItem}>
  74. 正常次数:
  75. {renderItem(self_inspection_normal_task, '条')}
  76. </div>
  77. <div className={styles.textItem}>
  78. 异常次数:
  79. {renderItem(self_inspection_abnormal_task, '条')}
  80. </div>
  81. </div>
  82. </div>
  83. <div className={styles.textTwo}>
  84. <div className={styles.textItem}>
  85. 推送任务:
  86. {renderItem(push_task, '条')}
  87. </div>
  88. <div className={styles.textItem}>
  89. 任务完成率:
  90. {renderItem(task_percent, '%')}
  91. </div>
  92. </div>
  93. <div className={styles.textTwo}>
  94. <div className={styles.textItem}>
  95. 工单数量:
  96. {renderItem(work_order_task, '条')}
  97. </div>{' '}
  98. <div className={styles.textItem}>
  99. 工单完成率:
  100. {renderItem(work_percent, '%')}
  101. </div>
  102. </div>
  103. <div className={styles.text}>
  104. 工单完成人员第一名:
  105. {/* <span className={styles.value}> */}
  106. {user_name
  107. ? `${user_name}完成${user_name_count}个工单`
  108. : '暂无'}
  109. {/* </span> */}
  110. </div>
  111. </div>
  112. </div>
  113. </div>
  114. </Spin>
  115. </PageContent>
  116. );
  117. };
  118. export default SystemDaily;