spu.ts 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. import request from '@/config/axios'
  2. export interface Property {
  3. propertyId?: number // 属性编号
  4. propertyName?: string // 属性名称
  5. valueId?: number // 属性值编号
  6. valueName?: string // 属性值名称
  7. }
  8. export interface Sku {
  9. id?: number // 商品 SKU 编号
  10. spuId?: number // SPU 编号
  11. properties?: Property[] // 属性数组
  12. price?: number // 商品价格
  13. marketPrice?: number // 市场价
  14. costPrice?: number // 成本价
  15. barCode?: string // 商品条码
  16. picUrl?: string // 图片地址
  17. stock?: number // 库存
  18. weight?: number // 商品重量,单位:kg 千克
  19. volume?: number // 商品体积,单位:m^3 平米
  20. subCommissionFirstPrice?: number // 一级分销的佣金
  21. subCommissionSecondPrice?: number // 二级分销的佣金
  22. salesCount?: number // 商品销量
  23. }
  24. export interface Spu {
  25. id?: number
  26. name?: string // 商品名称
  27. categoryId?: number | null // 商品分类
  28. keyword?: string // 关键字
  29. unit?: number | null // 单位
  30. picUrl?: string // 商品封面图
  31. sliderPicUrls?: string[] // 商品轮播图
  32. introduction?: string // 商品简介
  33. deliveryTemplateId?: number | null // 运费模版
  34. brandId?: number | null // 商品品牌编号
  35. specType?: boolean // 商品规格
  36. subCommissionType?: boolean // 分销类型
  37. skus?: Sku[] // sku数组
  38. description?: string // 商品详情
  39. sort?: number // 商品排序
  40. giveIntegral?: number // 赠送积分
  41. virtualSalesCount?: number // 虚拟销量
  42. recommendHot?: boolean // 是否热卖
  43. recommendBenefit?: boolean // 是否优惠
  44. recommendBest?: boolean // 是否精品
  45. recommendNew?: boolean // 是否新品
  46. recommendGood?: boolean // 是否优品
  47. }
  48. export interface SpuRespVO extends Spu {
  49. price: number
  50. salesCount: number
  51. marketPrice: number
  52. costPrice: number
  53. stock: number
  54. createTime: Date
  55. status: number
  56. }
  57. // 获得 Spu 列表
  58. export const getSpuPage = (params: PageParam) => {
  59. return request.get({ url: '/product/spu/page', params })
  60. }
  61. // 获得 Spu 列表 tabsCount
  62. export const getTabsCount = () => {
  63. return request.get({ url: '/product/spu/get-count' })
  64. }
  65. // 创建商品 Spu
  66. export const createSpu = (data: Spu) => {
  67. return request.post({ url: '/product/spu/create', data })
  68. }
  69. // 更新商品 Spu
  70. export const updateSpu = (data: Spu) => {
  71. return request.put({ url: '/product/spu/update', data })
  72. }
  73. // 更新商品 Spu status
  74. export const updateStatus = (data: { id: number; status: number }) => {
  75. return request.put({ url: '/product/spu/update-status', data })
  76. }
  77. // 获得商品 Spu
  78. export const getSpu = (id: number) => {
  79. return request.get({ url: `/product/spu/get-detail?id=${id}` })
  80. }
  81. // 删除商品 Spu
  82. export const deleteSpu = (id: number) => {
  83. return request.delete({ url: `/product/spu/delete?id=${id}` })
  84. }
  85. // 导出商品 Spu Excel
  86. export const exportSpu = async (params) => {
  87. return await request.download({ url: '/product/spu/export', params })
  88. }
  89. // 获得商品 SPU 精简列表
  90. export const getSpuSimpleList = async () => {
  91. return request.get({ url: '/product/spu/get-simple-list' })
  92. }