|
|
@@ -32,6 +32,7 @@
|
|
|
:damagedList="reportTask.lossRecordList"
|
|
|
:active-id="activeTaskId"
|
|
|
@update:activeId="handleActiveTask"
|
|
|
+ @update:activeReportRecordId="handleActiveReportRecordId"
|
|
|
/>
|
|
|
</section>
|
|
|
<section class="disaster-info-container">
|
|
|
@@ -63,6 +64,7 @@
|
|
|
import Rectification from './src/components/Rectification.vue';
|
|
|
import { useDisasterControlHook } from './src/hook';
|
|
|
import { useUserInfoHook } from '../hooks';
|
|
|
+ import { exportLossRecord } from './src/util';
|
|
|
import type { PersonGroupItem } from '@/types/person-group/type';
|
|
|
import type { ReportTaskListDetail, LossRecordListDetail } from '@/types/disaster-control';
|
|
|
import { queryUserInfoByIds } from '@/api/system/person-group';
|
|
|
@@ -71,12 +73,19 @@
|
|
|
const router = useRouter();
|
|
|
const route = useRoute();
|
|
|
const handleTaskId = Number(route.params.id);
|
|
|
- const { lossTaskId, fixTaskId, deptId } = route.query as unknown as {
|
|
|
- lossTaskId: number;
|
|
|
+ const {
|
|
|
+ fixTaskId,
|
|
|
+ deptId,
|
|
|
+ reportRecordId,
|
|
|
+ type: viewType,
|
|
|
+ } = route.query as unknown as {
|
|
|
fixTaskId: number;
|
|
|
deptId: number;
|
|
|
+ reportRecordId: number;
|
|
|
+ type: 'task' | 'item';
|
|
|
};
|
|
|
const activeTaskId = ref<number>(Number(fixTaskId));
|
|
|
+ const activeReportRecordId = ref<number>(Number(reportRecordId));
|
|
|
|
|
|
const handleActiveTask = (fixTaskId: number) => {
|
|
|
activeTaskId.value = fixTaskId;
|
|
|
@@ -84,11 +93,33 @@
|
|
|
lossRecordListInfo.value = lossRecordList.value.find((item) => item.fixTaskId === activeTaskId.value);
|
|
|
getFixUserList(lossRecordListInfo.value?.fixPrincipals);
|
|
|
};
|
|
|
+ const handleActiveReportRecordId = (reportRecordId: number) => {
|
|
|
+ activeReportRecordId.value = reportRecordId;
|
|
|
+ };
|
|
|
const { id: fixerId } = useUserInfoHook();
|
|
|
const { getDisasterLossDetailList, disasterLossDetailList } = useDisasterControlHook();
|
|
|
|
|
|
- const exportLossDetail = () => {
|
|
|
- ElMessage.warning('暂未开放');
|
|
|
+ const exportLossDetail = async () => {
|
|
|
+ if (!disasterLossDetailList.value) return;
|
|
|
+ let name;
|
|
|
+ const params = {
|
|
|
+ handleTaskId,
|
|
|
+ fixerId,
|
|
|
+ };
|
|
|
+ if (viewType === 'task') {
|
|
|
+ name = disasterLossDetailList.value?.handleTaskName;
|
|
|
+ await exportLossRecord(params, name);
|
|
|
+ } else {
|
|
|
+ name = lossRecordListInfo.value?.affectedItems;
|
|
|
+ await exportLossRecord(
|
|
|
+ {
|
|
|
+ ...params,
|
|
|
+ reportRecordId: activeReportRecordId.value,
|
|
|
+ },
|
|
|
+ name,
|
|
|
+ );
|
|
|
+ }
|
|
|
+ ElMessage.success(`导出${name}损失明细成功`);
|
|
|
};
|
|
|
const activeId = ref<number | null>(null);
|
|
|
const handleCollapseToggle = (itemId: number) => {
|