feat: H5冰灾续报重构
This commit is contained in:
parent
037cdda407
commit
c850d60368
@ -35,7 +35,11 @@ const route = useRoute()
|
|||||||
// 是否为续报
|
// 是否为续报
|
||||||
const isContinue = computed(() => route.query.isContinue)
|
const isContinue = computed(() => route.query.isContinue)
|
||||||
|
|
||||||
const title = ref(!isContinue ? '灾毁填报' : '灾毁续报')
|
const title = computed(() => {
|
||||||
|
const label = route.query.eventType === 'ice' ? '冰毁' : '水毁'
|
||||||
|
if(!isContinue) return `${label}填报`
|
||||||
|
return `${label}续报`
|
||||||
|
})
|
||||||
|
|
||||||
// 事件类型
|
// 事件类型
|
||||||
const eventType = ref(route.query.eventType ? route.query.eventType : 'water')
|
const eventType = ref(route.query.eventType ? route.query.eventType : 'water')
|
||||||
|
|||||||
@ -32,9 +32,9 @@
|
|||||||
<!-- 止点桩号 (event.endStakeNo) -->
|
<!-- 止点桩号 (event.endStakeNo) -->
|
||||||
<van-field v-model="formData.event.endStakeNo" label="止点桩号(K)" placeholder="请填写" />
|
<van-field v-model="formData.event.endStakeNo" label="止点桩号(K)" placeholder="请填写" />
|
||||||
|
|
||||||
<!-- 受灾里程 (event.blockedMileage) -->
|
<!-- 受灾里程 (event.disasterMileage) -->
|
||||||
<van-field
|
<van-field
|
||||||
v-model="formData.event.blockedMileage"
|
v-model="formData.event.disasterMileage"
|
||||||
label="受灾里程"
|
label="受灾里程"
|
||||||
placeholder="请填写"
|
placeholder="请填写"
|
||||||
type="digit"
|
type="digit"
|
||||||
@ -77,19 +77,9 @@
|
|||||||
|
|
||||||
<PanelItem title="实施情况">
|
<PanelItem title="实施情况">
|
||||||
<van-field
|
<van-field
|
||||||
v-model="formData.report.investedMachinery"
|
v-model="formData.report.inputManpower"
|
||||||
label="投入人力"
|
label="投入人力"
|
||||||
placeholder="请填写"
|
placeholder="请填写"
|
||||||
type="digit"
|
|
||||||
>
|
|
||||||
<template #button>
|
|
||||||
<span class="field-unit">台/班</span>
|
|
||||||
</template>
|
|
||||||
</van-field>
|
|
||||||
<van-field
|
|
||||||
v-model="formData.report.investedManpower"
|
|
||||||
label="投入资金"
|
|
||||||
placeholder="请填写"
|
|
||||||
type="number"
|
type="number"
|
||||||
>
|
>
|
||||||
<template #button>
|
<template #button>
|
||||||
@ -97,8 +87,8 @@
|
|||||||
</template>
|
</template>
|
||||||
</van-field>
|
</van-field>
|
||||||
<van-field
|
<van-field
|
||||||
v-model="formData.report.investedMachinery"
|
v-model="formData.report.inputFunds"
|
||||||
label="投入设备"
|
label="投入资金"
|
||||||
placeholder="请填写"
|
placeholder="请填写"
|
||||||
type="digit"
|
type="digit"
|
||||||
>
|
>
|
||||||
@ -106,19 +96,29 @@
|
|||||||
<span class="field-unit">万元</span>
|
<span class="field-unit">万元</span>
|
||||||
</template>
|
</template>
|
||||||
</van-field>
|
</van-field>
|
||||||
|
<van-field
|
||||||
|
v-model="formData.report.inputEquipment"
|
||||||
|
label="投入设备"
|
||||||
|
placeholder="请填写"
|
||||||
|
type="digit"
|
||||||
|
>
|
||||||
|
<template #button>
|
||||||
|
<span class="field-unit">台/班</span>
|
||||||
|
</template>
|
||||||
|
</van-field>
|
||||||
<!-- 物资选择 -->
|
<!-- 物资选择 -->
|
||||||
<MaterialPicker v-model="formData.yhzMaterialList" />
|
<MaterialPicker v-model="formData.yhzMaterialList" />
|
||||||
|
|
||||||
<BasePicker
|
<BasePicker
|
||||||
v-model="formData.event.test"
|
v-model="formData.report.hasStrandedVehicles"
|
||||||
:options="options['haveOrNot']"
|
:options="options['haveOrNot']"
|
||||||
label="有无车辆滞留"
|
label="有无车辆滞留"
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<van-field
|
<van-field
|
||||||
v-if="formData.event.hasStrandedVehicles === 1"
|
v-if="formData.report.hasStrandedVehicles === 1"
|
||||||
v-model="form.event.strandedVehicleCount"
|
v-model="formData.report.strandedVehicleCount"
|
||||||
type="number"
|
type="number"
|
||||||
label="滞留车辆数"
|
label="滞留车辆数"
|
||||||
center
|
center
|
||||||
@ -126,7 +126,7 @@
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<BaseDatePicker
|
<BaseDatePicker
|
||||||
v-model="formData.report.expectRecoverTime"
|
v-model="formData.report.actualRecoverTime"
|
||||||
label="实际恢复时间"
|
label="实际恢复时间"
|
||||||
placeholder="请选择时间"
|
placeholder="请选择时间"
|
||||||
:min-date="minDate"
|
:min-date="minDate"
|
||||||
@ -154,7 +154,8 @@ import { useRoute } from 'vue-router';
|
|||||||
import { request } from '@shared/utils/request';
|
import { request } from '@shared/utils/request';
|
||||||
import { useOptions } from '@shared/composables/useOptions';
|
import { useOptions } from '@shared/composables/useOptions';
|
||||||
import DisasterFileUpload from '../components/DisasterFileUpload.vue';
|
import DisasterFileUpload from '../components/DisasterFileUpload.vue';
|
||||||
import { showToast, showFailToast, showLoadingToast } from 'vant';
|
import { showToast, showFailToast, showLoadingToast, showSuccessToast } from 'vant';
|
||||||
|
import { formatDate } from '@shared/utils'
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
const { options } = useOptions();
|
const { options } = useOptions();
|
||||||
@ -216,12 +217,15 @@ const handleRouteNoChange = (item = {}) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const calibrateTime = isShowToast => {
|
const calibrateTime = isShowToast => {
|
||||||
const now = new Date();
|
formData.value.occurTime = formatDate(Date.now());
|
||||||
const formatted = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')} ${String(now.getHours()).padStart(2, '0')}:${String(now.getMinutes()).padStart(2, '0')}`;
|
|
||||||
formData.value.occurTime = formatted;
|
|
||||||
if (isShowToast) showToast('时间已校准为当前时间');
|
if (isShowToast) showToast('时间已校准为当前时间');
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const validate = () => {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
const submitting = ref(false)
|
||||||
const handleSubmit = async () => {
|
const handleSubmit = async () => {
|
||||||
// 验证表单
|
// 验证表单
|
||||||
if (!validate()) return;
|
if (!validate()) return;
|
||||||
@ -258,7 +262,8 @@ const handleSubmit = async () => {
|
|||||||
} else {
|
} else {
|
||||||
// 提交成功后返回列表页
|
// 提交成功后返回列表页
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
router.replace('/disasterManagement');
|
if(isContinue) router.go(-1)
|
||||||
|
else router.replace('/disasterManagement');
|
||||||
}, 500);
|
}, 500);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -271,7 +276,7 @@ const handleSubmit = async () => {
|
|||||||
submitting.value = false;
|
submitting.value = false;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
const detailData = ref(null)
|
||||||
const getDisasterDetail = async () => {
|
const getDisasterDetail = async () => {
|
||||||
const id = route.query.id;
|
const id = route.query.id;
|
||||||
if (!id) {
|
if (!id) {
|
||||||
@ -290,7 +295,12 @@ const getDisasterDetail = async () => {
|
|||||||
|
|
||||||
if (result?.data) {
|
if (result?.data) {
|
||||||
const data = result.data;
|
const data = result.data;
|
||||||
|
data.reportList = undefined
|
||||||
|
data.report = {}
|
||||||
|
data.yhzMaterialList = []
|
||||||
|
data.fileList = []
|
||||||
detailData.value = data;
|
detailData.value = data;
|
||||||
|
formData.value = data
|
||||||
} else {
|
} else {
|
||||||
ElMessage.warning(result.message || '获取详情失败');
|
ElMessage.warning(result.message || '获取详情失败');
|
||||||
}
|
}
|
||||||
|
|||||||
@ -163,6 +163,7 @@ import LossList from '../components/LossList.vue'
|
|||||||
import { useRouter, useRoute } from 'vue-router'
|
import { useRouter, useRoute } from 'vue-router'
|
||||||
import { request } from '@shared/utils/request'
|
import { request } from '@shared/utils/request'
|
||||||
import { useOptions } from '@shared/composables/useOptions'
|
import { useOptions } from '@shared/composables/useOptions'
|
||||||
|
import { formatDate } from '@shared/utils'
|
||||||
|
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const { options } = useOptions()
|
const { options } = useOptions()
|
||||||
@ -230,7 +231,7 @@ const initFormData = (newVal) => {
|
|||||||
// 深度合并数据 - 直接替换整个对象
|
// 深度合并数据 - 直接替换整个对象
|
||||||
formData.value = {
|
formData.value = {
|
||||||
occurLocation: newVal.occurLocation || '',
|
occurLocation: newVal.occurLocation || '',
|
||||||
occurTime: newVal.occurTime || formatTime(),
|
occurTime: newVal.occurTime || formatDate(Date.now()),
|
||||||
roadConditionType: newVal.roadConditionType || '',
|
roadConditionType: newVal.roadConditionType || '',
|
||||||
routeNo: newVal.routeNo || '',
|
routeNo: newVal.routeNo || '',
|
||||||
event: { ...formData.value.event, ...(newVal.event || {}) },
|
event: { ...formData.value.event, ...(newVal.event || {}) },
|
||||||
@ -413,7 +414,8 @@ const handleSubmit = async () => {
|
|||||||
} else {
|
} else {
|
||||||
// 提交成功后返回列表页
|
// 提交成功后返回列表页
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
router.replace('/disasterManagement')
|
if(isContinue) router.go(-1)
|
||||||
|
else router.replace('/disasterManagement')
|
||||||
}, 500)
|
}, 500)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -463,14 +465,9 @@ const getDisasterDetail = async () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 日期格式化
|
|
||||||
const formatTime = (date = new Date()) => {
|
|
||||||
const pad = (n) => n.toString().padStart(2, '0')
|
|
||||||
return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ` + `${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`
|
|
||||||
}
|
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
formData.value.occurTime = formatTime()
|
formData.value.occurTime = formatDate(Date.now())
|
||||||
if (route.query.id) {
|
if (route.query.id) {
|
||||||
getDisasterDetail()
|
getDisasterDetail()
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user