ticket.vue 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. <template>
  2. <view class="ticket-box">
  3. <view class="ticket-child" v-for="(item,index) in ticketList" :key="index" :style="{'backgroundImage':
  4. item.receive > 0 ? 'url('+bgSrc+')' : 'url('+bgEmptySrc+')'}">
  5. <view class="left-box">
  6. <view class="title">¥<text> {{item.money}}</text> {{item.name}}</view>
  7. <view class="date">有效日期:至{{item.date}}</view>
  8. <view class="desc">{{item.type === 'all' ? '所有产品品类通用' :'指定产品品类使用' }}</view>
  9. <view class="desc">{{item.limit}}</view>
  10. </view>
  11. <view class="right-box">
  12. <view class="type" :style="{'fontSize':item.receive > 0 ? '28rpx' : '32rpx'}">{{item.receive > 0 ? '仅剩' : '已领完'}}</view>
  13. <view class="type" v-show="item.remainder > 0">{{item.remainder}}张</view>
  14. <view class="font margin-top-20" v-show="item.receive === 0">持续发放中</view>
  15. <view class="font" v-show="item.receive === 0">下次再领</view>
  16. <view class="receive-box" v-show="item.receive > 0" @click="receiveCoupon(item.receive)"> 可领{{item.receive}}张</view>
  17. </view>
  18. </view>
  19. </view>
  20. </template>
  21. <script>
  22. import md5 from "@/common/md5.js";
  23. export default {
  24. data() {
  25. return {
  26. id: "",
  27. bgSrc:'data:image/png;base64,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',
  28. bgEmptySrc:'data:image/png;base64,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',
  29. ticketList:[
  30. {
  31. money:100,
  32. name:'兔年全年有效代金券',
  33. date:'2023-12-31',
  34. type:'all',//使用类型
  35. limit:'满100元可用',//使用限制
  36. remainder:17, //剩余数量
  37. receive:2,// 可领取数量
  38. },
  39. {
  40. money:1200,
  41. name:'一年税控托管免费',
  42. date:'2023-12-31',
  43. type:'notAll',
  44. limit:'使用无限制',//使用限制
  45. remainder:0, //剩余数量
  46. receive:0,// 可领取数量
  47. },
  48. {
  49. money:88,
  50. name:'双十一特惠券',
  51. date:'2023-12-31',
  52. type:'notAll',
  53. limit:'使用无限制',//使用限制
  54. remainder:8, //剩余数量
  55. receive:1,// 可领取数量
  56. }
  57. ]
  58. };
  59. },
  60. onLoad(op) {
  61. // this.id = op.id;
  62. },
  63. methods: {
  64. receiveCoupon(param){
  65. if(param){
  66. uni.showModal({
  67. content:'恭喜您领取成功~',
  68. confirmText:'去使用',
  69. confirmColor:'#039bfb',
  70. cancelText:'继续领取',
  71. cancelColor:'#666666',
  72. success: function (res) {
  73. if (res.confirm) {
  74. console.log('用户点击确定');
  75. } else if (res.cancel) {
  76. console.log('用户点击取消');
  77. }
  78. }
  79. })
  80. }
  81. else {
  82. uni.showModal({
  83. content:'抱歉,别人手快一步,名额已领完,下次早点来哦~',
  84. confirmText:'我知道了',
  85. confirmColor:'#039bfb',
  86. showCancel:false,
  87. success: function (res) {
  88. if (res.confirm) {
  89. console.log('用户点击确定');
  90. }
  91. }
  92. })
  93. }
  94. }
  95. },
  96. };
  97. </script>
  98. <style lang="scss" scoped>
  99. .ticket-box {
  100. display: flex;
  101. flex-direction: column;
  102. .ticket-child {
  103. display: flex;
  104. width: 96%;
  105. height: 200rpx;
  106. background-size: 100% 100%;
  107. margin: 2% 2% 0 2%;
  108. align-items: center;
  109. .left-box {
  110. width: 70%;
  111. .title {
  112. padding-left: 20rpx;
  113. font-size: 34rpx;
  114. text {
  115. font-size: 56rpx;
  116. margin-right: 10rpx;
  117. }
  118. }
  119. .date {
  120. padding-left: 30rpx;
  121. font-size: 30rpx;
  122. }
  123. .desc {
  124. padding-left: 30rpx;
  125. font-size: 26rpx;
  126. color: #999;
  127. }
  128. }
  129. .right-box {
  130. width: 30%;
  131. view {
  132. text-align: center;
  133. }
  134. .type {
  135. color: #ffffff;
  136. font-size: 30rpx;
  137. }
  138. .font {
  139. color: #ffffff;
  140. font-size: 28rpx;
  141. }
  142. .receive-box {
  143. width: 80%;
  144. height: 56rpx;
  145. background-color: #fff;
  146. border-radius: 10rpx;
  147. color: #00bdef;
  148. font-size: 28rpx;
  149. margin: 7% 0 0 10%;
  150. line-height: 56rpx;
  151. }
  152. }
  153. }
  154. }
  155. .margin-top-20 {
  156. margin-top: 20rpx;
  157. }
  158. </style>