From d6e6f8b5b31e132e4597eb531168d3e88f3bda72 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期五, 04 七月 2025 17:26:49 +0800 Subject: [PATCH] 2025.7.4 动态溯源 --- src/components/search/OptionMission.vue | 38 +++++++++++++++++++++----------------- 1 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/components/search/OptionMission.vue b/src/components/search/OptionMission.vue index 8322c9d..fec314e 100644 --- a/src/components/search/OptionMission.vue +++ b/src/components/search/OptionMission.vue @@ -8,7 +8,7 @@ class="w-150" > <el-option - v-for="(s, i) in missionList" + v-for="(s, i) in missionStore.missionList" :key="i" :label="s.missionCode" :value="i" @@ -18,8 +18,9 @@ </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,34 +31,37 @@ type: String, modelValue: String }, - emits: ['update:modelValue', 'change'], + 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; - // if (this.missionList.length > 0) { - // this.handleChange(0); - // } - 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', this.missionList[value]); - // this.$emit('change', this.missionList[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> -- Gitblit v1.9.3