diff --git a/src/modules/14_KPI/components/results/tableResults.vue b/src/modules/14_KPI/components/results/tableResults.vue index 1f3be2d71..e9996e8dc 100644 --- a/src/modules/14_KPI/components/results/tableResults.vue +++ b/src/modules/14_KPI/components/results/tableResults.vue @@ -37,6 +37,8 @@ const pageSize = defineModel("pageSize", { required: true }); const maxPage = defineModel("maxPage", { required: true }); const total = defineModel("total", { required: true }); const keyword = defineModel("keyword", { required: true }); +const result = defineModel("result", { required: true }); + const porps = defineProps({ fetchData: { type: Function, required: true }, // function เรีนกข้อมูลประกาศผล }); @@ -167,6 +169,7 @@ const pagination = ref({ /** ตัวแปร*/ const year = ref(new Date().getFullYear()); //ปีงบประมาณ const roundOp = ref([]); // รายการรอบการประเมิน +const resultOp = ref(store.resultsOptions); /** function บันทึกการประกาศผล*/ function onAnnounce() { @@ -246,6 +249,27 @@ function onSearchData() { porps.fetchData(); } +/** + * ฟังก์ชันค้นหาข้อมูลในรายการตัวเลือก + * @param val คำค้นหา + * @param update ฟังก์ชัน + * @param refData ประเภทของตัวเลือก + */ +function filterSelector(val: string, update: Function, refData: string) { + switch (refData) { + case "result": + update(() => { + resultOp.value = store.resultsOptions.filter( + (v: DataOption) => v.name.indexOf(val) > -1 + ); + }); + break; + + default: + break; + } +} + /** ทำงานเมื่อมีการเปลี่ยนแถวต่อหน้า*/ watch(pagination, () => { page.value = 1; @@ -261,8 +285,8 @@ onMounted(async () => { - + + + + + - +
+ +
+
+ +
- - - - -
- - - + + + +
+ { +
(10); const maxPage = ref(1); const total = ref(1); const keyword = ref(""); +const result = ref(""); /** function fetch รายการประกาศผล*/ async function fetcDataList() { @@ -43,6 +44,7 @@ async function fetcDataList() { pageSize: pageSize.value, keyword: keyword.value, kpiPeriodId: store.formQuery.round ? store.formQuery.round : "", + results: result.value === "" ? undefined : result.value, }) .then(async (res) => { const data = await res.data.result; @@ -61,6 +63,7 @@ async function fetcDataList() { /** ทำงานเมื่อมีการเปลี่ยน Tab */ watch(tab, () => { page.value = 1; + result.value = ""; keyword.value = ""; dataList.value = []; }); @@ -99,6 +102,7 @@ watch(pageSize, () => { v-model:maxPage="maxPage" v-model:total="total" v-model:keyword="keyword" + v-model:result="result" :fetchData="fetcDataList" /> @@ -112,6 +116,7 @@ watch(pageSize, () => { v-model:maxPage="maxPage" v-model:total="total" v-model:keyword="keyword" + v-model:result="result" :fetchData="fetcDataList" />