From c1b2db87bab550a24c5a7fd5899342d56e7f414a Mon Sep 17 00:00:00 2001 From: zhouwenxuan <1175765986@qq.com> Date: 星期三, 06 十二月 2023 15:54:46 +0800 Subject: [PATCH] 专家用户、地区维护 --- src/views/safetyReview/baseSet/area/components/areaDialog.vue | 98 ++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 81 insertions(+), 17 deletions(-) diff --git a/src/views/safetyReview/baseSet/area/components/areaDialog.vue b/src/views/safetyReview/baseSet/area/components/areaDialog.vue index 3a5be65..a220b59 100644 --- a/src/views/safetyReview/baseSet/area/components/areaDialog.vue +++ b/src/views/safetyReview/baseSet/area/components/areaDialog.vue @@ -8,7 +8,7 @@ > <el-form :model="state.form" size="default" ref="areaRef" :rules="state.formRules" label-width="110px" > <el-form-item> - <el-radio-group v-model="state.form.area" style="margin-left: -50px" > + <el-radio-group v-model="state.form.area" style="margin-left: -50px" :disabled="title === '编辑'"> <el-radio :label="1">地(市、州)</el-radio> <el-radio :label="2">区县</el-radio> </el-radio-group> @@ -18,12 +18,12 @@ </el-form-item> <div v-if="state.form.area === 2"> <el-form-item style="margin-left: -50px" prop="stateCode"> - <el-select v-model="state.form.stateCode" class="m-2" placeholder="请选择所属地(市、州)" style="width: 100%"> + <el-select v-model="state.form.stateCode" class="m-2" placeholder="请选择所属地(市、州)" style="width: 100%" > <el-option - v-for="item in state.areaList" - :key="item.value" - :label="item.label" - :value="item.value" + v-for="item in state.cityList" + :key="item.id" + :label="item.name" + :value="item.id" /> </el-select> </el-form-item> @@ -43,15 +43,18 @@ </div> </template> <script setup> -import {reactive, ref, toRefs} from 'vue' +import {defineEmits, reactive, ref, toRefs} from 'vue' import Editor from "@/components/Editor/index.vue"; import {ElMessage} from "element-plus"; +import {addArea, editArea, getArea} from "@/api/backManage/area"; const dialogVisible = ref(false); const title = ref(""); const areaRef = ref(); +const emit = defineEmits(["getList"]); const state = reactive({ form: { + id: '', area: 1, stateCode: '', stateName: '', @@ -62,14 +65,23 @@ countyName: [{ required: true, message: '请输入区县名', trigger: 'blur' }], stateCode: [{ required: true, message: '请选择所属地(市、州)', trigger: 'blur' }], }, - areaList: [] - + cityList: [], }) -const openDialog = (type, value) => { +const openDialog = (type, value,cityList) => { title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '查看' ; + state.cityList = cityList; if(type === 'edit') { - state.form = value; + if(value.parentId!=0){ + state.form.id = value.id; + state.form.area = 2; + state.form.stateCode = value.parentId; + state.form.countyName = value.name; + }else { + state.form.id = value.id; + state.form.area = 1; + state.form.stateName = value.name + } } dialogVisible.value = true; } @@ -77,25 +89,77 @@ const onSubmit = async () => { const valid = await areaRef.value.validate(); if(valid){ - areaRef.value.clearValidate(); - reset(); - dialogVisible.value = false; + if(title.value === '新增'){ + let param = {} + if(state.form.area == 1){ + param = { + name: state.form.stateName, + regionType: 0 + } + }else if(state.form.area == 2){ + param = { + name: state.form.countyName, + regionType: 0, + parentId: state.form.stateCode + } + } + console.log("parma",param) + const res = await addArea(param); + if(res.code === 200){ + ElMessage.success(res.message) + emit('getList') + areaRef.value.clearValidate(); + reset() + dialogVisible.value = false; + }else{ + ElMessage.warning(res.message) + } + }else if (title.value === '编辑'){ + let param = {} + if(state.form.area == 1){ + param = { + id: state.form.id, + name: state.form.stateName, + parentId: 0, + regionType: 0 + + } + }else if(state.form.area == 2){ + param = { + id: state.form.id, + name: state.form.countyName, + regionType: 0, + parentId: state.form.stateCode + } + } + const res = await editArea(param); + if(res.code === 200){ + ElMessage.success(res.message) + emit('getList') + areaRef.value.clearValidate(); + reset() + dialogVisible.value = false; + }else{ + ElMessage.warning(res.message) + } + } } } const handleClose = () => { areaRef.value.clearValidate(); - reset(); + reset() dialogVisible.value = false; } const reset = () => { state.form = { + id: '', area: 1, - state: '', - county: '', stateCode: '', + stateName: '', + countyName: '' } } defineExpose({ -- Gitblit v1.9.2