index.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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. getApp().globalData.Language.getLanguagePackage(this)
  26. },
  27. },
  28. observers: {
  29. 'list': function (numberA, numberB) {
  30. if (numberA.length >= 5) {
  31. let showList = numberA.splice(0, 3);
  32. showList.push({
  33. icon: "icon-gengduo",
  34. label: "更多"
  35. })
  36. this.setData({
  37. showList,
  38. extend: numberA
  39. })
  40. } else {
  41. this.setData({
  42. showList: numberA
  43. })
  44. }
  45. }
  46. },
  47. options: {
  48. addGlobalClass: true
  49. },
  50. methods: {
  51. onClose() {
  52. this.setData({
  53. show: false
  54. })
  55. },
  56. callback(e) {
  57. const {
  58. item
  59. } = e.currentTarget.dataset;
  60. if (item.label == '更多') return this.setData({
  61. show: true
  62. })
  63. if (this.data.show) this.setData({
  64. show: false
  65. })
  66. if (!item) return;
  67. this.triggerEvent("callback", item)
  68. }
  69. }
  70. })