293 lines
8.4 KiB
TypeScript
293 lines
8.4 KiB
TypeScript
import { defineStore } from "pinia";
|
|
import { ref } from "vue";
|
|
import type { QTableProps } from "quasar";
|
|
import type {
|
|
investigateDisDataRowType,
|
|
DataOption,
|
|
directorType,
|
|
responseType
|
|
} from "@/modules/11_discipline/interface/index/Main";
|
|
import { useCounterMixin } from "@/stores/mixin";
|
|
const mixin = useCounterMixin();
|
|
const { date2Thai } = mixin;
|
|
|
|
export const useInvestigateDisStore = defineStore(
|
|
"DisciplineInvestigateDis",
|
|
() => {
|
|
const tabMenu = ref<string>("disciplinary");
|
|
const rows = ref<investigateDisDataRowType[]>([]);
|
|
const rows2 = ref<directorType[]>([]);
|
|
const selected = ref<directorType[]>([]);
|
|
const optionsTypefault = ref<DataOption[]>([
|
|
{ id: "0", name: "ไม่ระบุ" },
|
|
{ id: "1", name: "ร้ายแรง" },
|
|
{ id: "2", name: "ไม่ร้ายแรง" },
|
|
]);
|
|
const optionsfaultLevel = ref<DataOption[]>([
|
|
{ id: "0", name: "ไม่ร้ายแรง" },
|
|
{ id: "1", name: "ภาคทัณฑ์" },
|
|
{ id: "2", name: "ตัดเงินเดือน" },
|
|
{ id: "3", name: "ลดขั้นเงินเดือน" },
|
|
{ id: "4", name: "ร้ายแรง" },
|
|
{ id: "5", name: "ปลดออก" },
|
|
{ id: "6", name: "ไล่ออก" },
|
|
]);
|
|
async function fecthList(data: investigateDisDataRowType[]) {
|
|
let datalist: investigateDisDataRowType[] = data.map((e: any) => ({
|
|
id: e.id,
|
|
subject: e.subject,
|
|
interrogated: e.interrogated,
|
|
fault: convertFault(e.fault),
|
|
penaltyLevel: convertPenaltyLevel(e.penaltyLevel),
|
|
caseFault: e.caseFault,
|
|
dateInvestigate: date2Thai(new Date(e.dateInvestigate)),
|
|
status: convertSatatus(e.status),
|
|
active: activeStatus(e.active),
|
|
}));
|
|
rows.value = datalist;
|
|
}
|
|
async function fecthDirector(data: directorType[]) {
|
|
let datalistDirector: responseType[] = data.map((e: directorType) => ({
|
|
id: e.id,
|
|
name: `${e.prefix}${e.firstName} ${e.lastName}`,
|
|
prefix:e.prefix,
|
|
firstName:e.firstName,
|
|
lastName:e.lastName,
|
|
position: e.position,
|
|
email: e.email,
|
|
phone: e.phone,
|
|
}));
|
|
rows2.value = datalistDirector;
|
|
selected.value = rows2.value;
|
|
console.log(rows2.value);
|
|
}
|
|
function convertFault(val: string) {
|
|
switch (val) {
|
|
case "0":
|
|
return "ความผิดวินัยยังไม่ระบุ";
|
|
case "1":
|
|
return "ความผิดวินัยไม่ร้ายแรง";
|
|
case "2":
|
|
return "ความผิดวินัยร้ายแรง";
|
|
}
|
|
}
|
|
function convertSatatus(val: string) {
|
|
switch (val) {
|
|
case "0":
|
|
return "เสร็จสิ้นแล้ว";
|
|
case "1":
|
|
return "ยุติเรื่อง";
|
|
}
|
|
}
|
|
function activeStatus(val: string) {
|
|
switch (val) {
|
|
case "0":
|
|
return "กำลังยืนยันผล";
|
|
case "1":
|
|
return "ยืนยันผลเเล้ว";
|
|
case "2":
|
|
return "ยืนยันผล";
|
|
}
|
|
}
|
|
function convertPenaltyLevel(val: string) {
|
|
switch (val) {
|
|
case "0":
|
|
return "ไม่ร้ายแรง";
|
|
case "1":
|
|
return "ภาคทัณฑ์";
|
|
case "3":
|
|
return "ตัดเงินเดือน";
|
|
case "4":
|
|
return "ลดขั้นเงินเดือน";
|
|
case "5":
|
|
return "ร้ายแรง";
|
|
case "6":
|
|
return "ปลดออก";
|
|
case "7":
|
|
return "ไล่ออก";
|
|
}
|
|
}
|
|
|
|
const visibleColumns = ref<String[]>([
|
|
"no",
|
|
"subject",
|
|
"interrogated",
|
|
"fault",
|
|
"penaltyLevel",
|
|
"caseFault",
|
|
"dateInvestigate",
|
|
"status",
|
|
]);
|
|
|
|
const columns = ref<QTableProps["columns"]>([
|
|
{
|
|
name: "no",
|
|
align: "center",
|
|
label: "ลำดับ",
|
|
sortable: false,
|
|
field: "no",
|
|
headerStyle: "font-size: 14px",
|
|
style: "font-size: 14px",
|
|
},
|
|
{
|
|
name: "subject",
|
|
align: "left",
|
|
label: "เรื่อง",
|
|
sortable: true,
|
|
field: "subject",
|
|
headerStyle: "font-size: 14px",
|
|
style: "font-size: 14px",
|
|
},
|
|
{
|
|
name: "interrogated",
|
|
align: "left",
|
|
label: "ผู้ถูกสืบสวน",
|
|
sortable: true,
|
|
field: "interrogated",
|
|
headerStyle: "font-size: 14px",
|
|
style: "font-size: 14px",
|
|
sort: (a: string, b: string) =>
|
|
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
|
},
|
|
{
|
|
name: "fault",
|
|
align: "left",
|
|
label: "ลักษณะความผิด",
|
|
sortable: true,
|
|
field: "fault",
|
|
headerStyle: "font-size: 14px",
|
|
style: "font-size: 14px",
|
|
sort: (a: string, b: string) =>
|
|
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
|
},
|
|
{
|
|
name: "penaltyLevel",
|
|
align: "left",
|
|
label: "ระดับโทษความผิด",
|
|
sortable: true,
|
|
field: "penaltyLevel",
|
|
headerStyle: "font-size: 14px",
|
|
style: "font-size: 14px",
|
|
sort: (a: string, b: string) =>
|
|
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
|
},
|
|
{
|
|
name: "caseFault",
|
|
align: "left",
|
|
label: "กรณีความผิด",
|
|
sortable: true,
|
|
field: "caseFault",
|
|
headerStyle: "font-size: 14px",
|
|
style: "font-size: 14px",
|
|
sort: (a: string, b: string) =>
|
|
a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }),
|
|
},
|
|
{
|
|
name: "dateInvestigate",
|
|
align: "left",
|
|
label: "วันที่สอบสวน",
|
|
sortable: true,
|
|
field: "dateInvestigate",
|
|
headerStyle: "font-size: 14px",
|
|
style: "font-size: 14px",
|
|
},
|
|
{
|
|
name: "status",
|
|
align: "left",
|
|
label: "สถานะ",
|
|
sortable: true,
|
|
field: "status",
|
|
headerStyle: "font-size: 14px",
|
|
style: "font-size: 14px",
|
|
},
|
|
]);
|
|
|
|
const visibleColumnsDirector = ref<String[]>([
|
|
"no",
|
|
"name",
|
|
"position",
|
|
"duty",
|
|
"email",
|
|
"telephone",
|
|
"role",
|
|
]);
|
|
const columnsDirector = ref<QTableProps["columns"]>([
|
|
{
|
|
name: "no",
|
|
align: "left",
|
|
label: "ลำดับ",
|
|
sortable: false,
|
|
field: "no",
|
|
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: "position",
|
|
align: "left",
|
|
label: "ตำแหน่ง",
|
|
sortable: true,
|
|
field: "position",
|
|
headerStyle: "font-size: 14px",
|
|
style: "font-size: 14px",
|
|
},
|
|
{
|
|
name: "duty",
|
|
align: "left",
|
|
label: "หน้าที่",
|
|
sortable: true,
|
|
field: "duty",
|
|
headerStyle: "font-size: 14px",
|
|
style: "font-size: 14px",
|
|
},
|
|
{
|
|
name: "email",
|
|
align: "left",
|
|
label: "อีเมล",
|
|
sortable: true,
|
|
field: "email",
|
|
headerStyle: "font-size: 14px",
|
|
style: "font-size: 14px",
|
|
},
|
|
{
|
|
name: "telephone",
|
|
align: "left",
|
|
label: "เบอร์โทรศัพท์",
|
|
sortable: true,
|
|
field: "telephone",
|
|
headerStyle: "font-size: 14px",
|
|
style: "font-size: 14px",
|
|
},
|
|
{
|
|
name: "role",
|
|
align: "left",
|
|
label: "จำนวนเรื่องสืบสวน",
|
|
sortable: true,
|
|
field: "role",
|
|
headerStyle: "font-size: 14px",
|
|
style: "font-size: 14px",
|
|
},
|
|
]);
|
|
return {
|
|
tabMenu,
|
|
fecthList,
|
|
rows,
|
|
rows2,
|
|
optionsTypefault,
|
|
optionsfaultLevel,
|
|
fecthDirector,
|
|
visibleColumns,
|
|
columns,
|
|
visibleColumnsDirector,
|
|
columnsDirector,
|
|
};
|
|
}
|
|
);
|