|
@@ -1,17 +1,4 @@
|
|
|
<template>
|
|
<template>
|
|
|
- <div>
|
|
|
|
|
-
|
|
|
|
|
- </div>
|
|
|
|
|
-</template>
|
|
|
|
|
-
|
|
|
|
|
-<script lang="ts" setup>
|
|
|
|
|
-
|
|
|
|
|
-</script>
|
|
|
|
|
-
|
|
|
|
|
-<style lang="scss" scoped>
|
|
|
|
|
-
|
|
|
|
|
-</style>
|
|
|
|
|
-<!-- <template>
|
|
|
|
|
<div class="disaster-precaution">
|
|
<div class="disaster-precaution">
|
|
|
<header class="disaster-precaution__header">
|
|
<header class="disaster-precaution__header">
|
|
|
<el-button type="primary" class="disaster-precaution__header--button" :icon="Plus"> 创建灾害损失记录 </el-button>
|
|
<el-button type="primary" class="disaster-precaution__header--button" :icon="Plus"> 创建灾害损失记录 </el-button>
|
|
@@ -20,6 +7,17 @@
|
|
|
:searchData="searchData"
|
|
:searchData="searchData"
|
|
|
@update:searchData="handleSearch"
|
|
@update:searchData="handleSearch"
|
|
|
>
|
|
>
|
|
|
|
|
+ <template #handleDeptIds>
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="searchData.handleDeptIds"
|
|
|
|
|
+ multiple
|
|
|
|
|
+ placeholder="请选择上报单位"
|
|
|
|
|
+ filterable
|
|
|
|
|
+ class="custom-select"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option v-for="item in firstLevelDepts" :key="item.id" :label="item.deptName" :value="item.id" />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </template>
|
|
|
</Search>
|
|
</Search>
|
|
|
</header>
|
|
</header>
|
|
|
<div class="collapse-container" v-loading="collapseLoading">
|
|
<div class="collapse-container" v-loading="collapseLoading">
|
|
@@ -29,8 +27,13 @@
|
|
|
</div>
|
|
</div>
|
|
|
<template v-else>
|
|
<template v-else>
|
|
|
<CollapseItem v-for="item in collapseList" :key="item.id" :name="item.taskName" :defaultOpen="item.id === 1">
|
|
<CollapseItem v-for="item in collapseList" :key="item.id" :name="item.taskName" :defaultOpen="item.id === 1">
|
|
|
|
|
+ <template #viewOperation>
|
|
|
|
|
+ <div class="update-time-container">
|
|
|
|
|
+ <span>发布时间:{{ item.updatedAt }}</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </template>
|
|
|
<template #main-table>
|
|
<template #main-table>
|
|
|
- <BasicTable :tableData="item.tableData" :tableConfig="tableConfig" />
|
|
|
|
|
|
|
+ <!-- <BasicTable :tableData="item.tableData" :tableConfig="tableConfig" /> -->
|
|
|
</template>
|
|
</template>
|
|
|
</CollapseItem>
|
|
</CollapseItem>
|
|
|
</template>
|
|
</template>
|
|
@@ -55,17 +58,25 @@
|
|
|
import { Plus } from '@element-plus/icons-vue';
|
|
import { Plus } from '@element-plus/icons-vue';
|
|
|
import Search from '@/views/disaster/components/Search.vue';
|
|
import Search from '@/views/disaster/components/Search.vue';
|
|
|
import BasicTable from '@/components/BasicTable.vue';
|
|
import BasicTable from '@/components/BasicTable.vue';
|
|
|
|
|
+ import { getAllDepartments } from '@/api/auth/dept';
|
|
|
import CollapseItem from './CollapseItem.vue';
|
|
import CollapseItem from './CollapseItem.vue';
|
|
|
import { DEFAULT_PAGE_SIZE, DISASTER_CONTROL_PAGE_SIZE_CONFIG } from '../constant';
|
|
import { DEFAULT_PAGE_SIZE, DISASTER_CONTROL_PAGE_SIZE_CONFIG } from '../constant';
|
|
|
- import type { DisposalManagementListResponse, LossRecordTableResponse } from '@/types/disaster-control';
|
|
|
|
|
|
|
+ import type {
|
|
|
|
|
+ DisposalManagementCollapseListResponse,
|
|
|
|
|
+ DisposalManagementTableResponse,
|
|
|
|
|
+ } from '@/types/disaster-control';
|
|
|
|
|
+ import { getDisasterControlCollapseData } from '@/api/disaster-control';
|
|
|
import {
|
|
import {
|
|
|
LOSS_RECORD_LOSS_RECORD_SEARCH_CONFIG,
|
|
LOSS_RECORD_LOSS_RECORD_SEARCH_CONFIG,
|
|
|
LOSS_RECORD_TABLE_COLUMNS,
|
|
LOSS_RECORD_TABLE_COLUMNS,
|
|
|
DISPOSAL_MANAGEMENT_TABLE_OPTIONS,
|
|
DISPOSAL_MANAGEMENT_TABLE_OPTIONS,
|
|
|
} from '../config';
|
|
} from '../config';
|
|
|
import Empty from 'assets/images/empty@1X.png';
|
|
import Empty from 'assets/images/empty@1X.png';
|
|
|
- import { getLossRecordCollapseData, getLossRecordTableData } from '@/api/disaster-control';
|
|
|
|
|
import useTableConfig from '@/hooks/useTableConfigHook';
|
|
import useTableConfig from '@/hooks/useTableConfigHook';
|
|
|
|
|
+ import { formatDeptTree } from '@/views/disaster/utils/formatDeptTree';
|
|
|
|
|
+ import type { DeptTree } from '@/types/dept/type';
|
|
|
|
|
+
|
|
|
|
|
+ const firstLevelDepts = ref<DeptTree[]>([]);
|
|
|
|
|
|
|
|
const currentPage = ref(1);
|
|
const currentPage = ref(1);
|
|
|
const pageSize = ref(DEFAULT_PAGE_SIZE);
|
|
const pageSize = ref(DEFAULT_PAGE_SIZE);
|
|
@@ -73,42 +84,47 @@
|
|
|
const collapseLoading = ref(false);
|
|
const collapseLoading = ref(false);
|
|
|
const { tableConfig } = useTableConfig(LOSS_RECORD_TABLE_COLUMNS, DISPOSAL_MANAGEMENT_TABLE_OPTIONS, false);
|
|
const { tableConfig } = useTableConfig(LOSS_RECORD_TABLE_COLUMNS, DISPOSAL_MANAGEMENT_TABLE_OPTIONS, false);
|
|
|
const searchData = reactive({
|
|
const searchData = reactive({
|
|
|
- department: '',
|
|
|
|
|
- progress: '',
|
|
|
|
|
|
|
+ handleDeptIds: '',
|
|
|
|
|
+ fixStatus: '',
|
|
|
});
|
|
});
|
|
|
const handleSearch = () => {
|
|
const handleSearch = () => {
|
|
|
console.log(searchData);
|
|
console.log(searchData);
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
const taskIds = ref<number[]>([]);
|
|
const taskIds = ref<number[]>([]);
|
|
|
- const collapseList = ref<DisposalManagementListResponse<LossRecordTableResponse>[]>([]);
|
|
|
|
|
|
|
+ const collapseList = ref<DisposalManagementCollapseListResponse<DisposalManagementTableResponse>[]>([]);
|
|
|
const getDisposalData = async () => {
|
|
const getDisposalData = async () => {
|
|
|
collapseLoading.value = true;
|
|
collapseLoading.value = true;
|
|
|
- const res = await getLossRecordCollapseData({
|
|
|
|
|
|
|
+ const res = await getDisasterControlCollapseData({
|
|
|
pageNumber: currentPage.value,
|
|
pageNumber: currentPage.value,
|
|
|
pageSize: pageSize.value,
|
|
pageSize: pageSize.value,
|
|
|
queryParam: {},
|
|
queryParam: {},
|
|
|
});
|
|
});
|
|
|
- collapseList.value = res.records;
|
|
|
|
|
- collapseList.value.forEach((item) => {
|
|
|
|
|
- item.tableData = [];
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ collapseList.value = res.records.map((item) => ({
|
|
|
|
|
+ ...item,
|
|
|
|
|
+ tableData: [
|
|
|
|
|
+ {
|
|
|
|
|
+ handleTaskId: item.id,
|
|
|
|
|
+ disasterReportTaskInfoList: [],
|
|
|
|
|
+ },
|
|
|
|
|
+ ],
|
|
|
|
|
+ }));
|
|
|
taskIds.value = res.records.map((item) => item.id);
|
|
taskIds.value = res.records.map((item) => item.id);
|
|
|
total.value = res.totalRow;
|
|
total.value = res.totalRow;
|
|
|
collapseLoading.value = false;
|
|
collapseLoading.value = false;
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- const getDisposalTableData = async () => {
|
|
|
|
|
- tableConfig.loading = true;
|
|
|
|
|
- const res = await getLossRecordTableData({
|
|
|
|
|
- handleTaskIds: taskIds.value,
|
|
|
|
|
- ...searchData,
|
|
|
|
|
- });
|
|
|
|
|
- collapseList.value.forEach((item) => {
|
|
|
|
|
- item.tableData = res;
|
|
|
|
|
- });
|
|
|
|
|
- tableConfig.loading = false;
|
|
|
|
|
- };
|
|
|
|
|
|
|
+ // const getDisposalTableData = async () => {
|
|
|
|
|
+ // tableConfig.loading = true;
|
|
|
|
|
+ // const res = await getLossRecordTableData({
|
|
|
|
|
+ // handleTaskIds: taskIds.value,
|
|
|
|
|
+ // ...searchData,
|
|
|
|
|
+ // });
|
|
|
|
|
+ // collapseList.value.forEach((item) => {
|
|
|
|
|
+ // item.tableData = res;
|
|
|
|
|
+ // });
|
|
|
|
|
+ // tableConfig.loading = false;
|
|
|
|
|
+ // };
|
|
|
const handleSizeChange = (size: number) => {
|
|
const handleSizeChange = (size: number) => {
|
|
|
pageSize.value = size;
|
|
pageSize.value = size;
|
|
|
};
|
|
};
|
|
@@ -118,8 +134,10 @@
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
onMounted(async () => {
|
|
onMounted(async () => {
|
|
|
|
|
+ const result = await getAllDepartments();
|
|
|
|
|
+ firstLevelDepts.value = formatDeptTree(result);
|
|
|
await getDisposalData();
|
|
await getDisposalData();
|
|
|
- await getDisposalTableData();
|
|
|
|
|
|
|
+ // await getDisposalTableData();
|
|
|
});
|
|
});
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
@@ -131,4 +149,9 @@
|
|
|
height: $collapse-container-height;
|
|
height: $collapse-container-height;
|
|
|
max-height: $collapse-container-height;
|
|
max-height: $collapse-container-height;
|
|
|
}
|
|
}
|
|
|
-</style> -->
|
|
|
|
|
|
|
+ .update-time-container {
|
|
|
|
|
+ font-size: 14cpx;
|
|
|
|
|
+ color: #999;
|
|
|
|
|
+ font-weight: 400;
|
|
|
|
|
+ }
|
|
|
|
|
+</style>
|