order-card1.vue 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. <template>
  2. <view class="slot">
  3. <!-- 商品卡片 -->
  4. <OrderGoodsCard :data="data" showBorderBottom>
  5. <view class="status-slot">
  6. <!--
  7. 0=正常(非售后订单),20=仅退款,21=卖家同意,22=卖家驳回,
  8. 30=退货退款,31=卖家同意(用户填写退货单号),
  9. 32=卖家驳回,33=等待卖家收货确认中,
  10. 34=卖家确认收货,验货没问题金额已原路退回
  11. -->
  12. <text v-if="data.sub_status == 20">仅退款,客服审核中</text>
  13. <text v-if="data.sub_status == 21">仅退款,审核通过</text>
  14. <text v-if="data.sub_status == 22">仅退款,审核失败</text>
  15. <text v-if="data.sub_status == 30">退货退款,客服审核中</text>
  16. <text v-if="data.sub_status == 31">审核通过,请填写退货快递单号</text>
  17. <text v-if="data.sub_status == 32">审核失败</text>
  18. <text v-if="data.sub_status == 33">等待卖家收货确认</text>
  19. <text v-if="data.sub_status == 34">卖家已确认收货,金额原路退回</text>
  20. </view>
  21. </OrderGoodsCard>
  22. <view class="content" :class="{ showBorderBottom }" v-for="(item,index) in data.order_details" :key="item.id">
  23. <view class="pic">
  24. <u-image width="180rpx" height="180rpx" :src="item.goods_cover"></u-image>
  25. </view>
  26. <view class="info">
  27. <view class="title">{{ item.goods_title }}</view>
  28. <view class="desc">
  29. <view class="sku item">
  30. <text>规格</text>
  31. <text>{{ item.goods_sku }}</text>
  32. </view>
  33. <!-- <view class="express item">
  34. <text>运费</text>
  35. <text>{{ data.order_details.express || '包邮' }}</text>
  36. </view> -->
  37. </view>
  38. <view class="price">
  39. <text>¥</text>
  40. <text>{{ item.goods_price_selling }}</text>
  41. </view>
  42. </view>
  43. <view class="status">
  44. <view class="status-label">
  45. <slot></slot>
  46. </view>
  47. <view class="num">
  48. <text>×</text>
  49. <text>{{ item.goods_nums }}</text>
  50. </view>
  51. </view>
  52. </view>
  53. <!-- 待付款 -->
  54. <view class="operate">
  55. <u-button type="primary" size="small" shape="circle" @click.stop="goPay(data)">售后详情</u-button>
  56. </view>
  57. <!-- 待发货 -->
  58. <view class="operate" v-if="data.status == 11">
  59. <view class="paystyle">
  60. 实付款:{{data.actual_total_amount}}
  61. </view>
  62. <!-- <u-button type="primary" size="small" shape="circle" @click="pushDelivery(data)">提醒发货</u-button> -->
  63. <u-button type="default" style="margin-right: 24rpx;" size="small" shape="circle" @click="applyAfterSales(data.id)">申请售后</u-button>
  64. </view>
  65. <!-- 待收货 -->
  66. <view class="operate" v-if="data.status == 12">
  67. <u-button type="default" style="margin-right: 24rpx;" size="small" shape="circle" @click="applyAfterSales(data.id)">申请售后</u-button>
  68. <u-button type="primary" size="small" shape="circle" @click.stop="confirmReceipt(data)">确认收货</u-button>
  69. </view>
  70. <!-- 待评价 -->
  71. <!-- <view class="operate" v-if="data.status == 3">
  72. <u-button type="default" style="margin-right: 24rpx;" size="small" shape="circle" @click="applyAfterSales()">申请售后</u-button>
  73. <u-button type="primary" size="small" shape="circle" @click="goEvaluate()">去评价</u-button>
  74. </view> -->
  75. <!-- 已完成 -->
  76. <view class="operate" v-if="data.status == 13">
  77. <view class="paystyle">
  78. 实付款:{{data.actual_total_amount}}
  79. </view>
  80. <!-- <u-button type="default" style="margin-right: 24rpx;" size="small" shape="circle" @click="deleteOrder()">删除记录</u-button>
  81. <u-button type="primary" size="small" shape="circle" @click.stop="goOrderInfo(data.id)">查看详情</u-button> -->
  82. </view>
  83. <!-- 已完成 -->
  84. <view class="operate" v-if="data.status == 14">
  85. <!-- <view class="paystyle">
  86. 实付款:{{data.actual_total_amount}}
  87. </view> -->
  88. <!-- <u-button type="default" style="margin-right: 24rpx;" size="small" shape="circle" @click="deleteOrder()">删除记录</u-button>
  89. <u-button type="primary" size="small" shape="circle" @click.stop="goOrderInfo(data.id)">查看详情</u-button> -->
  90. </view>
  91. </view>
  92. </template>
  93. <script>
  94. import { orderOperate } from '@/pages-mall/mixins/order-operate.js';
  95. import OrderGoodsCard from '@/pages-mall/components/order/order-goods-card.vue';
  96. export default {
  97. name: 'order-card',
  98. // 工单操作方法混入
  99. mixins: [orderOperate],
  100. components: {
  101. OrderGoodsCard
  102. },
  103. props: {
  104. // 数据源
  105. data: {
  106. type: Object,
  107. default: () => {
  108. return {};
  109. }
  110. }
  111. },
  112. data() {
  113. return {};
  114. },
  115. methods: {
  116. // 付款
  117. goPayResult(e) {
  118. },
  119. }
  120. };
  121. </script>
  122. <style lang="scss" scoped>
  123. .slot {
  124. background-color: $app-theme-bg-color;
  125. border-radius: 16rpx;
  126. box-shadow: $app-theme-shadow;
  127. padding: 30rpx;
  128. margin-top: 20rpx;
  129. .goods {
  130. display: flex;
  131. align-items: center;
  132. align-content: space-between;
  133. padding-bottom: 26rpx;
  134. border-bottom: 1rpx solid $app-theme-border-color;
  135. margin-bottom: 32rpx;
  136. .pic {
  137. margin-right: 24rpx;
  138. }
  139. .info {
  140. width: 280rpx;
  141. margin-right: 20rpx;
  142. .title {
  143. width: 100%;
  144. display: -webkit-box;
  145. overflow: hidden;
  146. -webkit-line-clamp: 2;
  147. -webkit-box-orient: vertical;
  148. font-size: 28rpx;
  149. font-weight: 400;
  150. color: $app-theme-text-black-color;
  151. margin-bottom: 14rpx;
  152. }
  153. .desc {
  154. display: flex;
  155. justify-content: flex-start;
  156. align-items: flex-end;
  157. margin-bottom: 18rpx;
  158. .item {
  159. margin-right: 24rpx;
  160. text:nth-child(1) {
  161. font-size: 24rpx;
  162. color: $app-theme-card-gray-color;
  163. margin-right: 8rpx;
  164. }
  165. text:nth-child(2) {
  166. font-size: 24rpx;
  167. color: $app-theme-card-gray-deep-color;
  168. }
  169. }
  170. }
  171. .price {
  172. text:nth-child(1) {
  173. font-size: 16rpx;
  174. color: $app-theme-text-black-color;
  175. }
  176. text:nth-child(2) {
  177. font-size: 28rpx;
  178. color: $app-theme-text-black-color;
  179. }
  180. }
  181. }
  182. .status {
  183. width: 120rpx;
  184. .status-label {
  185. width: 100%;
  186. text-align: right;
  187. font-size: 28rpx;
  188. color: $app-theme-color;
  189. margin-bottom: 100rpx;
  190. }
  191. .num {
  192. width: 100%;
  193. text-align: right;
  194. text:nth-child(1) {
  195. font-size: 24rpx;
  196. color: $app-theme-text-gray-white-color;
  197. vertical-align: bottom;
  198. }
  199. text:nth-child(2) {
  200. font-size: 28rpx;
  201. color: $app-theme-text-gray-white-color;
  202. vertical-align: bottom;
  203. }
  204. }
  205. }
  206. }
  207. }
  208. .operate {
  209. display: flex;
  210. justify-content: flex-end;
  211. align-items: center;
  212. }
  213. .paystyle{
  214. // font-weight: bold;
  215. margin-right: 20rpx;
  216. color: $app-theme-text-money-color;
  217. }
  218. </style>