index.vue 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. <view class="cu-bar tabbar bg-white shadow foot">
  7. <view v-for="item in tabItems" :index='item.index' class="action" @click="tabBarDidChange" :data-index="item.index">
  8. <view class="cuIcon-cu-image">
  9. <image :src="selectedIndex==item.index?item.image_selected:item.image" />
  10. </view>
  11. <view :class="selectedIndex==item.index?'text-red':'text-gray'"> {{ item.name }} </view>
  12. </view>
  13. </view>
  14. </view>
  15. </template>
  16. <script>
  17. import TabbarMine from '../mine/index.vue'
  18. import TabbarCalendar from '../calendar/index.vue'
  19. import TabbarMessage from '../message/index.vue'
  20. export default {
  21. components: {
  22. TabbarMine,
  23. TabbarCalendar,
  24. TabbarMessage
  25. },
  26. data() {
  27. return {
  28. PageCur: 'calendar',
  29. selectedIndex: 0
  30. }
  31. },
  32. computed: {
  33. tabItems() {
  34. return [
  35. { 'index': 0, 'name': this.$i18n.t('calendar'), 'image': '/static/tabbar/calendar.png', 'image_selected': '/static/tabbar/calendar_active.png'},
  36. { 'index': 1, 'name': this.$i18n.t('message'), 'image': '/static/tabbar/message.png', 'image_selected': '/static/tabbar/message_active.png'},
  37. { 'index': 2, 'name': this.$i18n.t('me'), 'image': '/static/tabbar/me.png', 'image_selected': '/static/tabbar/me_active.png'},
  38. ]
  39. }
  40. },
  41. methods: {
  42. tabBarDidChange(e) {
  43. this.selectedIndex = e.currentTarget.dataset.index
  44. }
  45. }
  46. }
  47. </script>
  48. <style>
  49. </style>