combinationActivity.ts 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import request from '@/config/axios'
  2. import { Sku, Spu } from '@/api/mall/product/spu'
  3. export interface CombinationActivityVO {
  4. id?: number
  5. name?: string
  6. spuId?: number
  7. totalLimitCount?: number
  8. singleLimitCount?: number
  9. startTime?: Date
  10. endTime?: Date
  11. userSize?: number
  12. totalCount?: number
  13. successCount?: number
  14. orderUserCount?: number
  15. virtualGroup?: number
  16. status?: number
  17. limitDuration?: number
  18. products: CombinationProductVO[]
  19. }
  20. // 拼团活动所需属性
  21. export interface CombinationProductVO {
  22. spuId: number
  23. skuId: number
  24. combinationPrice: number // 拼团价格
  25. }
  26. // 扩展 Sku 配置
  27. export type SkuExtension = Sku & {
  28. productConfig: CombinationProductVO
  29. }
  30. export interface SpuExtension extends Spu {
  31. skus: SkuExtension[] // 重写类型
  32. }
  33. // 查询拼团活动列表
  34. export const getCombinationActivityPage = async (params) => {
  35. return await request.get({ url: '/promotion/combination-activity/page', params })
  36. }
  37. // 查询拼团活动详情
  38. export const getCombinationActivity = async (id: number) => {
  39. return await request.get({ url: '/promotion/combination-activity/get?id=' + id })
  40. }
  41. // 新增拼团活动
  42. export const createCombinationActivity = async (data: CombinationActivityVO) => {
  43. return await request.post({ url: '/promotion/combination-activity/create', data })
  44. }
  45. // 修改拼团活动
  46. export const updateCombinationActivity = async (data: CombinationActivityVO) => {
  47. return await request.put({ url: '/promotion/combination-activity/update', data })
  48. }
  49. // 关闭拼团活动
  50. export const closeCombinationActivity = async (id: number) => {
  51. return await request.put({ url: '/promotion/bargain-combination/close?id=' + id })
  52. }
  53. // 删除拼团活动
  54. export const deleteCombinationActivity = async (id: number) => {
  55. return await request.delete({ url: '/promotion/combination-activity/delete?id=' + id })
  56. }