refundCard.vue 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. <template>
  2. <view class="detail" @click="$emit('toRefundDetail', itemInfo)">
  3. <view class="title">
  4. <view class="title-left">
  5. <image class="header-img" :src="itemInfo.image" mode=""></image>
  6. <text>{{ itemInfo.merchant_name }}</text>
  7. <image
  8. class="right-325"
  9. src="../../../static/mine/325.png"
  10. mode=""
  11. ></image>
  12. </view>
  13. <text
  14. class="order-status"
  15. v-if="itemInfo.order_goods[0].refund.status == 0"
  16. >退款中</text
  17. >
  18. <text
  19. class="order-status"
  20. v-if="itemInfo.order_goods[0].refund.status == 1"
  21. >退款成功</text
  22. >
  23. <text
  24. class="order-status"
  25. v-if="itemInfo.order_goods[0].refund.status == 2"
  26. >拒绝退款</text
  27. >
  28. <text
  29. class="order-status"
  30. v-if="itemInfo.order_goods[0].refund.status == 3"
  31. >平台介入</text
  32. >
  33. </view>
  34. <view class="commodity-information" v-for="item in itemInfo.order_goods">
  35. <view class="commodity-1" v-if="item.refund">
  36. <image class="commodity-img" :src="item.sku_item.image" mode=""></image>
  37. <view class="information-right">
  38. <view class="commodity-2">
  39. <view class="commodity-title">
  40. {{ item.goods_name }}
  41. </view>
  42. </view>
  43. <view class="commodity-3">
  44. <view class="specifications"> {{ item.sku_item.item }} </view>
  45. </view>
  46. <view
  47. style="
  48. display: flex;
  49. justify-content: space-between;
  50. align-items: center;
  51. "
  52. >
  53. <view
  54. class="commodity-price"
  55. v-if="item.refund.actual_refund_price"
  56. >
  57. <text style="color: #222; font-size: 26rpx">退款</text>
  58. <text style="font-size: 20rpx">¥</text>
  59. <text>{{ item.refund.actual_refund_price.split(".")[0] }}</text
  60. >.
  61. <text style="font-size: 20rpx">{{
  62. item.refund.actual_refund_price.split(".")[1]
  63. }}</text>
  64. </view>
  65. <view class="commodity-price" v-else>
  66. <text style="color: #222; font-size: 26rpx">退款</text>
  67. <text style="font-size: 20rpx">¥</text>
  68. <text>{{ item.refund.refund_price.split(".")[0] }}</text
  69. >.
  70. <text style="font-size: 20rpx">{{
  71. item.refund.refund_price.split(".")[1]
  72. }}</text>
  73. </view>
  74. <view class="btn-list">
  75. <button
  76. class="status-1"
  77. v-if="item.refund.status == 1"
  78. @click.stop="$emit('deleteAfterOrder', item)"
  79. >
  80. 删除记录</button
  81. ><button
  82. class="status-2"
  83. v-if="item.refund.status == 1 || item.refund.status == 0"
  84. @click="$emit('toRefundDetail', item)"
  85. >
  86. 售后详情
  87. </button>
  88. <button
  89. class="status-2"
  90. v-if="item.refund.status == 2"
  91. @click.stop="$emit('unreviewAfter', item)"
  92. >
  93. 继续申请
  94. </button>
  95. </view>
  96. </view>
  97. </view>
  98. </view>
  99. </view>
  100. <view class="result" v-if="itemInfo.order_goods[0].refund.status == 0">
  101. <view class="result-left"> 申请中 </view>
  102. <view class="result-right"> 等待卖家同意退款 </view>
  103. </view>
  104. <view class="result" v-if="itemInfo.order_goods[0].refund.status == 1">
  105. <view class="result-left"> 退款成功 </view>
  106. <view class="result-right">
  107. 退款成功¥{{ itemInfo.order_goods[0].amount }}
  108. </view>
  109. </view>
  110. <view class="result" v-if="itemInfo.order_goods[0].refund.status == 2">
  111. <view class="result-left"> 退款失败 </view>
  112. <view class="result-right"> 卖家拒绝退款 </view>
  113. </view>
  114. </view>
  115. </template>
  116. <script>
  117. export default {
  118. props: {
  119. refundDetail: {
  120. typeof: Object,
  121. default: {},
  122. },
  123. itemInfo: {
  124. typeof: Object,
  125. default: () => {
  126. return {};
  127. },
  128. },
  129. },
  130. data() {
  131. return {};
  132. },
  133. };
  134. </script>
  135. <style scoped lang="scss">
  136. .detail {
  137. padding: 28rpx 20rpx;
  138. background-color: #fff;
  139. border-radius: 16rpx;
  140. margin-top: 28rpx;
  141. .title {
  142. display: flex;
  143. justify-content: space-between;
  144. .title-left {
  145. display: flex;
  146. font-size: 32rpx;
  147. align-items: center;
  148. .header-img {
  149. width: 36rpx;
  150. height: 36rpx;
  151. border-radius: 50%;
  152. margin-right: 20rpx;
  153. }
  154. .right-325 {
  155. width: 32rpx;
  156. height: 32rpx;
  157. }
  158. }
  159. .order-status {
  160. color: #f83224;
  161. font-size: 26rpx;
  162. }
  163. }
  164. .commodity-information {
  165. margin-top: 28rpx;
  166. .information-right {
  167. width: 70%;
  168. }
  169. .commodity-1 {
  170. display: flex;
  171. .commodity-img {
  172. width: 180rpx;
  173. height: 180rpx;
  174. margin-right: 20rpx;
  175. border-radius: 10rpx;
  176. }
  177. .commodity-2 {
  178. display: flex;
  179. justify-content: space-between;
  180. .commodity-title {
  181. width: 100%;
  182. overflow: hidden;
  183. white-space: nowrap;
  184. text-overflow: ellipsis;
  185. margin-right: 38rpx;
  186. }
  187. }
  188. .commodity-3 {
  189. display: flex;
  190. justify-content: space-between;
  191. margin-top: 20rpx;
  192. color: #777;
  193. .specifications {
  194. font-size: 28rpx;
  195. color: #777;
  196. }
  197. }
  198. .commodity-price {
  199. margin-top: 40rpx;
  200. }
  201. }
  202. }
  203. .price {
  204. display: flex;
  205. justify-content: flex-end;
  206. font-size: 28rpx;
  207. align-items: flex-end;
  208. }
  209. .result {
  210. background-color: #f4f4f4;
  211. border-radius: 16rpx;
  212. height: 76rpx;
  213. display: flex;
  214. align-items: center;
  215. margin-top: 20rpx;
  216. padding-left: 24rpx;
  217. .result-left {
  218. margin-right: 32rpx;
  219. color: #222;
  220. font-size: 28rpx;
  221. }
  222. .result-right {
  223. color: #333;
  224. font-size: 28rpx;
  225. }
  226. }
  227. .btn-list {
  228. display: flex;
  229. justify-content: flex-end;
  230. margin-top: 34rpx;
  231. .status-1 {
  232. background-color: #fff;
  233. border-radius: 34rpx;
  234. margin: 0;
  235. padding: 0;
  236. font-size: 20rpx;
  237. color: #222;
  238. width: 128rpx;
  239. height: 58rpx;
  240. line-height: 58rpx;
  241. margin-right: 20rpx;
  242. border: 2rpx solid #979797;
  243. }
  244. .status-2 {
  245. background-color: #ffffff;
  246. border-radius: 34rpx;
  247. margin: 0;
  248. padding: 0;
  249. font-size: 20rpx;
  250. color: #f83224;
  251. width: 128rpx;
  252. height: 58rpx;
  253. line-height: 58rpx;
  254. border: 2rpx solid #f83224;
  255. }
  256. }
  257. }
  258. </style>