You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.6 KiB
53 lines
1.6 KiB
11 months ago
|
import {ItemObject, ItemObjectNumber, PageQuery} from '~/types/global'
|
||
|
import {productReplyConfigApi, replyListApi} from '~/server/goodsApi'
|
||
|
import {reactive} from "vue";
|
||
|
|
||
|
export default function useProductDetail() {
|
||
|
const seckillStatus = ref<number>(0)
|
||
|
const seckillTime = ref<number>(0)
|
||
|
|
||
|
//秒杀时间,状态
|
||
|
const getSeckillInfo = (data: any, routeQuery: ItemObject) => {
|
||
|
let startTimeStamp = data.startTimeStamp //秒杀开始结束时间戳
|
||
|
let endTimeStamp = data.endTimeStamp
|
||
|
if (!routeQuery.seckillStatus) {
|
||
|
let newTime = Date.parse(new Date())
|
||
|
if (Number(newTime) < Number(startTimeStamp)) {
|
||
|
seckillTime.value = Number(startTimeStamp) / 1000
|
||
|
seckillStatus.value = 2
|
||
|
} else if (Number(newTime) < Number(endTimeStamp)) {
|
||
|
seckillTime.value = Number(endTimeStamp) / 1000
|
||
|
seckillStatus.value = 1
|
||
|
} else {
|
||
|
seckillTime.value = 0
|
||
|
seckillStatus.value = 0
|
||
|
}
|
||
|
} else {
|
||
|
seckillStatus.value = Number(routeQuery.seckillStatus)
|
||
|
seckillTime.value = Number(routeQuery.datatime)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
//评论数据
|
||
|
const replyInfo = reactive({})
|
||
|
const productReplyConfig = async (id: number) => {
|
||
|
let data = await productReplyConfigApi(id)
|
||
|
Object.assign(replyInfo, data)
|
||
|
}
|
||
|
|
||
|
//评论列表
|
||
|
const replyList = ref<any[]>([])
|
||
|
const getReplyList = async (where:ItemObjectNumber,id:number)=>{
|
||
|
replyList.value = await replyListApi(id, where)
|
||
|
}
|
||
|
return {
|
||
|
getSeckillInfo,
|
||
|
seckillStatus,
|
||
|
seckillTime,
|
||
|
productReplyConfig,
|
||
|
replyInfo,
|
||
|
getReplyList,
|
||
|
replyList
|
||
|
}
|
||
|
}
|