index.js 1.6 KB

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