|
@@ -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>
|
|
|
|