tabbar.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. console.log("页面:"+curPage.data.rightId);
  50. if (curPage.data.rightId === 2) {
  51. let num = curPage.data.rightId === 1 ? 2 : 1
  52. if (typeof curPage.getTabBar === 'function' &&
  53. curPage.getTabBar()) {
  54. curPage.getTabBar().setData({
  55. selected: num
  56. })
  57. }
  58. }
  59. }
  60. });
  61. }
  62. module.exports = {
  63. eventBus,
  64. selectIndex,
  65. eventOn
  66. }