orderList.js 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. import { confirmReceipt, orderCancel, orderDelete, checkOrderBuyAgain } from '@/services/api/order.js'
  2. import { shoppingAddCartFromOrder } from '@/services/api/cart.js'
  3. const orderList = {
  4. data() {
  5. return {
  6. hanldOrder: {}, // 当前要处理的订单操作
  7. modal: false,
  8. modalText: '',
  9. buyAgainModal: false,
  10. invalidList: [], // 失效商品列表
  11. }
  12. },
  13. methods: {
  14. // 操作订单
  15. handleConfirmClick(e) {
  16. return uni.navigateTo({
  17. url:'/pages/views/goods/Update-Maintenance'
  18. })
  19. const { type, order } = (this.hanldOrder = e)
  20. switch (type) {
  21. // 其他操作
  22. case 'again':
  23. console.log('再次购买')
  24. this.buyAgain()
  25. break
  26. case 'share':
  27. console.log('分享订单')
  28. this.handleShare()
  29. break
  30. case 'query':
  31. console.log('查看物流')
  32. this.$router.navigateTo('order/order-logistics?orderId=' + order.orderId)
  33. break
  34. case 'fightDetail':
  35. this.$router.navigateTo('share-buy/share-buy-detail?collageId=' + order.collageId)
  36. break
  37. case 'fightShare':
  38. console.log('分享邀请好友拼团')
  39. this.$router.navigateTo('share-buy/share-buy-detail?collageId=' + order.collageId)
  40. break
  41. // 常规操作
  42. case 'cancel':
  43. this.modal = true
  44. this.modalText = '确认取消该订单吗?'
  45. break
  46. case 'delete':
  47. this.modal = true
  48. this.modalText = '确认删除该订单吗?'
  49. break
  50. case 'confirm':
  51. this.modal = true
  52. this.modalText = '是否确认收货?'
  53. break
  54. case 'pay':
  55. this.$router.navigateTo('order/order-pay?orderId=' + order.orderId)
  56. break
  57. }
  58. },
  59. // 确认收货
  60. handleConfirm(order) {
  61. console.log('确认收货')
  62. return confirmReceipt({ orderId: order.orderId })
  63. },
  64. // 取消订单
  65. handleCancel(order) {
  66. console.log('取消订单')
  67. return orderCancel({ orderId: order.orderId })
  68. },
  69. // 删除订单
  70. handleDelete(order) {
  71. console.log('删除订单')
  72. return orderDelete({ orderId: order.orderId })
  73. },
  74. // 支付订单
  75. handlePay(order) {
  76. console.log('支付')
  77. this.miniWxPayFor(order)
  78. },
  79. // 再次购买初始化查询订单商品信息
  80. handleAgain(order) {
  81. console.log('再次购买初始化查询订单商品信息')
  82. return checkOrderBuyAgain({ orderId: order.orderId })
  83. },
  84. // 查看物流
  85. handleQuery(order) {
  86. console.log('查看物流')
  87. },
  88. // 分享
  89. handleShare(order) {
  90. console.log('分享')
  91. },
  92. // 再次购买
  93. async buyAgain() {
  94. const { type, order } = this.hanldOrder
  95. try {
  96. await this.handleAgain(order)
  97. this.joinToCart(order)
  98. } catch (error) {
  99. if (error.data && error.data.length > 0) {
  100. this.buyAgainModal = true
  101. this.invalidList = error.data
  102. }
  103. }
  104. },
  105. // 确认再次购买
  106. buyAgainModalClick(e) {
  107. this.buyAgainModal = false
  108. if (!e.index) return
  109. this.joinToCart(this.hanldOrder.order)
  110. },
  111. // 再次购买弹窗关闭
  112. buyAgainModalHide() {
  113. console.log('再次购买弹窗关闭')
  114. this.invalidList = []
  115. },
  116. // 一键加入购物车
  117. async joinToCart(order) {
  118. try {
  119. await shoppingAddCartFromOrder({ orderId: order.orderId })
  120. this.$router.switchTab('cart')
  121. } catch (error) {
  122. console.log(error.message)
  123. }
  124. },
  125. // 操作订单确认事件
  126. async handleModalConfirm(e) {
  127. this.modal = false
  128. if (!e.index) return
  129. const { type, order } = this.hanldOrder
  130. // 操作订单
  131. const confirmFunc = {
  132. cancel: this.handleCancel, //取消订单
  133. delete: this.handleDelete, //删除订单
  134. pay: this.handlePay, //支付订单
  135. confirm: this.handleConfirm //确认收货
  136. }
  137. try {
  138. const res = await confirmFunc[type](order)
  139. // 确认操作订单成功后的回调都在这里执行 在this.$on 中监听 orderAction 事件的执行
  140. this.$emit('orderAction', type)
  141. if (res && res.msg) this.$toast.success(res.msg)
  142. } catch (error) {
  143. this.$toast.error(res.msg)
  144. }
  145. },
  146. //订单状态文字
  147. stateExpFormat(status) {
  148. const stateTextObject = {
  149. 4: '交易完成',
  150. 5: '订单完成',
  151. 6: '已关闭',
  152. 7: '交易全退',
  153. 77: '交易全退',
  154. 11: '待付款待发货',
  155. 12: '待付款部分发货',
  156. 13: '待付款已发货',
  157. 21: '部分付款待发货',
  158. 22: '部分付款部分发货',
  159. 23: '部分付款已发货',
  160. 31: '已付款待发货',
  161. 32: '已付款部分发货',
  162. 33: '已付款已发货',
  163. 111: '待付款待发货',
  164. 81: '拼团中',
  165. 82: '拼团成功待发货',
  166. 83: '拼团成功已发货'
  167. }
  168. return stateTextObject[status] || ''
  169. },
  170. }
  171. }
  172. export default orderList