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

View File

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