diff --git a/src/modules/04_registryPerson/components/detail/GovernmentInformation/06_HelpGovernment.vue b/src/modules/04_registryPerson/components/detail/GovernmentInformation/06_HelpGovernment.vue index e1197edb7..e348cade5 100644 --- a/src/modules/04_registryPerson/components/detail/GovernmentInformation/06_HelpGovernment.vue +++ b/src/modules/04_registryPerson/components/detail/GovernmentInformation/06_HelpGovernment.vue @@ -11,7 +11,10 @@ import config from "@/app.config"; import type { QTableProps } from "quasar"; import type { DatAssistance } from "@/modules/04_registryPerson/interface/request/Government"; -import type { ResAssistanceData } from "@/modules/04_registryPerson/interface/response/Government"; +import type { + ResAssistanceData, + ResFileData, +} from "@/modules/04_registryPerson/interface/response/Government"; import DialogHeader from "@/components/DialogHeader.vue"; import DialogHistory from "@/modules/04_registryPerson/components/detail/GovernmentInformation/06_HelpGovernmentHistory.vue"; @@ -104,6 +107,8 @@ const visibleColumns = ref([ /** Dialog*/ const isStatusEdit = ref(false); +const isUpload = ref(false); + const rowId = ref(""); const modal = ref(false); const modalHistory = ref(false); @@ -114,9 +119,10 @@ const formData = reactive({ dateEnd: null, commandNo: "", document: "", - isUpload: false, + // isUpload: false, }); const fileUpload = ref(); +const fileData = ref(); /** ฟังก์ค้นหาข้อมูลรายการ */ function serchDataTable() { @@ -149,15 +155,16 @@ function onSubmit() { const body = { ...formData, profileId: isStatusEdit.value ? undefined : profileId.value, - isUpload: isStatusEdit.value - ? formData.isUpload - ? formData.isUpload - : fileUpload.value - ? true - : false - : fileUpload.value - ? true - : false, + isUpload: !isStatusEdit.value ? undefined : isUpload.value, + // isUpload: isStatusEdit.value + // ? formData.isUpload + // ? formData.isUpload + // : fileUpload.value + // ? true + // : false + // : fileUpload.value + // ? true + // : false, }; const method = isStatusEdit.value ? "patch" : "post"; await http[method]( @@ -209,7 +216,7 @@ async function uploadProfile(id: string) { ) .then(async (res) => { const uploadUrl = res.data["เอกสารหลักฐาน"].uploadUrl; - await uploadFileURL(uploadUrl, fileUpload.value); + await uploadFileURL(uploadUrl, fileUpload.value, id); }) .catch((err) => { messageError($q, err); @@ -221,16 +228,27 @@ async function uploadProfile(id: string) { * @param uploadUrl Path อัปโหลดไฟล์ * @param file ไฟล์เอกสาร */ -async function uploadFileURL(uploadUrl: string, file: any) { +async function uploadFileURL(uploadUrl: string, file: any, id: string) { await axios .put(uploadUrl, file, { headers: { "Content-Type": file.type, }, }) - .then(() => { + .then(async () => { + await updateIsUpload(id, true); fileUpload.value = undefined; }) + .catch(async (err) => { + await updateIsUpload(id, false); + messageError($q, err); + }); +} + +async function updateIsUpload(id: string, val: boolean) { + await http + .patch(config.API.profileAssistance(empType.value, id), { isUpload: val }) + .then(async (res) => {}) .catch((err) => { messageError($q, err); }); @@ -240,7 +258,7 @@ async function uploadFileURL(uploadUrl: string, file: any) { * ฟังก์ชันโหลไฟลเอกสารหลักฐาน * @param id รายการที่ต้องการโหลด */ -async function onDownloadFile(id: string) { +async function onDownloadFile(id: string, isLoad: boolean = true) { showLoader(); await http .get( @@ -253,8 +271,11 @@ async function onDownloadFile(id: string) { ) ) .then(async (res) => { - const data = res.data.downloadUrl; - window.open(data, "_blank"); + const data = res.data; + fileData.value = data; + if (isLoad) { + window.open(data.downloadUrl, "_blank"); + } }) .catch((err) => { messageError($q, err); @@ -273,7 +294,10 @@ function openEditDialog(data: ResAssistanceData) { formData.dateEnd = data.dateEnd; formData.commandNo = data.commandNo; formData.document = data.document; - formData.isUpload = data.isUpload; + isUpload.value = data.isUpload; + if (isUpload.value) { + onDownloadFile(data.id, false); + } } function showHistoryDialog(id: string) { @@ -290,7 +314,7 @@ function closeDialogForm() { formData.dateEnd = null; formData.commandNo = ""; formData.document = ""; - formData.isUpload = false; + isUpload.value = false; fileUpload.value = undefined; } @@ -643,6 +667,7 @@ onMounted(() => {
{
+ + + + {{ fileData?.fileName }} + +
+ + + +
+
+
+
diff --git a/src/modules/04_registryPerson/interface/request/Government.ts b/src/modules/04_registryPerson/interface/request/Government.ts index a7d38ca56..89faa2225 100644 --- a/src/modules/04_registryPerson/interface/request/Government.ts +++ b/src/modules/04_registryPerson/interface/request/Government.ts @@ -12,7 +12,7 @@ interface DatAssistance { agency: string; commandNo: string; document: string; - isUpload: boolean; + // isUpload: boolean; } export type { DataActing, DatAssistance }; diff --git a/src/modules/04_registryPerson/interface/response/Government.ts b/src/modules/04_registryPerson/interface/response/Government.ts index 5638cb5d7..e4ef15454 100644 --- a/src/modules/04_registryPerson/interface/response/Government.ts +++ b/src/modules/04_registryPerson/interface/response/Government.ts @@ -33,4 +33,11 @@ interface ResAssistanceData { profileId: string; } -export type { ResActingPosData, ResAssistanceData }; +interface ResFileData { + downloadUrl: string; + fileName: string; + path: string; + pathname: string; +} + +export type { ResActingPosData, ResAssistanceData, ResFileData };