ReportTask.vue 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <template>
  2. <div class="disaster-precaution">
  3. <header class="disaster-precaution__header">
  4. <Search
  5. :searchConfig="LOSS_REPORT_REPORT_TASK_SEARCH_CONFIG"
  6. :searchData="searchData"
  7. @update:searchData="handleSearch"
  8. >
  9. </Search>
  10. </header>
  11. <BasicTable :tableConfig="tableConfig" :tableData="tableData" :pageSizeConfig="DISASTER_CONTROL_PAGE_SIZE_CONFIG">
  12. <template #taskStage="scope">
  13. <span>{{ getTaskStage(scope.row.taskStage) }}</span>
  14. </template>
  15. </BasicTable>
  16. </div>
  17. </template>
  18. <script setup lang="ts">
  19. import { ref, reactive, onMounted } from 'vue';
  20. import Search from '@/views/disaster/components/Search.vue';
  21. import BasicTable from '@/components/BasicTable.vue';
  22. import {
  23. LOSS_REPORT_REPORT_TASK_SEARCH_CONFIG,
  24. LOSS_REPORT_REPORT_TASK_TABLE_OPTIONS,
  25. LOSS_REPORT_REPORT_TASK_TABLE_COLUMNS,
  26. } from '../config';
  27. import useTableConfig from '@/hooks/useTableConfigHook';
  28. import { DEFAULT_PAGE_SIZE, DISASTER_CONTROL_PAGE_SIZE_CONFIG } from '../constant';
  29. import { getLossReportReportTaskData } from '@/api/disaster-control';
  30. import type { LossReportReportTaskQuery, DisposalManagementTableResponse } from '@/types/disaster-control';
  31. import type { QueryPageRequest } from '@/types/disaster';
  32. import { getTaskStage } from '../util';
  33. const searchData = reactive({
  34. taskStage: '',
  35. });
  36. const tableData = ref<DisposalManagementTableResponse[]>([]);
  37. const { tableConfig, pagination } = useTableConfig(
  38. LOSS_REPORT_REPORT_TASK_TABLE_COLUMNS,
  39. LOSS_REPORT_REPORT_TASK_TABLE_OPTIONS,
  40. );
  41. pagination.pageSize = DEFAULT_PAGE_SIZE;
  42. let ReportTaskListQuery: QueryPageRequest<LossReportReportTaskQuery> = {
  43. pageNumber: pagination.pageNumber,
  44. pageSize: pagination.pageSize,
  45. queryParam: {},
  46. };
  47. const getTableData = async () => {
  48. tableConfig.loading = true;
  49. const res = await getLossReportReportTaskData(ReportTaskListQuery);
  50. tableData.value = res.records;
  51. pagination.total = res.totalRow;
  52. tableConfig.loading = false;
  53. };
  54. const handleSearch = () => {
  55. if (searchData.taskStage !== '') {
  56. ReportTaskListQuery.queryParam.taskStage = searchData.taskStage;
  57. }
  58. getTableData();
  59. };
  60. onMounted(() => {
  61. getTableData();
  62. });
  63. </script>
  64. <style lang="scss" scoped>
  65. @use '@/views/disaster/style/disaster.scss' as *;
  66. </style>