From be84102dc381d0c1925e477f15a431d6c327c0d6 Mon Sep 17 00:00:00 2001
From: husq <931347610@qq.com>
Date: Tue, 05 Sep 2023 15:05:41 +0800
Subject: [PATCH] 项目添加中设置中心点功能

---
 src/pages/page-web/projects/project_list/add_page/components/WeatherDrawer.vue |   19 ++++++++++++++++---
 1 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/src/pages/page-web/projects/project_list/add_page/components/WeatherDrawer.vue b/src/pages/page-web/projects/project_list/add_page/components/WeatherDrawer.vue
index 406a098..764e730 100644
--- a/src/pages/page-web/projects/project_list/add_page/components/WeatherDrawer.vue
+++ b/src/pages/page-web/projects/project_list/add_page/components/WeatherDrawer.vue
@@ -3,7 +3,7 @@
     <div class="option">
       <div class="option-item" :style="[model.projectBlocking[blocking.CLOUDBLOCKINGCONFIGENABLE]!==1?'border:none' : '']">
         <span class="mr10">云端天气组飞设置</span>
-        <a-switch :checkedValue="'1'" :unCheckedValue="'2'" v-model:checked="model.projectBlocking[blocking.CLOUDBLOCKINGCONFIGENABLE]" />
+        <a-switch :checkedValue="'1'" :unCheckedValue="'2'" v-model:checked="model.projectBlocking[blocking.CLOUDBLOCKINGCONFIGENABLE]" @change="changeEdit" />
         <div v-if="model.projectBlocking[blocking.CLOUDBLOCKINGCONFIGENABLE]==1">
           <p class="mt10 describe">当风速或雨量大于设置值时,将对机场的飞行器进行阻飞。</p>
         </div>
@@ -15,7 +15,7 @@
       </div>
       <div class="option-item" v-if="model.projectBlocking[blocking.CLOUDBLOCKINGCONFIGENABLE]=='1'">
         <span class="mr10">天气预报</span>
-        <a-switch :checkedValue="'1'" :unCheckedValue="'2'" v-model:checked="model.projectBlocking[blocking.WEATHERREPORTENABLE]" />
+        <a-switch :checkedValue="'1'" :unCheckedValue="'2'" @change="changeEdit" v-model:checked="model.projectBlocking[blocking.WEATHERREPORTENABLE]" />
         <p class="mt10 describe">天气阻飞将使用天气预报,同时也会使用机场风速计和雨量计数据。</p>
       </div>
       <div class="option-item-edit" v-if="model.projectBlocking[blocking.CLOUDBLOCKINGCONFIGENABLE]=='1'">
@@ -75,7 +75,9 @@
 import { weatherRules, FormWeather, rainSelect, WeatherEnum, } from './type'
 import { ValidateErrorEntity } from 'ant-design-vue/es/form/interface'
 import Select from '/@/components/Search/Select.vue'
+import { editProjectBlock } from '/@/api/project-page/index'
 import { useVModel } from '/@/hooks/use-v-model'
+import { message } from 'ant-design-vue'
 interface FormState {
   [FormWeather.WINDSPEEDREPORT]: number
   [FormWeather.WINDSPEED]: number
@@ -87,6 +89,7 @@
     required: true
   },
 })
+const route = useRoute()
 const emit = defineEmits(['update:modelValue'])
 const model = useVModel(props, 'modelValue', emit)
 const edit = ref(false)
@@ -99,14 +102,24 @@
 const submit = () => {
   weatherFormRef.value
     .validate()
-    .then(() => {
+    .then(async () => {
       edit.value = false
       model.value.projectBlocking = { ...model.value.projectBlocking, ...FormWeatherModel.value }
+      if (route.query.id) {
+        const res = await editProjectBlock(model.value.projectBlocking)
+        if (res.code !== 5000) return message.error(res.message)
+      }
     })
     .catch((error: ValidateErrorEntity<FormState>) => {
       console.log('error', error)
     })
 }
+const changeEdit = async () => {
+  if (!route.query.id) return
+  model.value.projectBlocking = { ...model.value.projectBlocking, ...FormWeatherModel.value }
+  const res = await editProjectBlock(model.value.projectBlocking)
+  if (res.code !== 5000) return message.error(res.message)
+}
 const cancel = () => {
   FormWeatherModel.value = model.value.projectBlocking
   edit.value = false

--
Gitblit v1.9.3