feat: 灾毁

This commit is contained in:
niedongsheng 2026-04-24 17:13:50 +08:00
parent c7d7271da9
commit a08695997f
2 changed files with 53 additions and 50 deletions

View File

@ -9,13 +9,13 @@
<el-form :model="formData" v-if="formData.report"> <el-form :model="formData" v-if="formData.report">
<BlockItem title="处置情况"> <BlockItem title="处置情况">
<el-form-item label="处理措施"> <el-form-item label="处理措施" required>
<el-select v-model="formData.report.disposalMeasures" placeholder="请选择" style="width: 100%"> <el-select v-model="formData.report.disposalMeasures" placeholder="请选择" style="width: 100%">
<el-option v-for="(option, idx) in options['iceDisposalMeasures']" :key="idx" :label="option.label" :value="option.value" /> <el-option v-for="(option, idx) in options['iceDisposalMeasures']" :key="idx" :label="option.label" :value="option.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="预计恢复时间"> <el-form-item label="预计恢复时间" required>
<el-date-picker <el-date-picker
v-model="formData.report.expectRecoverTime" v-model="formData.report.expectRecoverTime"
type="datetime" type="datetime"
@ -40,19 +40,19 @@
<BlockItem title="实施情况"> <BlockItem title="实施情况">
<MaterialList v-model="formData.yhzMaterialList" :yhzId="formData.event.serviceStationId" :col-span="24" /> <MaterialList v-model="formData.yhzMaterialList" :yhzId="formData.event.serviceStationId" :col-span="24" />
<el-form-item label="投入资金"> <el-form-item label="投入资金" required>
<NumberInput v-model="formData.report.inputFunds" :precision="2" placeholder="请填写" style="width: 300px"> <NumberInput v-model="formData.report.inputFunds" :precision="2" placeholder="请填写" style="width: 300px">
<template #append>万元</template> <template #append>万元</template>
</NumberInput> </NumberInput>
</el-form-item> </el-form-item>
<el-form-item label="投入人力"> <el-form-item label="投入人力" required>
<NumberInput v-model="formData.report.inputManpower" :precision="0" placeholder="请填写" style="width: 300px"> <NumberInput v-model="formData.report.inputManpower" :precision="0" placeholder="请填写" style="width: 300px">
<template #append>人次</template> <template #append>人次</template>
</NumberInput> </NumberInput>
</el-form-item> </el-form-item>
<el-form-item label="投入设备"> <el-form-item label="投入设备" required>
<NumberInput v-model="formData.report.inputEquipment" :precision="1" placeholder="请填写" style="width: 300px"> <NumberInput v-model="formData.report.inputEquipment" :precision="1" placeholder="请填写" style="width: 300px">
<template #append>/</template> <template #append>/</template>
</NumberInput> </NumberInput>
@ -85,7 +85,6 @@
<el-form-item> <el-form-item>
<el-button type="primary" @click="handleAddSubmit">追加记录</el-button> <el-button type="primary" @click="handleAddSubmit">追加记录</el-button>
<el-button type="primary" @click="handleCompleteSubmit">解除事件</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-card> </el-card>
@ -137,6 +136,18 @@ const validate = () => {
ElMessage.warning('请选择预计恢复时间') ElMessage.warning('请选择预计恢复时间')
return false return false
} }
if (form.report.inputFunds === null || form.report.inputFunds === undefined || form.report.inputFunds === '') {
ElMessage.warning('请填写投入资金')
return false
}
if (form.report.inputManpower === null || form.report.inputManpower === undefined || form.report.inputManpower === '') {
ElMessage.warning('请填写投入人力')
return false
}
if (form.report.inputEquipment === null || form.report.inputEquipment === undefined || form.report.inputEquipment === '') {
ElMessage.warning('请填写投入设备')
return false
}
if (!form.report.siteDescription) { if (!form.report.siteDescription) {
ElMessage.warning('请填写现场情况描述') ElMessage.warning('请填写现场情况描述')
return false return false
@ -182,15 +193,26 @@ const handleAddSubmit = async () => {
} }
try { try {
let apiUrl = '/snow-ops-platform/event/dispose'
if (formData.value.report?.disposalMeasures === '正常通行') {
apiUrl = '/snow-ops-platform/event/release'
}
const res = await request({ const res = await request({
url: '/snow-ops-platform/event/dispose', url: apiUrl,
method: 'post', method: 'post',
data: getFormData() data: getFormData()
}) })
if (res?.code === '00000') { if (res?.code === '00000') {
ElMessage.success('提交成功') ElMessage.success('提交成功')
emit('refresh') if (apiUrl === '/snow-ops-platform/event/release') {
setTimeout(() => {
router.replace({ path: '/iceDisasterDetail', query: { id: formData.value.event.id } })
}, 500)
} else {
emit('refresh')
}
} else { } else {
ElMessage.error(res?.message || '提交失败') ElMessage.error(res?.message || '提交失败')
} }
@ -200,24 +222,6 @@ const handleAddSubmit = async () => {
} }
} }
const handleCompleteSubmit = async () => {
const res = await request({
url: '/snow-ops-platform/event/release',
method: 'post',
data: {
...formData.value
}
})
if (res?.code === '00000') {
ElMessage.success('提交成功')
setTimeout(()=>{
router.replace({ path: '/iceDisasterDetail', query: { id: formData.value.event.id } })
}, 500)
} else {
ElMessage.error(res.message)
}
}
defineExpose({ defineExpose({
validate, validate,
initFormData, initFormData,

View File

@ -12,7 +12,7 @@
<el-form :model="formData" > <el-form :model="formData" >
<BlockItem title="处置情况"> <BlockItem title="处置情况">
<!-- 处置措施 --> <!-- 处置措施 -->
<el-form-item label="处置措施"> <el-form-item label="处置措施" required>
<el-select v-model="formData.report.disposalMeasures"> <el-select v-model="formData.report.disposalMeasures">
<el-option label="半幅封闭" value="半幅封闭" /> <el-option label="半幅封闭" value="半幅封闭" />
<el-option label="全副封闭" value="全副封闭" /> <el-option label="全副封闭" value="全副封闭" />
@ -22,7 +22,7 @@
</el-form-item> </el-form-item>
<!-- 预计恢复时间 --> <!-- 预计恢复时间 -->
<el-form-item label="预计恢复时间"> <el-form-item label="预计恢复时间" required>
<el-date-picker <el-date-picker
v-model="formData.report.expectRecoverTime" v-model="formData.report.expectRecoverTime"
type="datetime" type="datetime"
@ -134,7 +134,6 @@
<el-form-item> <el-form-item>
<el-button type="primary" @click="handleAddSubmit">追加记录</el-button> <el-button type="primary" @click="handleAddSubmit">追加记录</el-button>
<el-button type="primary" @click="handleCompleteSubmit">解除事件</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-card> </el-card>
@ -243,6 +242,14 @@ const calibrateTime = () => {
// //
const validate = () => { const validate = () => {
if (!formData.value.report?.disposalMeasures) {
ElMessage.warning('请选择处理措施')
return false
}
if (!formData.value.report?.expectRecoverTime) {
ElMessage.warning('请选择预计恢复时间')
return false
}
return true return true
} }
@ -273,16 +280,26 @@ const handleAddSubmit = async () => {
// //
} }
let apiUrl = '/snow-ops-platform/water-damage/dispose'
if (formData.value.report?.disposalMeasures === '正常通行') {
apiUrl = '/snow-ops-platform/water-damage/release'
}
const res = await request({ const res = await request({
url: '/snow-ops-platform/water-damage/dispose', url: apiUrl,
method: 'post', method: 'post',
data: submitData data: submitData
}) })
if (res?.code === '00000') { if (res?.code === '00000') {
ElMessage.success('提交成功') ElMessage.success('提交成功')
if (apiUrl === '/snow-ops-platform/water-damage/release') {
emit('refresh') setTimeout(() => {
router.replace({ path: '/waterDisasterDetail', query: { id: formData.value.event.id } })
}, 500)
} else {
emit('refresh')
}
} else { } else {
ElMessage.error(res.message) ElMessage.error(res.message)
} }
@ -293,24 +310,6 @@ const handleAddSubmit = async () => {
} }
} }
const handleCompleteSubmit = async () => {
const res = await request({
url: '/snow-ops-platform/water-damage/release',
method: 'post',
data: {
...formData.value
}
})
if (res?.code === '00000') {
ElMessage.success('提交成功')
setTimeout(()=>{
router.replace({ path: '/waterDisasterDetail', query: { id: formData.value.event.id } })
}, 500)
} else {
ElMessage.error(res.message)
}
}
// //
defineExpose({ defineExpose({
validate, validate,