From 2bb9a863e75312fe90869ea3deea137b46b1bb1e Mon Sep 17 00:00:00 2001 From: haoxuan <haoxuan> Date: 星期一, 06 十一月 2023 17:46:43 +0800 Subject: [PATCH] 拉代码 --- src/stores/craftModel.ts | 41 +++++++++++++++++++++++++++++++++++------ 1 files changed, 35 insertions(+), 6 deletions(-) diff --git a/src/stores/craftModel.ts b/src/stores/craftModel.ts index 9b8afbd..b550e86 100644 --- a/src/stores/craftModel.ts +++ b/src/stores/craftModel.ts @@ -1,22 +1,25 @@ -import { ref, watch } from 'vue' +import { computed, ref, watch } from 'vue' import { defineStore } from 'pinia' import type { CraftModel } from '@/api/craftModel' import { apiGetCraftModelList } from '@/api' import { useTasksStore } from '@/stores/tasks' const watcher = ref() - +const page = ref(1) +const total = ref(0) export const useCraftModelStore = defineStore('craftModel', () => { - const craftModelList = ref<CraftModel[]>() + const craftModelList = ref<CraftModel[]>([]) const taskStore = useTasksStore() function getCraftModelList() { if (taskStore.activeTask?.Procedure.ID) { + craftModelList.value = [] apiGetCraftModelList({ procedureId: taskStore.activeTask?.Procedure.ID, - page: 1, - pageSize: 999 + page: page.value, + pageSize: 6 }).then((res) => { craftModelList.value = res.data ?? [] + total.value = res.total }) } } @@ -25,10 +28,36 @@ watch( () => taskStore.activeTask, () => { + page.value = 1 getCraftModelList() } ) } - return { craftModelList, getCraftModelList } + const loading = ref(false) + + function loadMore() { + if (taskStore.activeTask?.Procedure.ID && !loading.value && hasMore.value) { + page.value++ + loading.value = true + apiGetCraftModelList({ + procedureId: taskStore.activeTask?.Procedure.ID, + page: page.value, + pageSize: 6 + }) + .then((res) => { + craftModelList.value = [...craftModelList.value, ...(res.data ?? [])] + total.value = res.total + }) + .finally(() => { + loading.value = false + }) + } + } + + const hasMore = computed(() => { + return total.value > craftModelList.value.length + }) + + return { craftModelList, getCraftModelList, hasMore, loading, loadMore } }) -- Gitblit v1.8.0