bugfix: 修改灾毁bug

This commit is contained in:
niedongsheng 2026-04-27 16:50:29 +08:00
parent 5981d19c6a
commit d1acb12b40
3 changed files with 86 additions and 58 deletions

View File

@ -6,7 +6,6 @@
<BaseDatePicker
v-model="formData.event.occurTime"
label="发生时间"
required
placeholder="请选择时间"
:columnsType="['year', 'month', 'day', 'hour', 'minute']"
/>
@ -20,39 +19,37 @@
<RoadRoutesPicker
v-model="formData.event.routeNo"
label="线路编号"
placeholder="请线路"
placeholder="请选择"
@change="handleRouteNoChange"
required
/>
<!-- 发生地点 (occurLocation) -->
<van-field v-model="formData.event.occurLocation" label="发生地点" placeholder="请填写" required />
<van-field v-model="formData.event.occurLocation" label="发生地点" placeholder="请填写" />
<!-- 起点桩号 (event.startStakeNo) -->
<van-field v-model="formData.event.startStakeNo" label="起点桩号(K)" placeholder="请填写" required />
<van-field v-model="formData.event.startStakeNo" label="起点桩号(K)" placeholder="请填写" />
<!-- 起点桩经度 -->
<van-field v-model="formData.event.startStakeLng" label="起点桩经度" placeholder="请填写" type="digit" />
<van-field v-model="formData.event.startStakeLng" label="起点桩经度" placeholder="请填写" type="number" />
<!-- 起点桩纬度 -->
<van-field v-model="formData.event.startStakeLat" label="起点桩纬度" placeholder="请填写" type="digit" />
<van-field v-model="formData.event.startStakeLat" label="起点桩纬度" placeholder="请填写" type="number" />
<!-- 止点桩号 (event.endStakeNo) -->
<van-field v-model="formData.event.endStakeNo" label="止点桩号(K)" placeholder="请填写" required />
<van-field v-model="formData.event.endStakeNo" label="止点桩号(K)" placeholder="请填写" />
<!-- 止点桩经度 -->
<van-field v-model="formData.event.endStakeLng" label="止点桩经度" placeholder="请填写" type="digit" />
<van-field v-model="formData.event.endStakeLng" label="止点桩经度" placeholder="请填写" type="number" />
<!-- 止点桩纬度 -->
<van-field v-model="formData.event.endStakeLat" label="止点桩纬度" placeholder="请填写" type="digit" />
<van-field v-model="formData.event.endStakeLat" label="止点桩纬度" placeholder="请填写" type="number" />
<!-- 受灾里程 (event.disasterMileage) -->
<van-field
v-model="formData.event.disasterMileage"
label="受灾里程"
placeholder="请填写"
type="digit"
required
type="number"
>
<template #button>
<span class="field-unit">公里</span>
@ -61,7 +58,7 @@
</PanelItem>
<PanelItem title="处置情况">
<van-field label="处置措施" label-align="top" required>
<van-field label="处置措施" label-align="top">
<template #input>
<van-row :gutter="5">
<van-col
@ -89,7 +86,6 @@
:min-date="minDate"
:max-date="maxDate"
type="datetime"
required
/>
</PanelItem>
@ -97,7 +93,7 @@
<van-field
v-model="formData.report.inputManpower"
label="投入人力"
placeholder="请填写"
placeholder="请填写(非必填)"
type="number"
>
<template #button>
@ -107,8 +103,8 @@
<van-field
v-model="formData.report.inputFunds"
label="投入资金"
placeholder="请填写"
type="digit"
placeholder="请填写(非必填)"
type="number"
>
<template #button>
<span class="field-unit">万元</span>
@ -117,8 +113,8 @@
<van-field
v-model="formData.report.inputEquipment"
label="投入设备"
placeholder="请填写"
type="digit"
placeholder="请填写(非必填)"
type="number"
>
<template #button>
<span class="field-unit">/</span>
@ -131,7 +127,7 @@
v-model="formData.report.hasStrandedVehicles"
:options="options['haveOrNot']"
label="有无车辆滞留"
placeholder="请选择"
placeholder="请选择(非必填)"
/>
<van-field
@ -140,15 +136,15 @@
type="number"
label="滞留车辆数"
center
placeholder="请填写"
placeholder="请填写(非必填)"
/>
<van-field v-model="formData.report.siteDescription" label="现场描述" placeholder="请填写" type="textarea" rows="2" autosize />
<van-field v-model="formData.report.siteDescription" label="现场描述" placeholder="请填写(非必填)" type="textarea" rows="2" autosize />
<BaseDatePicker
v-model="formData.report.actualRecoverTime"
label="实际恢复时间"
placeholder="请选择时间"
placeholder="请选择时间(非必填)"
:min-date="minDate"
:max-date="maxDate"
type="datetime"
@ -276,10 +272,26 @@ const validate = () => {
showToast('请输入起点桩号');
return false;
}
if (isEmpty(formData.value.event?.startStakeLng)) {
showToast('请输入起点桩经度');
return false;
}
if (isEmpty(formData.value.event?.startStakeLat)) {
showToast('请输入起点桩纬度');
return false;
}
if (isEmpty(formData.value.event?.endStakeNo)) {
showToast('请输入止点桩号');
return false;
}
if (isEmpty(formData.value.event?.endStakeLng)) {
showToast('请输入止点桩经度');
return false;
}
if (isEmpty(formData.value.event?.endStakeLat)) {
showToast('请输入止点桩纬度');
return false;
}
if (isEmpty(formData.value.event?.occurLocation)) {
showToast('请输入发生地点');
return false;

View File

@ -4,57 +4,57 @@
<PanelItem title="基本信息" v-if="!isContinue">
<van-form >
<!-- 路况类别 -->
<BasePicker v-model="formData.event.roadConditionType" :options="options['waterRoadConditionType']" label="路况类别" placeholder="请选择" required />
<BasePicker v-model="formData.event.roadConditionType" :options="options['waterRoadConditionType']" label="路况类别" placeholder="请选择" />
<!-- 是否阻断 (event.isBlocked) -->
<BasePicker v-model="formData.event.isBlocked" :options="options['yesOrNoBool']" label="是否阻断" placeholder="请选择" required />
<BasePicker v-model="formData.event.isBlocked" :options="options['yesOrNoBool']" label="是否阻断" placeholder="请选择" />
<!-- 抢险进度 (event.repairProgress) -->
<BasePicker v-model="formData.event.repairProgress" :options="options['repairProgress']" label="抢险进度" placeholder="请选择" required />
<BasePicker v-model="formData.event.repairProgress" :options="options['repairProgress']" label="抢险进度" placeholder="请选择" />
<!-- 水毁处数 (event.damageCount) -->
<van-field v-model="formData.event.damageCount" label="水毁处数" placeholder="请填写" type="number" required />
<van-field v-model="formData.event.damageCount" label="水毁处数" placeholder="请填写" type="number" />
<!-- 阻断里程 (event.blockedMileage) -->
<van-field v-model="formData.event.blockedMileage" label="阻断里程" placeholder="请填写" type="digit" required>
<van-field v-model="formData.event.blockedMileage" label="阻断里程" placeholder="请填写" type="number">
<template #button>
<span class="field-unit">公里</span>
</template>
</van-field>
<!-- 发生时间 (顶层 occurTime) -->
<BaseDatePicker v-model="formData.event.occurTime" label="发生时间" placeholder="请选择时间" :columnsType="['year', 'month', 'day', 'hour', 'minute']" required />
<BaseDatePicker v-model="formData.event.occurTime" label="发生时间" placeholder="请选择时间" :columnsType="['year', 'month', 'day', 'hour', 'minute']" />
<div class="calibrate-time-btn" @click="calibrateTime">
<van-icon name="replay" />
<span>校准时间</span>
</div>
<!-- 线路编号 (顶层 routeNo) -->
<RoadRoutesPicker v-model="formData.event.routeNo" label="线路编号" placeholder="请线路" @change="handleRouteNoChange" required />
<RoadRoutesPicker v-model="formData.event.routeNo" label="线路编号" placeholder="请选择" @change="handleRouteNoChange" />
<!-- 起点桩号 (event.startStakeNo) -->
<van-field v-model="formData.event.startStakeNo" label="起点桩号(K)" placeholder="请填写" required />
<van-field v-model="formData.event.startStakeNo" label="起点桩号(K)" placeholder="请填写" />
<!-- 起点桩经度 -->
<van-field v-model="formData.event.startStakeLng" label="起点桩经度" placeholder="请填写" type="digit" />
<van-field v-model="formData.event.startStakeLng" label="起点桩经度" placeholder="请填写" type="number" />
<!-- 起点桩纬度 -->
<van-field v-model="formData.event.startStakeLat" label="起点桩纬度" placeholder="请填写" type="digit" />
<van-field v-model="formData.event.startStakeLat" label="起点桩纬度" placeholder="请填写" type="number" />
<!-- 止点桩号 (event.endStakeNo) -->
<van-field v-model="formData.event.endStakeNo" label="止点桩号(K)" placeholder="请填写" required />
<van-field v-model="formData.event.endStakeNo" label="止点桩号(K)" placeholder="请填写" />
<!-- 止点桩经度 -->
<van-field v-model="formData.event.endStakeLng" label="止点桩经度" placeholder="请填写" type="digit" />
<van-field v-model="formData.event.endStakeLng" label="止点桩经度" placeholder="请填写" type="number" />
<!-- 止点桩纬度 -->
<van-field v-model="formData.event.endStakeLat" label="止点桩纬度" placeholder="请填写" type="digit" />
<van-field v-model="formData.event.endStakeLat" label="止点桩纬度" placeholder="请填写" type="number" />
<!-- 路况位置 (occurLocation) -->
<van-field v-model="formData.event.occurLocation" label="路况位置" placeholder="请填写" required />
<van-field v-model="formData.event.occurLocation" label="路况位置" placeholder="请填写" />
<!-- 阻断点小地名 (event.blockedPointName) -->
<van-field v-model="formData.event.blockedPointName" label="阻断点小地名" placeholder="请填写" required />
<van-field v-model="formData.event.blockedPointName" label="阻断点小地名" placeholder="请填写" />
</van-form>
</PanelItem>
@ -75,36 +75,36 @@
</van-field>
<!-- 预计恢复时间 (report.expectRecoverTime) -->
<BaseDatePicker v-model="formData.report.expectRecoverTime" label="预计恢复时间" placeholder="请选择时间" :min-date="minDate" :max-date="maxDate" type="datetime" required />
<BaseDatePicker v-model="formData.report.expectRecoverTime" label="预计恢复时间" placeholder="请选择时间" :min-date="minDate" :max-date="maxDate" type="datetime" />
<!-- 实际恢复时间 (report.actualRecoverTime) -->
<BaseDatePicker v-model="formData.report.actualRecoverTime" label="实际恢复时间" placeholder="请选择时间" :min-date="minDate" :max-date="maxDate" type="datetime" />
<BaseDatePicker v-model="formData.report.actualRecoverTime" label="实际恢复时间" placeholder="请选择时间(非必填)" :min-date="minDate" :max-date="maxDate" type="datetime" />
</PanelItem>
<!-- 人员车辆 (report) -->
<PanelItem title="人员车辆">
<van-form>
<van-field v-model="formData.report.injuredCount" label="受伤人员" placeholder="请填写" type="number">
<van-field v-model="formData.report.injuredCount" label="受伤人员" placeholder="请填写(非必填)" type="number">
<template #button>
<span class="field-unit"></span>
</template>
</van-field>
<van-field v-model="formData.report.deadCount" label="死亡人员" placeholder="请填写" type="number">
<van-field v-model="formData.report.deadCount" label="死亡人员" placeholder="请填写(非必填)" type="number">
<template #button>
<span class="field-unit"></span>
</template>
</van-field>
<van-field v-model="formData.report.strandedPersonCount" label="滞留人员" placeholder="请填写" type="number">
<van-field v-model="formData.report.strandedPersonCount" label="滞留人员" placeholder="请填写(非必填)" type="number">
<template #button>
<span class="field-unit"></span>
</template>
</van-field>
<van-field v-model="formData.report.damagedVehicleCount" label="损坏车辆" placeholder="请填写" type="number">
<van-field v-model="formData.report.damagedVehicleCount" label="损坏车辆" placeholder="请填写(非必填)" type="number">
<template #button>
<span class="field-unit"></span>
</template>
</van-field>
<van-field v-model="formData.report.strandedVehicleCount" label="滞留车辆" placeholder="请填写" type="number">
<van-field v-model="formData.report.strandedVehicleCount" label="滞留车辆" placeholder="请填写(非必填)" type="number">
<template #button>
<span class="field-unit"></span>
</template>
@ -115,8 +115,8 @@
<!-- 灾毁损失 (lossList) -->
<PanelItem title="灾毁损失">
<LossList v-model="formData.lossList" />
<van-field v-model="formData.report.remark" label="处理情况" placeholder="请填写(填)" />
<van-field v-model="formData.report.totalLossAmount" label="损失总金额" placeholder="请填写(选填)" type="digit">
<van-field v-model="formData.report.remark" label="处理情况" placeholder="请填写(非必填)" />
<van-field v-model="formData.report.totalLossAmount" label="损失总金额" placeholder="请填写(非必填)" type="number">
<template #button>
<span class="field-unit">万元</span>
</template>
@ -125,30 +125,30 @@
<!-- 投入资源 (report) -->
<PanelItem>
<van-field v-model="formData.report.investedMachinery" label="投入机械" placeholder="请填写" type="digit">
<van-field v-model="formData.report.investedMachinery" label="投入机械" placeholder="请填写(非必填)" type="number">
<template #button>
<span class="field-unit">/</span>
</template>
</van-field>
<van-field v-model="formData.report.investedManpower" label="投入人力" placeholder="请填写" type="number">
<van-field v-model="formData.report.investedManpower" label="投入人力" placeholder="请填写(非必填)" type="number">
<template #button>
<span class="field-unit">人次</span>
</template>
</van-field>
<van-field v-model="formData.report.investedFunds" label="投入资金" placeholder="请填写" type="digit">
<van-field v-model="formData.report.investedFunds" label="投入资金" placeholder="请填写(非必填)" type="number">
<template #button>
<span class="field-unit">万元</span>
</template>
</van-field>
<van-field v-model="formData.report.siteDescription" label="现场描述" placeholder="请填写" type="textarea" rows="2" autosize />
<van-field v-model="formData.report.siteDescription" label="现场描述" placeholder="请填写(非必填)" type="textarea" rows="2" autosize />
<!-- 文件上传 -->
<DisasterFileUpload label="附件上传" v-model="formData.fileList" />
</PanelItem>
<PanelItem v-if="!isContinue || (isContinue && !detail?.event.needsRecovery)">
<!-- 是否需要恢复重建 (event.needsRecovery) -->
<BasePicker v-model="formData.event.needsRecovery" :options="options['yesOrNoBool']" label="是否需要恢复重建" placeholder="请选择" required />
<BasePicker v-model="formData.event.needsRecovery" :options="options['yesOrNoBool']" label="是否需要恢复重建" placeholder="请选择" />
<!-- 恢复重建预估费用 (event.estimatedRecoveryCost) -->
<van-field v-model="formData.event.estimatedRecoveryCost" v-if="formData?.event.needsRecovery" label="恢复重建预估费用" placeholder="请填写" type="digit" required>
<van-field v-model="formData.event.estimatedRecoveryCost" v-if="formData?.event.needsRecovery" label="恢复重建预估费用" placeholder="请填写" type="number">
<template #button>
<span class="field-unit">万元</span>
</template>
@ -311,10 +311,26 @@ const validate = () => {
showToast('请输入起点桩号')
return false
}
if (isEmpty(formData.value.event?.startStakeLng)) {
showToast('请输入起点桩经度')
return false
}
if (isEmpty(formData.value.event?.startStakeLat)) {
showToast('请输入起点桩纬度')
return false
}
if (isEmpty(formData.value.event?.endStakeNo)) {
showToast('请输入止点桩号')
return false
}
if (isEmpty(formData.value.event?.endStakeLng)) {
showToast('请输入止点桩经度')
return false
}
if (isEmpty(formData.value.event?.endStakeLat)) {
showToast('请输入止点桩纬度')
return false
}
if (isEmpty(formData.value.event?.occurLocation)) {
showToast('请输入路况位置')
return false

View File

@ -65,12 +65,12 @@ const isValidImage = (file) => {
return false
}
const isLt500k = file.size / 1024 < 500
// const isLt500k = file.size / 1024 < 500
if (!isLt500k) {
showFailToast(`图片大小不能超过 500KB当前大小${(file.size / 1024).toFixed(2)}KB`)
return false
}
// if (!isLt500k) {
// showFailToast(` 500KB${(file.size / 1024).toFixed(2)}KB`)
// return false
// }
return true
}