liveh5-nuxt/app/stores/goods/index.js
xingyy aec3825a3b feat(component): 优化消息组件并添加新功能
- 重构 x-message 组件,支持更多自定义选项
- 添加 artDetail 页面用于展示艺术品详情
- 修改 liveRoom 页面,接入新的消息提示功能- 优化 profile 页面布局,增加去支付按钮
- 调整 home 页面,集成新的消息系统
- 修改 websocket 插件,支持携带 token 认证
2025-02-08 10:06:21 +08:00

114 lines
3.1 KiB
JavaScript

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 fullLive = ref(false)
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) {
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,
currentItem,
myArtWorks,
pageRef,
artWorkDetail,
itemList,
auctionDetail,
loading,
error,
// 方法
getAuctionDetail,
getArtworkList,
getArtworkDetail,
resetPage
}
})