diff --git a/src/api/11_discipline/api.discipline.ts b/src/api/11_discipline/api.discipline.ts index 64c3b94cf..e0209579b 100644 --- a/src/api/11_discipline/api.discipline.ts +++ b/src/api/11_discipline/api.discipline.ts @@ -2,26 +2,37 @@ import env from "../index"; const discipline = `${env.API_URI}/discipline`; export default { - directorList:(page:number,pageSize:number,keyword:string) => `${discipline}/director?page=${page}&pageSize=${pageSize}&keyword=${keyword}`, - director:() => `${discipline}/director`, - directorbyId:(id:string) => `${discipline}/director/${id}`, + directorList: (page: number, pageSize: number, keyword: string) => + `${discipline}/director?page=${page}&pageSize=${pageSize}&keyword=${keyword}`, + director: () => `${discipline}/director`, + directorbyId: (id: string) => `${discipline}/director/${id}`, /**ช่องทางการร้องเรียน */ - complaintChannel:() => `${discipline}/complaint_Channel`, + complaintChannel: () => `${discipline}/complaint_Channel`, /**ลบ ช่องทางการร้องเรียน * @param id type */ - complaintChannelbyId:(id:string) => `${discipline}/complaint_Channel/${id}`, + complaintChannelbyId: (id: string) => `${discipline}/complaint_Channel/${id}`, - complaintAdd:() => `${discipline}/complaint`, - complaintbyId:(id:string) => `${discipline}/complaint/${id}`, - complaintReject:(id:string) => `${discipline}/complaint/reject/${id}`, - complaintResume:(id:string) => `${discipline}/complaint/resume/${id}`, - complaintList:(page:number,pageSize:number,keyword:string) => `${discipline}/complaint?page=${page}&pageSize=${pageSize}&keyword=${keyword}`, - complaintFileUpload:(id:string) => `${discipline}/complaint/file/${id}`, - complaintFileDelete:(id:string,docId:string) => `${discipline}/complaint/file/${id}/${docId}`, + complaintAdd: () => `${discipline}/complaint`, + complaintbyId: (id: string) => `${discipline}/complaint/${id}`, + complaintReject: (id: string) => `${discipline}/complaint/reject/${id}`, + complaintResume: (id: string) => `${discipline}/complaint/resume/${id}`, + complaintList: (page: number, pageSize: number, keyword: string) => + `${discipline}/complaint?page=${page}&pageSize=${pageSize}&keyword=${keyword}`, + complaintFileUpload: (id: string) => `${discipline}/complaint/file/${id}`, + complaintFileDelete: (id: string, docId: string) => + `${discipline}/complaint/file/${id}/${docId}`, - complaintApprove:(id:string) => `${discipline}/complaint/approve/${id}` + complaintApprove: (id: string) => `${discipline}/complaint/approve/${id}`, + /** ระบบวินัยเรื่องสอบสวน */ + disciplineDisciplinary: () => `${discipline}/disciplinary`, + disciplineDisciplinaryById: (id: string) => + `${discipline}/disciplinary/${id}`, + disciplineInvestigateById: (id: string) => + `${discipline}/disciplinary/investigate/${id}`, + disciplineComplaintsById: (id: string) => + `${discipline}/disciplinary/complaint/${id}`, }; diff --git a/src/modules/11_discipline/components/3_InvestigateDisciplinary/EditPage.vue b/src/modules/11_discipline/components/3_InvestigateDisciplinary/EditPage.vue index 9b7dfda15..0966f5325 100644 --- a/src/modules/11_discipline/components/3_InvestigateDisciplinary/EditPage.vue +++ b/src/modules/11_discipline/components/3_InvestigateDisciplinary/EditPage.vue @@ -1,5 +1,7 @@ @@ -158,7 +219,7 @@ onMounted(async () => { /> - + import { ref, onMounted, reactive, watch } from "vue"; +import http from "@/plugins/http"; +import config from "@/app.config"; import { useQuasar, QForm } from "quasar"; import { useRouter, useRoute } from "vue-router"; import { useCounterMixin } from "@/stores/mixin"; +import { useComplainstDataStore } from "@/modules/11_discipline/store/ComplaintsStore"; import { useInvestigateDisStore } from "@/modules/11_discipline/store/InvestigateDisStore"; import Dialogbody from "@/modules/11_discipline/components/3_InvestigateDisciplinary/Dialogbody.vue"; @@ -15,8 +18,10 @@ import type { } from "@/modules/11_discipline/interface/request/disciplinary"; import type { FileLists } from "../../interface/index/Main"; +const complainstStore = useComplainstDataStore(); const investigateDis = useInvestigateDisStore(); const { fecthDirector } = investigateDis; +const { selectComplainantTpye, filterSelector } = complainstStore; // function จาก store complainstStore const mixin = useCounterMixin(); const { date2Thai, hideLoader, dialogConfirm } = mixin; @@ -37,6 +42,7 @@ const fileDocDataUpload = ref([]); /** ตัวแปร ref สำหรับแสดง validate */ const complaintRef = ref(null); +const respondentTypeRef = ref(null); const dateInvestigateRef = ref(null); const dateAllegationRef = ref(null); const dateEvidentRef = ref(null); @@ -76,6 +82,7 @@ const initialPagination = ref({ /** ข้อมูล v-model ของฟอร์ม */ const formData = reactive({ complaint: "", + respondentType: "", dateInvestigate: null, dateAllegation: null, dateEvident: null, @@ -95,15 +102,27 @@ const formData = reactive({ filesRecordAccuser: null, filesWitnesses: null, filesEtc: null, + organizationId: "", + consideredAgency: "", }); -const filesEvidence = ref([{ name: "ชื่อไฟล" }, { name: "ชื่อไฟล" }]); -const filesRecordAccuser = ref([{ name: "ชื่อไฟล" }, { name: "ชื่อไฟล" }]); -const filesWitnesses = ref([{ name: "ชื่อไฟล" }, { name: "ชื่อไฟล" }]); -const filesEtc = ref([{ name: "ชื่อไฟล" }, { name: "ชื่อไฟล" }]); +const filesEvidence = ref([ + { fileName: "ชื่อไฟล" }, + { fileName: "ชื่อไฟล" }, +]); +const filesRecordAccuser = ref([ + { fileName: "ชื่อไฟล" }, + { fileName: "ชื่อไฟล" }, +]); +const filesWitnesses = ref([ + { fileName: "ชื่อไฟล" }, + { fileName: "ชื่อไฟล" }, +]); +const filesEtc = ref([{ fileName: "ชื่อไฟล" }, { fileName: "ชื่อไฟล" }]); /** maping ref เข้าตัวแปรเพื่อเตรียมตรวจสอบ */ const objectdisciplinary: disciplinaryRef = { complaint: complaintRef, + respondentType: respondentTypeRef, dateInvestigate: dateInvestigateRef, dateAllegation: dateAllegationRef, dateEvident: dateEvidentRef, @@ -187,65 +206,96 @@ async function deleteData(id: string) { console.log("delete"); } -async function fetvhDatadetail() { - formData.complaint = props.data.complaint; - formData.dateInvestigate = props.data.dateInvestigate; - formData.dateAllegation = props.data.dateAllegation; - formData.dateEvident = props.data.dateEvident; - formData.casefault = props.data.casefault; - formData.typefault = props.data.typefault; - formData.faultLevel = props.data.faultLevel; - formData.refLaw = props.data.refLaw; - formData.detailComplaint = props.data.detailComplaint; - formData.whereInvestigate = props.data.whereInvestigate; - formData.trueDetail = props.data.trueDetail; - formData.evidence = props.data.evidence; - formData.recordAccuser = props.data.recordAccuser; - formData.witnesses = props.data.witnesses; - formData.InvestResults = props.data.InvestResults; - formData.filesEvidence = props.data.filesEvidence; - formData.filesRecordAccuser = props.data.filesRecordAccuser; - formData.filesWitnesses = props.data.filesWitnesses; - formData.filesEtc = props.data.filesEtc; - - console.log(formData); -} +// async function fetvhDatadetail() { +// formData.complaint = props.data.complaint; +// formData.dateInvestigate = props.data.dateInvestigate; +// formData.dateAllegation = props.data.dateAllegation; +// formData.dateEvident = props.data.dateEvident; +// formData.casefault = props.data.casefault; +// formData.typefault = props.data.typefault; +// formData.faultLevel = props.data.faultLevel; +// formData.refLaw = props.data.refLaw; +// formData.detailComplaint = props.data.detailComplaint; +// formData.whereInvestigate = props.data.whereInvestigate; +// formData.trueDetail = props.data.trueDetail; +// formData.evidence = props.data.evidence; +// formData.recordAccuser = props.data.recordAccuser; +// formData.witnesses = props.data.witnesses; +// formData.InvestResults = props.data.InvestResults; +// formData.filesEvidence = props.data.filesEvidence; +// formData.filesRecordAccuser = props.data.filesRecordAccuser; +// formData.filesWitnesses = props.data.filesWitnesses; +// formData.filesEtc = props.data.filesEtc; +// console.log(formData); +// } /** * เช็คข้อมูลจาก props * เมื่อมีข้อมูล * เก็บข้อมูลลง formData */ watch(props.data, async () => { - formData.complaint = props.data.complaint; - formData.dateInvestigate = props.data.dateInvestigate; - formData.dateAllegation = props.data.dateAllegation; - formData.dateEvident = props.data.dateEvident; - formData.casefault = props.data.casefault; - formData.typefault = props.data.typefault; - formData.faultLevel = props.data.faultLevel; - formData.refLaw = props.data.refLaw; - formData.detailComplaint = props.data.detailComplaint; - formData.whereInvestigate = props.data.whereInvestigate; - formData.trueDetail = props.data.trueDetail; - formData.evidence = props.data.evidence; - formData.recordAccuser = props.data.recordAccuser; - formData.witnesses = props.data.witnesses; - formData.InvestResults = props.data.InvestResults; - formData.filesEvidence = props.data.filesEvidence; - formData.filesRecordAccuser = props.data.filesRecordAccuser; - formData.filesWitnesses = props.data.filesWitnesses; - formData.filesEtc = props.data.filesEtc; + // formData.complaint = props.data.complaint; + // formData.dateInvestigate = props.data.dateInvestigate; + // formData.dateAllegation = props.data.dateAllegation; + // formData.dateEvident = props.data.dateEvident; + // formData.casefault = props.data.casefault; + // formData.typefault = props.data.typefault; + // formData.faultLevel = props.data.faultLevel; + // formData.refLaw = props.data.refLaw; + // formData.detailComplaint = props.data.detailComplaint; + // formData.whereInvestigate = props.data.whereInvestigate; + // formData.trueDetail = props.data.trueDetail; + // formData.evidence = props.data.evidence; + // formData.recordAccuser = props.data.recordAccuser; + // formData.witnesses = props.data.witnesses; + // formData.InvestResults = props.data.InvestResults; + // formData.filesEvidence = props.data.filesEvidence; + // formData.filesRecordAccuser = props.data.filesRecordAccuser; + // formData.filesWitnesses = props.data.filesWitnesses; + // formData.filesEtc = props.data.filesEtc; }); function uploadData() { console.log("อัปโหลไฟล"); } +async function selectComplainant(val: string) { + formData.organizationId = ""; + formData.consideredAgency = ""; + if (val === "0") { + await fetchListname(); // ถ้าเลือกบุกคลจะเรียก function fetchListname เรียกรายชื่อจากทะเบียน + } else if (val === "1") { + await fetchOffice(); // ถ้าเลือกหน่วยงานจะเรียก function fetchOffice เรียกโครงสร้างสำนักงาน + } +} + +/** เรียกรายชื่อ */ +async function fetchListname() { + const listName = [ + { + id: "1", + name: "นายเอ", + }, + { + id: "2", + name: "นายบี", + }, + { + id: "3", + name: "นายชี", + }, + ]; + selectComplainantTpye(listName); +} + +/** เรียกโครงสร้างสำนักงาน */ +async function fetchOffice() {} + /**เมื่อเริ่มโหลดหน้า * ส่งข้อมูลจำลองไปยัง store */ onMounted(async () => { - await fetvhDatadetail(); + // await fetvhDatadetail(); await fecthDirector([ { nameDirector: "นาง เกสินี เจียรสุมัย", @@ -267,33 +317,49 @@ onMounted(async () => { await hideLoader(); }); -const files = ref([{ id: "1", fileName: "test", pathName: "xxx" }]); +const files = ref([ + { id: "1", fileName: "test", pathName: "xxx" }, +]); - + - + + + filterSelector(inputValue, doneFn, 'filterconsideredAgencytoptions' + )" + > + + + + ไม่มีข้อมูล + + + + + + + + + + + + + ผู้ถูกร้องเรียน + + เพิ่มผู้ถูกร้องเรียน + + + + + + + + + {{ + col.label + }} + + + + + + + + {{ props.rowIndex + 1 }} + + + {{ col.value }} + + + + + + + + - + - + - + diff --git a/src/modules/11_discipline/components/3_InvestigateDisciplinary/MainPage.vue b/src/modules/11_discipline/components/3_InvestigateDisciplinary/MainPage.vue index 9055bbc36..c98a50e73 100644 --- a/src/modules/11_discipline/components/3_InvestigateDisciplinary/MainPage.vue +++ b/src/modules/11_discipline/components/3_InvestigateDisciplinary/MainPage.vue @@ -2,23 +2,54 @@ import { onMounted, ref } from "vue"; import { useQuasar } from "quasar"; import { useRouter } from "vue-router"; -import Table from "@/modules/11_discipline/components/3_InvestigateDisciplinary/Table.vue"; -import { useCounterMixin } from "@/stores/mixin"; -import { useInvestigateDisStore } from "@/modules/11_discipline/store/InvestigateDisStore"; +import http from "@/plugins/http"; +import config from "@/app.config"; + import type { Pagination } from "@/modules/03_recruiting/interface/index/Main"; -const $q = useQuasar(); // show dialog -const router = useRouter(); -const filter = ref(""); //search data table +import Table from "@/modules/11_discipline/components/3_InvestigateDisciplinary/Table.vue"; + +import { useCounterMixin } from "@/stores/mixin"; +import { useInvestigateDisStore } from "@/modules/11_discipline/store/InvestigateDisStore"; + const mixin = useCounterMixin(); const dataInvestigateDis = useInvestigateDisStore(); const { showLoader, hideLoader } = mixin; -const { fecthList } = dataInvestigateDis; +const { fetchList } = dataInvestigateDis; +const $q = useQuasar(); // show dialog +const router = useRouter(); + +const filter = ref(""); //search data table +const page = ref(1); +const maxPage = ref(1); const initialPagination = ref({ - rowsPerPage: 0, + rowsPerPage: 10, }); +async function fetchListDisciplinary() { + showLoader(); + await http + .get( + config.API.disciplineDisciplinary() + + `?page=${page.value}&pageSize=${initialPagination.value.rowsPerPage}` + ) + .then((res) => { + const data = res.data.result.data; + maxPage.value = Math.ceil( + res.data.result.total / initialPagination.value.rowsPerPage + ); + fetchList(data); + console.log(data); + }) + .catch((err) => { + console.log(err); + }) + .finally(() => { + hideLoader(); + }); +} + /** * ไปหน้าแก้ไข * @param id ไอดีเฉพาะ รายบุคคล @@ -32,54 +63,7 @@ function openEdit(id: string) { * ส่งข้อมูลจำลองไปยัง store */ onMounted(async () => { - showLoader(); - fecthList([ - { - id: "001", - subject: "ทุจริตในหน้าที่", - interrogated: "ศิรินภา คงน้อยี่", - fault: "1", - penaltyLevel: "7", - caseFault: "ทุจริตในหน้าที่", - dateInvestigate: "2023-12-01", - status: "0", - active: "2", - }, - { - id: "002", - subject: "ทุจริตในหน้าที่", - interrogated: "ภัทรานุช คงน้อย", - fault: "1", - penaltyLevel: "7", - caseFault: "ทุจริตในหน้าที่", - dateInvestigate: "2023-11-30", - status: "0", - active: "0", - }, - { - id: "003", - subject: "กระทำทุจริตเงินกองทุน", - interrogated: "ปรมาพร ศรีมี", - fault: "2", - penaltyLevel: "1", - caseFault: "พบการทุจริต", - dateInvestigate: "2023-09-14", - status: "1", - active: "1", - }, - { - id: "004", - subject: "พูดจาไม่สุภาพ", - interrogated: "สมรัก ใจอารีย์", - fault: "2", - penaltyLevel: "1", - caseFault: "พูดจาไม่สุภาพกับผู้บังคับบัญชา", - dateInvestigate: "2023-08-11", - status: "0", - active: "1", - }, - ]); - await hideLoader(); + await fetchListDisciplinary(); }); diff --git a/src/modules/11_discipline/interface/index/Main.ts b/src/modules/11_discipline/interface/index/Main.ts index 0227ad183..cfe4ec9bd 100644 --- a/src/modules/11_discipline/interface/index/Main.ts +++ b/src/modules/11_discipline/interface/index/Main.ts @@ -20,15 +20,15 @@ interface InvestigatefactsDataRowType { } interface investigateDisDataRowType { - id: string; - subject: string; - interrogated: string; - fault: string | undefined; - penaltyLevel: string | undefined; - caseFault: string; - dateInvestigate: string | null; - status: string | undefined; - active: string | undefined; + id: string; //id รายการ + title: string; //เรื่องร้องเรียน + interrogated: string; //ผู้ถูกสอบสวน + descMistake: string; //ลักษณะความผิด + mistakeLevel: string; //ระดับโทษความผิด + mistakeCase: string; //กรณีความผิด + investigationDate: Date | null; //วันที่สอบสวน + status: string | null; //สถานะ + isResultConfirmed: Boolean; //ยืนยันผลเเล้ว/ยังไม่ได้ยืนยันผล } interface directorType { diff --git a/src/modules/11_discipline/interface/request/disciplinary.ts b/src/modules/11_discipline/interface/request/disciplinary.ts index 848512f76..0affe1d0d 100644 --- a/src/modules/11_discipline/interface/request/disciplinary.ts +++ b/src/modules/11_discipline/interface/request/disciplinary.ts @@ -1,5 +1,6 @@ interface FormData { complaint: string; + respondentType: string; dateInvestigate: Date | null; dateAllegation: Date | null; dateEvident: Date | null; @@ -18,7 +19,9 @@ interface FormData { recordAccuser: string; witnesses: string; InvestResults: string; - complaintStatus: string + complaintStatus: string; + organizationId: string; + consideredAgency: string; } interface disciplinaryRef { diff --git a/src/modules/11_discipline/store/InvestigateDisStore.ts b/src/modules/11_discipline/store/InvestigateDisStore.ts index cd93f2744..3b9eae8d0 100644 --- a/src/modules/11_discipline/store/InvestigateDisStore.ts +++ b/src/modules/11_discipline/store/InvestigateDisStore.ts @@ -31,18 +31,18 @@ export const useInvestigateDisStore = defineStore( { id: "5", name: "ปลดออก" }, { id: "6", name: "ไล่ออก" }, ]); - async function fecthList(data: investigateDisDataRowType[]) { - let datalist: investigateDisDataRowType[] = data.map((e: any) => ({ + async function fetchList(data: investigateDisDataRowType[]) { + let datalist: any[] = 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), + title: e.title, + respondentType: e.respondentType, + offenseDetails: e.offenseDetails, + disciplinaryFaultLevel: e.disciplinaryFaultLevel, + disciplinaryCaseFault: e.disciplinaryCaseFault, + status: e.status, + createdAt: date2Thai(e.createdAt), })); + rows.value = datalist; } async function fecthDirector(data: directorType[]) { @@ -56,7 +56,7 @@ export const useInvestigateDisStore = defineStore( })); rows2.value = datalistDirector; selected.value = rows2.value; - console.log(rows2.value); + // console.log(rows2.value); } function convertFault(val: string) { switch (val) { @@ -107,12 +107,12 @@ export const useInvestigateDisStore = defineStore( const visibleColumns = ref([ "no", - "subject", - "interrogated", - "fault", - "penaltyLevel", - "caseFault", - "dateInvestigate", + "title", + "respondentType", + "offenseDetails", + "disciplinaryFaultLevel", + "disciplinaryCaseFault", + "createdAt", "status", ]); @@ -127,64 +127,64 @@ export const useInvestigateDisStore = defineStore( style: "font-size: 14px", }, { - name: "subject", + name: "title", align: "left", label: "เรื่อง", sortable: true, - field: "subject", + field: "title", headerStyle: "font-size: 14px", style: "font-size: 14px", }, { - name: "interrogated", + name: "respondentType", align: "left", label: "ผู้ถูกสืบสวน", sortable: true, - field: "interrogated", + field: "respondentType", headerStyle: "font-size: 14px", style: "font-size: 14px", sort: (a: string, b: string) => a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), }, { - name: "fault", + name: "offenseDetails", align: "left", label: "ลักษณะความผิด", sortable: true, - field: "fault", + field: "offenseDetails", headerStyle: "font-size: 14px", style: "font-size: 14px", sort: (a: string, b: string) => a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), }, { - name: "penaltyLevel", + name: "disciplinaryFaultLevel", align: "left", label: "ระดับโทษความผิด", sortable: true, - field: "penaltyLevel", + field: "disciplinaryFaultLevel", headerStyle: "font-size: 14px", style: "font-size: 14px", sort: (a: string, b: string) => a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), }, { - name: "caseFault", + name: "disciplinaryCaseFault", align: "left", label: "กรณีความผิด", sortable: true, - field: "caseFault", + field: "disciplinaryCaseFault", headerStyle: "font-size: 14px", style: "font-size: 14px", sort: (a: string, b: string) => a.localeCompare(b, undefined, { numeric: true, sensitivity: "base" }), }, { - name: "dateInvestigate", + name: "createdAt", align: "left", label: "วันที่สอบสวน", sortable: true, - field: "dateInvestigate", + field: "createdAt", headerStyle: "font-size: 14px", style: "font-size: 14px", }, @@ -275,7 +275,7 @@ export const useInvestigateDisStore = defineStore( ]); return { tabMenu, - fecthList, + fetchList, rows, rows2, optionsTypefault,