| | |
| | | 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 |
| | | }) |
| | | } |
| | | } |
| | |
| | | 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 } |
| | | }) |