couponItem.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. // components/local/couponItem/couponItem.js
  2. Component({
  3. // options: {
  4. // addGlobalClass: true
  5. // },
  6. /**
  7. * 组件的属性列表
  8. */
  9. properties: {
  10. source: {
  11. type: String,
  12. value: '' // 场景 默认为空(简单的列表),可选值:checkBox(勾选操作)
  13. },
  14. item: {
  15. type: Object,
  16. value: {}
  17. },
  18. couponStatus: {
  19. type: Number,
  20. value: 0 // 0待使用,1已使用,2已过期
  21. },
  22. checkStatus: {
  23. type: Boolean,
  24. value: false // 是否选中 0 未选择, 1选中
  25. }
  26. },
  27. /**
  28. * 组件的初始数据
  29. */
  30. data: {
  31. showRuleText: false,
  32. marks: {
  33. // 优惠券类型,1直接抵扣券,2满减券,3全额减免券,4卡券
  34. 1: '抵扣券',
  35. 2: '满减券',
  36. 3: '全额减免券',
  37. 4: '项目卡券'
  38. }
  39. },
  40. /**
  41. * 组件生命周期函数-在组件实例进入页面节点树时执行)
  42. */
  43. attached: function () {
  44. let { item } = this.data
  45. // 数据结构不一致,对齐参数
  46. this.setData({
  47. 'item.coupon_type':
  48. item.coupon_type == undefined ? item.type : item.coupon_type
  49. })
  50. },
  51. // /**
  52. // * 组件数据字段监听器,用于监听 properties 和 data 的变化
  53. // */
  54. // observers: {
  55. // checkStatus: function (checkStatus) {
  56. // checkStatus == this.data.checkStatus
  57. // }
  58. // },
  59. /**
  60. * 组件的方法列表
  61. */
  62. methods: {
  63. /**
  64. * 点击整条优惠券
  65. */
  66. clickItem: function (e) {
  67. let { source } = this.data
  68. if (source == 'checkbox') {
  69. this.check(e)
  70. }
  71. },
  72. /**
  73. * 展开、收起规则
  74. */
  75. clickRuleText: function () {
  76. this.setData({
  77. showRuleText: !this.data.showRuleText
  78. })
  79. },
  80. /**
  81. * 点击使用按钮、勾选按钮
  82. */
  83. check: function (e) {
  84. // 判断美妆产品的优惠条件
  85. if(this.data.item.couponSource=='goods'){
  86. if (this.data.item.coupon_type == 2) {
  87. if(this.data.item.allow_time!=1){
  88. wx.showToast({
  89. title: '抱歉,优惠券没到使用日期',
  90. icon: 'none'
  91. })
  92. return
  93. }
  94. let full_price = this.data.item.full_price
  95. let price = this.data.item.showMoneyGood
  96. if (Number(price) < Number(full_price)) {
  97. wx.showToast({
  98. title: '订单不满足优惠条件',
  99. icon: 'none'
  100. })
  101. return
  102. }
  103. }
  104. }
  105. if (this.data.couponStatus != 0) {
  106. return
  107. }
  108. let checkStatus = !this.data.checkStatus
  109. this.setData(
  110. {
  111. checkStatus: checkStatus
  112. },
  113. this.triggerEvent('check', {
  114. id: e.currentTarget.dataset.id,
  115. checkStatus: checkStatus
  116. })
  117. )
  118. }
  119. }
  120. })