|
|
@@ -1,13 +1,13 @@
|
|
|
<template>
|
|
|
<div class="info-container">
|
|
|
- <!-- <CollapseItem
|
|
|
+ <CollapseItem
|
|
|
v-for="reportTask in disasterLossDetailList?.reportTaskList"
|
|
|
:key="reportTask.reportDeptId"
|
|
|
:name="reportTask.reportDeptName"
|
|
|
:isActive="activeId === reportTask.reportDeptId"
|
|
|
@toggle="handleCollapseToggle(reportTask.reportDeptId)"
|
|
|
- > -->
|
|
|
- <!-- <template #view-operation>
|
|
|
+ >
|
|
|
+ <template #view-operation>
|
|
|
<div class="rectification-info">
|
|
|
<span class="num">{{ reportTask.lossRecordCount }}</span>
|
|
|
<span>条,整改完成{{ reportTask.fixFinishCount }}条</span>
|
|
|
@@ -38,28 +38,82 @@
|
|
|
/>
|
|
|
</section>
|
|
|
</div>
|
|
|
- </template> -->
|
|
|
- <!-- </CollapseItem> -->
|
|
|
+ </template>
|
|
|
+ </CollapseItem>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
import { useRoute } from 'vue-router';
|
|
|
- import { onMounted } from 'vue';
|
|
|
+ import { onMounted, ref } from 'vue';
|
|
|
import CollapseItem from './CollapseItem.vue';
|
|
|
+ import DamagedList from './DamagedList.vue';
|
|
|
+ import DisasterInfo from './DisasterInfo.vue';
|
|
|
+ import Rectification from './Rectification.vue';
|
|
|
import { useDisasterControlHook } from '../hook';
|
|
|
import { useUserInfoHook } from '@/views/disaster/hooks';
|
|
|
+ import type { PersonGroupItem } from '@/types/person-group/type';
|
|
|
+ import type { ReportTaskListDetail, LossRecordListDetail } from '@/types/disaster-control';
|
|
|
+ import { queryUserInfoByIds } from '@/api/system/person-group';
|
|
|
|
|
|
const route = useRoute();
|
|
|
const handleTaskId = Number(route.params.id);
|
|
|
+ const fixTaskId = Number(route.query.fixTaskId);
|
|
|
const { id: reporterId } = useUserInfoHook();
|
|
|
const { getDisasterLossDetailList, disasterLossDetailList } = useDisasterControlHook();
|
|
|
+ const activeId = ref<number | null>(null);
|
|
|
+ const activeTaskId = ref<number>(fixTaskId);
|
|
|
+ const handleCollapseToggle = (itemId: number) => {
|
|
|
+ if (activeId.value === itemId) {
|
|
|
+ activeId.value = null;
|
|
|
+ } else {
|
|
|
+ activeId.value = itemId;
|
|
|
+ }
|
|
|
+ };
|
|
|
+ const handleActiveTask = (fixTaskId: number) => {
|
|
|
+ activeTaskId.value = fixTaskId;
|
|
|
+ if (!lossRecordList.value.length) return;
|
|
|
+ lossRecordListInfo.value = lossRecordList.value.find((item) => item.fixTaskId === activeTaskId.value);
|
|
|
+ getFixUserList(lossRecordListInfo.value?.fixPrincipals);
|
|
|
+ };
|
|
|
+ const reportTaskList = ref<ReportTaskListDetail[]>([]);
|
|
|
+ const lossRecordList = ref<LossRecordListDetail[]>([]);
|
|
|
+ const reportTaskListInfo = ref<ReportTaskListDetail>();
|
|
|
+ const lossRecordListInfo = ref<LossRecordListDetail>();
|
|
|
+ const rectificationResponsibleUserList = ref<PersonGroupItem[]>([]);
|
|
|
+ const getFixUserList = async (userIds: string | undefined) => {
|
|
|
+ if (!userIds) return;
|
|
|
+ const ids = JSON.parse(userIds);
|
|
|
+ const res = await queryUserInfoByIds(ids);
|
|
|
+ rectificationResponsibleUserList.value = res;
|
|
|
+ };
|
|
|
+ const getLossRecordListInfo = () => {
|
|
|
+ if (!lossRecordListInfo.value) return;
|
|
|
+ return {
|
|
|
+ id: lossRecordListInfo.value.id,
|
|
|
+ name: lossRecordListInfo.value.affectedItems,
|
|
|
+ };
|
|
|
+ };
|
|
|
onMounted(async () => {
|
|
|
await getDisasterLossDetailList({ handleTaskId, reporterId });
|
|
|
- console.log(disasterLossDetailList.value);
|
|
|
+ if (!disasterLossDetailList.value?.reportTaskList.length) return;
|
|
|
+ reportTaskList.value = disasterLossDetailList.value?.reportTaskList;
|
|
|
+ activeId.value = reportTaskList.value[0].reportDeptId;
|
|
|
+ reportTaskListInfo.value = reportTaskList.value.find((item) => item.reportDeptId === activeId.value);
|
|
|
+ if (!reportTaskListInfo.value) return;
|
|
|
+ lossRecordList.value = reportTaskListInfo.value?.lossRecordList;
|
|
|
+ if (isNaN(activeTaskId.value)) {
|
|
|
+ activeTaskId.value = lossRecordList.value[0].fixTaskId;
|
|
|
+ }
|
|
|
+ lossRecordListInfo.value = lossRecordList.value.find((item) => item.fixTaskId === activeTaskId.value);
|
|
|
+ getFixUserList(lossRecordListInfo.value?.fixPrincipals);
|
|
|
+ });
|
|
|
+ defineExpose({
|
|
|
+ getLossRecordListInfo,
|
|
|
});
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
@use '@/views/disaster/style/info-container.scss' as *;
|
|
|
+ @use '../style/common.scss' as *;
|
|
|
</style>
|