diff --git a/src/api/09_leave/api.leave.ts b/src/api/09_leave/api.leave.ts index 6fc2d10a2..e290a261b 100644 --- a/src/api/09_leave/api.leave.ts +++ b/src/api/09_leave/api.leave.ts @@ -38,6 +38,7 @@ export default { leaveReportReject: (id: string) => `${leave}/report/reject/${id}`, leaveDeleteApprove: (id: string) => `${leave}/admin/delete/approve/${id}`, leaveDeleteReject: (id: string) => `${leave}/admin/delete/reject/${id}`, + leaveBeginning: `${leave}-beginning`, /**รายงาน */ leaveReportTimeRecords: (type: string) => diff --git a/src/modules/09_leave/components/07_LeaveHistory/DialogForm.vue b/src/modules/09_leave/components/07_LeaveHistory/DialogForm.vue new file mode 100644 index 000000000..c71aee677 --- /dev/null +++ b/src/modules/09_leave/components/07_LeaveHistory/DialogForm.vue @@ -0,0 +1,505 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{ col.label }} + + + + + + + + + + + + {{ col.value ? col.value : "-" }} + + + + + + + ทั้งหมด {{ total.toLocaleString() }} รายการ + + + + + + + + + + + + + + + + {{ year + 543 }} + {{ + parseInt(value + 543) + }} + + + + + + + + + + + + + filterOptionFn(inputValue,doneFn)" + :rules="[(val:string) => !!val || `${'กรุณาเลือกประเภทการลา'}`,]" + lazy-rules + > + + + + ไม่มีข้อมูล + + + + + + + + + + + + + + + + + + + + + บันทึกข้อมูล + + + + + + + diff --git a/src/modules/09_leave/interface/index/Main.ts b/src/modules/09_leave/interface/index/Main.ts index 0f0a59dd5..ff9221e9f 100644 --- a/src/modules/09_leave/interface/index/Main.ts +++ b/src/modules/09_leave/interface/index/Main.ts @@ -11,4 +11,11 @@ interface DataDateMonthObject { month: number; year: number; } -export type { DataOption, DataOption2, DataDateMonthObject }; + +interface DataPagination { + descending: boolean; + page: number; + rowsPerPage: number; + sortBy: string; +} +export type { DataOption, DataOption2, DataDateMonthObject, DataPagination }; diff --git a/src/modules/09_leave/interface/response/leaveHistory.ts b/src/modules/09_leave/interface/response/leaveHistory.ts new file mode 100644 index 000000000..502cae1ea --- /dev/null +++ b/src/modules/09_leave/interface/response/leaveHistory.ts @@ -0,0 +1,32 @@ +interface DataLeaveType { + code?: string; + createdAt?: string; + createdFullName?: string; + createdUserId?: string; + id: string; + lastUpdateFullName?: string; + lastUpdateUserId?: string; + lastUpdatedAt?: string; + limit?: number; + name: string; +} + +interface DataLeaveBeginning { + createdAt: string; + createdFullName: string; + firstName: string; + id: string; + lastName: string; + lastUpdateFullName: string; + lastUpdatedAt: string; + leaveDays: number; + leaveDaysUsed: number; + leaveType: string; + leaveTypeCode: string; + leaveTypeId: string; + leaveYear: number; + prefix: string; + profileId: string; +} + +export type { DataLeaveType, DataLeaveBeginning }; diff --git a/src/modules/09_leave/router.ts b/src/modules/09_leave/router.ts index 5ec1f7604..8c745e47d 100644 --- a/src/modules/09_leave/router.ts +++ b/src/modules/09_leave/router.ts @@ -13,6 +13,9 @@ const leaveReport = () => import("@/modules/09_leave/views/06_ReportMain.vue"); // const CheckinReport = () => // import("@/modules/09_leave/views/!07_ReportCheckin.vue"); + +const LeaveHistoryMain = () => + import("@/modules/09_leave/views/07_LeaveHistoryMain.vue"); export default [ { path: "/round-time", @@ -94,7 +97,6 @@ export default [ Role: "STAFF", }, }, - { path: "/checkin-report", name: "checkinReport", @@ -105,4 +107,14 @@ export default [ Role: "STAFF", }, }, + { + path: "/leave-history", + name: "leaveHistory", + component: LeaveHistoryMain, + meta: { + Auth: true, + Key: "SYS_LEAVE_HISTORY", + Role: "STAFF", + }, + }, ]; diff --git a/src/modules/09_leave/stores/LeaveHistoryStore.ts b/src/modules/09_leave/stores/LeaveHistoryStore.ts new file mode 100644 index 000000000..bafe489a7 --- /dev/null +++ b/src/modules/09_leave/stores/LeaveHistoryStore.ts @@ -0,0 +1,16 @@ +import { defineStore } from "pinia"; +import { ref } from "vue"; + +import type { DataLeaveType } from "@/modules/09_leave/interface/response/leaveHistory"; + +export const useLeaveHistoryDataStore = defineStore("leaveHistory", () => { + const leaveTypeData = ref([ + { + id: "00000000-0000-0000-0000-000000000000", + name: "ทั้งหมด", + }, + ]); + return { + leaveTypeData, + }; +}); diff --git a/src/modules/09_leave/views/07_LeaveHistoryMain.vue b/src/modules/09_leave/views/07_LeaveHistoryMain.vue new file mode 100644 index 000000000..06da571b3 --- /dev/null +++ b/src/modules/09_leave/views/07_LeaveHistoryMain.vue @@ -0,0 +1,420 @@ + + + + + ข้อมูลรายการการลาย้อนหลัง + + + + + + + + + {{ year + 543 }} + {{ + parseInt(value + 543) + }} + + + + + + + + + + + filterOptionFn(inputValue,doneFn)" + > + + + + ไม่มีข้อมูล + + + + + + + เพิ่มข้อมูลวันลาย้อนหลัง + + + + + + + + + + + + + + + + + + + + + + + + {{ col.label }} + + + + + + + แก้ไขข้อมูล + + ลบข้อมูล + + + + + {{ col.value ?? "-" }} + + + + + + ทั้งหมด {{ total.toLocaleString() }} รายการ + + + + + + + + + + +