hrms-mgt/src/modules/02_organizationalNew/store/organizational.ts

114 lines
3 KiB
TypeScript
Raw Normal View History

import { defineStore } from "pinia";
import { reactive, ref } from "vue";
/** importType*/
2024-02-01 13:46:05 +07:00
import type {
DataActive,
SumPosition,
2024-02-01 13:46:05 +07:00
PosMaster,
} from "@/modules/02_organizationalNew/interface/response/organizational";
export const useOrganizational = defineStore("organizationalStore", () => {
const typeOrganizational = ref<string>("current");
const statusView = ref<string>("list");
const dataActive = ref<DataActive>();
const activeId = ref<string>();
const draftId = ref<string>();
const treeId = ref<string>();
const level = ref<number>();
2024-02-01 13:46:05 +07:00
const isPublic = ref<boolean>(false);
const orgPublishDate = ref<Date | null>(null);
const sumPosition = reactive({
total: 0,
use: 0,
vacant: 0,
});
function getSumPosition(data: SumPosition) {
sumPosition.total = data.totalPosition;
sumPosition.use =
typeOrganizational.value == "draft"
? data.totalPositionNextUse
: data.totalPositionCurrentUse;
sumPosition.vacant =
typeOrganizational.value == "draft"
? data.totalPositionNextVacant
: data.totalPositionCurrentVacant;
}
2024-02-01 13:46:05 +07:00
function fetchDataActive(data: DataActive) {
activeId.value = data.activeId;
draftId.value = data.draftId;
dataActive.value = data;
isPublic.value = data.isPublic;
orgPublishDate.value = data.orgPublishDate;
}
2024-02-01 13:46:05 +07:00
function fetchPosMaster(data: PosMaster[]) {
const newPosMaster = data.map((e: PosMaster) => ({
...e,
positionIsSelected: e.positionIsSelected ? "มี" : "ว่าง",
posMasterNo:
e.orgShortname +
e.posMasterNoPrefix +
e.posMasterNo +
e.posMasterNoSuffix,
2024-02-01 13:46:05 +07:00
positionName: e.positionName ? e.positionName : "-",
posTypeName: e.posTypeName ? e.posTypeName : "-",
posLevelName: e.posLevelName ? e.posLevelName : "-",
posExecutiveName: e.posExecutiveName ? e.posExecutiveName : "-",
}));
return newPosMaster;
}
function checkLevel(type: number) {
switch (type) {
case 0:
return "Root";
case 1:
return "Child1";
case 2:
return "Child2";
case 3:
return "Child3";
default:
return "Child4";
}
}
2024-01-30 18:00:58 +07:00
function convertType(type: string) {
switch (type) {
case "DEPARTMENT":
return "ระดับสำนัก";
case "OFFICE":
return "ระดับกอง/สำนักงาน/ส่วนราชการ/โรงพยาบาล/เทียบเท่ากอง";
case "DIVISION":
return "ระดับส่วน/กลุ่มภารกิจ";
case "SECTION":
return "ระดับฝ่าย/กลุ่มงาน";
default:
return "-";
}
}
return {
typeOrganizational,
statusView,
//
fetchDataActive,
checkLevel,
2024-01-30 18:00:58 +07:00
convertType,
draftId,
activeId,
treeId,
level,
2024-02-01 13:46:05 +07:00
isPublic,
orgPublishDate,
fetchPosMaster,
sumPosition,
getSumPosition,
};
});