|
@@ -4,7 +4,7 @@
|
|
|
<img v-if="isCollapse" src="@/assets/icon/open.svg" alt="">
|
|
<img v-if="isCollapse" src="@/assets/icon/open.svg" alt="">
|
|
|
<img v-else src="@/assets/icon/close.svg" alt="">
|
|
<img v-else src="@/assets/icon/close.svg" alt="">
|
|
|
</div>
|
|
</div>
|
|
|
- <el-menu :collapse="isCollapse" router :default-active="activeMenuRoute">
|
|
|
|
|
|
|
+ <el-menu :collapse="isCollapse" router :default-active="activeMenuRoute" :collapse-transition="false">
|
|
|
<el-menu-item v-for="item in menuItems" :key="item.route" :index="item.route">
|
|
<el-menu-item v-for="item in menuItems" :key="item.route" :index="item.route">
|
|
|
<template #default>
|
|
<template #default>
|
|
|
<i class="iconfont" :class="item.icon"></i>
|
|
<i class="iconfont" :class="item.icon"></i>
|
|
@@ -117,6 +117,10 @@ onMounted(() => {
|
|
|
});
|
|
});
|
|
|
const toggleCollapse = () => {
|
|
const toggleCollapse = () => {
|
|
|
isCollapse.value = !isCollapse.value
|
|
isCollapse.value = !isCollapse.value
|
|
|
|
|
+ // 等宽度过渡动画结束后(280ms),通知 ECharts 重新 resize
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ window.dispatchEvent(new Event('resize'))
|
|
|
|
|
+ }, 300)
|
|
|
}
|
|
}
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
@@ -124,6 +128,9 @@ const toggleCollapse = () => {
|
|
|
.siderbar_container {
|
|
.siderbar_container {
|
|
|
background: #fff;
|
|
background: #fff;
|
|
|
padding: 16px;
|
|
padding: 16px;
|
|
|
|
|
+ // 宽度过渡动画,让折叠/展开更平滑
|
|
|
|
|
+ transition: width 0.28s ease;
|
|
|
|
|
+ overflow: hidden;
|
|
|
}
|
|
}
|
|
|
.el-menu {
|
|
.el-menu {
|
|
|
width: 100%;
|
|
width: 100%;
|
|
@@ -137,10 +144,13 @@ const toggleCollapse = () => {
|
|
|
display: inline-block;
|
|
display: inline-block;
|
|
|
color: #666666;
|
|
color: #666666;
|
|
|
font-size: 20px;
|
|
font-size: 20px;
|
|
|
|
|
+ // 图标颜色过渡
|
|
|
|
|
+ transition: color 0.2s ease;
|
|
|
}
|
|
}
|
|
|
.collapse_box {
|
|
.collapse_box {
|
|
|
padding-left: 10px;
|
|
padding-left: 10px;
|
|
|
// text-align: center;
|
|
// text-align: center;
|
|
|
|
|
+ cursor: pointer;
|
|
|
}
|
|
}
|
|
|
.el-menu.el-menu--vertical :deep(.el-menu-item) {
|
|
.el-menu.el-menu--vertical :deep(.el-menu-item) {
|
|
|
height: 40px;
|
|
height: 40px;
|