index.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. Component({
  2. data: {
  3. activeUrl: '',
  4. active: 0,
  5. list: [],
  6. initList: [{
  7. icon: 'home-o',
  8. text: '首页',
  9. url: '/pages/index/index',
  10. hidden: false
  11. },
  12. {
  13. icon: 'bar-chart-o',
  14. text: '数据中心',
  15. url: '/pages/data/index',
  16. hidden: true
  17. },
  18. {
  19. icon: 'user-o',
  20. text: '个人中心',
  21. url: '/pages/account/index',
  22. hidden: false
  23. }
  24. ],
  25. role: ''
  26. },
  27. lifetimes: {
  28. attached: function () {
  29. },
  30. },
  31. methods: {
  32. switchTab(e) {
  33. var url = e.currentTarget.dataset.url
  34. if (url && this.data.activeUrl != url) {
  35. wx.switchTab({
  36. url: url
  37. })
  38. }
  39. },
  40. onChange(e) {
  41. this.setData({
  42. active: e.detail
  43. });
  44. var active = e.detail
  45. var cnt = -1;
  46. var list = this.data.list
  47. var url = '';
  48. for (var i = 0; i < list.length; ++i) {
  49. if (!list[i].hidden) cnt = cnt + 1;
  50. if (cnt == active) {
  51. url = list[i].url
  52. break;
  53. }
  54. }
  55. wx.switchTab({
  56. url: url
  57. });
  58. },
  59. init() {
  60. const page = getCurrentPages().pop();
  61. var userInfo = getApp().globalData.userInfo
  62. var role = userInfo ? userInfo.topRole : ''
  63. var list = this.data.initList
  64. if (role && role.key == 'leader') {
  65. // list = this.data.initList.slice(1)
  66. list[0].hidden = true;
  67. } else {
  68. list[0].hidden = false;
  69. }
  70. if (role && role.rights && role.rights.dataView) {
  71. list[1].hidden = false;
  72. } else {
  73. list[1].hidden = true;
  74. }
  75. this.setData({
  76. list: list
  77. })
  78. var activeUrl = '';
  79. for (var i = 0; i < list.length; ++i) {
  80. if (list[i].url == '/' + page.route) {
  81. activeUrl = list[i].url
  82. break;
  83. };
  84. }
  85. this.setData({
  86. activeUrl
  87. });
  88. if (role) {
  89. this.setData({
  90. role
  91. })
  92. }
  93. }
  94. }
  95. });