| | |
| | | <template> |
| | | <div> |
| | | <div class="leftMenu"> |
| | | <div class="leftTopWrapper"> |
| | | <div class="logo"> |
| | | <img src="../assets/img/www.terra-it.cn.png" alt="" /> |
| | |
| | | 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", |
| | |
| | | }, |
| | | 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,新建节点使用 |
| | |
| | | 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); |
| | |
| | | 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; |
| | |
| | | } |
| | | } |
| | | .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; |