From adc9abd145c24f2d3e7033bb738e1e8641eaf4cf Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期二, 02 九月 2025 17:30:43 +0800
Subject: [PATCH] 2025.9.2

---
 src/components/search/OptionMission.vue |   53 +++++++++++++++++++++++++++--------------------------
 1 files changed, 27 insertions(+), 26 deletions(-)

diff --git a/src/components/search/OptionMission.vue b/src/components/search/OptionMission.vue
index 8e200aa..fec314e 100644
--- a/src/components/search/OptionMission.vue
+++ b/src/components/search/OptionMission.vue
@@ -1,25 +1,26 @@
 <template>
   <el-form-item label="浠诲姟">
     <el-select
-      :model-value="modelValue"
+      v-model="index"
       @change="handleChange"
-      placeholder="浠诲姟"
+      placeholder="閫夋嫨浠诲姟"
       size="small"
       class="w-150"
     >
       <el-option
-        v-for="(s, i) in missionList"
+        v-for="(s, i) in missionStore.missionList"
         :key="i"
-        :label="s.label"
-        :value="s.value"
+        :label="s.missionCode"
+        :value="i"
       />
     </el-select>
   </el-form-item>
 </template>
 
 <script>
-import missionApi from '../../api/missionApi';
+import { mapStores } from 'pinia';
 import { useFetchData } from '@/composables/fetchData';
+import { useMissionStore } from '@/stores/mission';
 
 export default {
   setup() {
@@ -30,41 +31,41 @@
     type: String,
     modelValue: String
   },
-  emits: ['update:modelValue'],
+  emits: ['update:modelValue', 'initOver'],
   data() {
     return {
-      missionList: []
+      index: undefined
     };
+  },
+  computed: {
+    ...mapStores(useMissionStore)
   },
   methods: {
     fetchMission() {
-      this.fetchData((page, pageSize) => {
-        return missionApi
-          .fethchMission({ type: this.type, page, pageSize })
-          .then((res) => {
-            this.missionList = res.data.map((item) => {
-              return {
-                label: item.missionCode,
-                value: item.missionCode
-              };
-            });
-            if (this.missionList.length > 0) {
-              this.handleChange(this.missionList[0].value);
-            }
-            return res.head;
-          });
+      this.missionStore.fetchMission(this.type).then((res) => {
+        if (res.success && res.data.length > 0) {
+          this.index = 0;
+          this.handleChange(0);
+          this.$emit('initOver');
+        }
       });
     },
     handleChange(value) {
-      this.$emit('update:modelValue', value);
+      this.$emit('update:modelValue', this.missionStore.missionList[value]);
     }
   },
   mounted() {
-    this.fetchMission();
+    if (this.missionStore.missionList.length == 0) {
+      this.fetchMission();
+    } else {
+      this.index = 0;
+      this.handleChange(0);
+      this.$emit('initOver');
+    }
   }
 };
 </script>
-<style scoped>
+<style>
 /* :deep() .el-form-item__label {
   color: red !important;
 } */

--
Gitblit v1.9.3