แก้ไข pinia

This commit is contained in:
Thanit Konmek 2023-06-19 15:50:57 +07:00
parent 1bc7263410
commit da6cad4d40
3 changed files with 690 additions and 60 deletions

View file

@ -208,7 +208,7 @@ const { loaderPage } = dataStore;
const mixin = useCounterMixin();
const { success, dateText, messageError, showLoader, hideLoader } = mixin;
const store = useManageDataStore();
const { manageData, changeManageColumns } = store;
const { manageData, changeManageColumns, getBlood } = store;
const rows = ref<RequestItemsHistoryObject[]>([]); //list data table
const rowsHistory = ref<RequestItemsHistoryObject[]>([]); //select data history
const rawHistory = ref<RequestItemsHistoryObject[]>([]); //raw data history
@ -367,37 +367,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.listBloodGroupHistory)
.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 getBlood(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.listBloodGroupHistory)
// .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();
// });
};
/**

View file

@ -205,13 +205,8 @@ const { loaderPage } = dataStore;
const mixin = useCounterMixin();
const { success, dateText, messageError, showLoader, hideLoader } = mixin;
const store = useManageDataStore();
const {
manageData,
changeManageColumns,
getPrefix,
dataPrefix,
} = store;
const rows = ref<RequestItemsHistoryObject[]>(dataPrefix); //list data table
const { manageData, changeManageColumns, getPrefix, dataPrefix } = store;
const rows = ref<RequestItemsHistoryObject[]>(dataPrefix.data); //list data table
const rowsHistory = ref<RequestItemsHistoryObject[]>([]); //select data history
const rawHistory = ref<RequestItemsHistoryObject[]>([]); //raw data history
const tittleHistory = ref<string>("ประวัติแก้ไขคำนำหน้า"); //

View file

@ -5,6 +5,13 @@ 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 RequestItemsBlood } from "@/modules/01_metadata/interface/request/person/Blood";
import type { RequestItemsHistoryObject as RequestItemsGender } from "@/modules/01_metadata/interface/request/person/Gender";
import type { RequestItemsHistoryObject as RequestItemsReligion } from "@/modules/01_metadata/interface/request/person/Religion";
import type { RequestItemsHistoryObject as RequestItemsRelationship } from "@/modules/01_metadata/interface/request/person/Relationship";
import type { RequestItemsHistoryObject as RequestItemsEducation } from "@/modules/01_metadata/interface/request/person/Education";
import type { RequestItemsHistoryObject as RequestItemsProvince } from "@/modules/01_metadata/interface/request/person/Province";
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";
import type { RequestItemsHistoryObject as positionEmployeeResponse } from "@/modules/01_metadata/interface/request/positionEmployee/Position";
@ -20,8 +27,97 @@ const mixin = useCounterMixin();
const { success, messageError, showLoader, hideLoader } = mixin;
export const useManageDataStore = defineStore("manage", () => {
const dataPrefix = ref<RequestItemsHistoryObject[]>([]); //list data table
const draftPrefix = ref<RequestItemsHistoryObject[]>([]); //list data table
const dataPrefix = ref<{
data: RequestItemsHistoryObject[];
idversion: string;
version: string;
}>({ data: [], idversion: "", version: "published" }); //list data table
const draftPrefix = ref<{
data: RequestItemsHistoryObject[];
idversion: string;
version: string;
}>({ data: [], idversion: "", version: "published" }); //list data table
const dataBlood = ref<{
data: RequestItemsBlood[];
idversion: string;
version: string;
}>({ data: [], idversion: "", version: "published" }); //list data table
const draftBlood = ref<{
data: RequestItemsBlood[];
idversion: string;
version: string;
}>({ data: [], idversion: "", version: "published" }); //list data table
const dataGender = ref<{
data: RequestItemsHistoryObject[];
idversion: string;
version: string;
}>({ data: [], idversion: "", version: "published" }); //list data table
const draftGender = ref<{
data: RequestItemsHistoryObject[];
idversion: string;
version: string;
}>({ data: [], idversion: "", version: "published" }); //list data table
const dataReligion = ref<{
data: RequestItemsHistoryObject[];
idversion: string;
version: string;
}>({ data: [], idversion: "", version: "published" }); //list data table
const draftReligion = ref<{
data: RequestItemsHistoryObject[];
idversion: string;
version: string;
}>({ data: [], idversion: "", version: "published" }); //list data table
const dataRelationship = ref<{
data: RequestItemsHistoryObject[];
idversion: string;
version: string;
}>({ data: [], idversion: "", version: "published" }); //list data table
const draftRelationship = ref<{
data: RequestItemsHistoryObject[];
idversion: string;
version: string;
}>({ data: [], idversion: "", version: "published" }); //list data table
const dataEducation = ref<{
data: RequestItemsHistoryObject[];
idversion: string;
version: string;
}>({ data: [], idversion: "", version: "published" }); //list data table
const draftEducation = ref<{
data: RequestItemsHistoryObject[];
idversion: string;
version: string;
}>({ data: [], idversion: "", version: "published" }); //list data table
const dataProvince = ref<{
data: RequestItemsHistoryObject[];
idversion: string;
version: string;
}>({ data: [], idversion: "", version: "published" }); //list data table
const draftProvince = ref<{
data: RequestItemsHistoryObject[];
idversion: string;
version: string;
}>({ data: [], idversion: "", version: "published" }); //list data table
const dataDistrict = ref<{
data: RequestItemsHistoryObject[];
idversion: string;
version: string;
}>({ data: [], idversion: "", version: "published" }); //list data table
const draftDistrict = ref<{
data: RequestItemsHistoryObject[];
idversion: string;
version: string;
}>({ data: [], idversion: "", version: "published" }); //list data table
const dataSubDistrict = ref<{
data: RequestItemsHistoryObject[];
idversion: string;
version: string;
}>({ data: [], idversion: "", version: "published" }); //list data table
const draftSubDistrict = ref<{
data: RequestItemsHistoryObject[];
idversion: string;
version: string;
}>({ data: [], idversion: "", version: "published" }); //list data table
const dataInsignia = ref<InsigniaResponse[]>([]); //list data table
const draftInsignia = ref<InsigniaResponse[]>([]); //list data table
const dataInsigniaType = ref<InsigniaTypeResponse[]>([]); //list data table
@ -43,6 +139,8 @@ export const useManageDataStore = defineStore("manage", () => {
const storeIdVersion = ref<string>(""); //id data ใน mongodb
const storeVersion = ref<string>("published"); //รายการข้อมูลล่าสุดได้เผยแพร่หรือยัง published=เผยแพร่แล้ว draft=ยังไม่เผยแพร่
const storeIdVersionPrefix = ref<string>(""); //id data ใน mongodb
const storeVersionPrefix = ref<string>("published"); //รายการข้อมูลล่าสุดได้เผยแพร่หรือยัง published=เผยแพร่แล้ว draft=ยังไม่เผยแพร่
interface manage {
link: number;
person: {
@ -268,31 +366,229 @@ export const useManageDataStore = defineStore("manage", () => {
}
}
const getBlood = async (
selector: boolean = false,
newFetch: boolean = false
) => {
if (dataBlood.value.data.length === 0) {
await fetchBlood(true, selector);
return draftBlood.value;
} else {
if (newFetch) {
await fetchBlood(true, selector);
return draftBlood.value;
} else {
// เทียบ กรณี fetch data selector ไม่เหมือนกัน หรือ กรณี ดราฟ ดาต้า
if (
JSON.stringify(dataBlood.value.data) ==
JSON.stringify(draftBlood.value.data)
) {
return draftBlood.value;
} else {
await fetchBlood(false, selector);
return draftBlood.value;
}
}
}
};
const getGender = async (
selector: boolean = false,
newFetch: boolean = false
) => {
if (dataGender.value.data.length === 0) {
await fetchGender(true, selector);
return draftGender.value;
} else {
if (newFetch) {
await fetchGender(true, selector);
return draftGender.value;
} else {
// เทียบ กรณี fetch data selector ไม่เหมือนกัน หรือ กรณี ดราฟ ดาต้า
if (
JSON.stringify(dataGender.value.data) ==
JSON.stringify(draftGender.value.data)
) {
return draftGender.value;
} else {
await fetchGender(false, selector);
return draftGender.value;
}
}
}
};
const getReligion = async (
selector: boolean = false,
newFetch: boolean = false
) => {
if (dataReligion.value.data.length === 0) {
await fetchReligion(true, selector);
return draftReligion.value;
} else {
if (newFetch) {
await fetchReligion(true, selector);
return draftReligion.value;
} else {
// เทียบ กรณี fetch data selector ไม่เหมือนกัน หรือ กรณี ดราฟ ดาต้า
if (
JSON.stringify(dataReligion.value.data) ==
JSON.stringify(draftReligion.value.data)
) {
return draftReligion.value;
} else {
await fetchReligion(false, selector);
return draftReligion.value;
}
}
}
};
const getRelationship = async (
selector: boolean = false,
newFetch: boolean = false
) => {
if (dataRelationship.value.data.length === 0) {
await fetchRelationship(true, selector);
return draftRelationship.value;
} else {
if (newFetch) {
await fetchRelationship(true, selector);
return draftRelationship.value;
} else {
// เทียบ กรณี fetch data selector ไม่เหมือนกัน หรือ กรณี ดราฟ ดาต้า
if (
JSON.stringify(dataRelationship.value.data) ==
JSON.stringify(draftRelationship.value.data)
) {
return draftRelationship.value;
} else {
await fetchRelationship(false, selector);
return draftRelationship.value;
}
}
}
};
const getEducation = async (
selector: boolean = false,
newFetch: boolean = false
) => {
if (dataEducation.value.data.length === 0) {
await fetchEducation(true, selector);
return draftEducation.value;
} else {
if (newFetch) {
await fetchEducation(true, selector);
return draftEducation.value;
} else {
// เทียบ กรณี fetch data selector ไม่เหมือนกัน หรือ กรณี ดราฟ ดาต้า
if (
JSON.stringify(dataEducation.value.data) ==
JSON.stringify(draftEducation.value.data)
) {
return draftEducation.value;
} else {
await fetchEducation(false, selector);
return draftEducation.value;
}
}
}
};
const getProvince = async (
selector: boolean = false,
newFetch: boolean = false
) => {
if (dataProvince.value.data.length === 0) {
await fetchProvince(true, selector);
return draftProvince.value;
} else {
if (newFetch) {
await fetchProvince(true, selector);
return draftProvince.value;
} else {
// เทียบ กรณี fetch data selector ไม่เหมือนกัน หรือ กรณี ดราฟ ดาต้า
if (
JSON.stringify(dataProvince.value.data) ==
JSON.stringify(draftProvince.value.data)
) {
return draftProvince.value;
} else {
await fetchProvince(false, selector);
return draftProvince.value;
}
}
}
};
// const getDistrict = async (
// selector: boolean = false,
// newFetch: boolean = false
// ) => {
// if (dataDistrict.value.data.length === 0) {
// // await fetchDistrict(true, selector);
// return draftDistrict.value;
// } else {
// if (newFetch) {
// // await fetchDistrict(true, selector);
// return draftDistrict.value;
// } else {
// // เทียบ กรณี fetch data selector ไม่เหมือนกัน หรือ กรณี ดราฟ ดาต้า
// if (
// JSON.stringify(dataDistrict.value.data) ==
// JSON.stringify(draftDistrict.value.data)
// ) {
// return draftDistrict.value;
// } else {
// // await fetchDistrict(false, selector);
// return draftDistrict.value;
// }
// }
// }
// };
// const getSubDistrict = async (
// selector: boolean = false,
// newFetch: boolean = false
// ) => {
// if (dataSubDistrict.value.data.length === 0) {
// // await fetchSubDistrict(true, selector);
// return draftSubDistrict.value;
// } else {
// if (newFetch) {
// // await fetchSubDistrict(true, selector);
// return draftSubDistrict.value;
// } else {
// // เทียบ กรณี fetch data selector ไม่เหมือนกัน หรือ กรณี ดราฟ ดาต้า
// if (
// JSON.stringify(dataSubDistrict.value.data) ==
// JSON.stringify(draftSubDistrict.value.data)
// ) {
// return draftSubDistrict.value;
// } else {
// // await fetchSubDistrict(false, selector);
// return draftSubDistrict.value;
// }
// }
// }
// };
const getPrefix = async (
selector: boolean = false,
newFetch: boolean = false
) => {
if (dataPrefix.value.length === 0) {
if (dataPrefix.value.data.length === 0) {
await fetchPrefix(true, selector);
return {
data: draftPrefix.value,
version: storeVersion.value,
idversion: storeIdVersion.value,
};
return draftPrefix.value;
} else {
if (newFetch) {
await fetchPrefix(true, selector);
return {
data: draftPrefix.value,
version: storeVersion.value,
idversion: storeIdVersion.value,
};
return draftPrefix.value;
} else {
return {
data: draftPrefix.value,
version: storeVersion.value,
idversion: storeIdVersion.value,
};
// เทียบ กรณี fetch data selector ไม่เหมือนกัน หรือ กรณี ดราฟ ดาต้า
if (
JSON.stringify(dataPrefix.value.data) ==
JSON.stringify(draftPrefix.value.data)
) {
return draftPrefix.value;
} else {
await fetchPrefix(false, selector);
return draftPrefix.value;
}
}
}
};
@ -573,15 +869,19 @@ export const useManageDataStore = defineStore("manage", () => {
.then((res) => {
const data = res.data.result;
let rows: RequestItemsHistoryObject[] = [];
let version: string = "";
let id: string = "";
if (selector) {
version = "";
id = "";
data.map((e: RequestItemsHistoryObject) => {
rows.push({
...e,
});
});
} else {
storeVersion.value = data.version; //ตัวแปรที่บอกว่าข้อมูลเผยแพร่ไปหรือยัง published=เผยแพร่แล้ว draft=ยังไม่เผยแพร่
storeIdVersion.value = data.id; //เลข id ใน mongodb
version = data.version; //ตัวแปรที่บอกว่าข้อมูลเผยแพร่ไปหรือยัง published=เผยแพร่แล้ว draft=ยังไม่เผยแพร่
id = data.id; //เลข id ใน mongodb
data.items.map((e: RequestItemsHistoryObject) => {
rows.push({
@ -590,9 +890,333 @@ export const useManageDataStore = defineStore("manage", () => {
});
}
draftPrefix.value = rows;
draftPrefix.value = { idversion: id, version: version, data: rows };
if (loader) {
dataPrefix.value = rows;
dataPrefix.value = { idversion: id, version: version, data: rows };
}
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
if (loader) {
hideLoader();
}
});
};
const fetchBlood = async (loader: boolean, selector: boolean) => {
let apiBlood = "";
if (loader) {
showLoader();
}
if (selector) {
apiBlood = config.API.bloodGroup;
} else {
apiBlood = config.API.listBloodGroupHistory;
}
await http
.get(apiBlood)
.then((res) => {
const data = res.data.result;
let rows: RequestItemsBlood[] = [];
let version: string = "";
let id: string = "";
if (selector) {
version = "";
id = "";
data.map((e: RequestItemsBlood) => {
rows.push({
...e,
});
});
} else {
version = data.version; //ตัวแปรที่บอกว่าข้อมูลเผยแพร่ไปหรือยัง published=เผยแพร่แล้ว draft=ยังไม่เผยแพร่
id = data.id; //เลข id ใน mongodb
data.items.map((e: RequestItemsBlood) => {
rows.push({
...e,
});
});
}
draftBlood.value = { idversion: id, version: version, data: rows };
if (loader) {
dataBlood.value = { idversion: id, version: version, data: rows };
}
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
if (loader) {
hideLoader();
}
});
};
const fetchGender = async (loader: boolean, selector: boolean) => {
let apiGender = "";
if (loader) {
showLoader();
}
if (selector) {
apiGender = config.API.gender;
} else {
apiGender = config.API.listGenderHistory;
}
await http
.get(apiGender)
.then((res) => {
const data = res.data.result;
let rows: RequestItemsGender[] = [];
let version: string = "";
let id: string = "";
if (selector) {
version = "";
id = "";
data.map((e: RequestItemsGender) => {
rows.push({
...e,
});
});
} else {
version = data.version; //ตัวแปรที่บอกว่าข้อมูลเผยแพร่ไปหรือยัง published=เผยแพร่แล้ว draft=ยังไม่เผยแพร่
id = data.id; //เลข id ใน mongodb
data.items.map((e: RequestItemsGender) => {
rows.push({
...e,
});
});
}
draftGender.value = { idversion: id, version: version, data: rows };
if (loader) {
dataGender.value = { idversion: id, version: version, data: rows };
}
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
if (loader) {
hideLoader();
}
});
};
const fetchReligion = async (loader: boolean, selector: boolean) => {
let apiReligion = "";
if (loader) {
showLoader();
}
if (selector) {
apiReligion = config.API.religion;
} else {
apiReligion = config.API.listReligionHistory;
}
await http
.get(apiReligion)
.then((res) => {
const data = res.data.result;
let rows: RequestItemsReligion[] = [];
let version: string = "";
let id: string = "";
if (selector) {
version = "";
id = "";
data.map((e: RequestItemsReligion) => {
rows.push({
...e,
});
});
} else {
version = data.version; //ตัวแปรที่บอกว่าข้อมูลเผยแพร่ไปหรือยัง published=เผยแพร่แล้ว draft=ยังไม่เผยแพร่
id = data.id; //เลข id ใน mongodb
data.items.map((e: RequestItemsReligion) => {
rows.push({
...e,
});
});
}
draftReligion.value = { idversion: id, version: version, data: rows };
if (loader) {
dataReligion.value = { idversion: id, version: version, data: rows };
}
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
if (loader) {
hideLoader();
}
});
};
const fetchRelationship = async (loader: boolean, selector: boolean) => {
let apiRelationship = "";
if (loader) {
showLoader();
}
if (selector) {
apiRelationship = config.API.relationship;
} else {
apiRelationship = config.API.listRelationshipHistory;
}
await http
.get(apiRelationship)
.then((res) => {
const data = res.data.result;
let rows: RequestItemsRelationship[] = [];
let version: string = "";
let id: string = "";
if (selector) {
version = "";
id = "";
data.map((e: RequestItemsRelationship) => {
rows.push({
...e,
});
});
} else {
version = data.version; //ตัวแปรที่บอกว่าข้อมูลเผยแพร่ไปหรือยัง published=เผยแพร่แล้ว draft=ยังไม่เผยแพร่
id = data.id; //เลข id ใน mongodb
data.items.map((e: RequestItemsRelationship) => {
rows.push({
...e,
});
});
}
draftRelationship.value = {
idversion: id,
version: version,
data: rows,
};
if (loader) {
dataRelationship.value = {
idversion: id,
version: version,
data: rows,
};
}
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
if (loader) {
hideLoader();
}
});
};
const fetchEducation = async (loader: boolean, selector: boolean) => {
let apiEducation = "";
if (loader) {
showLoader();
}
if (selector) {
apiEducation = config.API.educationLevel;
} else {
apiEducation = config.API.listEducationLevelHistory;
}
await http
.get(apiEducation)
.then((res) => {
const data = res.data.result;
let rows: RequestItemsEducation[] = [];
let version: string = "";
let id: string = "";
if (selector) {
version = "";
id = "";
data.map((e: RequestItemsEducation) => {
rows.push({
...e,
});
});
} else {
version = data.version; //ตัวแปรที่บอกว่าข้อมูลเผยแพร่ไปหรือยัง published=เผยแพร่แล้ว draft=ยังไม่เผยแพร่
id = data.id; //เลข id ใน mongodb
data.items.map((e: RequestItemsEducation) => {
rows.push({
...e,
});
});
}
draftEducation.value = {
idversion: id,
version: version,
data: rows,
};
if (loader) {
dataEducation.value = {
idversion: id,
version: version,
data: rows,
};
}
})
.catch((e) => {
messageError($q, e);
})
.finally(() => {
if (loader) {
hideLoader();
}
});
};
const fetchProvince = async (loader: boolean, selector: boolean) => {
let apiProvince = "";
if (loader) {
showLoader();
}
if (selector) {
apiProvince = config.API.province;
} else {
apiProvince = config.API.listProvinceHistory;
}
await http
.get(apiProvince)
.then((res) => {
const data = res.data.result;
let rows: RequestItemsProvince[] = [];
let version: string = "";
let id: string = "";
if (selector) {
version = "";
id = "";
data.map((e: RequestItemsProvince) => {
rows.push({
...e,
});
});
} else {
version = data.version; //ตัวแปรที่บอกว่าข้อมูลเผยแพร่ไปหรือยัง published=เผยแพร่แล้ว draft=ยังไม่เผยแพร่
id = data.id; //เลข id ใน mongodb
data.items.map((e: RequestItemsProvince) => {
rows.push({
...e,
});
});
}
draftProvince.value = {
idversion: id,
version: version,
data: rows,
};
if (loader) {
dataProvince.value = {
idversion: id,
version: version,
data: rows,
};
}
})
.catch((e) => {
@ -1217,6 +1841,12 @@ export const useManageDataStore = defineStore("manage", () => {
storeVersion,
manageData,
getPrefix,
getBlood,
getGender,
getReligion,
getRelationship,
getEducation,
getProvince,
changeManageCurrentTab,
changeManageLink,
changeManageColumns,