diff --git a/src/modules/12_evaluatePersonal/components/Detail/viewTab2/CardDirector.vue b/src/modules/12_evaluatePersonal/components/Detail/viewTab2/CardDirector.vue index dfdcb31a5..c97e1c214 100644 --- a/src/modules/12_evaluatePersonal/components/Detail/viewTab2/CardDirector.vue +++ b/src/modules/12_evaluatePersonal/components/Detail/viewTab2/CardDirector.vue @@ -9,7 +9,7 @@ import config from "@/app.config"; /** importType*/ import type { QTableProps } from "quasar"; -import type { Director } from "@/modules/11_discipline/interface/request/disciplinary"; +import type { Director } from "@/modules/11_discipline/interface/request/Disciplinary"; import type { Directors } from "@/modules/12_evaluatePersonal/interface/response/Main"; /** importComponents*/ @@ -91,6 +91,7 @@ const page = ref(1); //หน้า const rowsPerPage = ref(10); //จำนวนต่อหน้า const maxPage = ref(1); //จำนนวนหน้าทั้งหมด const listDirector = ref([]); //รายชื่อกรรมการ +const listDirectorData = ref([]); //รายชื่อกรรมการ /** * ฟังก์เปิด popup เพิ่มรายชื่อกรรมการ @@ -152,7 +153,7 @@ async function getList() { .get(config.API.evaluateDirectorMain() + `/admin`) .then(async (res) => { const data = await res.data.result; - listDirector.value = data.map((item: Directors) => ({ + const listData = data.map((item: Directors) => ({ id: item.id, name: `${item.prefix}${item.firstName} ${item.lastName}`, createdAt: item.createdAt, @@ -168,6 +169,8 @@ async function getList() { email: item.email == "" ? "-" : item.email, position: item.position == "" ? "-" : item.position, })); + listDirector.value = listData; + listDirectorData.value = listData; }) .catch((e) => { messageError($q, e); @@ -262,7 +265,8 @@ watch( v-model:Modal="modalAddDirector" v-model:filter-keyword2="filter" :click-close="onClickClose" - :rows2="listDirector" + v-model:rows="listDirector" + v-model:rows-data="listDirectorData" :rows-per-page="rowsPerPage" :page="page" :max-page="maxPage" diff --git a/src/modules/12_evaluatePersonal/components/Detail/viewTab2/CardMeet.vue b/src/modules/12_evaluatePersonal/components/Detail/viewTab2/CardMeet.vue index d73f928bc..28e26a3f8 100644 --- a/src/modules/12_evaluatePersonal/components/Detail/viewTab2/CardMeet.vue +++ b/src/modules/12_evaluatePersonal/components/Detail/viewTab2/CardMeet.vue @@ -120,6 +120,7 @@ const page = ref(1); //หน้า const rowsPerPage = ref(10); //จำนวนต่อหน้า const maxPage = ref(1); //จำนนวนหน้าทั้งหมด const listMeet = ref([]); //รายชื่อประชุม +const listMeetData = ref([]); //รายชื่อประชุม /** * ฟังก์เปิด popup เพิ่มการประชุม @@ -178,7 +179,7 @@ async function getList() { .get(config.API.meeting() + `/admin`) .then((res) => { const data = res.data.result; - listMeet.value = data.map((item: Meetings) => ({ + const listData = data.map((item: Meetings) => ({ id: item.id, createdAt: item.createdAt, createdUserId: item.createdUserId, @@ -196,6 +197,8 @@ async function getList() { result: item.result, timePeriod: item.duration, })); + listMeet.value = listData; + listMeetData.value = listData; }) .catch((e) => { messageError($q, e); @@ -286,8 +289,9 @@ watch( import { ref, watchEffect, watch, type PropType } from "vue"; +import { useCounterMixin } from "@/stores/mixin"; /** importType*/ import type { QTableProps } from "quasar"; import type { directorType } from "@/modules/11_discipline/interface/index/Main"; +import type { Directors } from "@/modules/12_evaluatePersonal/interface/response/Main"; /** importComponents*/ import DialogHeader from "@/components/DialogHeader.vue"; +const mixin = useCounterMixin(); +const { onSearchDataTable } = mixin; const selected = ref([]); +const rows = defineModel("rows", { required: true }); +const rowsData = defineModel("rowsData", { required: true }); +const filterKeyword2 = defineModel("filterKeyword2", { + required: true, +}); + /** รับ props มาจากหน้าหลัก */ const props = defineProps({ Modal: Boolean, clickClose: Function, getData: Function, - rows2: Array, - filterKeyword2: String, filterTable: { type: String, default: "", @@ -145,6 +153,14 @@ function updateProp(newPagination: number, page: number) { emit("update:pagination", newPagination, page); } +function onSearch() { + rows.value = onSearchDataTable( + filterKeyword2.value, + rowsData.value, + columns2.value ? columns2.value : [] + ); +} + /** * เช็คค่า props.Modal === true */ @@ -187,9 +203,9 @@ watch( class="col-12 q-mb-sm" debounce="300" :model-value="filterKeyword2" - @update:model-value="updateInput" placeholder="ค้นหารายชื่อ" style="max-width: 100%" + @keydown.enter="onSearch" >