From 15669173497dce16b5d0f17bf4bef36c0d87115c Mon Sep 17 00:00:00 2001
From: zhouwenxuan <1175765986@qq.com>
Date: 星期三, 30 八月 2023 17:23:44 +0800
Subject: [PATCH] 气体管理/区域管理

---
 src/views/basicDataManage/areaManage/component/areaDialog.vue |   62 ++++++++++++++++++++++++++++++-
 1 files changed, 60 insertions(+), 2 deletions(-)

diff --git a/src/views/basicDataManage/areaManage/component/areaDialog.vue b/src/views/basicDataManage/areaManage/component/areaDialog.vue
index 2223cf0..0b5c743 100644
--- a/src/views/basicDataManage/areaManage/component/areaDialog.vue
+++ b/src/views/basicDataManage/areaManage/component/areaDialog.vue
@@ -5,7 +5,7 @@
             v-model="state.isShowUserDialog"
             width="600px"
         >
-            <el-form :model="state.areaForm" size="default" ref="areaRef" :rules="state.areaFormRules" label-width="110px">
+            <el-form :model="state.areaForm" size="default" ref="areaRef" :rules="state.title == '查看区域' ? '' :state.areaFormRules" label-width="110px">
                 <el-form-item label="区域名称:" prop="areaName">
                     <el-input v-model.trim="state.areaForm.areaName" :disabled="state.disabled" ></el-input>
                 </el-form-item>
@@ -65,6 +65,8 @@
 import {reactive, ref} from "vue";
 import { AreaState } from "/@/types/areaManage";
 import lngDialog from "./lngDialog.vue";
+import {areaManageApi} from "/@/api/basicDataManage/areaManage";
+import {ElMessage} from "element-plus/es";
 
 const areaRef = ref();
 const lngRef = ref();
@@ -74,6 +76,7 @@
     title: '',
     isShowUserDialog: false,
     areaForm: {
+        id: '',
         areaName: '',
         areaLngLat: [],
         areaColor: '',
@@ -86,6 +89,7 @@
 });
 const openDialog = (type: string, value: any) => {
     state.isShowUserDialog = true;
+    reset();
     if (type === '新增') {
         state.disabled = false;
         state.title = '新增区域';
@@ -99,7 +103,60 @@
         state.areaForm = JSON.parse(JSON.stringify(value));
     }
 };
-const onSubmit = () => {
+const onSubmit = async () => {
+    if(state.title == '新增区域' || state.title == '修改区域') {
+        const valid = areaRef.value.validate();
+        if(valid){
+            if(state.title == '新增区域'){
+                const param = {
+                    name: state.areaForm.areaName,
+                    color: state.areaForm.areaColor,
+                    regionLngLats: state.areaForm.areaLngLat.map(item => {
+                        return {
+                            lng: item.lng,
+                            lat: item.lat
+                        }
+                    })
+                }
+                let res = await  areaManageApi().addArea(param);
+                if(res.data.code == 100) {
+                    ElMessage({
+                        type: 'success',
+                        message: '新增成功'
+                    });
+                }else {
+                    ElMessage({
+                        type: 'warning',
+                        message: res.data.msg
+                    });
+                }
+            }else if(state.title == '修改区域'){
+                const param = {
+                    id: state.areaForm.id,
+                    name: state.areaForm.areaName,
+                    color: state.areaForm.areaColor,
+                    regionLngLats: state.areaForm.areaLngLat.map(item => {
+                        return {
+                            lng: item.lng,
+                            lat: item.lat
+                        }
+                    })
+                }
+                let res = await areaManageApi().editArea(param);
+                if(res.data.code == 100) {
+                    ElMessage({
+                        type: 'success',
+                        message: '修改成功'
+                    });
+                }else {
+                    ElMessage({
+                        type: 'warning',
+                        message: res.data.msg
+                    });
+                }
+            }
+        }
+    }
     console.log("form",state.areaForm)
     areaRef.value.clearValidate();
     state.isShowUserDialog = false;
@@ -115,6 +172,7 @@
 }
 const reset = () => {
     state.areaForm = {
+        id: '',
         areaName: '',
         areaLngLat: [],
         areaColor: '',

--
Gitblit v1.9.2