box.vue 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <template>
  2. <view class="container">
  3. <!-- 首页 -->
  4. <Home v-if="show === 'home'" />
  5. <!-- 工单管理 -->
  6. <Management v-if="show === 'management'" />
  7. <!-- 通讯录 -->
  8. <AddressBook v-if="show === 'addressBook'" />
  9. <!-- 待处理池 -->
  10. <Pending v-if="show === 'pending'" />
  11. <!-- 报修 -->
  12. <Repairs v-if="show === 'repairs'" />
  13. <!-- 我的报修 -->
  14. <MyRepairs v-if="show === 'myRepairs'" />
  15. <!-- 底部导航栏 -->
  16. <Tabbar :list="routes" @changeRouter="handleChangeRouter" />
  17. </view>
  18. </template>
  19. <script>
  20. import Home from '../home/home.vue'
  21. import Management from '../management/management.vue'
  22. import AddressBook from '../addressBook/addressBook.vue'
  23. import Pending from '../pending/pending.vue'
  24. import Repairs from '../repairs/repairs.vue'
  25. import MyRepairs from '../myRepairs/myRepairs.vue'
  26. import Tabbar from '../components/tabbar.vue'
  27. export default {
  28. components: {
  29. Home,
  30. Management,
  31. AddressBook,
  32. Pending,
  33. Repairs,
  34. MyRepairs,
  35. Tabbar
  36. },
  37. mounted() {
  38. const repairsUserInfo = uni.getStorageSync('repairsUserInfo')
  39. console.log(repairsUserInfo)
  40. if (repairsUserInfo.routes) {
  41. this.routes = this.filterRoute(this.list, repairsUserInfo.routes)
  42. }
  43. this.show = this.routes[0].show
  44. uni.setNavigationBarTitle({
  45. title: this.routes[0].text
  46. })
  47. },
  48. data() {
  49. return {
  50. routes: [],
  51. list: [
  52. {
  53. text: '报修',
  54. imgUrl: '../../static/images/repairsImg/repairs.png',
  55. imgUrlActive: '../../static/images/repairsImg/repairs-active.png',
  56. show: 'repairs'
  57. },
  58. {
  59. text: '我的报修',
  60. imgUrl: '../../static/images/repairsImg/myRepairs.png',
  61. imgUrlActive: '../../static/images/repairsImg/myRepairs-active.png',
  62. show: 'myRepairs'
  63. },
  64. {
  65. text: '首页',
  66. imgUrl: '../../static/images/repairsImg/home.png',
  67. imgUrlActive: '../../static/images/repairsImg/home-active.png',
  68. show: 'home'
  69. },
  70. {
  71. text: '工单管理',
  72. imgUrl: '../../static/images/repairsImg/management.png',
  73. imgUrlActive: '../../static/images/repairsImg/management-active.png',
  74. show: 'management'
  75. },
  76. {
  77. text: '待处理池',
  78. imgUrl: '../../static/images/repairsImg/myRepairs.png',
  79. imgUrlActive: '../../static/images/repairsImg/myRepairs-active.png',
  80. show: 'pending'
  81. },
  82. {
  83. text: '通讯录',
  84. imgUrl: '../../static/images/repairsImg/addressBook.png',
  85. imgUrlActive: '../../static/images/repairsImg/addressBook-active.png',
  86. show: 'addressBook'
  87. }
  88. ],
  89. show: ''
  90. }
  91. },
  92. methods: {
  93. handleChangeRouter(show, text) {
  94. this.show = show
  95. uni.setNavigationBarTitle({
  96. title: text
  97. })
  98. },
  99. filterRoute(arr1, arr2) {
  100. return arr1.filter((item) => {
  101. return arr2.includes(item.text)
  102. })
  103. }
  104. }
  105. }
  106. </script>
  107. <style lang="scss" scoped>
  108. .container {
  109. width: 100vw;
  110. height: calc(100vh - 102rpx);
  111. }
  112. </style>