hrms-mgt/src/modules/11_discipline/store/Main.ts

505 lines
14 KiB
TypeScript
Raw Normal View History

2024-09-19 16:37:16 +07:00
import { ref } from "vue";
import { defineStore } from "pinia";
import type { QTableProps } from "quasar";
2024-09-19 16:37:16 +07:00
import type { DataOption } from "@/modules/11_discipline/interface/index/Main";
2024-09-27 16:56:52 +07:00
import type { ArrayPersonAdd } from "@/modules/11_discipline/interface/response/investigate";
export const useDisciplineMainStore = defineStore("disciplineMainStore", () => {
/** option ผู้ถูกสอบสวน*/
const complainantoptionsMain = ref<DataOption[]>([
{ id: "PERSON", name: "บุคคล" },
{ id: "ORGANIZATION", name: "หน่วยงาน" },
{ id: "BANGKOK", name: "กรุงเทพมหานคร" },
]);
/** option ลักษณะความผิด */
const offenseDetailstOptions = ref<DataOption[]>([
{ id: "NOT_SPECIFIED", name: "ยังไม่ระบุ" },
{ id: "NOT_DEADLY", name: "ไม่ร้ายแรง" },
{ id: "DEADLY", name: "ร้ายแรง" },
]);
const statusResultOptions = ref<DataOption[]>([
{ id: "NOT_SPECIFIED", name: "ยังไม่ระบุ" },
{ id: "HAVE_CAUSE", name: "มีมูล" },
{ id: "NO_CAUSE", name: "ไม่มีมูล" },
]);
const causeTextOptions = ref<DataOption[]>([
{ id: "ร้ายแรง", name: "ร้ายแรง" },
{ id: "ไม่ร้ายแรง", name: "ไม่ร้ายแรง" },
]);
2023-12-25 16:31:24 +07:00
const rowsAdd = ref<ArrayPersonAdd[]>([]);
2024-06-24 14:51:05 +07:00
const rowsSend = ref<ArrayPersonAdd[]>([]);
2023-12-25 16:31:24 +07:00
const rowsCheck = ref<ArrayPersonAdd[]>([]);
/** หัวตารางผู้ถูกร้องเรียน */
const columnsRespondent = ref<QTableProps["columns"]>([
{
name: "no",
align: "center",
label: "ลำดับ",
sortable: false,
field: "no",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "idcard",
align: "left",
label: "เลขประจำตัวประชาชน",
sortable: true,
field: "idcard",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "name",
align: "left",
label: "ชื่อ - นามสกุล",
sortable: true,
field: "name",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "posNo",
align: "left",
label: "ตำแหน่งเลขที่",
sortable: true,
field: "posNo",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "position",
align: "left",
label: "ตำแหน่ง",
sortable: true,
field: "position",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
2024-07-04 13:44:29 +07:00
name: "posLevelName",
align: "left",
label: "ระดับ",
sortable: true,
2024-07-04 13:44:29 +07:00
field: "posLevelName",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "salary",
align: "left",
label: "เงินเดือน",
sortable: true,
field: "salary",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "organization",
align: "left",
label: "หน่วยงาน",
sortable: true,
field: "organization",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
]);
/** หัวข้อที่เเสดงในตารางผู้ถูกร้องเรียน */
const visibleColumnsRespondent = ref<string[]>([
"no",
"idcard",
"name",
"posNo",
"position",
2024-07-04 13:44:29 +07:00
"posLevelName",
"salary",
"organization",
]);
/** หัวตารางกรรมการ */
const columnsDirector = ref<QTableProps["columns"]>([
{
name: "info",
align: "left",
label: "",
sortable: false,
field: "info",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "no",
align: "left",
label: "ลำดับ",
sortable: false,
field: "no",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "idcard",
align: "left",
label: "เลขประจำตัวประชาชน",
sortable: true,
field: "idcard",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "name",
align: "left",
label: "ชื่อ - นามสกุล",
sortable: true,
field: "name",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "posNo",
align: "left",
label: "ตำแหน่งเลขที่",
sortable: true,
field: "posNo",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "position",
align: "left",
label: "ตำแหน่ง",
sortable: true,
field: "position",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "positionLevel",
align: "left",
label: "ระดับ",
sortable: true,
field: "positionLevel",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "salary",
align: "left",
label: "เงินเดือน",
sortable: true,
field: "salary",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
{
name: "organization",
align: "left",
label: "หน่วยงาน",
sortable: true,
field: "organization",
headerStyle: "font-size: 14px",
style: "font-size: 14px",
},
]);
/** หัวข้อที่เเสดงในตารางกรรมการ */
const visibleColumnsDirector = ref<string[]>([
"info",
"no",
"idcard",
"name",
"posNo",
"position",
"positionLevel",
"salary",
"organization",
]);
/**
* option
* @param val API
* @returns name id
*/
2023-12-25 16:31:24 +07:00
function convertComplaintType(val: string) {
const result = complainantoptionsMain.value.find(
(x: any) => x.id == val
)?.name;
return result ? result : "-";
}
/**
* status text
* @param val status
* @returns text
*/
2023-12-25 16:31:24 +07:00
function convertFault(val: string) {
switch (val) {
case "NOT_SPECIFIED":
return "ความผิดวินัยยังไม่ระบุ";
case "NOT_DEADLY":
return "ความผิดวินัยไม่ร้ายแรง";
case "DEADLY":
return "ความผิดวินัยร้ายแรง";
default:
return "-";
}
}
/**
* status text
* @param val status
* @returns text
*/
2023-12-25 16:31:24 +07:00
function convertStatus(val: string) {
switch (val) {
case "NEW":
return "กำลังสอบสวน";
case "STOP":
return "ยุติเรื่อง";
case "SEND_DISCIPLINARY":
return "ส่งไปสอบสวน";
case "DONE":
return "ส่งไปสรุปผลการพิจารณาความผิดทางวินัย";
}
}
2024-09-23 14:48:22 +07:00
/**
2024-09-24 10:07:49 +07:00
* status text # channal
* @param val status
* @returns text
*/
function pathComplaintsChannal(val: string) {
switch (val) {
case "disciplineChannel":
return "main";
case "disciplineComplaintsAdd":
return "create-complain";
case "disciplineComplaintsEdit":
case "disciplineComplaintsDetail":
return "complain";
case "disciplineInvestigatefactsEdit":
case "disciplineInvestigatefactsDetail":
return "inves";
case "disciplineDisciplinaryEdit":
case "disciplineDisciplinaryDetail":
return "discip";
case "disciplineEditResult":
case "disciplineResultDetail":
return "result";
}
}
/**
* status text #
* @param val status
* @returns text
*/
function pathComplaints(val: string) {
switch (val) {
case "disciplineComplaintsEdit":
case "disciplineComplaintsDetail":
return "main";
case "disciplineInvestigatefactsEdit":
case "disciplineInvestigatefactsDetail":
return "inves";
case "disciplineDisciplinaryEdit":
case "disciplineDisciplinaryDetail":
return "discip";
case "disciplineEditResult":
case "disciplineResultDetail":
return "result";
}
2024-09-23 14:48:22 +07:00
}
/**
2024-09-24 10:07:49 +07:00
* status text #
* @param val status
* @returns text
*/
2024-09-23 14:48:22 +07:00
function pathInves(val: string) {
switch (val) {
case "disciplineInvestigatefactsEdit":
case "disciplineInvestigatefactsDetail":
return "main";
case "disciplineDisciplinaryEdit":
case "disciplineDisciplinaryDetail":
return "discip";
case "disciplineEditResult":
case "disciplineResultDetail":
return "result";
}
}
2024-09-27 16:56:52 +07:00
/**
2024-09-25 13:41:48 +07:00
* status text #
* @param val status
* @returns text
*/
2024-09-27 16:56:52 +07:00
function pathDirector(val: string) {
switch (val) {
case "disciplineInvestigatefactsEdit":
case "disciplineInvestigatefactsDetail":
return "inves";
case "disciplineDisciplinaryEdit":
case "disciplineDisciplinaryDetail":
return "discip";
case "disciplineDirector":
return "main";
2024-09-25 13:41:48 +07:00
}
2024-09-27 16:56:52 +07:00
}
2024-09-25 13:41:48 +07:00
2024-09-24 10:07:49 +07:00
/**
* status text #
* @param val status
* @returns text
*/
function pathDiscip(val: string) {
switch (val) {
case "disciplineDisciplinaryEdit":
case "disciplineDisciplinaryDetail":
return "main";
case "disciplineEditResult":
case "disciplineResultDetail":
return "result";
2024-09-23 14:48:22 +07:00
}
2024-09-24 10:07:49 +07:00
}
2024-09-23 14:48:22 +07:00
/**
* option
* @param val API
* @returns name id
*/
2023-12-25 16:31:24 +07:00
function convertOffenseDetailst(val: string) {
return (
offenseDetailstOptions.value.find((x: any) => x.id == val)?.name ?? "-"
);
}
/**
* option
* @param val API
* @returns name id
*/
2023-12-25 16:31:24 +07:00
function convertStatusResult(val: string) {
const result = statusResultOptions.value.find(
(x: any) => x.id == val
)?.name;
return result ? result : "-";
}
/**
* POPUP
* @param data
*/
2024-10-03 14:12:34 +07:00
async function fetchData(data: ArrayPersonAdd[]) {
const dataList: any = data.map((item: any) => ({
id: item.id,
idcard: item.idcard,
name: item.name,
prefix: item.prefix,
firstName: item.firstName,
lastName: item.lastName,
position: item.position,
positionLevel: item.positionLevel,
2024-05-28 15:41:15 +07:00
salary: item.salary === null ? "" : item.salary,
personId: item.personId,
posNo: item.posNo === null ? "-" : item.posNo,
organization: item.organization,
2024-05-28 15:41:15 +07:00
root: item.root,
rootId: item.rootId,
rootShortName: item.rootShortName,
child1: item.child1,
child1Id: item.child1Id,
child1ShortName: item.child1ShortName,
child2: item.child2,
child2Id: item.child2Id,
child2ShortName: item.child2ShortName,
child3: item.child3,
child3Id: item.child3Id,
child3ShortName: item.child3ShortName,
child4: item.child4,
child4Id: item.child4Id,
child4ShortName: item.child4ShortName,
posMasterNo: item.posMasterNo,
posTypeId: item.posTypeId,
posTypeName: item.posTypeName,
posLevelId: item.posLevelId,
posLevelName: item.posLevelName,
}));
2024-01-19 13:06:32 +07:00
rowsAdd.value = dataList;
}
2024-09-03 11:28:01 +07:00
/**
2024-06-24 14:51:05 +07:00
* POPUP
* @param data
*/
2024-10-03 14:12:34 +07:00
async function fetchDataRowsSend(data: ArrayPersonAdd[]) {
2024-09-03 11:28:01 +07:00
const dataList: any = data.map((item: any) => ({
id: item.id,
idcard: item.idcard,
name: item.name,
prefix: item.prefix,
firstName: item.firstName,
lastName: item.lastName,
position: item.position,
positionLevel: item.positionLevel,
salary: item.salary === null ? "" : item.salary,
personId: item.personId,
posNo: item.posNo === null ? "-" : item.posNo,
organization: item.organization,
root: item.root,
rootId: item.rootId,
rootShortName: item.rootShortName,
child1: item.child1,
child1Id: item.child1Id,
child1ShortName: item.child1ShortName,
child2: item.child2,
child2Id: item.child2Id,
child2ShortName: item.child2ShortName,
child3: item.child3,
child3Id: item.child3Id,
child3ShortName: item.child3ShortName,
child4: item.child4,
child4Id: item.child4Id,
child4ShortName: item.child4ShortName,
posMasterNo: item.posMasterNo,
posTypeId: item.posTypeId,
posTypeName: item.posTypeName,
posLevelId: item.posLevelId,
posLevelName: item.posLevelName,
isSend: item.isSend,
}));
rowsSend.value = dataList;
}
2024-06-24 14:51:05 +07:00
return {
complainantoptionsMain,
convertFault,
convertStatus,
columnsRespondent,
visibleColumnsRespondent,
offenseDetailstOptions,
convertOffenseDetailst,
convertComplaintType,
columnsDirector,
visibleColumnsDirector,
rowsAdd,
fetchData,
statusResultOptions,
convertStatusResult,
2023-12-19 15:05:48 +07:00
rowsCheck,
causeTextOptions,
2024-06-24 14:51:05 +07:00
rowsSend,
2024-09-03 11:28:01 +07:00
fetchDataRowsSend,
2024-09-23 14:48:22 +07:00
pathComplaints,
pathInves,
2024-09-24 10:07:49 +07:00
pathDiscip,
pathComplaintsChannal,
2024-09-27 16:56:52 +07:00
pathDirector,
};
});