From 293d8b7c6ef2f15017cf59305bd5d7e4fddbd680 Mon Sep 17 00:00:00 2001 From: AnandaTon <125332905+anandaAiemvong@users.noreply.github.com> Date: Tue, 13 Jun 2023 15:07:18 +0700 Subject: [PATCH] storeData insignia,insigniaType --- .../components/insignia/Insignia.vue | 87 ++++---- .../components/insignia/InsigniaType.vue | 70 +++--- src/modules/01_metadata/store.ts | 203 +++++++++++++++++- 3 files changed, 286 insertions(+), 74 deletions(-) diff --git a/src/modules/01_metadata/components/insignia/Insignia.vue b/src/modules/01_metadata/components/insignia/Insignia.vue index 7434cdc4e..a55d09e87 100644 --- a/src/modules/01_metadata/components/insignia/Insignia.vue +++ b/src/modules/01_metadata/components/insignia/Insignia.vue @@ -303,8 +303,8 @@ const { loaderPage } = dataStore; const mixin = useCounterMixin(); const { success, dateText, messageError, showLoader, hideLoader } = mixin; const store = useManageDataStore(); -const { manageData, changeManageColumns } = store; -const rows = ref([]); //list data table +const { manageData, changeManageColumns, getInsignia, dataInsignia } = store; +const rows = ref(dataInsignia); //list data table const rowsHistory = ref([]); //select data history const rawHistory = ref([]); //raw data history const tittleHistory = ref("ประวัติแก้ไขชื่อเครื่องราชฯ"); // @@ -574,46 +574,51 @@ const $q = useQuasar(); /** * ฟังก์ชัน get data ล่าสุด */ -const fetchData = async () => { +const fetchData = async (load: boolean = false) => { await props.fetchDataComponent(); - rows.value.splice(0); - showLoader(); - await http - .get(config.API.listInsigniaHistory) - .then((res) => { - let data = res.data.result; - version.value = data.version; //ตัวแปรที่บอกว่าข้อมูลเผยแพร่ไปหรือยัง published=เผยแพร่แล้ว draft=ยังไม่เผยแพร่ - idVersion.value = data.id; //เลข id ใน mongodb - data.items.map((e: RequestItemsHistoryObject) => { - rows.value.push({ - id: e.id, - name: e.name, - shortName: e.shortName, - level: e.level, - createdAt: e.createdAt, - lastUpdatedAt: e.lastUpdatedAt, - lastUpdateFullName: e.lastUpdateFullName, - isActive: e.isActive, - createdFullName: e.createdFullName, - createdUserId: e.createdUserId, - lastUpdateUserId: e.lastUpdateUserId, - insigniaType: e.insigniaType, - note: e.note, - }); - }); - rows.value.sort( - ( - firstItem: RequestItemsHistoryObject, - secondItem: RequestItemsHistoryObject - ) => firstItem.level - secondItem.level - ); - }) - .catch((e) => { - messageError($q, e); - }) - .finally(async () => { - await fetchinsigniaType(); - }); + const result = await getInsignia(false, load); + version.value = result.version; //ตัวแปรที่บอกว่าข้อมูลเผยแพร่ไปหรือยัง published=เผยแพร่แล้ว draft=ยังไม่เผยแพร่ + idVersion.value = result.idversion; //เลข id ใน mongodb + rows.value = result.data; + updateData.value = false; + // rows.value.splice(0); + // showLoader(); + // await http + // .get(config.API.listInsigniaHistory) + // .then((res) => { + // let data = res.data.result; + // version.value = data.version; //ตัวแปรที่บอกว่าข้อมูลเผยแพร่ไปหรือยัง published=เผยแพร่แล้ว draft=ยังไม่เผยแพร่ + // idVersion.value = data.id; //เลข id ใน mongodb + // data.items.map((e: RequestItemsHistoryObject) => { + // rows.value.push({ + // id: e.id, + // name: e.name, + // shortName: e.shortName, + // level: e.level, + // createdAt: e.createdAt, + // lastUpdatedAt: e.lastUpdatedAt, + // lastUpdateFullName: e.lastUpdateFullName, + // isActive: e.isActive, + // createdFullName: e.createdFullName, + // createdUserId: e.createdUserId, + // lastUpdateUserId: e.lastUpdateUserId, + // insigniaType: e.insigniaType, + // note: e.note, + // }); + // }); + // rows.value.sort( + // ( + // firstItem: RequestItemsHistoryObject, + // secondItem: RequestItemsHistoryObject + // ) => firstItem.level - secondItem.level + // ); + // }) + // .catch((e) => { + // messageError($q, e); + // }) + // .finally(async () => { + // await fetchinsigniaType(); + // }); }; /** diff --git a/src/modules/01_metadata/components/insignia/InsigniaType.vue b/src/modules/01_metadata/components/insignia/InsigniaType.vue index e84b36ba1..493e21f85 100644 --- a/src/modules/01_metadata/components/insignia/InsigniaType.vue +++ b/src/modules/01_metadata/components/insignia/InsigniaType.vue @@ -204,8 +204,9 @@ const { loaderPage } = dataStore; const mixin = useCounterMixin(); const { success, dateText, messageError, showLoader, hideLoader } = mixin; const store = useManageDataStore(); -const { manageData, changeManageColumns } = store; -const rows = ref([]); //list data table +const { manageData, changeManageColumns, getInsigniaType, dataInsigniaType } = + store; +const rows = ref(dataInsigniaType); //list data table const rowsHistory = ref([]); //select data history const rawHistory = ref([]); //raw data history const tittleHistory = ref("ประวัติแก้ไขลำดับชั้นเครื่องราชฯ"); // @@ -363,37 +364,42 @@ const $q = useQuasar(); /** * ฟังก์ชัน get data ล่าสุด */ -const fetchData = async () => { +const fetchData = async (load: boolean = false) => { await props.fetchDataComponent(); - rows.value.splice(0); - showLoader(); - await http - .get(config.API.listInsigniaTypeHistory) - .then((res) => { - let data = res.data.result; - version.value = data.version; //ตัวแปรที่บอกว่าข้อมูลเผยแพร่ไปหรือยัง published=เผยแพร่แล้ว draft=ยังไม่เผยแพร่ - idVersion.value = data.id; //เลข id ใน mongodb - data.items.map((e: RequestItemsHistoryObject) => { - rows.value.push({ - id: e.id, - name: e.name, - createdAt: e.createdAt, - lastUpdatedAt: e.lastUpdatedAt, - lastUpdateFullName: e.lastUpdateFullName, - isActive: e.isActive, - createdFullName: e.createdFullName, - createdUserId: e.createdUserId, - lastUpdateUserId: e.lastUpdateUserId, - }); - }); - }) - .catch((e) => { - messageError($q, e); - }) - .finally(() => { - updateData.value = false; - hideLoader(); - }); + const result = await getInsigniaType(false, load); + version.value = result.version; //ตัวแปรที่บอกว่าข้อมูลเผยแพร่ไปหรือยัง published=เผยแพร่แล้ว draft=ยังไม่เผยแพร่ + idVersion.value = result.idversion; //เลข id ใน mongodb + rows.value = result.data; + updateData.value = false; + // rows.value.splice(0); + // showLoader(); + // await http + // .get(config.API.listInsigniaTypeHistory) + // .then((res) => { + // let data = res.data.result; + // version.value = data.version; //ตัวแปรที่บอกว่าข้อมูลเผยแพร่ไปหรือยัง published=เผยแพร่แล้ว draft=ยังไม่เผยแพร่ + // idVersion.value = data.id; //เลข id ใน mongodb + // data.items.map((e: RequestItemsHistoryObject) => { + // rows.value.push({ + // id: e.id, + // name: e.name, + // createdAt: e.createdAt, + // lastUpdatedAt: e.lastUpdatedAt, + // lastUpdateFullName: e.lastUpdateFullName, + // isActive: e.isActive, + // createdFullName: e.createdFullName, + // createdUserId: e.createdUserId, + // lastUpdateUserId: e.lastUpdateUserId, + // }); + // }); + // }) + // .catch((e) => { + // messageError($q, e); + // }) + // .finally(() => { + // updateData.value = false; + // hideLoader(); + // }); }; /** diff --git a/src/modules/01_metadata/store.ts b/src/modules/01_metadata/store.ts index d0c6efc0c..d080bb3f0 100644 --- a/src/modules/01_metadata/store.ts +++ b/src/modules/01_metadata/store.ts @@ -5,7 +5,8 @@ import http from "@/plugins/http"; import config from "@/app.config"; import { useCounterMixin } from "@/stores/mixin"; import type { RequestItemsHistoryObject } from "@/modules/01_metadata/interface/request/person/Prefix"; - +import type { RequestItemsHistoryObject as InsigniaResponse } from "@/modules/01_metadata/interface/request/insignia/Insignia"; +import type { RequestItemsHistoryObject as InsigniaTypeResponse } from "@/modules/01_metadata/interface/request/insignia/InsigniaType"; const $q = useQuasar(); const mixin = useCounterMixin(); const { success, messageError, showLoader, hideLoader } = mixin; @@ -13,6 +14,11 @@ const { success, messageError, showLoader, hideLoader } = mixin; export const useManageDataStore = defineStore("manage", () => { const dataPrefix = ref([]); //list data table const draftPrefix = ref([]); //list data table + const dataInsignia = ref([]); //list data table + const draftInsignia = ref([]); //list data table + const dataInsigniaType = ref([]); //list data table + const draftInsigniaType = ref([]); //list data table + const storeIdVersion = ref(""); //id data ใน mongodb const storeVersion = ref("published"); //รายการข้อมูลล่าสุดได้เผยแพร่หรือยัง published=เผยแพร่แล้ว draft=ยังไม่เผยแพร่ interface manage { @@ -269,6 +275,64 @@ export const useManageDataStore = defineStore("manage", () => { } }; + const getInsigniaType = async ( + selector: boolean = false, + newFetch: boolean = false + ) => { + if (dataInsignia.value.length === 0) { + await fetchInsigniaType(true, selector); + return { + data: draftInsigniaType.value, + version: storeVersion.value, + idversion: storeIdVersion.value, + }; + } else { + if (newFetch) { + await fetchInsigniaType(true, selector); + return { + data: draftInsigniaType.value, + version: storeVersion.value, + idversion: storeIdVersion.value, + }; + } else { + return { + data: draftInsigniaType.value, + version: storeVersion.value, + idversion: storeIdVersion.value, + }; + } + } + }; + + const getInsignia = async ( + selector: boolean = false, + newFetch: boolean = false + ) => { + if (dataInsignia.value.length === 0) { + await fetchInsignia(true, selector); + return { + data: draftInsignia.value, + version: storeVersion.value, + idversion: storeIdVersion.value, + }; + } else { + if (newFetch) { + await fetchInsignia(true, selector); + return { + data: draftInsignia.value, + version: storeVersion.value, + idversion: storeIdVersion.value, + }; + } else { + return { + data: draftInsignia.value, + version: storeVersion.value, + idversion: storeIdVersion.value, + }; + } + } + }; + const fetchPrefix = async (loader: boolean, selector: boolean) => { let apiPrefix = ""; if (loader) { @@ -316,8 +380,143 @@ export const useManageDataStore = defineStore("manage", () => { }); }; + const fetchInsignia = async (loader: boolean, selector: boolean) => { + let apiInsignia = ""; + if (loader) { + showLoader(); + } + if (selector) { + apiInsignia = config.API.insignia; + } else { + apiInsignia = config.API.listInsigniaHistory; + } + await http + .get(apiInsignia) + .then((res) => { + const data = res.data.result; + let rows: InsigniaResponse[] = []; + if (selector) { + data.map((e: InsigniaResponse) => { + rows.push({ + id: e.id, + name: e.name, + shortName: e.shortName, + level: e.level, + createdAt: e.createdAt, + lastUpdatedAt: e.lastUpdatedAt, + lastUpdateFullName: e.lastUpdateFullName, + isActive: e.isActive, + createdFullName: e.createdFullName, + createdUserId: e.createdUserId, + lastUpdateUserId: e.lastUpdateUserId, + insigniaType: e.insigniaType, + note: e.note, + }); + }); + } else { + storeVersion.value = data.version; //ตัวแปรที่บอกว่าข้อมูลเผยแพร่ไปหรือยัง published=เผยแพร่แล้ว draft=ยังไม่เผยแพร่ + storeIdVersion.value = data.id; //เลข id ใน mongodb + + data.items.map((e: InsigniaResponse) => { + rows.push({ + id: e.id, + name: e.name, + shortName: e.shortName, + level: e.level, + createdAt: e.createdAt, + lastUpdatedAt: e.lastUpdatedAt, + lastUpdateFullName: e.lastUpdateFullName, + isActive: e.isActive, + createdFullName: e.createdFullName, + createdUserId: e.createdUserId, + lastUpdateUserId: e.lastUpdateUserId, + insigniaType: e.insigniaType, + note: e.note, + }); + }); + } + + draftInsignia.value = rows; + if (loader) { + dataInsignia.value = rows; + } + }) + .catch((e) => { + messageError($q, e); + }) + .finally(() => { + if (loader) { + hideLoader(); + } + }); + }; + + const fetchInsigniaType = async (loader: boolean, selector: boolean) => { + let apiInsigniaType = ""; + if (loader) { + showLoader(); + } + if (selector) { + apiInsigniaType = config.API.insigniaType; + } else { + apiInsigniaType = config.API.listInsigniaTypeHistory; + } + await http + .get(apiInsigniaType) + .then((res) => { + const data = res.data.result; + let rows: RequestItemsHistoryObject[] = []; + if (selector) { + data.map((e: RequestItemsHistoryObject) => { + rows.push({ + id: e.id, + name: e.name, + createdAt: e.createdAt, + lastUpdatedAt: e.lastUpdatedAt, + lastUpdateFullName: e.lastUpdateFullName, + isActive: e.isActive, + createdFullName: e.createdFullName, + createdUserId: e.createdUserId, + lastUpdateUserId: e.lastUpdateUserId, + }); + }); + } else { + storeVersion.value = data.version; //ตัวแปรที่บอกว่าข้อมูลเผยแพร่ไปหรือยัง published=เผยแพร่แล้ว draft=ยังไม่เผยแพร่ + storeIdVersion.value = data.id; //เลข id ใน mongodb + + data.items.map((e: RequestItemsHistoryObject) => { + rows.push({ + id: e.id, + name: e.name, + createdAt: e.createdAt, + lastUpdatedAt: e.lastUpdatedAt, + lastUpdateFullName: e.lastUpdateFullName, + isActive: e.isActive, + createdFullName: e.createdFullName, + createdUserId: e.createdUserId, + lastUpdateUserId: e.lastUpdateUserId, + }); + }); + } + + draftInsigniaType.value = rows; + if (loader) { + dataInsigniaType.value = rows; + } + }) + .catch((e) => { + messageError($q, e); + }) + .finally(() => { + if (loader) { + hideLoader(); + } + }); + }; return { dataPrefix, + dataInsignia, + dataInsigniaType, storeIdVersion, storeVersion, manageData, @@ -325,5 +524,7 @@ export const useManageDataStore = defineStore("manage", () => { changeManageCurrentTab, changeManageLink, changeManageColumns, + getInsignia, + getInsigniaType, }; });