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.
52 lines
1.6 KiB
52 lines
1.6 KiB
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 |
|
} |
|
}
|
|
|