lxl
2022-10-26 e3196bc81327e82748c7683c5cad9849b4b228b6
src/components/navMenu.vue
@@ -1,5 +1,5 @@
<template>
  <div>
  <div class="leftMenu">
    <div class="leftTopWrapper">
      <div class="logo">
        <img src="../assets/img/www.terra-it.cn.png" alt="" />
@@ -37,7 +37,7 @@
import { logout } from "@/api/api";
import { removeToken, getToken } from "@/utils/auth";
import customElMenu from "../components/customElMenu.vue";
import { queryMenuTree, updateMenuTree, queryMaxId } from "../api/api";
import { queryMenuTree, getPerms } from "../api/api";
export default {
  name: "navMenu",
@@ -66,8 +66,22 @@
  },
  mounted() {
    this.getMenuTree();
    this.getUserPerms();
  },
  computed: {},
  computed: {
    // 我们使用计算属性来获取到当前点击的菜单的路由路径,然后设置default-active中的值
    // 使得菜单在载入时就能对应高亮
    // activeIndex() {
    //   const route = this.$route;
    //   const { meta, path } = route;
    //   // if set path, the sidebar will highlight the path you set
    //   // 可以在路由配置文件中设置自定义的路由路径到meta.activeMenu属性中,来控制菜单自定义高亮显示
    //   if (meta.activeMenu) {
    //     return meta.activeMenu;
    //   }
    //   return path;
    // },
  },
  methods: {
    getMenuTree() {
      //获取目录树最大ID,新建节点使用
@@ -78,7 +92,10 @@
      queryMenuTree().then((res) => {
        if (res.code == 200) {
          if (res.result.length != 0) {
            this.menuList = this.treeData(res.result);
            let menuLists = res.result.filter((value) => {
              return value.type == 1;
            });
            this.menuList = this.treeData(menuLists);
          } else {
            alert("暂无菜单栏数据");
          }
@@ -146,7 +163,17 @@
        this.$store.commit("changeLang", "en"); //传递点击的节点
      }
    },
    handleselect(index, indexPath) {
    handleselect(index, indexPath, e) {
      // console.log(e.$attrs.perms);
      this.$store.commit("currentPerms", e.$attrs.perms.perms);
      if (Window.ws != null) {
        Window.ws.close();
        Window.ws.onclose = () => {
          console.log("服务器关闭");
        };
        Window.ws = null;
      }
      if (index.indexOf("http") != -1) {
        this.$router.push("/databaseMonitoring");
        this.$store.commit("getIframe", index);
@@ -154,18 +181,38 @@
        this.$router.push(index);
      }
    },
    getUserPerms() {
      getPerms().then((res) => {
        if (res.code == 200) this.$store.commit("getPermsEntity", res.result);
      });
    },
  },
  watch: {
    $route() {
      this.activeIndex = this.$route.path;
      let str = this.$route.path;
      if (str[0] == "/") {
        this.activeIndex = str.slice(1);
      }
    },
  },
  created() {
    let str = this.$route.path;
    if (str[0] == "/") {
      this.activeIndex = str.slice(1);
    }
  },
};
</script>
<style lang="less" scoped>
//@import url(); 引入公共css类
.leftMenu {
  // width: 300px;
  height: 99%;
  // background-color: #bfa;
}
.leftTopWrapper {
  width: 100%;
  height: 100%;
  .logo {
    // background-color: rgb(139, 0, 0);
    width: 249px;
@@ -175,12 +222,13 @@
    }
  }
  .menu {
    height: 740px;
    height: 90%;
    margin-top: 22px;
    overflow: auto;
    // background-color: rgb(120, 121, 120);
    .el-menu {
      width: 234px;
      height: 100%;
      width: 280px;
      border-right: none;
      /deep/ .el-submenu {
        margin-bottom: 10px;