diff --git a/src/modules/09_leave/components/2_Leave/DetailLeave.vue b/src/modules/09_leave/components/2_Leave/DetailLeave.vue index 155ad2055..3131c66b8 100644 --- a/src/modules/09_leave/components/2_Leave/DetailLeave.vue +++ b/src/modules/09_leave/components/2_Leave/DetailLeave.vue @@ -1,9 +1,21 @@ @@ -43,40 +55,63 @@ const paramsId = route.params.id; > - - + + - - ประเภทการลา - ลาป่วย - - - ชื่อ - นามสกุล - {{ paramsId }} + + ประเภทการลา + ลาป่วย + + + + ชื่อ - นามสกุล + {{ paramsId }} + - - 10 - โควต้าลาป่วย + + + 10 + + + โควต้าลาป่วย + - - 8 - ลาป่วยไปแล้ว + + + 8 + + + ลาป่วยไปแล้ว + - - 2 - คงเหลือโควต้า + + + 2 + + + คงเหลือโควต้า + @@ -139,7 +174,7 @@ const paramsId = route.params.id; เอกสารแบบ - ไม่พบเอกสาร + ไม่พบเอกสาร @@ -153,7 +188,7 @@ const paramsId = route.params.id; ไม่อนุมัติ - อนุมัติ diff --git a/src/modules/09_leave/interface/request/changeRound.ts b/src/modules/09_leave/interface/request/changeRound.ts index 2e7ab8869..dc904b4f8 100644 --- a/src/modules/09_leave/interface/request/changeRound.ts +++ b/src/modules/09_leave/interface/request/changeRound.ts @@ -14,8 +14,15 @@ interface MyObjectRoundChangeRef { effectiveDate: object | null [key: string]: any; } +interface MyObjectRoundChangeMainRef { + cardId:object|null + firstName:object|null + lastName:object|null + [key: string]: any; +} export type { dataPost, changeRoundEdit, - MyObjectRoundChangeRef + MyObjectRoundChangeRef, + MyObjectRoundChangeMainRef } \ No newline at end of file diff --git a/src/modules/09_leave/interface/response/round.ts b/src/modules/09_leave/interface/response/round.ts index 402b5f92e..d1e80380e 100644 --- a/src/modules/09_leave/interface/response/round.ts +++ b/src/modules/09_leave/interface/response/round.ts @@ -9,6 +9,7 @@ interface dataRowRound { am: string amOut: string pm: string + note:string pmOut: string status: boolean isDefault: boolean diff --git a/src/modules/09_leave/stores/ChangeRoundStore.ts b/src/modules/09_leave/stores/ChangeRoundStore.ts index f6577f12a..78b433bf5 100644 --- a/src/modules/09_leave/stores/ChangeRoundStore.ts +++ b/src/modules/09_leave/stores/ChangeRoundStore.ts @@ -1,6 +1,7 @@ import { defineStore } from "pinia"; import { ref, reactive } from "vue"; import type { changeShow, dataRowChangeRound, dataRowChangeRoundHistory, historyShow } from "@/modules/09_leave/interface/response/changeRound"; +import type { dataPost } from "@/modules/09_leave/interface/request/changeRound"; import type { QTableProps } from "quasar"; import { useCounterMixin } from "@/stores/mixin"; @@ -112,15 +113,6 @@ export const useChangeRoundDataStore = defineStore( roundEnd: "11:00", effectiveDate: new Date("2023-11-01T03:08:43.217"), }, - { - cardId: '3514210651232', - prefix: "นางสาว", - firstName: "กัณฐิมา", - lastName: "กาฬสินธุ์", - roundStart: "13:00", - roundEnd: "16:00", - effectiveDate: new Date("2023-11-01T03:08:43.217"), - }, { cardId: '1231231231234', prefix: "นายสาว", @@ -148,27 +140,35 @@ export const useChangeRoundDataStore = defineStore( rowsHistory.value = datalistHistory; } - function fetchDataForCardId(cardId: string, check: string) { - if (cardId.length === 13) { - const data = dataList.filter((e) => e.cardId === cardId); - rows.value = data.map((e) => ({ - cardId: e.cardId, - prefix: e.prefix, - firstName: e.firstName, - lastName: e.lastName, - fullName: `${e.prefix}${e.firstName} ${e.lastName}`, - roundStart: e.roundStart, - roundEnd: e.roundEnd, - currentRound: `${e.roundStart}-${e.roundEnd}`, - effectiveDate: date2Thai(e.effectiveDate), + function fetchDataForCardId(dataDetail: any, check: string) { + if (dataDetail) { + const filteredData = dataList.filter((e) => { + return (!dataDetail.cardId || e.cardId === dataDetail.cardId) && + (!dataDetail.firstName || e.firstName === dataDetail.firstName) && + (!dataDetail.lastName || e.lastName === dataDetail.lastName); + }); + + if (filteredData.length > 0) { + checkCilck.value = false; + rows.value = filteredData.map((e) => ({ + cardId: e.cardId, + prefix: e.prefix, + firstName: e.firstName, + lastName: e.lastName, + fullName: `${e.prefix}${e.firstName} ${e.lastName}`, + roundStart: e.roundStart, + roundEnd: e.roundEnd, + currentRound: `${e.roundStart}-${e.roundEnd}`, + effectiveDate: date2Thai(e.effectiveDate), })); - } else if (cardId === 'null') { - rows.value = [] - checkCilck.value = false - } else if (check === 'click') { - checkCilck.value = true + } else { + rows.value = []; + console.log(3); + checkCilck.value = true; + } } - } + } + return { diff --git a/src/modules/09_leave/views/ChangeRoundMain.vue b/src/modules/09_leave/views/ChangeRoundMain.vue index d77d5abbd..877e3adb7 100644 --- a/src/modules/09_leave/views/ChangeRoundMain.vue +++ b/src/modules/09_leave/views/ChangeRoundMain.vue @@ -6,6 +6,10 @@ import type { dataPost } from "@/modules/09_leave/interface/request/changeRound" import { useChangeRoundDataStore } from "@/modules/09_leave/stores/ChangeRoundStore"; import Dialogform from "@/modules/09_leave/components/4_ChangeRound/DialogForm.vue"; import Modal from "@/modules/05_placement/components/AppointEmployee/Modal.vue"; +import { useCounterMixin } from "@/stores/mixin"; +const $q = useQuasar(); +const mixin = useCounterMixin(); +const { dialogConfirm, date2Thai ,dialogMessageNotify} = mixin; const dataStore = useChangeRoundDataStore(); const modal = ref(false); const editCheck = ref(""); @@ -16,10 +20,7 @@ const formData = reactive({ lastName: "", }); - - function Openmodal(check: string, detail: any) { - console.log(detail); DataRow.value = detail; modal.value = true; editCheck.value = check; @@ -27,15 +28,47 @@ function Openmodal(check: string, detail: any) { function closeDialog() { modal.value = false; } -async function searchcardid(){ - const data = await dataStore.dataList.find((e) => e.cardId === formData.cardId) - if(data){ - formData.firstName = data.firstName - formData.lastName = data.lastName - } else if(!data){ - formData.firstName = '' - formData.lastName = '' - dataStore.fetchDataForCardId('null','notClick') +async function searchcardid(type:string) { + // if (type === "card") { + // // const data = await dataStore.dataList.find( + // // (e) => e.cardId === formData.cardId + // // ); + // // if (data) { + // // formData.firstName = data.firstName; + // // formData.lastName = data.lastName; + // // } else if (!data) { + // formData.firstName = ""; + // formData.lastName = ""; + // // } + // } else if (type === "firstName") { + // // const data = await dataStore.dataList.find( + // // (e) => e.firstName === formData.firstName + // // ); + // // if (data) { + // // formData.cardId = data.cardId; + // // formData.lastName = data.lastName; + // // } else if (!data) { + // formData.cardId = ""; + // formData.lastName = ""; + // // } + // } else if (type === "lastName") { + // // const data = await dataStore.dataList.find( + // // (e) => e.lastName === formData.lastName + // // ); + // // if (data) { + // // formData.firstName = data.firstName; + // // formData.cardId = data.cardId; + // // } else if (!data) { + // formData.firstName = ""; + // formData.cardId = ""; + // // } + // } +} +function searchData(){ + if(formData.cardId||formData.firstName||formData.lastName){ + dataStore.fetchDataForCardId(formData, 'click') + }else{ + dialogMessageNotify($q,'กรุณากรอกข้อมูลอย่างน้อย 1 ช่อง') } } onMounted(() => { @@ -72,44 +105,49 @@ onMounted(() => { v-model="formData.cardId" outlined label="เลขบัตรประชาชน" - class="bg-white col-6 col-md-4 inputgreen" + class=" col-6 col-md-4 inputgreen" dense + hide-bottom-space maxlength="13" - @keyup="searchcardid" + @keyup="searchcardid('card')" /> ค้นหาค้นหา - - ไม่พบข้อมูลบัตรประชาชนนี้ + + ไม่พบข้อมูล { dense class="custom-header-table" :visible-columns="dataStore.visibleColumns" - >