diff --git a/src/modules/04_registryNew/components/detail/Achievement/03_Insignia.vue b/src/modules/04_registryNew/components/detail/Achievement/03_Insignia.vue index e89123641..acd834814 100644 --- a/src/modules/04_registryNew/components/detail/Achievement/03_Insignia.vue +++ b/src/modules/04_registryNew/components/detail/Achievement/03_Insignia.vue @@ -7,6 +7,7 @@ import config from "@/app.config"; import type { QTableProps, QForm } from "quasar"; import { useCounterMixin } from "@/stores/mixin"; +import { useInsigniaDataStore } from "@/modules/04_registryNew/stores/insignia"; import HistoryTable from "@/components/TableHistory.vue"; import DialogHeader from "@/components/DialogHeader.vue"; import type { @@ -18,15 +19,12 @@ import type { RequestItemsObject, FormData, } from "@/modules/04_registryNew/interface/request/Insignia"; -import type { - ResponseObject, - ResponseInsigniaObject, - ResponseInsigniaType, -} from "@/modules/04_registryNew/interface/response/Insignia"; +import type { ResponseObject } from "@/modules/04_registryNew/interface/response/Insignia"; import type { ResponseObject as Insignia } from "@/modules/07_insignia/interface/response/Main"; const $q = useQuasar(); const route = useRoute(); +const store = useInsigniaDataStore(); const mixin = useCounterMixin(); const { date2Thai, @@ -454,8 +452,6 @@ async function fetchData() { const res = await http.get( config.API.profileNewInsignByProfileId(profileId.value) ); - console.log(res.data.result); - rows.value = res.data.result; } catch (error) { messageError($q, error); @@ -470,16 +466,14 @@ async function fetchInsignia() { const res = await http.get(config.API.insigniaOrg); const data = res.data.result; - let option: DataOptionInsignia[] = []; + store.insigniaOption = []; data.map((r: Insignia) => { - option.push({ + store.insigniaOption.push({ id: r.id.toString(), name: r.name.toString() + ` (${r.shortName})`, typeName: r.insigniaTypeName.toString(), }); }); - Ops.value.insigniaOptions = option; - OpsFilter.value.insigniaOptions = option; } catch (error) { messageError($q, error); } finally { @@ -640,8 +634,10 @@ watch( ); onMounted(async () => { - await fetchInsignia(); await fetchData(); + store.insigniaOption.length === 0 ? await fetchInsignia() : ""; + Ops.value.insigniaOptions = store.insigniaOption; + OpsFilter.value.insigniaOptions = store.insigniaOption; }); diff --git a/src/modules/04_registryNew/stores/insignia.ts b/src/modules/04_registryNew/stores/insignia.ts new file mode 100644 index 000000000..58414735c --- /dev/null +++ b/src/modules/04_registryNew/stores/insignia.ts @@ -0,0 +1,8 @@ +import { ref, computed } from "vue"; +import { defineStore } from "pinia"; +import type { DataOptionInsignia } from "@/modules/04_registryNew/interface/index/Main"; + +export const useInsigniaDataStore = defineStore("insigniaDataStore", () => { + const insigniaOption = ref([]); + return { insigniaOption }; +});