index.vue 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <template>
  2. <view>
  3. <tabbar-calendar v-if="selectedIndex == 0"></tabbar-calendar>
  4. <tabbar-message v-if="selectedIndex == 1"></tabbar-message>
  5. <tabbar-mine v-if="selectedIndex == 2"></tabbar-mine>
  6. <u-tabbar :value="selectedIndex" fixed placeholder safeAreaInsetBottom activeColor="#d81e06">
  7. <u-tabbar-item
  8. v-for="item in tabItems"
  9. :index="item.index"
  10. :text="item.name"
  11. :icon="selectedIndex == item.index ? item.image_selected : item.image"
  12. :class="selectedIndex==item.index?'text-red':'text-gray'"
  13. @click="tabBarDidChange"
  14. ></u-tabbar-item>
  15. </u-tabbar>
  16. </view>
  17. </template>
  18. <script>
  19. import TabbarMine from '../mine/index.vue';
  20. import TabbarCalendar from '../calendar/index.vue';
  21. import TabbarMessage from '../message/index.vue';
  22. export default {
  23. components: {
  24. TabbarMine,
  25. TabbarCalendar,
  26. TabbarMessage
  27. },
  28. data() {
  29. return {
  30. PageCur: 'calendar',
  31. selectedIndex: 0
  32. };
  33. },
  34. computed: {
  35. tabItems() {
  36. return [
  37. { index: 0, name: this.$i18n.t('calendar'), image: '/static/tabbar/calendar.png', image_selected: '/static/tabbar/calendar_active.png' },
  38. { index: 1, name: this.$i18n.t('message'), image: '/static/tabbar/message.png', image_selected: '/static/tabbar/message_active.png' },
  39. { index: 2, name: this.$i18n.t('me'), image: '/static/tabbar/me.png', image_selected: '/static/tabbar/me_active.png' }
  40. ];
  41. }
  42. },
  43. methods: {
  44. tabBarDidChange(e) {
  45. console.log(e)
  46. this.selectedIndex = e;
  47. }
  48. }
  49. };
  50. </script>
  51. <style></style>