From 1f78fb5f888c9daf6354769bbd9e05af2d732d67 Mon Sep 17 00:00:00 2001 From: puriphatt Date: Tue, 19 Mar 2024 12:30:46 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B8=97=E0=B8=B0=E0=B9=80=E0=B8=9A=E0=B8=B5?= =?UTF-8?q?=E0=B8=A2=E0=B8=99=E0=B8=9B=E0=B8=A3=E0=B8=B0=E0=B8=A7=E0=B8=B1?= =?UTF-8?q?=E0=B8=95=E0=B8=B4:=20store=20=E0=B9=80=E0=B8=84=E0=B8=A3?= =?UTF-8?q?=E0=B8=B7=E0=B9=88=E0=B8=AD=E0=B8=87=E0=B8=A3=E0=B8=B2=E0=B8=8A?= =?UTF-8?q?=E0=B8=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../detail/Achievement/03_Insignia.vue | 20 ++++++++----------- src/modules/04_registryNew/stores/insignia.ts | 8 ++++++++ 2 files changed, 16 insertions(+), 12 deletions(-) create mode 100644 src/modules/04_registryNew/stores/insignia.ts 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 }; +});