index.vue 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <template>
  2. <div class="coupon">
  3. <div class="coupon-list">
  4. <div class="coupon-item" v-for="(item,index) in couponsData" :key="index" :class="item.state && item.state !== 3 && 'isReceive'">
  5. <div class="coupon-item-content">
  6. <div class="coupon-item-price">
  7. <span v-if="item.couponType !== 2">¥</span>
  8. <b v-if="typeId !== 1">{{item.couponContent}}</b>
  9. <b v-else>{{item.reduceMoney}}</b>
  10. <b v-if="item.couponType == 2">折券</b>
  11. </div>
  12. <div class="coupon-item-date">{{item.effectiveStart.split(' ')[0]}} - {{item.effectiveEnd.split(' ')[0]}}</div>
  13. <div class="coupon-item-text">{{item.content}}</div>
  14. </div>
  15. <button v-if="item.state === 0" class="coupon-item-btn" @click="jumpStore(item)">立即使用</button>
  16. <button v-else-if="item.state === 1" class="coupon-item-btn">已使用</button>
  17. <button v-else-if="item.state === 2" class="coupon-item-btn">已过期</button>
  18. <button v-else @click="receiveCoupon(item)" class="coupon-item-btn">立即领取</button>
  19. </div>
  20. </div>
  21. </div>
  22. </template>
  23. <script>
  24. import {commonMixin} from '../mixin'
  25. export default {
  26. mixins: [commonMixin]
  27. }
  28. </script>
  29. <style lang="scss" scoped>
  30. .coupon {
  31. padding: 25px;
  32. &-list{
  33. display: flex;
  34. flex-wrap: wrap;
  35. }
  36. &-item{
  37. width: 335px;
  38. height: 292px;
  39. background: url("../../../static/images/coupon/bg-coupon.png") no-repeat;
  40. margin-left: 28px;
  41. &:nth-child(2n+1){
  42. margin-left: 0;
  43. }
  44. &-content{
  45. text-align: center;
  46. }
  47. &-price{
  48. color: #C5AA7B;
  49. margin: 26px 0 10px;
  50. span{
  51. font-size: 36px;
  52. line-height: 68px;
  53. }
  54. b{
  55. font-size: 50px;
  56. line-height: 68px;
  57. }
  58. }
  59. &-date,&-text{
  60. font-size: 20px;
  61. line-height: 28px;
  62. color: #999999;
  63. }
  64. &-date{
  65. margin-bottom: 8px;
  66. }
  67. &-btn{
  68. display: block;
  69. margin: 60px auto 0;
  70. width: 112px;
  71. height: 48px;
  72. background-color: #C5AA7B;
  73. color: #fff;
  74. }
  75. &.isReceive{
  76. background-image: url("../../../static/images/coupon/bg-coupon2.png");
  77. &-price{
  78. color: #999;
  79. }
  80. &-btn{
  81. background-color: #ccc;
  82. }
  83. }
  84. }
  85. }
  86. </style>