pay-faild.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <template>
  2. <view class="pay-result">
  3. <!-- 提示图标 -->
  4. <view class="tip-icon">
  5. <image class="icon" :src="staticUrl + 'icon-pay-fail.png'"></image>
  6. <view class="tip">订单支付失败~~</view>
  7. </view>
  8. <!-- 支付金额 -->
  9. <view class="payAmount">
  10. <text class="label">支付金额:</text>
  11. <text class="price">¥{{ orderInfo.payableAmount | priceFormat }}</text>
  12. </view>
  13. <!-- 执行操作 -->
  14. <view class="control">
  15. <tui-button type="base" width="600rpx" height="90rpx" shape="circle" :size="28" @click="onPayAgain">
  16. 重新支付
  17. </tui-button>
  18. <tui-button
  19. type="base"
  20. :plain="true"
  21. width="600rpx"
  22. height="90rpx"
  23. shape="circle"
  24. :size="28"
  25. @click="onSearch"
  26. >
  27. 查看订单
  28. </tui-button>
  29. </view>
  30. </view>
  31. </template>
  32. <script>
  33. import wechatPayMixin from '@/pages/views/order/mixins/wechatPay.js'
  34. export default {
  35. mixins: [wechatPayMixin],
  36. data() {
  37. return {
  38. orderInfo: {
  39. collageId: '0',
  40. orderId: '18897',
  41. orderMark: '#18897#',
  42. orderNo: 'H164783438949249',
  43. payTotalFee: '0',
  44. payableAmount: '0'
  45. }
  46. }
  47. },
  48. beforeDestroy() {
  49. uni.removeStorageSync('PAY_ORDER_INFO')
  50. this.$off('orderPaySuccess')
  51. },
  52. onLoad() {
  53. this.orderInfo = uni.getStorageSync('PAY_ORDER_INFO')
  54. this.orderPaySuccess()
  55. },
  56. methods: {
  57. // 支付成功回调
  58. orderPaySuccess() {
  59. this.$on('orderPaySuccess', orderInfo => {
  60. if (this.collageFlag === 1) {
  61. uni.redirectTo({ url: `share-buy/share-buy-detail?collageId=${this.collageId}` })
  62. } else {
  63. uni.setStorageSync('PAY_ORDER_INFO', orderInfo)
  64. this.$router.redirectTo('order/pay-success')
  65. }
  66. })
  67. },
  68. onPayAgain() {
  69. this.miniWxPayFor(this.orderInfo)
  70. },
  71. onSearch() {
  72. this.$router.redirectTo('order/order-detail?orderId=' + this.orderInfo.orderId)
  73. }
  74. }
  75. }
  76. </script>
  77. <style lang="scss" scoped>
  78. .pay-result {
  79. height: 100vh;
  80. .tip-icon {
  81. @extend .cm-flex-center;
  82. flex-direction: column;
  83. height: 340rpx;
  84. background-color: #fff;
  85. .icon {
  86. width: 210rpx;
  87. height: 210rpx;
  88. }
  89. .tip {
  90. margin-top: 24rpx;
  91. font-size: 28rpx;
  92. font-weight: bold;
  93. color: #666;
  94. }
  95. }
  96. .payAmount {
  97. @extend .cm-flex-between;
  98. height: 90rpx;
  99. padding: 0 24rpx;
  100. margin-top: 24rpx;
  101. font-size: 28rpx;
  102. background-color: #fff;
  103. .label {
  104. color: #333333;
  105. }
  106. .price {
  107. color: #666666;
  108. }
  109. }
  110. .control {
  111. @extend .cm-flex-between;
  112. flex-direction: column;
  113. height: 204rpx;
  114. margin-top: 100rpx;
  115. }
  116. }
  117. </style>