83 lines
2.2 KiB
JavaScript
83 lines
2.2 KiB
JavaScript
import { createGlobalState } from '@vueuse/core'
|
|
import { ref } from 'vue'
|
|
import { artworkList, defaultDetail, artworkDetail } from "@/api/goods/index.js"
|
|
import {offlineQrcodeList} from "~/api-collect-code/goods/index.js";
|
|
|
|
export const goodStore = createGlobalState(() => {
|
|
// 状态定义
|
|
const actionDetails = ref({})
|
|
const fullLive = ref(false)
|
|
const currentItem = ref({})
|
|
const myArtWorks = ref([])
|
|
const pageRef = ref({
|
|
page: 0,
|
|
pageSize: 5,
|
|
itemCount: 0
|
|
})
|
|
const artWorkDetail = ref(null)
|
|
const itemList = ref([])
|
|
const auctionDetail = ref({})
|
|
const loading = ref(false)
|
|
const error = ref(null)
|
|
|
|
// 重置分页
|
|
const resetPage = () => {
|
|
pageRef.value.page = 1
|
|
pageRef.value.pageSize=5
|
|
pageRef.value.itemCount = 0
|
|
}
|
|
|
|
|
|
// 获取艺术品列表
|
|
const getOfflineQrcodeList = async (isRefresh = false) => {
|
|
if (isRefresh) {
|
|
resetPage()
|
|
}
|
|
try {
|
|
loading.value = true
|
|
const res = await offlineQrcodeList({
|
|
page: pageRef.value.page,
|
|
pageSize: pageRef.value.pageSize
|
|
})
|
|
if (res.status === 0) {
|
|
const newItems = res.data.Data || []
|
|
|
|
if (isRefresh) {
|
|
itemList.value = newItems
|
|
} else {
|
|
itemList.value = [...itemList.value, ...newItems]
|
|
}
|
|
|
|
pageRef.value.itemCount = res.data.count || 0
|
|
return {
|
|
finished: !newItems.length || newItems.length < pageRef.value.pageSize,
|
|
items: newItems
|
|
}
|
|
}
|
|
return { finished: true, items: [] }
|
|
} catch (err) {
|
|
return { finished: true, items: [] }
|
|
} finally {
|
|
loading.value = false
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return {
|
|
// 状态
|
|
actionDetails,
|
|
fullLive,
|
|
currentItem,
|
|
myArtWorks,
|
|
pageRef,
|
|
artWorkDetail,
|
|
itemList,
|
|
auctionDetail,
|
|
loading,
|
|
error,
|
|
// 方法
|
|
getOfflineQrcodeList,
|
|
resetPage
|
|
}
|
|
}) |