From 7af8370b08b6f2d1ca87629d55352a19a8d4a0a1 Mon Sep 17 00:00:00 2001 From: waruneeta Date: Fri, 1 Dec 2023 16:15:33 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B9=81=E0=B8=81=E0=B9=89=E0=B9=84=E0=B8=82?= =?UTF-8?q?=E0=B8=9F=E0=B8=AD=E0=B8=A3=E0=B9=8C=E0=B8=A1=E0=B8=AA=E0=B8=B7?= =?UTF-8?q?=E0=B8=9A=E0=B8=AA=E0=B8=A7=E0=B8=99=20=E0=B9=81=E0=B8=A5?= =?UTF-8?q?=E0=B8=B0=E0=B8=9C=E0=B8=B9=E0=B9=89=E0=B8=96=E0=B8=B9=E0=B8=81?= =?UTF-8?q?=E0=B8=A3=E0=B9=89=E0=B8=AD=E0=B8=87=E0=B9=80=E0=B8=A3=E0=B8=B5?= =?UTF-8?q?=E0=B8=A2=E0=B8=99=E0=B8=82=E0=B8=AD=E0=B8=87=E0=B8=A7=E0=B8=B4?= =?UTF-8?q?=E0=B8=99=E0=B8=B1=E0=B8=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Dialogs/AddPersonal.vue | 5 +- .../components/2_InvestigateFacts/Form.vue | 20 +-- .../3_InvestigateDisciplinary/EditPage.vue | 129 +++--------------- .../3_InvestigateDisciplinary/Form.vue | 106 +++++++++----- .../components/PopupSendToNext.vue | 28 ++-- .../interface/request/disciplinary.ts | 4 +- .../interface/response/investigate.ts | 55 ++++---- src/modules/11_discipline/store/main.ts | 6 +- 8 files changed, 153 insertions(+), 200 deletions(-) diff --git a/src/components/Dialogs/AddPersonal.vue b/src/components/Dialogs/AddPersonal.vue index 2581a16c7..17ef8be76 100644 --- a/src/components/Dialogs/AddPersonal.vue +++ b/src/components/Dialogs/AddPersonal.vue @@ -1,11 +1,10 @@ @@ -635,7 +637,7 @@ onMounted(async () => { color="red" class="q-ml-sm" icon="mdi-delete-outline" - @click="deletePerson(props.row.id)" + @click="deletePerson(props.row.personId)" >ลบผู้ถูกร้องเรียน @@ -1302,11 +1304,11 @@ onMounted(async () => { @@ -1332,4 +1334,4 @@ onMounted(async () => { min-height: 25px; } -@/modules/11_discipline/store/store \ No newline at end of file +@/modules/11_discipline/store/store diff --git a/src/modules/11_discipline/components/3_InvestigateDisciplinary/EditPage.vue b/src/modules/11_discipline/components/3_InvestigateDisciplinary/EditPage.vue index 2af0d5d41..c1b962942 100644 --- a/src/modules/11_discipline/components/3_InvestigateDisciplinary/EditPage.vue +++ b/src/modules/11_discipline/components/3_InvestigateDisciplinary/EditPage.vue @@ -2,14 +2,16 @@ import { onMounted, reactive, ref, watch } from "vue"; import { useQuasar } from "quasar"; import { useRouter, useRoute } from "vue-router"; -import type { QTableProps } from "quasar"; import http from "@/plugins/http"; import config from "@/app.config"; /**import component*/ import FormComplaints from "@/modules/11_discipline/components/1_Complaint/Form.vue"; //เรื่องร้องเรียน import FormInvestigatefacts from "@/modules/11_discipline/components/2_InvestigateFacts/Form.vue"; //สืบสวนข้อเท็จจริง import FormDisciplinary from "@/modules/11_discipline/components/3_InvestigateDisciplinary/Form.vue"; // สอบสวนความผิดทางวินัย -import type { PersonsArray } from "@/modules/11_discipline/interface/request/disciplinary"; +import type { + PersonsArray, + Persons, +} from "@/modules/11_discipline/interface/request/disciplinary"; import type { FormData as FormDataComplaint, ArrayPerson, @@ -22,6 +24,9 @@ import type { FormData as FormInvestigateFact } from "@/modules/11_discipline/in /**import store*/ import { useCounterMixin } from "@/stores/mixin"; import { useInvestigateDisStore } from "@/modules/11_discipline/store/InvestigateDisStore"; +import { useDisciplineMainStore } from "@/modules/11_discipline/store/main"; + +const mainStore = useDisciplineMainStore(); const $q = useQuasar(); const mixin = useCounterMixin(); @@ -86,7 +91,8 @@ async function fetchDetailInvestigate() { dataList.disciplineInvestigateRelevantDocs; dataInvestigatefacts.investigationStatusResult = dataList.investigationStatusResult; - dataInvestigatefacts.investigationExtendStatus = dataList.investigationExtendStatus; + dataInvestigatefacts.investigationExtendStatus = + dataList.investigationExtendStatus; dataInvestigatefacts.investigationDaysExtend = dataList.investigationDaysExtend; }) @@ -167,8 +173,9 @@ const onSubmit = async (id: string) => { }; /** ยืนยัน ส่งไปออกคำสั่ง */ -function sentIssue() { - console.log("sent"); +const respondentRows = ref(); +async function sentIssue() { + respondentRows.value = await store.rowSent.filter((x) => !x.report); //x.report === false modalPopup.value = true; } @@ -214,12 +221,6 @@ function cancelInvestigate() { ); } -/** ฟังชั่น ส่งไปออกคำสั่ง*/ -function confirmSentIssue() { - console.log("sent"); - modalPopup.value = true; -} - /** ฟังชั่น ยุติเรื่อง*/ function confirmEndInvestigate() { console.log("sent"); @@ -303,7 +304,6 @@ const fileListObjComplaint = reactive({ function emitPerson(data: PersonsArray[]) { console.log(data); const dataMapId = data.map((item: PersonsArray) => item.id); - console.log(dataMapId); showLoader(); http .put(config.API.disciplinarySuspend(id.value), { @@ -321,104 +321,6 @@ function emitPerson(data: PersonsArray[]) { }); } -/** หัวตาราง */ -const columns = ref([ - { - 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 visibleColumns = ref([ - "info", - "no", - "idcard", - "name", - "posNo", - "position", - "positionLevel", - "salary", - "organization", -]); - const dataComplaints = reactive({ id: "", respondentType: "", @@ -555,9 +457,10 @@ const dataInvestigatefacts = reactive({ :modal="modalPopup" :close="closePopup" title="ส่งไปพักราชการ" - :rows="store.rowSent" - :columns="columns" - :visibleColumns="visibleColumns" + :rows="respondentRows" + :columns="mainStore.columnsRespondent" + :visibleColumns="mainStore.visibleColumnsRespondent" + :checked-val="false" @return-person="emitPerson" /> diff --git a/src/modules/11_discipline/components/3_InvestigateDisciplinary/Form.vue b/src/modules/11_discipline/components/3_InvestigateDisciplinary/Form.vue index f0db9c131..465bb607f 100644 --- a/src/modules/11_discipline/components/3_InvestigateDisciplinary/Form.vue +++ b/src/modules/11_discipline/components/3_InvestigateDisciplinary/Form.vue @@ -10,7 +10,6 @@ import type { QTableProps } from "quasar"; import type { FormData, DisciplinaryRef, - Persons, Director, } from "@/modules/11_discipline/interface/request/disciplinary"; import type { @@ -199,6 +198,7 @@ function calEndDate(val: string) { formData.disciplinaryDateEnd = new Date( dateNew.setDate(date.getDate() + Number(val)) ); + changeFormData(); } /** @@ -210,6 +210,10 @@ function onSubmit() { dialogConfirm( $q, async () => { + if (mainStore.rowsAdd) { + formData.persons = mainStore.rowsAdd; + } + emit("submit:disciplinary", formData); }, "ยืนยันการบันทึกข้อมูล", @@ -273,6 +277,8 @@ async function fetchDatadetail() { formData.disciplinaryCauseText = props.data.disciplinaryCauseText; formData.disciplinaryResult = props.data.disciplinaryResult; + mainStore.rowsAdd = props.data.persons; + /** MAP รายชื่อกรรมการ หน้าหลัก */ const dataMap = props.data.director.map((item: any) => ({ id: item.directorId, @@ -291,36 +297,26 @@ async function fetchDatadetail() { } } -/** - * function add ผู้ถูกร้องเรียนใน table - * @param data รายชื่อ ผู้ถูกร้องเรียน - */ -async function addPerson(data: Persons[]) { - if (!data) { - return; - } - const newPerson: Persons[] = Array.from(data).map((e) => ({ - personId: e.personId, //id อ้างอิง profile - idcard: e.idcard, //รหัสบัตรประชาชน - prefix: e.prefix, //คำนำหน้า - firstName: e.firstName, //ชื่อ - lastName: e.lastName, //นามสกุล - posNo: e.posNo, //เลขที่ตำแหน่ง - position: e.position, //ตำแหน่ง - positionLevel: e.positionLevel, //ระดับ - salary: e.salary, //เงินเดือน - organization: e.organization, //สังกัด - name: `${e.prefix}${e.firstName} ${e.lastName}`, - })); - const mergedArray = [...formData.persons, ...newPerson]; - formData.persons = mergedArray; - investigateDis.rowSent = formData.persons; +async function addPerson(data: any) { + await mainStore.fetchData(data); toggleModal(); } -/** function รับข้อมูลรายชื่อผู้ถูกร้องเรียน*/ +/** + * ฟังชั่น รับค่าจาก คอมโพเเนน + * @param returnData ค่าที่ได้คืนมา + */ function handleSave(returnData: any) { addPerson(returnData); + changeFormData(); + toggleModal(); +} + +function deletePerson(id: string) { + changeFormData(); + const dataRow = mainStore.rowsAdd; + const updatedRows = dataRow.filter((item: any) => item.personId !== id); + mainStore.rowsAdd = updatedRows; } /** @@ -413,10 +409,11 @@ async function updatePaging(rpp: number, p: number) { * function return รายชื่อกรรมการที่เลือก * @param data รายชื่อกรรมการที่เลือก */ -async function returnDirector(data: any) { +function returnDirector(data: any) { const dataList = data.map((item: any) => item.id); formData.directors = dataList; rows.value = data; + changeFormData(); clickClose(); } @@ -437,12 +434,24 @@ function changeFormData() { /** Hook */ onMounted(async () => { + mainStore.rowsAdd = []; await fetchOrganization(); }); @@ -662,6 +688,7 @@ onMounted(async () => { dense class="text-weight-medium q-ml-sm" keep-color + @update:model-value="changeFormData()" />
@@ -676,6 +703,7 @@ onMounted(async () => { autoApply :enableTimePicker="false" week-start="0" + @update:model-value="changeFormData()" >