import { defineStore } from "pinia"; import { ref } from "vue"; import type { DataOption } from "@/modules/14_KPI/interface/index/Main"; // store export const useKPIDataStore = defineStore("KPIDataStore", () => { const competencyTypeVal = ref("HEAD"); const tabMain = ref("1"); const dataProfile = ref(); const dataEvaluation = ref({ plannedPoint: 0, rolePoint: 0, specialPoint: 0, capacityPoint: 0, }); const competencyType = ref([ { id: "HEAD", name: "สมรรถนะหลัก", }, { id: "GROUP", name: "สมรรถนะประจำกลุ่มงาน", }, { id: "EXECUTIVE", name: "สมรรถนะประจำผู้บริหารกรุงเทพมหานคร", }, { id: "DIRECTOR", name: "สมรรถนะเฉพาะสำหรับตำแหน่ง ผอ.เขต ผช.ผอ.เขต และหัวหน้าฝ่ายในสังกัด สนง.เขต", }, { id: "INSPECTOR", name: "สมรรถนะเฉพาะสำหรับตำแหน่งผู้ตรวจราชการ กทม. และผู้ตรวจราชการ", }, ]); function convertStatus(val: string) { switch (val) { case "PENDING": return "รอดำเนินการ"; case "INPROGRESS": return "กําลังดำเนินการ"; case "DONE": return "ประเมินเสร็จสิ้น"; default: break; } } function convertResults(val: string) { switch (val) { case "PENDING": return "รอดำเนินการ"; case "PASSED": return "ผ่านการประเมิน"; case "NOTPASSED": return "ไม่ผ่านการประเมิน"; default: break; } } const ratingColors = ref([ "light-blue-3", "light-blue-6", "blue", "blue-9", "blue-10", ]); 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: DataOption) => x.id == "HEAD" || x.id == "INSPECTOR" ); } else if (position == "ผู้อำนวยการเขต") { competencyType.value = competencyType.value.filter( (x: DataOption) => 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: DataOption) => x.id == "HEAD" || x.id == "EXECUTIVE" ); break; default: competencyType.value = competencyType.value.filter( (x: DataOption) => 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; } } return { competencyTypeVal, competencyType, convertStatus, convertResults, tabMain, dataProfile, dataEvaluation, ratingColors, checkCompetency, checkCompetencyDefaultCompetencyLevel, }; });