Tabbar.vue 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <template>
  2. <view>
  3. <u-tabbar v-model="myCurrent" :list="tabbarList" :before-switch="beforeSwitch" inactive-color="#ADB8C2" active-color="#5098FF">
  4. </u-tabbar>
  5. </view>
  6. </template>
  7. <script>
  8. var img1=require('@/assets/img/tabbarImg/home-wifi-fill.svg')
  9. var img2=require('@/assets/img/tabbarImg/home-wifi-fill2.svg')
  10. var img3=require('@/assets/img/tabbarImg/chat-1-fill.svg')
  11. var img4=require('@/assets/img/tabbarImg/chat-1-fill2.svg')
  12. var img5=require('@/assets/img/tabbarImg/chat-smile-2-fill.svg')
  13. var img6=require('@/assets/img/tabbarImg/chat-smile-2-fill2.svg')
  14. export default {
  15. name: "Tabbar",
  16. props: {
  17. current: 0,
  18. elderStatus: false,
  19. prefetchNum:0,
  20. },
  21. data() {
  22. return {
  23. oldindex: this.current,
  24. myCurrent: this.current,
  25. tabbarList: [{
  26. iconPath: img1,
  27. selectedIconPath: img2,
  28. text: '主页 ',
  29. pagePath2: "/pages/index/index",
  30. },
  31. {
  32. count:this.prefetchNum,
  33. iconPath: img3,
  34. selectedIconPath: img4,
  35. text: '消息',
  36. pagePath2: "/pages/message/message",
  37. },
  38. {
  39. iconPath: img5,
  40. selectedIconPath: img6,
  41. text: '我的',
  42. pagePath2: "/pages/mine/mine",
  43. }
  44. ],
  45. };
  46. },
  47. methods: {
  48. setprefetchNum(c) {
  49. this.tabbarList[1].count=c;
  50. },
  51. setcount(c) {
  52. this.myCurrent = c
  53. },
  54. beforeSwitch(index) {
  55. if (index == this.current) {
  56. return false
  57. }
  58. var url = this.tabbarList[index].pagePath2;
  59. uni.navigateTo({
  60. url: url
  61. })
  62. if (index == 1) {
  63. this.myCurrent = this.oldindex;
  64. return false;
  65. } else {
  66. return true;
  67. }
  68. },
  69. },
  70. mounted() {
  71. },
  72. destroyed() {
  73. }
  74. }
  75. </script>
  76. <style>
  77. </style>