libushang 2 月之前
父節點
當前提交
945d321a77
共有 2 個文件被更改,包括 36 次插入13 次删除
  1. 9 0
      src/api/duty/eventing.ts
  2. 27 13
      src/views/duty/eventing/StatisticalAnalysis.vue

+ 9 - 0
src/api/duty/eventing.ts

@@ -224,4 +224,13 @@ export function uploadCasualties(data) {
     method: "post",
     data: data
   });
+}
+
+// 统计分析
+export function getEventStatisticalAnalysis(data) {
+  return request({
+    url: '/api/event_management/event/get_statistical_analysis',
+    method: 'post',
+    data: data
+  });
 }

+ 27 - 13
src/views/duty/eventing/StatisticalAnalysis.vue

@@ -24,20 +24,23 @@
       </template>
     </el-table>
     <div style="font-size: 16px; font-weight: bold; margin: 10px 0">事件处置任务执行情况</div>
-    <el-table :data="dataList">
-      <el-table-column label="任务类型" align="center" prop="" />
-      <el-table-column label="任务发布数量" align="center" prop="" />
-      <el-table-column label="处理中" align="center" prop="" />
-      <el-table-column label="已完成" align="center" prop="" />
-      <el-table-column label="任务完成率" align="center" prop="" />
+    <el-table :data="eventTaskList">
+      <el-table-column label="任务类型" align="center" prop="task_type" />
+      <el-table-column label="任务发布数量" align="center" prop="task_sum" />
+      <el-table-column label="处理中" align="center" prop="process_num" />
+      <el-table-column label="已完成" align="center" prop="complete_num" />
+      <el-table-column label="任务完成率" align="center" prop="complete_rate">
+        <template #default="{ row }">
+        {{ row.complete_rate === 0 ? row.complete_rate : `${row.complete_rate}%` }}
+      </template>
+      </el-table-column>
       <template #append>
         <tr class="summary-row">
           <td>合计</td>
-          <td>{{ new BigNumber(calculateTotal('injuries')).toFormat() }}</td>
-          <td>{{ new BigNumber(calculateTotal('missing')).toFormat() }}</td>
-          <td>{{ new BigNumber(calculateTotal('deaths')).toFormat() }}</td>
-          <td>{{ new BigNumber(calculateTotal('transfer')).toFormat() }}</td>
-          <td>{{ new BigNumber(calculateTotal('economic_loss')).toFormat() }}</td>
+          <td>{{ new BigNumber(calculateTotal2('task_sum')).toFormat() }}</td>
+          <td>{{ new BigNumber(calculateTotal2('process_num')).toFormat() }}</td>
+          <td>{{ new BigNumber(calculateTotal2('complete_num')).toFormat() }}</td>
+          <td>{{ new BigNumber(calculateTotal2('complete_rate')).toFormat(2) }}%</td>
         </tr>
       </template>
     </el-table>
@@ -46,7 +49,7 @@
 
 <script lang="ts" setup name="StatisticalAnalysis">
 import BigNumber from 'bignumber.js';
-import { getEventCasualties } from '@/api/duty/eventing';
+import { getEventCasualties, getEventStatisticalAnalysis } from '@/api/duty/eventing';
 
 interface Props {
   modelValue: boolean;
@@ -66,7 +69,7 @@ const visible = computed({
 });
 
 const eventCasualtiesList = ref([]);
-const dataList = ref([]);
+const eventTaskList = ref([]);
 // 计算合计的方法
 const calculateTotal = (prop: string) => {
   return eventCasualtiesList.value
@@ -76,10 +79,21 @@ const calculateTotal = (prop: string) => {
     }, new BigNumber(0))
     .toFormat();
 };
+const calculateTotal2 = (prop: string) => {
+  return eventTaskList.value
+    .reduce((sum, item) => {
+      const currentValue = new BigNumber(item[prop] || 0);
+      return sum.plus(currentValue);
+    }, new BigNumber(0))
+    .toFormat();
+};
 onMounted(() => {
   getEventCasualties({ event_id: props.eventId }).then((res) => {
     eventCasualtiesList.value = res.data;
   });
+  getEventStatisticalAnalysis({ event_id: props.eventId }).then((res) => {
+    eventTaskList.value = res.data;
+  });
 });
 </script>