112 lines
3.7 KiB
TypeScript
112 lines
3.7 KiB
TypeScript
import { ref, computed } from "vue";
|
|
import { defineStore } from "pinia";
|
|
|
|
export const useProfileDataStore = defineStore("profileEmployee", () => {
|
|
interface profile {
|
|
main: { columns: String[] };
|
|
education: { columns: String[] };
|
|
oldName: { columns: String[] };
|
|
certicate: { columns: String[] };
|
|
train: { columns: String[] };
|
|
insignia: { columns: String[] };
|
|
coined: { columns: String[] };
|
|
assessment: { columns: String[] };
|
|
salary: { columns: String[] };
|
|
discipline: { columns: String[] };
|
|
leave: { columns: String[] };
|
|
talent: { columns: String[] };
|
|
work: { columns: String[] };
|
|
record: { columns: String[] };
|
|
other: { columns: String[] };
|
|
document: { columns: String[] };
|
|
}
|
|
|
|
const birthDate = ref<Date>(new Date());
|
|
const retireText = ref<string | null>(null);
|
|
const changeRetireText = (val: string | null) => {
|
|
retireText.value = val;
|
|
};
|
|
const changeBirth = (val: Date) => {
|
|
birthDate.value = val;
|
|
};
|
|
const profileData = ref<profile>({
|
|
main: { columns: [] },
|
|
education: { columns: [] },
|
|
oldName: { columns: [] },
|
|
certicate: { columns: [] },
|
|
train: { columns: [] },
|
|
insignia: { columns: [] },
|
|
coined: { columns: [] },
|
|
assessment: { columns: [] },
|
|
salary: { columns: [] },
|
|
discipline: { columns: [] },
|
|
leave: { columns: [] },
|
|
talent: { columns: [] },
|
|
work: { columns: [] },
|
|
record: { columns: [] },
|
|
other: { columns: [] },
|
|
document: { columns: [] },
|
|
});
|
|
|
|
const changeProfileColumns = (system: String, val: String[]) => {
|
|
if (system == "main") profileData.value.main.columns = val;
|
|
if (system == "education") profileData.value.education.columns = val;
|
|
if (system == "oldName") profileData.value.oldName.columns = val;
|
|
if (system == "certicate") profileData.value.certicate.columns = val;
|
|
if (system == "train") profileData.value.train.columns = val;
|
|
if (system == "insignia") profileData.value.insignia.columns = val;
|
|
if (system == "coined") profileData.value.coined.columns = val;
|
|
if (system == "assessment") profileData.value.assessment.columns = val;
|
|
if (system == "salary") profileData.value.salary.columns = val;
|
|
if (system == "discipline") profileData.value.discipline.columns = val;
|
|
if (system == "leave") profileData.value.leave.columns = val;
|
|
if (system == "talent") profileData.value.talent.columns = val;
|
|
if (system == "work") profileData.value.work.columns = val;
|
|
if (system == "record") profileData.value.record.columns = val;
|
|
if (system == "other") profileData.value.other.columns = val;
|
|
if (system == "document") profileData.value.document.columns = val;
|
|
localStorage.setItem("profile", JSON.stringify(profileData.value));
|
|
};
|
|
|
|
if (localStorage.getItem("profile") !== null) {
|
|
profileData.value = JSON.parse(localStorage.getItem("profile") || "{}");
|
|
}
|
|
|
|
return {
|
|
profileData,
|
|
changeProfileColumns,
|
|
birthDate,
|
|
changeBirth,
|
|
retireText,
|
|
changeRetireText,
|
|
};
|
|
});
|
|
|
|
export const useRegistryEmployeeDataStore = defineStore(
|
|
"registryEmployeeDataStore",
|
|
() => {
|
|
const statusText = (val: string) => {
|
|
switch (val) {
|
|
case "WAITTING":
|
|
return "รอดำเนินการ";
|
|
case "PENDING":
|
|
return "เลือกตำแหน่งแล้ว";
|
|
case "APPROVE":
|
|
return "อนุมัติ";
|
|
case "REJECT":
|
|
return "ไม่อนุมัติ";
|
|
case "REPORT":
|
|
return "ส่งรายชื่อไปออกคำสั่ง";
|
|
case "DONE":
|
|
return "ออกคำสั่งเสร็จแล้ว";
|
|
|
|
default:
|
|
return "-";
|
|
}
|
|
};
|
|
|
|
return {
|
|
statusText,
|
|
};
|
|
}
|
|
);
|