parkingFeeDetailSuccess.vue 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. <template>
  2. <scroll-view scroll-y="true" class="scroll-Y">
  3. <div>
  4. <!-- <wx-points-commit ref="wxPointsCommit"></wx-points-commit>-->
  5. <div class="parking-info">
  6. <div class="parking-price">
  7. <div class="price">{{ detail.actualPayFee | currency }}</div>
  8. <div class="price-text">
  9. <!-- {{ ['支付成功', '支付失败', '已退款'][detail.payStatus] }} -->
  10. <!-- {{ detail.refundStatus === '1' ? '已退款' : {'PAID': '已支付','PAY_FAIED': '支付失败'}[detail.paymentStatus] }}-->
  11. {{ detail.refundStatus !== 'NO_REFUND' ? '已退款' : {'PAID': '支付成功','UN_PAID': '支付失败'}[detail.payStatus || 'UN_PAID'] }}
  12. </div>
  13. </div>
  14. <div class="parking-part parking-detail">
  15. <div class="parking-info-item">
  16. <span class="info-key">支付方式</span>
  17. <span class="info-value">{{ detail.paymentMethod || '' }}</span>
  18. </div>
  19. <div class="parking-info-item">
  20. <span class="info-key">支付时间</span>
  21. <span class="info-value">{{ detail.createTime | momentFormat }}</span>
  22. </div>
  23. <div class="parking-info-item">
  24. <span class="info-key">车牌号</span>
  25. <span class="info-value">{{ detail.vehicleNo | formatCarno }}</span>
  26. </div>
  27. <div class="parking-info-item">
  28. <span class="info-key">停车场</span>
  29. <span class="info-value">{{ detail.parkName }}</span>
  30. </div>
  31. </div>
  32. <div class="parking-part parking-detail">
  33. <div class="parking-info-item">
  34. <span class="info-key">订单号</span>
  35. <span class="info-value">{{ detail.orderNo }}</span>
  36. </div>
  37. <div class="parking-info-item">
  38. <span class="info-key">入场时间</span>
  39. <span class="info-value">{{ detail.enterTime | momentFormat }}</span>
  40. </div>
  41. <!-- <div class="parking-info-item">
  42. <span class="info-key">离场时间</span>
  43. <span class="info-value">{{ detail.outtime || "" }}</span>
  44. </div> -->
  45. <div class="parking-info-item">
  46. <span class="info-key">停车时长</span>
  47. <span class="info-value">{{ detail.serviceMin | parkingTime }}</span>
  48. </div>
  49. <div class="parking-info-item">
  50. <span class="info-key">开票状态</span>
  51. <span class="info-value">{{ detail.invoiceStatusText }}</span>
  52. </div>
  53. </div>
  54. </div>
  55. <div class="parking-info mgb-40 mb-save">
  56. <div class="parking-part">
  57. <div class="parking-info-item" v-if="false">
  58. <!--todo: 杭州首停不显示暂时根据groupId写死-->
  59. <span class="info-key">首停优惠</span>
  60. <span class="info-value">{{ (detail.firstParkFee / 100) | currency }}</span>
  61. </div>
  62. <div class="parking-info-item">
  63. <span class="info-key">会员等级减免</span>
  64. <!-- // (detail.discountInfo.memberLevelDiscount / 100) | currency -->
  65. <span class="info-value">{{ detail.discountInfo && detail.discountInfo.memberLevelDiscount | currency }}</span>
  66. </div>
  67. <div class="parking-info-item">
  68. <span class="info-key">消费减免</span>
  69. <span class="info-value">{{ detail.discountInfo.consumeDiscount | currency }}</span>
  70. </div>
  71. <div class="parking-info-item">
  72. <span class="info-key">新会员积分减免</span>
  73. <span class="info-value">{{ detail.discountInfo.newMemberPointsDiscount | currency }}</span>
  74. </div>
  75. <div class="parking-info-item">
  76. <span class="info-key">积分减免</span>
  77. <span class="info-value">{{ detail.discountInfo.pointsDiscount | currency }}</span>
  78. </div>
  79. <div class="parking-info-item">
  80. <span class="info-key">会员卡券</span>
  81. <span class="info-value">{{ detail.discountInfo.couponDiscount | currency }}</span>
  82. </div>
  83. <div class="parking-info-item" v-if="detail.paperCouponCode">
  84. <span class="info-key">纸质优惠券</span>
  85. <span class="info-value">{{ detail.discountInfo.paperCouponDiscount | currency }}</span>
  86. </div>
  87. <div class="parking-info-item">
  88. <span class="info-key">使用优惠总计</span>
  89. <span class="info-value">{{ (detail.discountInfo.usingTotalDiscount || 0) | currency }}</span>
  90. </div>
  91. <div class="parking-info-item" v-if="detail.discountInfo.usingTotalDiscount > detail.discountInfo.actualUsedDiscount">
  92. <span class="info-key">实际优惠总计</span>
  93. <span class="info-value">{{ detail.discountInfo.actualUsedDiscount | currency }}</span>
  94. </div>
  95. </div>
  96. <div class="parking-part parking-detail">
  97. <div class="parking-info-item">
  98. <span class="info-key">应缴</span>
  99. <span class="info-value">{{ (detail.totalFee / 100) | currency }}</span>
  100. </div>
  101. <div class="parking-info-item">
  102. <span class="info-key">实缴</span>
  103. <span class="info-value red">{{ detail.actualPayFee | currency }}</span>
  104. </div>
  105. </div>
  106. </div>
  107. <div style="height: 30px"></div>
  108. </div>
  109. </scroll-view>
  110. </template>
  111. <script>
  112. import parkingFeeDetailSuccessJs from '../../mixins/parkingFeeDetailSuccess';
  113. export default {
  114. mixins: [parkingFeeDetailSuccessJs],
  115. };
  116. </script>
  117. <style lang="less" scoped>
  118. .scroll-Y {
  119. width: 100%;
  120. display: flex;
  121. flex-direction: column;
  122. height: 100vh;
  123. background: #f2f2f2;
  124. padding-bottom: 20px;
  125. .parking-info {
  126. margin: 20px;
  127. padding: 20px;
  128. border-radius: 30px;
  129. background-color: #ffffff;
  130. .parking-price {
  131. text-align: center;
  132. padding: 20px 0px 40px;
  133. .price {
  134. color: rgb(255, 0, 0);
  135. font-weight: 600;
  136. font-size: 52px;
  137. }
  138. .price-text {
  139. font-weight: 300;
  140. font-size: 30px;
  141. }
  142. }
  143. .parking-detail {
  144. border-top: 2px solid #f5f5f5;
  145. }
  146. .parking-part {
  147. padding: 20px;
  148. .parking-info-item {
  149. display: flex;
  150. justify-content: space-between;
  151. align-items: center;
  152. padding: 20px 0px;
  153. font-size: 32px;
  154. .info-key {
  155. text-align: left;
  156. color: #242424;
  157. }
  158. .info-value {
  159. text-align: right;
  160. color: #999999;
  161. }
  162. .red {
  163. color: #ee2c34;
  164. }
  165. }
  166. }
  167. }
  168. .mgb-40 {
  169. margin-bottom: 20px;
  170. }
  171. //.mgb-40 {
  172. // margin-bottom: 24px;
  173. //}
  174. .mb-save {
  175. padding-bottom: constant(safe-area-inset-bottom);
  176. padding-bottom: env(safe-area-inset-bottom);
  177. }
  178. }
  179. </style>