解决vue项目刷新后,导航菜单高亮显示的位置不对问题

<template>
  <div class="menu">
    <div :class="index==menuIndex?'active':'menu-box'" v-for="(item,index) in menu" :key="index" @click="setMenu(index)">
      <router-link :to="item.path"> <span>{{item.name}}</span></router-link>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      menu: [
        {
          name: "水质预报",
          sort: 1,
          path: "/decisionSupport/waterQualityForecast",
        },
        {
          name: "水质评价",
          sort: 2,
          path: "/decisionSupport/graphAssociation",
        },
        {
          name: "防洪预报",
          sort: 3,
          path: "/decisionSupport/floodControlForecast",
        },
        {
          name: "水量调度",
          sort: 4,
          path: "/decisionSupport/waterDispatching",
        },
        // {
        //   name: "产汇流",
        //   sort: 5,
        //   path:  "/decisionSupport/graphAssociationddd",
        // },
        {
          name: "决策分析",
          sort: 6,
          path: "/decisionSupport/decisionAnalysis",
        },
        {
          name: "应急处置",
          sort: 7,
          path: "/decisionSupport/planaking",
        },
        // {
        //   name: "应急处置",
        //   sort: 7,
        //   path: "/",
        //   children: [
        //     {
        //       name: "预案模板",
        //       path: "/decisionSupport/planaking",
        //     },
        //     {
        //       name: "方案制定",
        //       path: "/decisionSupport/planMaking",
        //     },
        //     {
        //       name: "方案执行指挥",
        //       path: "/decisionSupport/planeDelivery",
        //     },
        //   ],
        // },
      ], //菜单数组
      menuIndex: 0, //菜单下标
    };
  },
  // 这里解决刷新高亮位置改变的代码
  mounted(){
    this.menu.some((item,i)=>{
      if(item.path==this.$route.path){
        this.menuIndex = item.sort-1;
      }
    })
  },


  methods: {
    //菜单选项卡下标切换
    setMenu(params) {
      this.menuIndex = params;
    },
    handleOpen(key, keyPath) {
      console.log(key, keyPath);
    },
    handleClose(key, keyPath) {
      console.log(key, keyPath);
    },
  },
};
</script>

  

posted @ 2020-09-27 15:51  凉城i  阅读(754)  评论(0编辑  收藏  举报