import { defineStore } from "pinia"; import { ref } from "vue"; import type { DataOptions } from "./interface/index/Main"; export const useKpiDataStore = defineStore("KPIDate", () => { const tabMain = ref("1"); const dataProfile = ref({ profileId: null, prefix: "", rank: "", firstName: "", lastName: "", citizenId: "", position: "", posMaster: null, posLevelName: null, posLevelRank: null, posLevelId: null, posTypeName: null, posTypeRank: null, posTypeId: null, posExecutiveName: "", posExecutivePriority: null, posExecutiveId: null, rootId: null, root: "", child1Id: null, child1: null, child2Id: null, child2: null, child3Id: null, child3: null, child4Id: null, child4: null, node: null, nodeId: null, }); const dataEvaluation = ref({ plannedPoint: 0, rolePoint: 0, specialPoint: 0, }); const competencyType = ref([ { id: "HEAD", name: "สมรรถนะหลัก", }, { id: "GROUP", name: "สมรรถนะประจำกลุ่มงาน", }, { id: "EXECUTIVE", name: "สมรรถนะประจำผู้บริหารกรุงเทพมหานคร", }, { id: "DIRECTOR", name: "สมรรถนะเฉพาะสำหรับตำแหน่ง ผอ.เขต ผช.ผอ.เขต และหัวหน้าฝ่ายในสังกัด สนง.เขต", }, { id: "INSPECTOR", name: "สมรรถนะเฉพาะสำหรับตำแหน่งผู้ตรวจราชการ กทม. และผู้ตรวจราชการ", }, ]); function convertCompetencyType(val: string) { const competency = competencyType.value.find( (x: DataOptions) => x.id == val ); return competency?.name; } function convertStatus(val: string) { switch (val) { case "NEW": return "จัดทำข้อตกลง"; case "REQEDIT": return "ขอแก้ไขข้อตกลง"; case "NEW_EVALUATOR": return "รอผู้ประเมินตรวจสอบข้อตกลง"; case "NEW_COMMANDER": return "รอผู้บังคับบัญชาเหนือขึ้นไปตรวจสอบข้อตกลง"; case "NEW_COMMANDER_HIGH": return "รอผู้บังคับบัญชาเหนือขึ้นไปอีกชั้นหนึ่งตรวจสอบข้อตกลง"; case "APPROVE": return "รายงานความก้าวหน้า"; case "EVALUATING": return "รายงานผลสำเร็จของงาน"; case "EVALUATING_EVALUATOR": return "รอผู้ประเมินตรวจสอบผล"; case "EVALUATING_COMMANDER": return "รอผู้บังคับบัญชาเหนือขึ้นไปตรวจสอบผล"; case "EVALUATING_COMMANDER_HIGH": return "รอผู้บังคับบัญชาเหนือขึ้นไปอีกชั้นหนึ่งตรวจสอบผล"; case "COMPLETE": return "เสร็จสิ้น"; default: break; } } function convertResults(val: string) { switch (val) { case "PENDING": return "รอดำเนินการ"; case "PASSED": return "ผ่านการประเมิน"; case "NOTPASSED": return "ไม่ผ่านการประเมิน"; default: break; } } function checkCompetency() { const position = dataProfile.value.position; const posTypeName = dataProfile.value.posTypeName; const posLevelName = dataProfile.value.posLevelName; if ( position == "ผู้ตรวจราชการกรุงเทพมหานคร" || position == "ผู้ตรวจราชการ" ) { competencyType.value = competencyType.value.filter( (x: DataOptions) => x.id == "HEAD" || x.id == "INSPECTOR" ); } else if (position == "ผู้อำนวยการเขต") { competencyType.value = competencyType.value.filter( (x: DataOptions) => x.id == "HEAD" || x.id == "DIRECTOR" ); } else { switch (posTypeName + " " + posLevelName) { // case "ทั่วไป ปฏิบัติงาน": // case "ทั่วไป ชำนาญงาน": // case "ทั่วไป อาวุโส": // case "วิชาการ ปฏิบัติการ": // case "วิชาการ ชำนาญการ": // case "วิชาการ ชำนาญการพิเศษ": // case "วิชาการ เชี่ยวชาญ": // case "วิชาการ ทรงคุณวุฒิ": // competencyType.value = competencyType.value.filter( // (x: DataOptions) => x.id == "HEAD" || x.id == "GROUP" // ); // break; case "อำนวยการ ต้น": case "อำนวยการ สูง": case "บริหาร ต้น": case "บริหาร สูง": competencyType.value = competencyType.value.filter( (x: DataOptions) => x.id == "HEAD" || x.id == "EXECUTIVE" ); break; default: competencyType.value = competencyType.value.filter( (x: DataOptions) => x.id == "HEAD" || x.id == "GROUP" ); break; } } } const defaultCompetencyCoreLevel = ref(); const defaultCompetencyGroupLevel = ref(null); function checkCompetencyDefaultCompetencyLevel() { const posTypeName = dataProfile.value.posTypeName; const posLevelName = dataProfile.value.posLevelName; switch (posTypeName + " " + posLevelName) { case "บริหาร สูง": defaultCompetencyCoreLevel.value = 5; break; case "บริหาร ต้น": defaultCompetencyCoreLevel.value = 4; break; case "อำนวยการ สูง": defaultCompetencyCoreLevel.value = 4; break; case "อำนวยการ ต้น": defaultCompetencyCoreLevel.value = 3; break; case "วิชาการ ทรงคุณวุฒิ": defaultCompetencyCoreLevel.value = 5; defaultCompetencyGroupLevel.value = 5; break; case "วิชาการ เชี่ยวชาญ": defaultCompetencyCoreLevel.value = 4; defaultCompetencyGroupLevel.value = 4; break; case "วิชาการ ชำนาญการพิเศษ": defaultCompetencyCoreLevel.value = 3; defaultCompetencyGroupLevel.value = 4; break; case "วิชาการ ชำนาญการ": defaultCompetencyCoreLevel.value = 2; defaultCompetencyGroupLevel.value = 3; break; case "วิชาการ ปฏิบัติการ": defaultCompetencyCoreLevel.value = 1; defaultCompetencyGroupLevel.value = 2; break; case "ทั่วไป ทักษะพิเศษ": defaultCompetencyCoreLevel.value = 4; defaultCompetencyGroupLevel.value = 4; break; case "ทั่วไป อาวุโส": defaultCompetencyCoreLevel.value = 3; defaultCompetencyGroupLevel.value = 3; break; case "ทั่วไป ชำนาญงาน": defaultCompetencyCoreLevel.value = 2; defaultCompetencyGroupLevel.value = 2; break; case "ทั่วไป ปฏิบัติงาน": defaultCompetencyCoreLevel.value = 1; defaultCompetencyGroupLevel.value = 1; break; default: break; } } const ratingColors = ref([ "light-blue-3", "light-blue-6", "blue", "blue-9", "blue-10", ]); const tabOpen = ref(3); const isRequestEditForm = ref(false); const isEditForm = ref(false); const isEvaluate = ref(false); function checkStep(status: string, role: string) { if (role == "REQ") { switch (status) { case "NEW": tabOpen.value = 1; isEditForm.value = true; isEvaluate.value = false; isRequestEditForm.value = false; break; case "NEW_EVALUATOR": tabOpen.value = 1; isEditForm.value = true; isEvaluate.value = false; isRequestEditForm.value = false; break; case "NEW_COMMANDER": tabOpen.value = 1; isEditForm.value = true; isEvaluate.value = false; isRequestEditForm.value = false; break; case "NEW_COMMANDER_HIGH": tabOpen.value = 1; isEditForm.value = true; isEvaluate.value = false; isRequestEditForm.value = false; break; case "APPROVE": tabOpen.value = 1; isEditForm.value = true; isEvaluate.value = false; isRequestEditForm.value = false; break; case "EVALUATING": tabOpen.value = 1; isEditForm.value = true; isEvaluate.value = false; isRequestEditForm.value = false; break; case "EVALUATING_EVALUATOR": tabOpen.value = 1; isEditForm.value = true; isEvaluate.value = false; isRequestEditForm.value = false; break; case "EVALUATING_COMMANDER": tabOpen.value = 1; isEditForm.value = true; isEvaluate.value = false; isRequestEditForm.value = false; break; case "EVALUATING_COMMANDER_HIGH": tabOpen.value = 1; isEditForm.value = true; isEvaluate.value = false; isRequestEditForm.value = false; break; case "COMPLETE": tabOpen.value = 1; isEditForm.value = true; isEvaluate.value = false; isRequestEditForm.value = false; break; default: tabOpen.value = 1; isEditForm.value = false; isEvaluate.value = false; isRequestEditForm.value = false; break; } } else if (role == "EVALUATOR") { } } return { tabMain, dataProfile, dataEvaluation, competencyType, convertCompetencyType, convertStatus, convertResults, checkCompetency, checkCompetencyDefaultCompetencyLevel, defaultCompetencyCoreLevel, defaultCompetencyGroupLevel, ratingColors, tabOpen, }; });