order.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. import request from '@/sheep/request';
  2. import { isEmpty } from '@/sheep/helper/utils';
  3. const OrderApi = {
  4. // 计算订单信息
  5. settlementOrder: (data) => {
  6. const data2 = {
  7. ...data,
  8. };
  9. // 移除多余字段
  10. if (!(data.couponId > 0)) {
  11. delete data2.couponId;
  12. }
  13. if (!(data.addressId > 0)) {
  14. delete data2.addressId;
  15. }
  16. if (!(data.pickUpStoreId > 0)) {
  17. delete data2.pickUpStoreId;
  18. }
  19. if (isEmpty(data.receiverName)) {
  20. delete data2.receiverName;
  21. }
  22. if (isEmpty(data.receiverMobile)) {
  23. delete data2.receiverMobile;
  24. }
  25. if (!(data.combinationActivityId > 0)) {
  26. delete data2.combinationActivityId;
  27. }
  28. if (!(data.combinationHeadId > 0)) {
  29. delete data2.combinationHeadId;
  30. }
  31. if (!(data.seckillActivityId > 0)) {
  32. delete data2.seckillActivityId;
  33. }
  34. // 解决 SpringMVC 接受 List<Item> 参数的问题
  35. delete data2.items;
  36. for (let i = 0; i < data.items.length; i++) {
  37. data2[encodeURIComponent('items[' + i + '' + '].skuId')] = data.items[i].skuId + '';
  38. data2[encodeURIComponent('items[' + i + '' + '].count')] = data.items[i].count + '';
  39. if (data.items[i].cartId) {
  40. data2[encodeURIComponent('items[' + i + '' + '].cartId')] = data.items[i].cartId + '';
  41. }
  42. }
  43. const queryString = Object.keys(data2)
  44. .map((key) => key + '=' + data2[key])
  45. .join('&');
  46. return request({
  47. url: `/trade/order/settlement?${queryString}`,
  48. method: 'GET',
  49. custom: {
  50. showError: true,
  51. showLoading: true,
  52. },
  53. });
  54. },
  55. // 获得商品结算信息
  56. getSettlementProduct: (spuIds) => {
  57. return request({
  58. url: '/trade/order/settlement-product',
  59. method: 'GET',
  60. params: { spuIds },
  61. custom: {
  62. showLoading: false,
  63. showError: false,
  64. },
  65. });
  66. },
  67. // 创建订单
  68. createOrder: (data) => {
  69. return request({
  70. url: `/trade/order/create`,
  71. method: 'POST',
  72. data,
  73. });
  74. },
  75. // 获得订单详细:sync 是可选参数
  76. getOrderDetail: (id, sync) => {
  77. return request({
  78. url: `/trade/order/get-detail`,
  79. method: 'GET',
  80. params: {
  81. id,
  82. sync,
  83. },
  84. custom: {
  85. showLoading: false,
  86. },
  87. });
  88. },
  89. // 订单列表
  90. getOrderPage: (params) => {
  91. return request({
  92. url: '/trade/order/page',
  93. method: 'GET',
  94. params,
  95. custom: {
  96. showLoading: false,
  97. },
  98. });
  99. },
  100. // 确认收货
  101. receiveOrder: (id) => {
  102. return request({
  103. url: `/trade/order/receive`,
  104. method: 'PUT',
  105. params: {
  106. id,
  107. },
  108. });
  109. },
  110. // 取消订单
  111. cancelOrder: (id) => {
  112. return request({
  113. url: `/trade/order/cancel`,
  114. method: 'DELETE',
  115. params: {
  116. id,
  117. },
  118. });
  119. },
  120. // 删除订单
  121. deleteOrder: (id) => {
  122. return request({
  123. url: `/trade/order/delete`,
  124. method: 'DELETE',
  125. params: {
  126. id,
  127. },
  128. });
  129. },
  130. // 获得交易订单的物流轨迹
  131. getOrderExpressTrackList: (id) => {
  132. return request({
  133. url: `/trade/order/get-express-track-list`,
  134. method: 'GET',
  135. params: {
  136. id,
  137. },
  138. });
  139. },
  140. // 获得交易订单数量
  141. getOrderCount: () => {
  142. return request({
  143. url: '/trade/order/get-count',
  144. method: 'GET',
  145. custom: {
  146. showLoading: false,
  147. auth: true,
  148. },
  149. });
  150. },
  151. // 创建单个评论
  152. createOrderItemComment: (data) => {
  153. return request({
  154. url: `/trade/order/item/create-comment`,
  155. method: 'POST',
  156. data,
  157. });
  158. },
  159. };
  160. export default OrderApi;