diff --git a/src/api/13_salary/api.salary.ts b/src/api/13_salary/api.salary.ts index 4620c4168..436db3d6a 100644 --- a/src/api/13_salary/api.salary.ts +++ b/src/api/13_salary/api.salary.ts @@ -15,5 +15,6 @@ export default { /** รายการอัตราเงินเดือน*/ salaryRateList: salaryRate, salaryRateListByid: (id: string) => `${salaryRate}/${id}`, - salaryReportByid:(id:string) => `${salary}/report/${id}` + salaryReportByid: (id: string) => `${salary}/report/${id}`, + salaryPeriod: () => `${salary}/period`, }; diff --git a/src/modules/13_salary/components/SalaryRound/DialogForm.vue b/src/modules/13_salary/components/SalaryRound/DialogForm.vue index e69de29bb..cf234e761 100644 --- a/src/modules/13_salary/components/SalaryRound/DialogForm.vue +++ b/src/modules/13_salary/components/SalaryRound/DialogForm.vue @@ -0,0 +1,311 @@ + + + + + diff --git a/src/modules/13_salary/interface/response/Main.ts b/src/modules/13_salary/interface/response/Main.ts index ec030f287..eb0bd2818 100644 --- a/src/modules/13_salary/interface/response/Main.ts +++ b/src/modules/13_salary/interface/response/Main.ts @@ -40,4 +40,23 @@ interface SalaryPosLevel { posLevelRank: number; } -export type { Salary, SalaryRate, SalaryPosType, SalaryPosLevel }; +interface RowList { + id: string; + period: string|null; + isActive: boolean|null; + effectiveDate: Date|null|string; + status: string|null; +} + +interface Row { + data: [Row]; + total: number; +} + +interface ObjectRef { + period: object | null; + effectiveDate: object | null; + [key: string]: any; +} + +export type { Salary, SalaryRate, SalaryPosType, SalaryPosLevel,RowList,Row,ObjectRef,DataOption }; diff --git a/src/modules/13_salary/store/SalaryStore.ts b/src/modules/13_salary/store/SalaryStore.ts index 03efb6e2f..5fd33c665 100644 --- a/src/modules/13_salary/store/SalaryStore.ts +++ b/src/modules/13_salary/store/SalaryStore.ts @@ -1,6 +1,49 @@ import { defineStore } from "pinia"; - +import { ref } from "vue"; +import type { QTableProps } from "quasar"; +import type { RowList, Row } from '@/modules/13_salary/interface/response/Main' +import { useCounterMixin } from "@/stores/mixin"; // store export const useSalaryDataStore = defineStore("salaryDataStore", () => { - return {}; + const rows = ref([]); + const visibleColumns = ref([]); + const columns = ref([]); + + const mixin = useCounterMixin() + const{ date2Thai }= mixin + + + function fetchDataMap(data: RowList[]) { + rows.value = data.map((i: RowList) => ({ + id: i.id, + period: i.period !== null ? statusTothai(i.period) : null, + isActive: i.isActive !== null ? i.isActive : null, + effectiveDate: i.effectiveDate !== null ? date2Thai(i.effectiveDate as Date) : null, + status: i.status !== null ? i.status : null, + })); + } + + /** + * แปลง status เป็น Text + * @param val status + * @returns text + */ + function statusTothai(val: string) { + switch (val) { + case "SPECIAL": + return "รอบพิเศษ"; + case "APR": + return "รอบเมษายน"; + case "OCT": + return "รอบตุลาคม"; + default: + return "-"; + } + }; + return { + rows, + visibleColumns, + columns, + fetchDataMap + }; }); diff --git a/src/modules/13_salary/views/salaryRound.vue b/src/modules/13_salary/views/salaryRound.vue index a64215f74..09694e845 100644 --- a/src/modules/13_salary/views/salaryRound.vue +++ b/src/modules/13_salary/views/salaryRound.vue @@ -1,4 +1,153 @@ - +