index.ts 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. import request from '@/utils/request';
  2. import { AxiosPromise } from 'axios';
  3. import { ProductVO, ProductForm,ThirdProductVO, ProductQuery } from '@/api/external/product/types';
  4. /**
  5. * 查询对外部推送商品列表
  6. * @param query
  7. * @returns {*}
  8. */
  9. export const listProduct = (query?: ProductQuery): AxiosPromise<ProductVO[]> => {
  10. return request({
  11. url: '/external/product/list',
  12. method: 'get',
  13. params: query
  14. });
  15. };
  16. /**
  17. * 查询对外部推送商品详细
  18. * @param id
  19. */
  20. export const getProduct = (id: string | number): AxiosPromise<ProductVO> => {
  21. return request({
  22. url: '/external/product/' + id,
  23. method: 'get'
  24. });
  25. };
  26. /**
  27. * 新增对外部推送商品
  28. * @param data
  29. */
  30. export const addProduct = (data: ProductForm) => {
  31. return request({
  32. url: '/external/product',
  33. method: 'post',
  34. data: data
  35. });
  36. };
  37. /**
  38. * 修改对外部推送商品
  39. * @param data
  40. */
  41. export const updateProduct = (data: ProductForm) => {
  42. return request({
  43. url: '/external/product',
  44. method: 'put',
  45. data: data
  46. });
  47. };
  48. /**
  49. * 删除对外部推送商品
  50. * @param id
  51. */
  52. export const delProduct = (id: string | number | Array<string | number>) => {
  53. return request({
  54. url: '/external/product/' + id,
  55. method: 'delete'
  56. });
  57. };
  58. /**
  59. * 获取第三方商品列表
  60. * @param query
  61. * @returns {*}
  62. */
  63. export const getThirdProductPage = (query?: ProductQuery): AxiosPromise<ThirdProductVO[]> => {
  64. return request({
  65. url: '/external/product/getThirdProductPage',
  66. method: 'get',
  67. params: query
  68. });
  69. };
  70. /**
  71. * 根据商品ID查询对接信息
  72. * @param productId
  73. */
  74. export const getProductByProductId = (productId: string | number): AxiosPromise<ProductVO> => {
  75. return request({
  76. url: '/external/product/' + productId,
  77. method: 'get'
  78. });
  79. };
  80. /**
  81. * 批量推送商品
  82. * @param ids
  83. */
  84. export const batchPushProduct = (ids: string | number | Array<string | number>) => {
  85. return request({
  86. url: `/external/product/batchPush/${ids}`,
  87. method: 'post'
  88. });
  89. };
  90. /**
  91. * 商品上下架 状态变更
  92. * @param data 审核信息(包含id、productStatus、shelfComments)
  93. */
  94. export const shelfReview = (data: ProductForm) => {
  95. return request({
  96. url: '/external/product/shelfReview',
  97. method: 'post',
  98. data: data
  99. });
  100. };
  101. export const batchInsertExternalProduct = (itemId: string | number, boList: any[]): AxiosPromise<any> => {
  102. return request({
  103. url: '/external/product/batch/insert',
  104. method: 'post',
  105. params: { itemId },
  106. data: boList
  107. });
  108. };
  109. /**
  110. * 下载导入模板
  111. */
  112. export const importTemplate = () => {
  113. return request({
  114. url: '/external/product/importTemplate',
  115. method: 'post',
  116. responseType: 'blob'
  117. });
  118. };
  119. /**
  120. * 导入商品数据
  121. * @param file 导入文件
  122. */
  123. export const importData = (file: File) => {
  124. const formData = new FormData();
  125. formData.append('file', file);
  126. return request({
  127. url: '/external/product/importData',
  128. method: 'post',
  129. data: formData,
  130. headers: {
  131. 'Content-Type': 'multipart/form-data'
  132. }
  133. });
  134. };