index.js 1.6 KB

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