尾矿库

master
zhangyue 2025-06-10 19:31:04 +08:00
parent 62dabd6574
commit 3bdc5cbee5
1 changed files with 130 additions and 109 deletions

View File

@ -8,7 +8,7 @@
ref="formRef" ref="formRef"
:model="form" :model="form"
:rules="data.rules" :rules="data.rules"
label-width="100px" label-width="260px"
style="margin-top: 20px" style="margin-top: 20px"
> >
<el-row> <el-row>
@ -118,48 +118,39 @@
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="设计坝高" prop="designDamHeight"> <el-form-item label="设计坝高(米)" prop="designDamHeight">
<el-input-number <el-input-number
v-model="form.designDamHeight" v-model="form.designDamHeight"
:precision="2" :precision="2"
:step="0.1" :step="0.1"
placeholder="请输入设计坝高" placeholder="请输入设计坝高(米)"
style="width: 100%" style="width: 100%"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="现状坝高" prop="currentDamHeight"> <el-form-item label="现状坝高(米)" prop="currentDamHeight">
<el-input-number <el-input-number
v-model="form.currentDamHeight" v-model="form.currentDamHeight"
:precision="2" :precision="2"
:step="0.1" :step="0.1"
placeholder="请输入现状坝高" placeholder="请输入现状坝高(米)"
style="width: 100%" style="width: 100%"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="人口数" prop="population"> <el-form-item
<el-input-number label="是否在长江、黄河及其主要支流、其他重要河流岸线3公里范围内"
v-model="form.population" prop="isCloseToImportantRivers"
placeholder="请输入人口数" >
style="width: 100%"
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="险情等级" prop="dangerousSituation">
<el-select <el-select
v-model="form.dangerousSituation" v-model="form.isCloseToImportantRivers"
placeholder="请选择险情等级" placeholder="请选择是否在长江、黄河及其主要支流、其他重要河流岸线3公里范围内"
style="width: 100%"
> >
<el-option <el-option
v-for="item in dangerousSituationList" v-for="item in yesOrNoList"
:key="item.bianma" :key="item.bianma"
:label="item.name" :label="item.name"
:value="item.bianma" :value="item.bianma"
@ -169,70 +160,69 @@
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="勘察情况" prop="surveySituation"> <el-form-item
label="安全生产许可证或安全设施设计批复编号"
prop="safetyProductionLicense"
>
<el-input <el-input
v-model="form.surveySituation" v-model="form.safetyProductionLicense"
placeholder="请输入勘察情况" placeholder="请输入安全生产许可证或安全设施设计批复编号"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="治理情况" prop="governanceSituation"> <el-form-item label="生效日期" prop="effectiveDate">
<el-input <el-date-picker
v-model="form.governanceSituation" v-model="form.effectiveDate"
placeholder="请输入治理情况" type="date"
placeholder="请选择生效日期"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="搬迁情况" prop="relocationSituation"> <el-form-item label="失效日期" prop="expiryDate">
<el-input <el-date-picker
v-model="form.relocationSituation" v-model="form.expiryDate"
placeholder="请输入搬迁情况" type="date"
placeholder="请选择失效日期"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="风险等级" prop="riskLevel"> <el-form-item
<el-select v-model="form.riskLevel" placeholder="请选择风险等级"> label="企业或管理单位主要负责人姓名"
<el-option label="低风险" value="1" /> prop="corpPrincipalName"
<el-option label="中风险" value="2" /> >
<el-option label="高风险" value="3" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="规模与形态描述" prop="scaleDescription">
<el-input <el-input
v-model="form.scaleDescription" v-model="form.corpPrincipalName"
type="textarea" placeholder="请输入企业或管理单位主要负责人姓名"
:rows="3"
placeholder="请输入规模与形态描述"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<div style="display: flex"> <el-form-item
<el-form-item label="经度" prop="longitude" style="flex: 1"> label="企业或管理单位主要负责人职务"
<el-input v-model="form.longitude" placeholder="请选择经度" /> prop="corpPrincipalPost"
</el-form-item> >
<el-form-item label="纬度" prop="latitude" style="flex: 1"> <el-input
<el-input v-model="form.latitude" placeholder="请选择纬度" /> v-model="form.corpPrincipalPost"
</el-form-item> placeholder="请输入企业或管理单位主要负责人职务"
<el-form-item label-width="10px"> />
<el-button </el-form-item>
class="ml-10" </el-col>
type="primary" <el-col :span="24">
@click="fnSelectedPosition" <el-form-item
>点击定位</el-button label="企业或管理单位主要负责人手机"
> prop="corpPrincipalPhone"
</el-form-item> >
</div> <el-input
v-model="form.corpPrincipalPhone"
placeholder="请输入企业或管理单位主要负责人手机"
/>
</el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
@ -241,13 +231,6 @@
<el-button @click="fnClose"> </el-button> <el-button @click="fnClose"> </el-button>
<el-button type="primary" @click="fnSubmit"> </el-button> <el-button type="primary" @click="fnSubmit"> </el-button>
</template> </template>
<app-map
v-model:visible="mapDialog.visible"
v-model:longitude="mapDialog.longitude"
v-model:latitude="mapDialog.latitude"
@submit="fnMapSubmit"
/>
</el-dialog> </el-dialog>
</template> </template>
@ -259,10 +242,9 @@ import LayoutCascader from "@/components/layout_cascader/index.vue";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import { reactive, ref } from "vue"; import { reactive, ref } from "vue";
import { useVModels } from "@vueuse/core"; import { useVModels } from "@vueuse/core";
import AppMap from "@/components/map/map.vue";
import { import {
setGeologicalDisasterAdd, setTailingsReservoirAdd,
setGeologicalDisasterUpdate, setTailingsReservoirUpdate,
} from "@/request/kangzai.js"; } from "@/request/kangzai.js";
const props = defineProps({ const props = defineProps({
@ -318,50 +300,89 @@ fnGetDictData();
const data = reactive({ const data = reactive({
rules: { rules: {
name: [{ required: true, message: "请输入尾矿库名称", trigger: "blur" }], //
nname: [{ required: true, message: "请输入名称", trigger: "blur" }],
address: [{ required: true, message: "请输入地址", trigger: "blur" }],
area: [{ required: true, message: "请选择区域", trigger: "blur" }], area: [{ required: true, message: "请选择区域", trigger: "blur" }],
runningStatus: [
{ required: true, message: "请输入运行状态", trigger: "change" },
],
hasProductionEntity: [
{
required: true,
message: "请输入是否有生产经营主体",
trigger: "change",
},
],
isOverheadVault: [
{ required: true, message: "请输入是否为头顶库", trigger: "change" },
],
mineralSpecies: [ mineralSpecies: [
{ required: true, message: "请选择灾害类型", trigger: "change" }, { required: true, message: "请输入矿种", trigger: "change" },
], ],
scale: [{ required: true, message: "请选择规模", trigger: "change" }], designGrade: [
stability: [{ required: true, message: "请选择稳定性", trigger: "change" }], { required: true, message: "请输入设计等别", trigger: "change" },
households: [{ required: true, message: "请输入户数", trigger: "blur" }],
population: [{ required: true, message: "请输入人口数", trigger: "blur" }],
dangerousSituation: [
{ required: true, message: "请选择险情等级", trigger: "change" },
], ],
surveySituation: [ currentGrade: [
{ required: true, message: "请选择勘察情况", trigger: "change" }, { required: true, message: "请输入现状等别", trigger: "change" },
], ],
governanceSituation: [ designDamHeight: [
{ required: true, message: "请选择治理情况", trigger: "change" }, { required: true, message: "请输入设计坝高", trigger: "blur" },
], ],
relocationSituation: [ currentDamHeight: [
{ required: true, message: "请选择搬迁情况", trigger: "change" }, { required: true, message: "请输入现状坝高", trigger: "blur" },
], ],
riskLevel: [ designStorageCapacity: [
{ required: true, message: "请选择风险等级", trigger: "change" }, { required: true, message: "请输入设计库容", trigger: "blur" },
],
currentStorageCapacity: [
{ required: true, message: "请输入现状库容", trigger: "blur" },
],
isCloseToImportantRivers: [
{
required: true,
message:
"请输入是否在长江、黄河及其主要支流、其他重要河流岸线3公里范围内",
trigger: "change",
},
],
safetyProductionLicense: [
{
required: true,
message: "请输入安全生产许可证或安全设施设计批复编号",
trigger: "blur",
},
],
effectiveDate: [
{ required: true, message: "请输入生效日期", trigger: "blur" },
],
expiryDate: [
{ required: true, message: "请输入失效日期", trigger: "blur" },
],
corpPrincipalName: [
{
required: true,
message: "请输入企业或管理单位主要负责人姓名",
trigger: "blur",
},
],
corpPrincipalPost: [
{
required: true,
message: "请输入企业或管理单位主要负责人职务",
trigger: "blur",
},
],
corpPrincipalPhone: [
{
required: true,
message: "请输入企业或管理单位主要负责人手机",
trigger: "blur",
},
], ],
longitude: [{ required: true, message: "请输入经度", trigger: "blur" }],
latitude: [{ required: true, message: "请输入纬度", trigger: "blur" }],
}, },
}); });
const mapDialog = ref({
visible: false,
longitude: "",
latitude: "",
});
const fnSelectedPosition = () => {
mapDialog.value.visible = true;
mapDialog.value.longitude = form.value.longitude;
mapDialog.value.latitude = form.value.latitude;
};
const fnMapSubmit = ({ longitude, latitude }) => {
form.value.longitude = longitude;
form.value.latitude = latitude;
};
const fnClose = () => { const fnClose = () => {
visible.value = false; visible.value = false;
}; };
@ -382,9 +403,9 @@ const fnSubmit = debounce(
delete param.area; delete param.area;
if (props.type === "add") { if (props.type === "add") {
await setGeologicalDisasterAdd(param); await setTailingsReservoirAdd(param);
} else if (props.type === "edit") { } else if (props.type === "edit") {
await setGeologicalDisasterUpdate(param); await setTailingsReservoirUpdate(param);
} }
ElMessage.success("操作成功"); ElMessage.success("操作成功");