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