import { defineStore } from "pinia"; import { ref } from "vue"; import type { QTableProps } from "quasar"; import type { investigateDisDataRowType, DataOption, directorType, } from "@/modules/11_discipline/interface/index/Main"; import { useCounterMixin } from "@/stores/mixin"; const mixin = useCounterMixin(); const { date2Thai } = mixin; export const useInvestigateDisStore = defineStore( "DisciplineInvestigateDis", () => { const rows = ref([]); const rows2 = ref([]); const selected = ref([]); const optionsTypefault = ref([ { id: "0", name: "ไม่ระบุ" }, { id: "1", name: "ร้ายแรง" }, { id: "2", name: "ไม่ร้ายแรง" }, ]); const optionsfaultLevel = ref([ { 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) => ({ 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: directorType[] = data.map((e: directorType) => ({ nameDirector: e.nameDirector, position: e.position, duty: e.duty, email: e.email, telephone: e.telephone, })); 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([ "no", "subject", "interrogated", "fault", "penaltyLevel", "caseFault", "dateInvestigate", "status", ]); const columns = ref([ { 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([ "no", "name", "position", "duty", "email", "telephone", ]); const columnsDirector = ref([ { 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", }, ]); return { fecthList, rows, rows2, optionsTypefault, optionsfaultLevel, fecthDirector, visibleColumns, columns, visibleColumnsDirector, columnsDirector, }; } );