199 lines
6.8 KiB
TypeScript
199 lines
6.8 KiB
TypeScript
import { defineStore } from "pinia";
|
|
import { ref } from "vue";
|
|
import type { DataOptions } from "./interface/index/Main";
|
|
|
|
export const useKpiDataStore = defineStore("KPIDate", () => {
|
|
const tabMain = ref<string>("1");
|
|
const dataProfile = ref<any>();
|
|
const dataEvaluation = ref<any>({
|
|
plannedPoint: 0,
|
|
rolePoint: 0,
|
|
specialPoint: 0,
|
|
});
|
|
|
|
const competencyType = ref<DataOptions[]>([
|
|
{
|
|
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 "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;
|
|
}
|
|
}
|
|
|
|
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<number>();
|
|
const defaultCompetencyGroupLevel = ref<number | null>(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<string[]>([
|
|
"light-blue-3",
|
|
"light-blue-6",
|
|
"blue",
|
|
"blue-9",
|
|
"blue-10",
|
|
]);
|
|
|
|
return {
|
|
tabMain,
|
|
dataProfile,
|
|
dataEvaluation,
|
|
competencyType,
|
|
convertCompetencyType,
|
|
convertStatus,
|
|
convertResults,
|
|
checkCompetency,
|
|
checkCompetencyDefaultCompetencyLevel,
|
|
defaultCompetencyCoreLevel,
|
|
defaultCompetencyGroupLevel,
|
|
ratingColors,
|
|
};
|
|
});
|