From 5e059c9c17a6d63b6c017d2d2beb25ae227071d1 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期五, 11 四月 2025 17:33:59 +0800
Subject: [PATCH] 走航融合优化中

---
 src/components/mission/MissionEdit.vue |  106 +++++++++++++++++++++++++++++++++-------------------
 1 files changed, 67 insertions(+), 39 deletions(-)

diff --git a/src/components/mission/MissionEdit.vue b/src/components/mission/MissionEdit.vue
index c8695b7..902b77a 100644
--- a/src/components/mission/MissionEdit.vue
+++ b/src/components/mission/MissionEdit.vue
@@ -1,5 +1,9 @@
 <template>
-  <CardDialog v-model="visible" title="鏂板缓璧拌埅浠诲姟">
+  <CardDialog
+    :title="dialogTitle"
+    :model-value="modelValue"
+    @update:modelValue="(e) => $emit('update:modelValue', e)"
+  >
     <el-form
       :inline="false"
       :model="formObj"
@@ -43,26 +47,10 @@
       </el-form-item>
     </el-form>
   </CardDialog>
-  <el-button
-    v-if="mode == 'create'"
-    type="primary"
-    class="el-button-custom"
-    @click="visible = !visible"
-  >
-    鏂板缓浠诲姟
-  </el-button>
-  <el-button
-    v-else
-    type="primary"
-    size="small"
-    icon="EditPen"
-    class="el-button-custom"
-    @click="visible = !visible"
-  ></el-button>
 </template>
 <script setup>
 import moment from 'moment';
-import { ref, reactive, computed } from 'vue';
+import { ref, onMounted, reactive, computed, watch } from 'vue';
 import missionApi from '@/api/missionApi';
 import thirdPartyDataApi from '@/api/thirdPartyDataApi';
 import { useFormConfirm } from '@/composables/formConfirm';
@@ -74,15 +62,19 @@
   mode: {
     type: String,
     default: 'create'
+  },
+  modelValue: Boolean,
+  mission: {
+    type: Object
   }
-  // visible: {
-  //   type: String,
-  //   default: 'create'
-  // }
+});
+const dialogTitle = computed(() => {
+  return `${props.mode == 'create' ? '鏂板缓' : '淇敼'}璧拌埅浠诲姟`;
 });
 
+const emits = defineEmits(['update:modelValue']);
+
 const missionStore = useMissionStore();
-const visible = ref(false);
 const { loading, fetchData } = useFetchData();
 const rules = reactive({
   location: [
@@ -130,15 +122,22 @@
     endTime: formObj.value.timeArray[1]
   };
 });
+
+function submitMission() {
+  const newMission = { ...param.value };
+}
+
 // 鍒涘缓浠诲姟
 function createMission() {
   fetchData((page, pageSize) => {
-    return missionApi.putNewMission(param.value).then((res) => {
-      visible.value = false;
-      missionStore.fetchMission();
-      // 閫氱煡鏈嶅姟绔惎鍔ㄤ换鍔¤寖鍥村唴鐨勭涓夋柟鏁版嵁鑾峰彇浠诲姟
-      thirdPartyDataApi.fetchMissionData(param.value.missionCode);
-    });
+    return missionApi
+      .putNewMission(param.value)
+      .then((res) => {
+        missionStore.fetchMission();
+        // 閫氱煡鏈嶅姟绔惎鍔ㄤ换鍔¤寖鍥村唴鐨勭涓夋柟鏁版嵁鑾峰彇浠诲姟
+        thirdPartyDataApi.fetchMissionData(param.value.missionCode);
+      })
+      .finally(() => emits('update:modelValue', false));
   });
 }
 const { formObj, formRef, edit, onSubmit, onCancel } = useFormConfirm({
@@ -147,20 +146,49 @@
   },
   cancel: {
     do: () => {
-      visible.value = false;
+      emits('update:modelValue', false);
     }
   }
 });
 
-if (import.meta.env.VITE_DATA_MODE == 'jingan') {
-  formObj.value.location = {
-    pCode: '31',
-    pName: '涓婃捣甯�',
-    cCode: '3100',
-    cName: '涓婃捣甯�',
-    dCode: '310106',
-    dName: '闈欏畨鍖�'
-  };
+// 鐩戝惉浼犲叆鐨勪换鍔′俊鎭紝鍦ㄦ洿鏂版ā寮忎笅锛屽皢浠诲姟淇℃伅鏄犲皠鍒拌〃鍗曚笂
+watch(
+  () => [props.modelValue, props.mission],
+  (nV, oV) => {
+    if (nV != oV) {
+      const [v, m] = nV;
+      if (v) {
+        initFormObj();
+      }
+      if (m && props.mode == 'update') {
+        formObj.value.location = { dName: m.districtName };
+        formObj.value.missionCode = m.missionCode;
+        formObj.value.deviceType = m.deviceType;
+        formObj.value.deviceCode = m.deviceCode;
+        formObj.value.timeArray = [m.startTime, m.endTime];
+      }
+    }
+  },
+  { immediate: true }
+);
+
+onMounted(() => {
+  initFormObj();
+});
+
+function initFormObj() {
+  if (import.meta.env.VITE_DATA_MODE == 'jingan') {
+    formObj.value.location = {
+      pCode: '31',
+      pName: '涓婃捣甯�',
+      cCode: '3100',
+      cName: '涓婃捣甯�',
+      dCode: '310106',
+      dName: '闈欏畨鍖�'
+    };
+  } else {
+    formObj.value = {};
+  }
 }
 </script>
 <style scoped>

--
Gitblit v1.9.3