tabbar.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. const eventBus = {
  2. // 存储所有事件和对应的订阅者
  3. eventList: new Map(),
  4. // 订阅事件
  5. on(event, callback) {
  6. if (!this.eventList.has(event)) {
  7. this.eventList.set(event, new Set())
  8. }
  9. this.eventList.get(event).add(callback)
  10. },
  11. // 取消订阅事件
  12. off(event, callback) {
  13. if (this.eventList.has(event)) {
  14. const callbacks = this.eventList.get(event)
  15. callbacks.delete(callback)
  16. if (callbacks.size === 0) {
  17. this.eventList.delete(event)
  18. }
  19. }
  20. },
  21. // 发布事件
  22. emit(event, ...args) {
  23. if (this.eventList.has(event)) {
  24. const callbacks = this.eventList.get(event)
  25. callbacks.forEach((callback) => {
  26. callback.call(null, ...args)
  27. })
  28. }
  29. }
  30. }
  31. function selectIndex(index) {
  32. var pages = getCurrentPages();
  33. var curPage = pages[pages.length - 1]
  34. if (typeof curPage.getTabBar === 'function' &&
  35. curPage.getTabBar()) {
  36. curPage.getTabBar().setData({
  37. selected: index
  38. })
  39. }
  40. }
  41. function eventOn(curPage) {
  42. getApp().eventBus.on('rightChange', data => {
  43. // var pages = getCurrentPages();
  44. // var curPage = pages[pages.length - 1]
  45. if (data !== curPage.data.rightId) {
  46. curPage.setData({
  47. rightId: data
  48. })
  49. if (curPage.data.rightId === 2) {
  50. let num = curPage.data.rightId === 1 ? 2 : 1
  51. if (typeof curPage.getTabBar === 'function' &&
  52. curPage.getTabBar()) {
  53. curPage.getTabBar().setData({
  54. selected: num
  55. })
  56. }
  57. }
  58. }
  59. });
  60. }
  61. module.exports = {
  62. eventBus,
  63. selectIndex,
  64. eventOn
  65. }