Слияние кода завершено, страница обновится автоматически
<template>
<div class="silder-menu">
<a-layout-sider v-model="collapsed" :trigger="null" collapsible width="200" style="height:100%">
<a-menu
mode="inline"
theme="dark"
:default-selected-keys="[currentKey]"
:selectedKeys="[currentKey]"
:open-keys="openKeys"
:style="{ height: '100%', borderRight: 0 }"
@select="selectMenuItem"
@openChange="openChangeEvent"
>
<a-sub-menu
v-show="item.system == defaultSystem"
v-for="(item) of config" :key="item.key">
<span slot="title">
<a-icon :type="item.icon" />
<span v-show="!collapsed">{{item.title}}</span>
</span>
<a-menu-item
@click="changeMenu(sitem)"
v-for="(sitem) of item.children"
:key="sitem.key"
>{{sitem.title}}</a-menu-item>
</a-sub-menu>
</a-menu>
</a-layout-sider>
</div>
</template>
<script>
import config from "@/config/config.js";
import { mapState, mapMutations } from "vuex";
export default {
props: {
collapsed: {
type: Boolean,
default: false
}
},
data() {
return {
config: config.Menu,
openKeys: localStorage.getItem('openkey'),
};
},
created() {},
computed: {
...mapState(["currentKey","defaultSystem"])
},
methods: {
...mapMutations(["setCurrentKey","setCurrentSystem","setTabsList"]),
// 点击相应菜单导航到相应页面
changeMenu(argments) {
localStorage.setItem("currentKey", argments.key);
this.$router.push(`/${argments.key}`);
this.setTabsList(argments)
},
// 选中菜单
selectMenuItem(argments) {
this.$emit("select", {
currentkey: argments.key
});
},
// 菜单组打开或者关闭事件
openChangeEvent(argments) {
if (argments.length != 0) {
// 如果数组length为0表示所有的菜单都是关闭的
this.openKeys = [argments[argments.length - 1]];
} else {
this.openKeys = [];
}
localStorage.setItem("opkey", this.openKeys);
}
},
watch: {
// 监听路由
$route(to) {
console.log(to);
let curreentKey = to.path.slice(1);
// 设置当前选中菜单
this.setCurrentKey(curreentKey);
// 设置当前系统
this.setCurrentSystem(to.meta.system)
// 设置当前打开菜单组
this.openKeys = [to.meta.faKey];
localStorage.setItem("opkey", this.openKeys);
}
}
};
</script>
<style lang="less" scoped>
.silder-menu {
height: calc(100vh - 72px);
}
.sider{
height:100%;
overflow-y: auto;
}
::-webkit-scrollbar-track-piece { //滚动条凹槽的颜色,还可以设置边框属性
background-color:#f8f8f8;
}
::-webkit-scrollbar {//滚动条的宽度
width:9px;
height:9px;
}
::-webkit-scrollbar-thumb {//滚动条的设置
background-color:#dddddd;
background-clip:padding-box;
min-height:28px;
}
::-webkit-scrollbar-thumb:hover {
background-color:#bbb;
}
</style>
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )