detail.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <template>
  2. <view>
  3. <view class="coupon-list" v-if="orderData">
  4. <view class="coupon-item">
  5. <view class="header">订单编号 {{orderData.order_id}}</view>
  6. <view class="body">
  7. <view class="img"><image :src="orderData.product_img"></image></view>
  8. <view class="info">
  9. <view class="name">{{orderData.product_name}}</view>
  10. <view class="desc">x {{orderData.count}}张</view>
  11. <view class="desc">有效期至{{orderData.end_at}}</view>
  12. </view>
  13. </view>
  14. <view class="footer">
  15. <view class="state"></view>
  16. <button class="btn" type="primary" @click="toDetail(orderData.order_id)">立即使用</button>
  17. </view>
  18. <view class="state-img"><image src="/static/image/no.png" mode="widthFix"></image></view>
  19. </view>
  20. <navigator hover-class="none" url="/pages/user/license" class="tips">小程序资质亮照</navigator>
  21. </view>
  22. <view class="" v-else>
  23. <u-skeleton
  24. rows="3"
  25. title
  26. loading
  27. ></u-skeleton>
  28. </view>
  29. <view class="dialog-msg" v-if="msgDialog">
  30. <view class="mark"></view>
  31. <view class="msg-body">
  32. <view class="title">第三方服务声明<image src="/static/image/round_close.png" @click="msgDialog=false"></image></view>
  33. <view class="desc">本商品信息、交易以及售后服务由第三方提供,如由问题请联系在线客服或电话客服</view>
  34. </view>
  35. </view>
  36. </view>
  37. </template>
  38. <script>
  39. var app;
  40. import * as Api from "@/static/api/home.js";
  41. export default {
  42. data() {
  43. return {
  44. order:"",
  45. msgDialog:true,
  46. orderData:null
  47. }
  48. },
  49. onLoad({order}) {
  50. app = this;
  51. if (!order) {
  52. return app.$dialog.showSuccess("参数错误","none",function(){
  53. uni.navigateBack()
  54. })
  55. }
  56. app.order = order;
  57. setTimeout(function(){
  58. app.msgDialog = false;
  59. },3000)
  60. app.getData();
  61. },
  62. methods: {
  63. toDetail(order){
  64. uni.navigateTo({
  65. url:"/pages/order/store?type=1&order="+order
  66. })
  67. },
  68. getData(){
  69. uni.login({
  70. success(lres){
  71. Api.detail({"code":lres.code,"order":app.order}).then((res)=>{
  72. uni.hideLoading();
  73. if (res.code == 0) {
  74. return app.$dialog.showSuccess(res.msg);
  75. }
  76. uni.setStorageSync("user_data", res.data.user)
  77. uni.setStorageSync("user_token", res.data.user.access_token)
  78. app.orderData = res.data.order;
  79. })
  80. },fail(res){
  81. app.$dialog.showSuccess("登录失败,请重启小程序")
  82. }
  83. })
  84. }
  85. }
  86. }
  87. </script>
  88. <style>
  89. page{background-color: #f8f8f8;}
  90. .dialog-msg .mark{position: fixed;top: 0;left: 0;right: 0;bottom: 0;z-index: 90;background-color: rgba(0, 0,0, 0.3);}
  91. .dialog-msg .msg-body{position: fixed;background-color: #fff;z-index: 99;left: 5%;right: 5%;top: 50%;transform: translateY(-50%);border-radius: 10upx;padding: 40upx;}
  92. .dialog-msg .msg-body .title{text-align: center;line-height: 48upx;color: #333;font-weight: bold;margin-bottom: 20upx;position: relative;padding: 20upx 0;}
  93. .dialog-msg .msg-body .title image{width: 60upx;height: 60upx;position: absolute;top: 0;right: 0;}
  94. .dialog-msg .msg-body .desc{line-height: 48upx;color: #666;font-weight: bold;font-size: 26upx;}
  95. .coupon-item{background-color: #fff;border-radius: 10upx;width: calc(100% - 40upx);margin: 20upx auto;border: 2upx solid #fff;border-radius: 10upx;position: relative;}
  96. .coupon-item .state-img{position: absolute;right: 0;top: 0;}
  97. .coupon-item .state-img image{width: 100upx;height: 100upx;}
  98. .coupon-item .header{padding: 20upx;font-size: 28upx;color: #333;line-height: 48upx;border-bottom: 2upx solid #f8f8f8;}
  99. .coupon-item .footer{padding: 20upx;border-top: 2upx solid #f8f8f8;display: flex;justify-content: space-between;}
  100. .coupon-item .footer .state{flex: 1;}
  101. .coupon-item .footer .btn{width: 50%;font-size: 28upx;}
  102. .coupon-item .body{display: flex;align-items: center;margin: 20upx 0;}
  103. .coupon-item .img image{width: 160upx;height: 160upx;}
  104. .coupon-item .info{margin-left: 20upx;}
  105. .coupon-item .name{font-size: 32upx;color: #333;line-height: 46upx;}
  106. .coupon-item .desc{color: #666;font-size: 28upx;line-height: 48upx;}
  107. .tips{text-align: center;line-height: 80upx;color: #666;font-size: 28upx;}
  108. </style>