ticket.vue 8.2 KB

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