useProductDetail.ts 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import { ItemObject, ItemObjectNumber, PageQuery } from '~/types/global'
  2. import { productReplyConfigApi, replyListApi } from '~/server/goodsApi'
  3. import { reactive } from 'vue'
  4. export default function useProductDetail() {
  5. const seckillStatus = ref<number>(0)
  6. const seckillTime = ref<number>(0)
  7. //秒杀时间,状态
  8. const getSeckillInfo = (data: any, routeQuery: ItemObject) => {
  9. let startTimeStamp = data.startTimeStamp //秒杀开始结束时间戳
  10. let endTimeStamp = data.endTimeStamp
  11. if (!routeQuery.datatime) {
  12. let newTime = Date.parse(new Date())
  13. if (Number(newTime) < Number(startTimeStamp)) {
  14. seckillTime.value = Number(startTimeStamp) / 1000
  15. seckillStatus.value = 2
  16. } else if (Number(newTime) < Number(endTimeStamp)) {
  17. seckillTime.value = Number(endTimeStamp) / 1000
  18. seckillStatus.value = 1
  19. } else {
  20. seckillTime.value = 0
  21. seckillStatus.value = 0
  22. }
  23. } else {
  24. seckillStatus.value = Number(routeQuery.seckillStatus)
  25. seckillTime.value = Number(routeQuery.datatime)
  26. }
  27. }
  28. //评论数据
  29. const replyInfo = reactive({})
  30. const productReplyConfig = async (id: number) => {
  31. let data = await productReplyConfigApi(id)
  32. Object.assign(replyInfo, data)
  33. }
  34. //评论列表
  35. const replyList = ref<any[]>([])
  36. const getReplyList = async (where: ItemObjectNumber, id: number) => {
  37. replyList.value = await replyListApi(id, where)
  38. }
  39. return {
  40. getSeckillInfo,
  41. seckillStatus,
  42. seckillTime,
  43. productReplyConfig,
  44. replyInfo,
  45. getReplyList,
  46. replyList,
  47. }
  48. }