From 7aec2e86f29f330f9b5f3b85d6ad82ae39c152e3 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期三, 13 十二月 2023 15:13:58 +0800
Subject: [PATCH] 新增
---
src/views/safetyReview/baseSet/area/components/areaDialog.vue | 100 +++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 82 insertions(+), 18 deletions(-)
diff --git a/src/views/safetyReview/baseSet/area/components/areaDialog.vue b/src/views/safetyReview/baseSet/area/components/areaDialog.vue
index 3a5be65..352715d 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>
@@ -36,22 +36,25 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="handleClose" size="default">取 消</el-button>
- <el-button type="primary" @click="onSubmit" size="default">确认</el-button>
+ <el-button type="primary" @click="onSubmit" size="default" v-preReClick>确认</el-button>
</span>
</template>
</el-dialog>
</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