健康同学微信公众号h5项目
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

104 行
2.2KB

  1. <template>
  2. <div>
  3. <van-tabbar fixed route v-model="active" @change="handleChange">
  4. <van-tabbar-item v-for="(item, index) in tabbars" :to="item.to" :key="index">
  5. {{ item.title }}
  6. <template #icon="props">
  7. <img :src="props.active ? item.icon.active : item.icon.inactive" />
  8. </template>
  9. </van-tabbar-item>
  10. </van-tabbar>
  11. </div>
  12. </template>
  13. <script>
  14. export default {
  15. name: 'TabBar',
  16. props: {
  17. defaultActive: {
  18. type: Number,
  19. default: 0
  20. }
  21. },
  22. data() {
  23. return {
  24. active: this.defaultActive,
  25. tabbars: [
  26. {
  27. title: '成长',
  28. to: {
  29. name: 'Development'
  30. },
  31. icon: {
  32. active: require('../assets/com-imges/55_41.png'),
  33. inactive: require('../assets/com-imges/55_17.png')
  34. }
  35. },
  36. {
  37. title: '今日',
  38. to: {
  39. name: 'Today'
  40. },
  41. icon: {
  42. active: require('../assets/com-imges/55_36.png'),
  43. inactive: require('../assets/com-imges/55_20.png')
  44. }
  45. },
  46. {
  47. title: '洞悉',
  48. to: {
  49. name: 'Insight'
  50. },
  51. icon: {
  52. active: require('../assets/com-imges/55_38.png'),
  53. inactive: require('../assets/com-imges/55_22.png')
  54. }
  55. },
  56. {
  57. title: '优化',
  58. to: {
  59. name: 'Optimize'
  60. },
  61. icon: {
  62. active: require('../assets/com-imges/55_44.png'),
  63. inactive: require('../assets/com-imges/55_25.png')
  64. }
  65. },
  66. {
  67. title: '我的',
  68. to: {
  69. name: 'Myself'
  70. },
  71. icon: {
  72. active: require('../assets/com-imges/55_33.png'),
  73. inactive: require('../assets/com-imges/55_14.png')
  74. }
  75. }
  76. ]
  77. };
  78. },
  79. methods: {
  80. handleChange(value) {
  81. this.$emit('change', value);
  82. }
  83. }
  84. };
  85. </script>
  86. <!-- Add "scoped" attribute to limit CSS to this component only -->
  87. <style scoped>
  88. h3 {
  89. margin: 40px 0 0;
  90. }
  91. ul {
  92. list-style-type: none;
  93. padding: 0;
  94. }
  95. li {
  96. display: inline-block;
  97. margin: 0 10px;
  98. }
  99. a {
  100. color: #42b983;
  101. }
  102. </style>