import { createGlobalState,useLocalStorage } from '@vueuse/core' import { ref } from 'vue' import { artworkList, defaultDetail, artworkDetail } from "@/api/goods/index.js" export const goodStore = createGlobalState(() => { // 状态定义 const actionDetails = ref({}) const currentItem = ref({}) const myArtWorks = ref([]) const pageRef = ref({ page: 0, pageSize: 5, itemCount: 0 }) const artWorkDetail = useLocalStorage('artWorkDetail',{}) 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) { } 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) { 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) { } finally { loading.value = false } } return { // 状态 actionDetails, currentItem, myArtWorks, pageRef, artWorkDetail, itemList, auctionDetail, loading, error, // 方法 getAuctionDetail, getArtworkList, getArtworkDetail, resetPage } })