goods-list.ts 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. Component({
  2. externalClasses: ['wr-class'],
  3. properties: {
  4. items: {
  5. type: Array,
  6. value: [],
  7. },
  8. id: {
  9. type: String,
  10. value: '',
  11. observer(id) {
  12. this.genIndependentID(id)
  13. },
  14. },
  15. thresholds: {
  16. type: Array,
  17. value: [],
  18. },
  19. lite: {
  20. type: Boolean,
  21. value: false,
  22. },
  23. view: {
  24. type: String,
  25. value: 'list',
  26. observer(val) {
  27. this.setData({
  28. displayView: val,
  29. })
  30. },
  31. },
  32. },
  33. data: {
  34. independentID: '',
  35. displayView: 'list',
  36. },
  37. lifetimes: {
  38. ready() {
  39. this.init()
  40. },
  41. },
  42. methods: {
  43. onClickGoods(e: WechatMiniprogram.CustomEvent<{}, {}, { index: number }>) {
  44. const { index } = e.currentTarget.dataset
  45. this.triggerEvent('click', { ...e.detail, index })
  46. },
  47. onAddCart(e: WechatMiniprogram.CustomEvent<{}, {}, { index: number }>) {
  48. const { index } = e.currentTarget.dataset
  49. this.triggerEvent('addcart', { ...e.detail, index })
  50. },
  51. onClickGoodsThumb(e: WechatMiniprogram.CustomEvent<{}, {}, { index: number }>) {
  52. const { index } = e.currentTarget.dataset
  53. this.triggerEvent('thumb', { ...e.detail, index })
  54. },
  55. init() {
  56. this.genIndependentID(this.id || '')
  57. },
  58. genIndependentID(id: string) {
  59. if (id) {
  60. this.setData({ independentID: id })
  61. } else {
  62. this.setData({
  63. independentID: `goods-list-${~~(Math.random() * 10 ** 8)}`,
  64. })
  65. }
  66. },
  67. },
  68. })