From f0d123e013ce534d392e54feb706c00af7c62e9d Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期二, 19 五月 2026 15:21:53 +0800
Subject: [PATCH] bom同一层级只能选一样的工序
---
src/layout/components/Sidebar/index.vue | 109 +++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 87 insertions(+), 22 deletions(-)
diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue
index 0692dda..5e3b79b 100644
--- a/src/layout/components/Sidebar/index.vue
+++ b/src/layout/components/Sidebar/index.vue
@@ -64,7 +64,7 @@
<style lang="scss" scoped>
.sidebar-container {
background-color: v-bind(getMenuBackground);
- border-radius: 22px;
+ border-radius: var(--radius-lg);
overflow: hidden;
.scrollbar-wrapper {
@@ -72,28 +72,50 @@
}
.el-menu {
- border: none;
+ border: 1px solid var(--surface-border) !important;
height: 100%;
width: 100% !important;
- border-radius: 22px;
+ border-radius: var(--radius-lg);
.el-menu-item,
.el-sub-menu__title {
- margin-bottom: 6px;
- border-radius: 14px;
+ margin-bottom: 5px;
+ border-radius: var(--radius-xs);
color: v-bind(getMenuTextColor);
+ font-size: 13.5px;
+ letter-spacing: 0.2px;
+ transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
+ border: none !important;
&:hover {
- background-color: var(--menu-hover, rgba(0, 0, 0, 0.06)) !important;
- border-radius: 14px;
+ background-color: var(--menu-hover) !important;
+ border-radius: var(--radius-sm);
+ transform: translateX(2px);
+ }
+
+ .svg-icon {
+ transition: all 0.25s ease;
+ }
+
+ &:hover .svg-icon {
+ transform: scale(1.1);
+ color: var(--el-color-primary, var(--accent-primary));
}
}
.el-menu-item {
+ color: var(--sidebar-text);
+
&.is-active {
- color: v-bind(theme);
- background-color: var(--menu-active-bg, rgba(0, 0, 0, 0.06)) !important;
- font-weight: 600;
+ background: var(--menu-active-bg) !important;
+ color: var(--menu-active-text) !important;
+ font-weight: 500;
+ border-radius: var(--radius-sm);
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
+
+ .svg-icon {
+ color: var(--menu-active-text) !important;
+ }
}
}
@@ -101,41 +123,84 @@
color: v-bind(getMenuTextColor);
}
+ :deep(.el-sub-menu__icon-arrow) {
+ display: inline-flex !important;
+ align-items: center;
+ justify-content: center;
+ width: 14px;
+ height: 14px;
+ margin-top: -7px;
+ right: 12px;
+ font-size: 14px !important;
+ color: currentColor !important;
+ opacity: 0.7;
+ transition: all 0.25s ease;
+ }
+
+ :deep(.el-sub-menu.is-opened .el-sub-menu__icon-arrow) {
+ transform: rotate(180deg);
+ }
+
:deep(.el-sub-menu.is-active > .el-sub-menu__title) {
- color: v-bind(theme) !important;
+ color: var(--menu-active-text) !important;
font-weight: 600;
- background-color: var(--menu-active-bg, rgba(0, 0, 0, 0.06)) !important;
- border-radius: 14px;
- margin: 0 10px 6px !important;
- // width: calc(100% - 20px) !important;
+ border-radius: var(--radius-sm);
+ margin: 0 10px 5px !important;
padding-left: 10px !important;
padding-right: 10px !important;
box-sizing: border-box;
overflow: hidden;
background-clip: padding-box;
+ background: var(--menu-active-bg) !important;
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
+ border: none !important;
}
:deep(.el-menu-item.is-active) {
- margin: 0 10px 6px !important;
+ margin: 0 10px 5px !important;
width: calc(100% - 20px) !important;
padding-left: 10px !important;
padding-right: 10px !important;
box-sizing: border-box;
overflow: hidden;
background-clip: padding-box;
- border-radius: 14px;
+ border-radius: var(--radius-sm);
}
:deep(.el-sub-menu.is-active > .el-sub-menu__title .menu-title),
- :deep(.el-sub-menu.is-active > .el-sub-menu__title .svg-icon),
- :deep(.el-menu-item.is-active .menu-title),
- :deep(.el-menu-item.is-active .svg-icon) {
- color: v-bind(theme) !important;
+ :deep(.el-sub-menu.is-active > .el-sub-menu__title .svg-icon) {
+ color: var(--menu-active-text) !important;
+ }
+
+ :deep(.el-menu-item.is-active .menu-title) {
+ color: var(--menu-active-text) !important;
}
:deep(.el-sub-menu__title:hover),
:deep(.el-menu-item:hover) {
- border-radius: 14px;
+ border-radius: var(--radius-sm);
+ }
+
+ // 瀛愯彍鍗曞睍寮�鍔ㄧ敾浼樺寲
+ :deep(.el-sub-menu .el-menu) {
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
+ }
+
+ // 鑿滃崟椤硅繘鍏ュ姩鐢�
+ :deep(.el-menu-item),
+ :deep(.el-sub-menu__title) {
+ animation: menuItemFadeIn 0.3s ease forwards;
+ }
+
+ @keyframes menuItemFadeIn {
+ from {
+ opacity: 0;
+ transform: translateX(-8px);
+ }
+ to {
+ opacity: 1;
+ transform: translateX(0);
+ }
}
}
}
--
Gitblit v1.9.3