couponItem.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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. if (this.data.couponStatus != 0) {
  85. return
  86. }
  87. let checkStatus = !this.data.checkStatus
  88. this.setData(
  89. {
  90. checkStatus: checkStatus
  91. },
  92. this.triggerEvent('check', {
  93. id: e.currentTarget.dataset.id,
  94. checkStatus: checkStatus
  95. })
  96. )
  97. }
  98. }
  99. })