main.vue 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <template>
  2. <view
  3. class="coupon-item row aCenter relative"
  4. @click="triggerRadio"
  5. :class="[type === 'available'?'coupon-item-available':'','coupon-item-'+type]"
  6. >
  7. <view class="coupon-item-left">
  8. <text class="coupon-item-price-group"><text>¥</text><text class="coupon-item-price">{{price}}</text></text>
  9. <view class="coupon-introduce">抵扣券</view>
  10. </view>
  11. <view class="flex-all-1 overflow">
  12. <view class="coupon-item-title line-1">{{item.title || ''}}</view>
  13. <view class="coupon-item-time line-1">{{item.starttime || ''}}-{{item.endtime || ''}}</view>
  14. </view>
  15. <view v-if="type==='receive'" @click="triggerReceive" class="coupon-item-button center"
  16. :class="{'coupon-item-button-disabled':item.is_get===1}"
  17. >{{item.is_get===1?'已领取':'立即领取'}}</view>
  18. <v-radio :value="value" v-else-if="type==='radio'" disabled ></v-radio>
  19. <view v-else-if="type === 'available'" class="absolute coupon-available-footer jCenter">
  20. <view class="line-1">订单商品未满{{item.least}}元</view>
  21. </view>
  22. <image v-if="icon" class="coupon-item-icon" :src="'/static/images/'+icon+'.png'"></image>
  23. </view>
  24. </template>
  25. <script>
  26. import props from "./props";
  27. import vRadio from '@/components/v-radio/main';
  28. export default {
  29. name: "layout-use-coupon",
  30. computed:{
  31. price(){
  32. if (this.item.value) {
  33. let price = parseFloat(this.item.value);
  34. let intPrice = Math.floor(this.item.value);
  35. if (price === intPrice) {
  36. return intPrice;
  37. } else {
  38. return price;
  39. }
  40. } else {
  41. return 0;
  42. }
  43. },
  44. },
  45. methods:{
  46. triggerReceive(){
  47. if (this.item.is_get !== 1) {
  48. return this.$emit('receive',{
  49. item:this.item
  50. })
  51. }
  52. },
  53. triggerRadio(){
  54. if (this.type==='radio') {
  55. return this.$emit('checked',{
  56. item:this.item
  57. })
  58. }
  59. }
  60. },
  61. components:{
  62. vRadio
  63. },
  64. props
  65. }
  66. </script>
  67. <style lang="scss" src="./style.scss"></style>