diff --git a/packages/mobile/src/components/BasePicker.vue b/packages/mobile/src/components/BasePicker.vue index 68470dd..c8af136 100644 --- a/packages/mobile/src/components/BasePicker.vue +++ b/packages/mobile/src/components/BasePicker.vue @@ -15,6 +15,7 @@ { + // 布尔值需要转换为数字交给picker, 在设置的时候,又需要转换回来 + if(props.modelValue === true) return [1] + if(props.modelValue === false) return [0] + return [props.modelValue] +} + // 处理 Picker 数据格式:将 options 转为 Picker 需要的文本数组 const columns = computed(() => { return props.options.map(item => { + let value = item[props.valueKey] + let isBoolean = false + // vant不支持布尔值,需要做转换 + if(value === true) { + value = 1 + isBoolean = true + } + if(value === false) { + value = 0 + isBoolean = true + } + return { text: item[props.labelKey], - value: item[props.valueKey] + value, + isBoolean } }) }) @@ -119,7 +140,11 @@ const openPicker = () => { // 确认选择 const onConfirm = ({ selectedValues, selectedOptions }) => { - const value = selectedOptions[0][props.valueKey] + let value = selectedOptions[0][props.valueKey] + // 如果是布尔值,需要转换为布尔值 + if(selectedOptions[0].isBoolean) { + value = value === 1 ? true : false + } const label = selectedOptions[0][props.labelKey] emit('update:modelValue', value) emit('change', { value, label }) diff --git a/packages/mobile/src/components/TagFilter.vue b/packages/mobile/src/components/TagFilter.vue index 8246d0a..a7ab4a4 100644 --- a/packages/mobile/src/components/TagFilter.vue +++ b/packages/mobile/src/components/TagFilter.vue @@ -45,17 +45,7 @@ const props = defineProps({ // 标签列表 tags: { type: Array, - default: () => [ - { label: '全部', value: 'all' }, - { label: '边坡坍塌', value: '边坡坍塌' }, - { label: '泥石流', value: '泥石流' }, - { label: '路基沉陷', value: '路基沉陷' }, - { label: '山体滑坡', value: '山体滑坡' }, - { label: '行道树倒塌', value: '行道树倒塌' }, - { label: '积水', value: '积水' }, - { label: '积雪', value: '积雪' }, - { label: '其他', value: '其他' } - ] + default: () => [] } }) @@ -86,7 +76,8 @@ const selectTag = (value) => { // 重置筛选 const resetFilter = () => { - tempSelectedTag.value = 'all' + tempSelectedTag.value = null + emit('update:modelValue', tempSelectedTag.value) } // 确认筛选 diff --git a/packages/mobile/src/router/index.js b/packages/mobile/src/router/index.js index f8e9de7..185152a 100644 --- a/packages/mobile/src/router/index.js +++ b/packages/mobile/src/router/index.js @@ -62,7 +62,7 @@ const routes = [ component: () => import('../views/IceEvent/IceEventAdd.vue') }, { - path: '/iceEventDetail/:data', + path: '/iceEventDetail', name: 'IceEventDetail', component: () => import('../views/IceEvent/IceEventDetails.vue') }, @@ -107,9 +107,8 @@ const routes = [ component: () => import('../views/DisasterManagement/DisasterReport.vue') }, { - path: '/disasterDetail', - name: 'DisasterDetail', - component: () => import('../views/DisasterManagement/DisasterDetail.vue') + path: '/waterDisasterDetail', + component: () => import('../views/DisasterManagement/WaterDisasterDetail.vue') } ] diff --git a/packages/mobile/src/views/DisasterManagement/DisasterManagement.vue b/packages/mobile/src/views/DisasterManagement/DisasterManagement.vue index b17de77..5ec26b1 100644 --- a/packages/mobile/src/views/DisasterManagement/DisasterManagement.vue +++ b/packages/mobile/src/views/DisasterManagement/DisasterManagement.vue @@ -1,7 +1,16 @@ diff --git a/packages/screen/src/router/index.js b/packages/screen/src/router/index.js index dcb4155..5f04191 100644 --- a/packages/screen/src/router/index.js +++ b/packages/screen/src/router/index.js @@ -170,17 +170,26 @@ const routes = [ } }, // 线下帮扶台账 - 法规处 - // { - // path: '/ledgerManagement3', - // name: 'ledgerManagement3', - // component: () => import('../views/LedgerManagement/index.vue'), - // meta: { - // title: '驻地台账', - // breadcrumb: true, - // parentRoute: 'warningManagement3' - // } - // }, - + { + path: '/ledgerManagement3', + name: 'ledgerManagement3', + component: () => import('../views/LedgerManagement/helpLedger/index.vue'), + meta: { + title: '线下帮扶台账', + breadcrumb: true, + parentRoute: 'warningManagement3' + } + }, + { + path: '/dutyManagement', + name: 'dutyManagement', + component: () => import('../views/WarningManagement/law/dutyManagement/index.vue'), + meta: { + title: '值班管理', + breadcrumb: true, + parentRoute: 'warningManagement3' + } + }, // 项目管理 - 区县 { @@ -245,18 +254,33 @@ const routes = [ } }, { - path: '/disasterReport', - name: 'DisasterReport', - component: () => import('../views/DisasterManagement/DisasterReport/DisasterReportPC.vue'), + path: '/iceDisasterReport', + component: () => import('../views/DisasterManagement/IceDisasterReport/IceDisasterReportPC.vue'), meta: { - title: '灾毁事件填报', + title: '冰雪灾害上报', + breadcrumb: true + } + }, + { + path: '/iceDisasterDetail', + component: () => import('../views/DisasterManagement/IceDisasterDetail/IceDisasterDetailPC.vue'), + meta: { + title: '冰雪灾害详情', + breadcrumb: true + } + }, + { + path: '/waterDisasterReport', + component: () => import('../views/DisasterManagement/WaterDisasterReport/WaterDisasterReportPC.vue'), + meta: { + title: '水毁灾害上报', breadcrumb: true } }, { path: '/waterDisasterDetail', name: 'WaterDisasterDetail', - component: () => import('../views/DisasterManagement/DisasterDetail/WaterDisasterDetailPC.vue'), + component: () => import('../views/DisasterManagement/WaterDisasterDetail/WaterDisasterDetailPC.vue'), meta: { title: '水毁事件详情', breadcrumb: true diff --git a/packages/screen/src/views/DisasterManagement/DisasterManagementPC.vue b/packages/screen/src/views/DisasterManagement/DisasterManagementPC.vue index 700557d..1168264 100644 --- a/packages/screen/src/views/DisasterManagement/DisasterManagementPC.vue +++ b/packages/screen/src/views/DisasterManagement/DisasterManagementPC.vue @@ -21,7 +21,7 @@ - + @@ -37,18 +37,15 @@ - - - + + - - - - + + @@ -69,7 +66,7 @@ 查询 新增 - 导出Excel + 重置 @@ -86,7 +83,11 @@ {{ scope.$index + 1 }} - + + + @@ -120,13 +121,13 @@ @@ -153,7 +154,7 @@ - + @@ -165,18 +166,19 @@ import { useRouter } from 'vue-router' import { request } from '@/utils/request' import { Picture, VideoPlay } from '@element-plus/icons-vue' import VideoPreviewDialog from '@/component/VideoPreviewDialog.vue' +import { useOptions } from '@shared/composables/useOptions' const router = useRouter() - +const { options, getAreaOptions } = useOptions() // 筛选表单 const filterForm = reactive({ unit: '', // 所属单位 occurLocation: '', // 发生地点 routeNo: '', // 路线编号 - disasterType: '', // 灾害类型/事件类别 + type: '', // 灾害类型/事件类别 eventStatus: '', // 事件状态 (0-未解除, 1-已解除) - isBlocked: '', // 是否阻断 - roadConditionType: '', // 路线类型 + blocked: '', // 是否阻断 + routeType: '', // 路线类型 pushStatus: '' // 推送状态 }) @@ -199,6 +201,11 @@ const pagination = reactive({ total: 0 }) +const getDistrictName = (districtId) => { + if (!options.value.area?.length) return '-' + return options.value.area.find((item) => item.value === districtId)?.label || '-' +} + // 构建查询参数 const buildQueryParams = () => { const params = { @@ -207,15 +214,15 @@ const buildQueryParams = () => { unit: filterForm.unit, occurLocation: filterForm.occurLocation, routeNo: filterForm.routeNo, - disasterType: filterForm.disasterType, + type: filterForm.type, eventStatus: filterForm.eventStatus, - isBlocked: filterForm.isBlocked, - roadConditionType: filterForm.roadConditionType + blocked: filterForm.blocked, + routeType: filterForm.routeType } if (dateRange.value && dateRange.value.length === 2) { - params.startDate = dateRange.value[0] - params.endDate = dateRange.value[1] + params.startTime = dateRange.value[0] + ' 00:00:00' + params.endTime = dateRange.value[1] + ' 23:59:59' } // 过滤空字符串或null的参数 @@ -301,10 +308,10 @@ const resetFilters = () => { filterForm.unit = '' filterForm.occurLocation = '' filterForm.routeNo = '' - filterForm.disasterType = '' + filterForm.type = '' filterForm.eventStatus = '' - filterForm.isBlocked = '' - filterForm.roadConditionType = '' + filterForm.blocked = '' + filterForm.routeType = '' filterForm.pushStatus = '' dateRange.value = null handleQuery() @@ -312,17 +319,27 @@ const resetFilters = () => { // 查看详情 const handleDetail = (row) => { - router.push({ path: '/waterDisasterDetail', query: { id: row.id } }) + if (row.disasterType == 'WATER_DAMAGE') { + router.push({ path: '/waterDisasterDetail', query: { id: row.id } }) + } + if (row.disasterType == 'ICE_SNOW') { + router.push({ path: '/iceDisasterDetail', query: { id: row.id } }) + } } // 编辑 const handleEdit = (row) => { - router.push({ path: '/waterDisasterDetail', query: { id: row.id, mode: 'edit' } }) + if (row.disasterType == 'WATER_DAMAGE') { + router.push({ path: '/waterDisasterDetail', query: { id: row.id, mode: 'edit' } }) + } + if (row.disasterType == 'ICE_SNOW') { + router.push({ path: '/iceDisasterDetail', query: { id: row.id, mode: 'edit' } }) + } } // 新增跳转 const toReport = () => { - router.push('/disasterReport') + router.push('/waterDisasterReport') } // 查看图片 @@ -353,6 +370,8 @@ const handleCurrentChange = (val) => { // 初始化加载数据 onMounted(() => { + getAreaOptions() + fetchData() }) diff --git a/packages/screen/src/views/DisasterManagement/DisasterReport/DisasterReportPC.vue b/packages/screen/src/views/DisasterManagement/DisasterReport/DisasterReportPC.vue deleted file mode 100644 index 3bfa6d3..0000000 --- a/packages/screen/src/views/DisasterManagement/DisasterReport/DisasterReportPC.vue +++ /dev/null @@ -1,115 +0,0 @@ - - - - - diff --git a/packages/screen/src/views/DisasterManagement/IceDisasterDetail/IceDisasterContinueReportPC.vue b/packages/screen/src/views/DisasterManagement/IceDisasterDetail/IceDisasterContinueReportPC.vue new file mode 100644 index 0000000..a031a06 --- /dev/null +++ b/packages/screen/src/views/DisasterManagement/IceDisasterDetail/IceDisasterContinueReportPC.vue @@ -0,0 +1,449 @@ + + + + + diff --git a/packages/screen/src/views/DisasterManagement/IceDisasterDetail/IceDisasterDetailPC.vue b/packages/screen/src/views/DisasterManagement/IceDisasterDetail/IceDisasterDetailPC.vue new file mode 100644 index 0000000..751cdfc --- /dev/null +++ b/packages/screen/src/views/DisasterManagement/IceDisasterDetail/IceDisasterDetailPC.vue @@ -0,0 +1,606 @@ + + + + + diff --git a/packages/screen/src/views/DisasterManagement/IceDisasterReport/IceDisasterReportPC.vue b/packages/screen/src/views/DisasterManagement/IceDisasterReport/IceDisasterReportPC.vue new file mode 100644 index 0000000..243d343 --- /dev/null +++ b/packages/screen/src/views/DisasterManagement/IceDisasterReport/IceDisasterReportPC.vue @@ -0,0 +1,704 @@ + + + + + diff --git a/packages/screen/src/views/DisasterManagement/DisasterDetail/WaterDisasterContinueReportPC.vue b/packages/screen/src/views/DisasterManagement/WaterDisasterDetail/WaterDisasterContinueReportPC.vue similarity index 98% rename from packages/screen/src/views/DisasterManagement/DisasterDetail/WaterDisasterContinueReportPC.vue rename to packages/screen/src/views/DisasterManagement/WaterDisasterDetail/WaterDisasterContinueReportPC.vue index c98f449..a031a06 100644 --- a/packages/screen/src/views/DisasterManagement/DisasterDetail/WaterDisasterContinueReportPC.vue +++ b/packages/screen/src/views/DisasterManagement/WaterDisasterDetail/WaterDisasterContinueReportPC.vue @@ -99,15 +99,15 @@ - - + + - - + + @@ -138,7 +138,7 @@ import { ref, reactive, watch, computed } from 'vue' import { ElMessage } from 'element-plus' import { request } from '@shared/utils/request' -import LossList from '../DisasterReport/WaterDisasterLossListPC.vue' +import LossList from '../WaterDisasterReport/WaterDisasterLossListPC.vue' // Props 定义 const props = defineProps({ diff --git a/packages/screen/src/views/DisasterManagement/DisasterDetail/WaterDisasterDetailPC.vue b/packages/screen/src/views/DisasterManagement/WaterDisasterDetail/WaterDisasterDetailPC.vue similarity index 95% rename from packages/screen/src/views/DisasterManagement/DisasterDetail/WaterDisasterDetailPC.vue rename to packages/screen/src/views/DisasterManagement/WaterDisasterDetail/WaterDisasterDetailPC.vue index a37db99..736ca85 100644 --- a/packages/screen/src/views/DisasterManagement/DisasterDetail/WaterDisasterDetailPC.vue +++ b/packages/screen/src/views/DisasterManagement/WaterDisasterDetail/WaterDisasterDetailPC.vue @@ -4,7 +4,7 @@