From 65e0bd8d69e38b2b1522a2540ff27f8ff83e37f4 Mon Sep 17 00:00:00 2001 From: Methapon Metanipat Date: Fri, 25 Oct 2024 16:22:45 +0700 Subject: [PATCH] feat: search and paging workflow template --- src/pages/04_flow-managment/MainPage.vue | 53 ++++++++++++++++-------- 1 file changed, 36 insertions(+), 17 deletions(-) diff --git a/src/pages/04_flow-managment/MainPage.vue b/src/pages/04_flow-managment/MainPage.vue index 51d64285..427815c1 100644 --- a/src/pages/04_flow-managment/MainPage.vue +++ b/src/pages/04_flow-managment/MainPage.vue @@ -14,8 +14,16 @@ import PaginationComponent from 'src/components/PaginationComponent.vue'; import FlowDialog from '../04_product-service/FlowDialog.vue'; import NoData from 'src/components/NoData.vue'; import { QTableProps } from 'quasar'; +import { storeToRefs } from 'pinia'; +import { watch } from 'vue'; const workflowStore = useWorkflowTemplate(); +const { + data: workflowData, + page: workflowPage, + pageSize: workflowPageSize, + pageMax: workflowPageMax, +} = storeToRefs(workflowStore); const pageState = reactive({ hideStat: false, @@ -27,7 +35,6 @@ const pageState = reactive({ addModal: false, }); -const workflowList = ref([]); const formDataWorkflow = ref({ name: '', step: [], @@ -84,13 +91,25 @@ function resetForm() { } async function fetchWorkflowList() { - const res = await workflowStore.getWorkflowTemplateList(); - if (res) workflowList.value = res.result; + { + const res = await workflowStore.getWorkflowTemplateList({ + page: workflowPage.value, + pageSize: workflowPageSize.value, + query: pageState.inputSearch, + }); + if (res) { + workflowData.value = res.result; + workflowPageMax.value = Math.ceil(res.total / workflowPageSize.value); + pageState.total = res.total; + } + } } onMounted(async () => { await fetchWorkflowList(); }); + +watch(() => pageState.inputSearch, fetchWorkflowList);