index.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <template>
  2. <view class="content">
  3. <view class="empty-data" v-if="coupon.length == 0">
  4. <u-empty mode="order" icon="/static/image/order_none.png" text="暂无抖音团购订单"></u-empty>
  5. </view>
  6. <view class="coupon-list" v-else>
  7. <view class="coupon-item" v-for="(item,indx) in coupon" :key="indx">
  8. <view class="header">订单编号 {{item.order_id}}</view>
  9. <view class="body">
  10. <view class="img"><image :src="item.product_img"></image></view>
  11. <view class="info">
  12. <view class="name">{{item.product_name}}</view>
  13. <view class="desc">x {{item.count}}张</view>
  14. <view class="desc">有效期至{{item.end_at}}</view>
  15. </view>
  16. </view>
  17. <view class="footer">
  18. <view class="state"></view>
  19. <button class="btn" type="primary" @click="toDetail(item.order_id)">立即使用</button>
  20. </view>
  21. <view class="state-img"><image src="/static/image/no.png" mode="widthFix"></image></view>
  22. </view>
  23. </view>
  24. </view>
  25. </template>
  26. <script>
  27. var app;
  28. import * as Api from "@/static/api/home.js";
  29. export default {
  30. data() {
  31. return {
  32. user:{},
  33. coupon:[]
  34. }
  35. },
  36. onLoad() {
  37. app = this;
  38. app.getData()
  39. },
  40. onShareAppMessage(res) {
  41. if (res.from === 'button') {// 来自页面内分享按钮
  42. console.log(res.target)
  43. }
  44. return {
  45. title: "团购自助兑换",
  46. path: '/pages/index/index'
  47. }
  48. },
  49. methods: {
  50. toDetail(order){
  51. uni.navigateTo({
  52. url:"/pages/order/store?type=1&order="+order
  53. })
  54. },
  55. getData(){
  56. uni.login({
  57. success(lres){
  58. Api.data({"code":lres.code}).then((res)=>{
  59. uni.hideLoading();
  60. if (res.code == 0) {
  61. return app.$dialog.showSuccess(res.msg);
  62. }
  63. uni.setStorageSync("user_data", res.data.user)
  64. uni.setStorageSync("user_token", res.data.user.access_token)
  65. app.userInfo = res.data.user;
  66. app.coupon = res.data.coupon;
  67. })
  68. },fail(res){
  69. app.$dialog.showSuccess("登录失败,请重启小程序")
  70. }
  71. })
  72. }
  73. }
  74. }
  75. </script>
  76. <style>
  77. page{
  78. background-color: #f8f8f8;
  79. }
  80. .empty-data{
  81. height: 100vh;
  82. display: flex;
  83. align-items: center;
  84. justify-content: center;
  85. }
  86. .coupon-item{background-color: #fff;border-radius: 10upx;width: calc(95% - 40upx);margin: 20upx auto;border: 2upx solid #fff;border-radius: 10upx;position: relative;}
  87. .coupon-item .state-img{position: absolute;right: 0;top: 0;}
  88. .coupon-item .state-img image{width: 100upx;height: 100upx;}
  89. .coupon-item .header{padding: 20upx;font-size: 28upx;color: #333;line-height: 48upx;border-bottom: 2upx solid #f8f8f8;}
  90. .coupon-item .footer{padding: 20upx;border-top: 2upx solid #f8f8f8;display: flex;justify-content: space-between;}
  91. .coupon-item .footer .state{flex: 1;}
  92. .coupon-item .footer .btn{width: 50%;font-size: 28upx;}
  93. .coupon-item .body{display: flex;align-items: center;margin: 20upx 0;}
  94. .coupon-item .img image{width: 160upx;height: 160upx;}
  95. .coupon-item .info{margin-left: 20upx;}
  96. .coupon-item .name{font-size: 32upx;color: #333;line-height: 46upx;}
  97. .coupon-item .desc{color: #666;font-size: 28upx;line-height: 48upx;}
  98. </style>