115 lines
3.1 KiB
JavaScript
115 lines
3.1 KiB
JavaScript
import { createGlobalState } from '@vueuse/core'
|
|
import { ref } from 'vue'
|
|
import { artworkList, defaultDetail, artworkDetail } from "~/api/goods/index.js"
|
|
|
|
export const goodStore = createGlobalState(() => {
|
|
// 状态定义
|
|
const actionDetails = ref({})
|
|
const fullLive = ref(false)
|
|
const liveRef = ref(null)
|
|
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 getAuctionDetail = async () => {
|
|
try {
|
|
loading.value = true
|
|
const res = await defaultDetail({})
|
|
if (res.status === 0) {
|
|
auctionDetail.value = res.data
|
|
}
|
|
} catch (err) {
|
|
console.error('获取拍卖详情错误:', err)
|
|
} finally {
|
|
loading.value = false
|
|
}
|
|
}
|
|
|
|
// 获取艺术品列表
|
|
const getArtworkList = async (isRefresh = false) => {
|
|
if (isRefresh) {
|
|
resetPage()
|
|
}
|
|
try {
|
|
loading.value = true
|
|
const res = await artworkList({
|
|
auctionUuid: auctionDetail.value.uuid,
|
|
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) {
|
|
console.error('获取艺术品列表错误:', err)
|
|
return { finished: true, items: [] }
|
|
} finally {
|
|
loading.value = false
|
|
}
|
|
}
|
|
|
|
// 获取艺术品详情
|
|
const getArtworkDetail = async (uuid) => {
|
|
try {
|
|
loading.value = true
|
|
const res = await artworkDetail({ uuid })
|
|
if (res.status === 0) {
|
|
artWorkDetail.value = res.data
|
|
}
|
|
} catch (err) {
|
|
console.error('获取艺术品详情错误:', err)
|
|
} finally {
|
|
loading.value = false
|
|
}
|
|
}
|
|
|
|
return {
|
|
// 状态
|
|
actionDetails,
|
|
fullLive,
|
|
liveRef,
|
|
currentItem,
|
|
myArtWorks,
|
|
pageRef,
|
|
artWorkDetail,
|
|
itemList,
|
|
auctionDetail,
|
|
loading,
|
|
error,
|
|
// 方法
|
|
getAuctionDetail,
|
|
getArtworkList,
|
|
getArtworkDetail,
|
|
resetPage
|
|
}
|
|
}) |