From 6aa2709986967dd70d6f0e1ab788e6b5931c4cb4 Mon Sep 17 00:00:00 2001 From: "DESKTOP-1R2VSQH\\Lenovo ThinkPad E490" Date: Mon, 29 Jun 2026 16:39:36 +0700 Subject: [PATCH] feat(leave): add pending jobs tab to work-list page --- src/api/09_leave/api.leave.ts | 1 + .../components/02_WorkList/Tab4_Pending.vue | 264 ++++++++++++++++++ .../09_leave/interface/response/work.ts | 21 ++ src/modules/09_leave/views/02_WorkingMain.vue | 9 + 4 files changed, 295 insertions(+) create mode 100644 src/modules/09_leave/components/02_WorkList/Tab4_Pending.vue diff --git a/src/api/09_leave/api.leave.ts b/src/api/09_leave/api.leave.ts index 3ea0ab8c3..ffd727de9 100644 --- a/src/api/09_leave/api.leave.ts +++ b/src/api/09_leave/api.leave.ts @@ -64,4 +64,5 @@ export default { `${leave}/report/download/time-records/${type}`, leaveTask: `${leave}/admin/leave-task/process`, + leavePendingJobs: `${leave}/pending-jobs/`, }; diff --git a/src/modules/09_leave/components/02_WorkList/Tab4_Pending.vue b/src/modules/09_leave/components/02_WorkList/Tab4_Pending.vue new file mode 100644 index 000000000..e1fb8aee0 --- /dev/null +++ b/src/modules/09_leave/components/02_WorkList/Tab4_Pending.vue @@ -0,0 +1,264 @@ + + + + + diff --git a/src/modules/09_leave/interface/response/work.ts b/src/modules/09_leave/interface/response/work.ts index af055b794..d35a1a8d4 100644 --- a/src/modules/09_leave/interface/response/work.ts +++ b/src/modules/09_leave/interface/response/work.ts @@ -98,6 +98,26 @@ interface DataProcess { errorMessage: string | null; } +interface DataPendingJobs { + taskId: string; + keycloakUserId: string; + createdDate: string | Date; + processingDate: string | Date; + completedDate: string | Date; + status: string; + checkType: string; + checkInId: string; + errorMessage: string; + additionalData: string; + id: string; + createdAt: string | Date; + createdUserId: string; + lastUpdatedAt: string; + lastUpdateUserId: string; + createdFullName: string; + lastUpdateFullName: string; +} + export type { TableRows, DataResLog, @@ -105,4 +125,5 @@ export type { TableRowsTime, FormDetail, DataProcess, + DataPendingJobs, }; diff --git a/src/modules/09_leave/views/02_WorkingMain.vue b/src/modules/09_leave/views/02_WorkingMain.vue index fed615baf..87b81c060 100644 --- a/src/modules/09_leave/views/02_WorkingMain.vue +++ b/src/modules/09_leave/views/02_WorkingMain.vue @@ -9,6 +9,7 @@ import { useRoute } from "vue-router"; import Tab1 from "@/modules/09_leave/components/02_WorkList/Tab1.vue"; import Tab2 from "@/modules/09_leave/components/02_WorkList/Tab2.vue"; import Tab3 from "@/modules/09_leave/components/02_WorkList/Tab3_Processed_Late.vue"; +import Tab4_Pending from "@/modules/09_leave/components/02_WorkList/Tab4_Pending.vue"; const stores = useWorklistDataStore(); const route = useRoute(); @@ -21,6 +22,10 @@ const isPermissionTab3 = computed(() => { checkPermission(route)?.attrIsUpdate) ); }); + +const isPermissionTab4 = computed(() => { + return checkPermission(route)?.attrOwnership === "OWNER"; +});