commodityDetail.vue 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. <template>
  2. <view class="detail">
  3. <view class="title">
  4. <view class="title-left">
  5. <image
  6. class="header-img"
  7. :src="orderDetail.member.avatar"
  8. mode=""
  9. ></image>
  10. <text>{{ orderDetail.member.nickname }}</text>
  11. <image
  12. class="right-325"
  13. src="../../../static/mine/325.png"
  14. mode=""
  15. ></image>
  16. </view>
  17. </view>
  18. <view
  19. class="commodity-information"
  20. v-for="item in orderDetail.goods"
  21. :key="item.id"
  22. >
  23. <view class="commodity-1">
  24. <image class="commodity-img" :src="item.merchant.image" mode=""></image>
  25. <view class="">
  26. <view class="commodity-2">
  27. <view class="commodity-title">{{ item.goods_name }} </view>
  28. <view class="commodity-price">
  29. <text style="font-size: 20rpx">¥</text>
  30. <text>{{ item.price.split(".")[0] }}</text
  31. >.
  32. <text style="font-size: 20rpx">{{
  33. item.price.split(".")[1]
  34. }}</text>
  35. </view>
  36. </view>
  37. <view class="commodity-3">
  38. <view class="specifications"> {{ item.sku_item.item }} </view>
  39. <view style="font-size: 24rpx"> x{{ item.goods_num }} </view>
  40. </view>
  41. </view>
  42. </view>
  43. <view class="btn-list">
  44. <button v-if="status == 4">平台介入</button>
  45. <button v-if="status == 3 || status == 4">退款详情</button>
  46. <button
  47. v-if="
  48. orderDetail.status == 'paid' || orderDetail.status == 'merdelivered'
  49. "
  50. @click="application(item)"
  51. >
  52. 申请退款
  53. </button>
  54. </view>
  55. </view>
  56. <view class="information">
  57. <text class="_label">商品总价</text>
  58. <view style="color: #222; font-weight: 600" v-if="orderDetail.freight">
  59. <text style="font-size: 20rpx">¥</text>
  60. <text>{{ orderDetail.goods_amount.split(".")[0] }}</text
  61. >.
  62. <text style="font-size: 20rpx">{{
  63. orderDetail.goods_amount.split(".")[1]
  64. }}</text>
  65. </view>
  66. </view>
  67. <view class="information">
  68. <text class="_label">商品总重量</text>
  69. <view class="_title-right"> {{ orderDetail.weight_total || 0 }}Kg </view>
  70. </view>
  71. <view class="information">
  72. <text class="_label">跨境物流</text>
  73. <view lass="_title-right"> 海运散货 | 1号海运柜 </view>
  74. </view>
  75. <view class="information last">
  76. <text class="_label">运费</text>
  77. <view style="color: #222; font-weight: 600" v-if="orderDetail.freight">
  78. <text style="font-size: 20rpx">¥</text>
  79. <text>{{ orderDetail.freight.split(".")[0] }}</text
  80. >.
  81. <text style="font-size: 20rpx">{{
  82. orderDetail.freight.split(".")[1]
  83. }}</text>
  84. </view>
  85. </view>
  86. <view class="_bottom">
  87. <text class="_label">应付款 </text>
  88. <view
  89. style="color: #f83224; margin-left: 10rpx; font-weight: 600"
  90. v-if="orderDetail.amount"
  91. >
  92. <text style="font-size: 20rpx">¥</text>
  93. <text>{{ orderDetail.amount.split(".")[0] }}</text
  94. >.
  95. <text style="font-size: 20rpx">{{
  96. orderDetail.amount.split(".")[1]
  97. }}</text>
  98. </view>
  99. </view>
  100. </view>
  101. </template>
  102. <script>
  103. import textRight from "../../accountSecurity/component/textRight.vue";
  104. export default {
  105. components: {
  106. textRight,
  107. },
  108. props: {
  109. status: {
  110. typeof: Number,
  111. default: 0,
  112. },
  113. orderDetail: {
  114. typeof: Object,
  115. default: () => {
  116. return {};
  117. },
  118. },
  119. },
  120. data() {
  121. return {};
  122. },
  123. methods: {
  124. application(value) {
  125. uni.navigateTo({
  126. url: `/pageC/applicationRefund/applicationRefund?orderId=${value.goods_id}`,
  127. });
  128. },
  129. },
  130. };
  131. </script>
  132. <style scoped lang="scss">
  133. .detail {
  134. padding: 28rpx 20rpx;
  135. background-color: #fff;
  136. border-radius: 16rpx;
  137. margin-top: 28rpx;
  138. .title {
  139. display: flex;
  140. justify-content: space-between;
  141. .title-left {
  142. display: flex;
  143. font-size: 32rpx;
  144. align-items: center;
  145. .header-img {
  146. width: 36rpx;
  147. height: 36rpx;
  148. border-radius: 50%;
  149. margin-right: 20rpx;
  150. }
  151. .right-325 {
  152. width: 32rpx;
  153. height: 32rpx;
  154. }
  155. }
  156. .order-status {
  157. color: #f83224;
  158. font-size: 26rpx;
  159. }
  160. }
  161. .commodity-information {
  162. margin-top: 28rpx;
  163. .commodity-1 {
  164. display: flex;
  165. .commodity-img {
  166. width: 180rpx;
  167. height: 180rpx;
  168. margin-right: 20rpx;
  169. border-radius: 10rpx;
  170. }
  171. .commodity-2 {
  172. display: flex;
  173. justify-content: space-between;
  174. .commodity-title {
  175. width: 328rpx;
  176. overflow: hidden;
  177. white-space: nowrap;
  178. text-overflow: ellipsis;
  179. margin-right: 38rpx;
  180. }
  181. }
  182. .commodity-3 {
  183. display: flex;
  184. justify-content: space-between;
  185. margin-top: 20rpx;
  186. color: #777;
  187. .specifications {
  188. font-size: 28rpx;
  189. color: #777;
  190. }
  191. }
  192. }
  193. }
  194. .last {
  195. border-bottom: 2rpx solid rgba(151, 151, 151, 0.1);
  196. padding-bottom: 20rpx;
  197. }
  198. .btn-list {
  199. display: flex;
  200. justify-content: flex-end;
  201. button {
  202. width: 152rpx;
  203. height: 58rpx;
  204. border: 2rpx solid #979797;
  205. color: #444;
  206. margin: 0;
  207. padding: 0;
  208. font-size: 24rpx;
  209. background-color: #fff;
  210. border-radius: 34rpx;
  211. margin-top: 20rpx;
  212. margin-left: 20rpx;
  213. }
  214. }
  215. .information {
  216. display: flex;
  217. justify-content: space-between;
  218. font-size: 28rpx;
  219. align-items: flex-end;
  220. margin: 34rpx 0;
  221. ._label {
  222. font-size: 28rpx;
  223. color: #333;
  224. }
  225. ._title-right {
  226. font-size: 28rpx;
  227. color: #333;
  228. }
  229. }
  230. ._bottom {
  231. display: flex;
  232. justify-content: flex-end;
  233. font-size: 28rpx;
  234. align-items: flex-end;
  235. margin-top: 34rpx;
  236. }
  237. }
  238. </style>