index.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. Component({
  2. properties: {
  3. list: Array,
  4. callback: Function
  5. },
  6. data: {
  7. safeAreaBot: 0,
  8. show: false,
  9. showList: [],
  10. extend: []
  11. },
  12. lifetimes: {
  13. attached: function () {
  14. wx.getSystemInfo({
  15. success: res => {
  16. this.setData({
  17. safeAreaBot: res.screenHeight - res.safeArea.bottom
  18. })
  19. }
  20. })
  21. },
  22. },
  23. observers: {
  24. 'list': function (numberA, numberB) {
  25. if (numberA.length >= 5) {
  26. let showList = numberA.splice(0, 3);
  27. showList.push({
  28. icon: "icon-gengduo",
  29. label: "更多"
  30. })
  31. this.setData({
  32. showList,
  33. extend: numberA
  34. })
  35. } else {
  36. this.setData({
  37. showList: numberA
  38. })
  39. }
  40. }
  41. },
  42. options: {
  43. addGlobalClass: true
  44. },
  45. methods: {
  46. onClose() {
  47. this.setData({
  48. show: false
  49. })
  50. },
  51. callback(e) {
  52. const {
  53. item
  54. } = e.currentTarget.dataset;
  55. if (item.label == '更多') return this.setData({
  56. show: true
  57. })
  58. if (this.data.show) this.setData({
  59. show: false
  60. })
  61. if (!item) return;
  62. this.triggerEvent("callback", item)
  63. }
  64. }
  65. })