From 226997fb2579cdcb8f922974a5b62d0bcfaf8131 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=B6=E7=84=B6?= Date: Mon, 2 Mar 2026 18:49:02 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E9=A1=B5=E9=9D=A2=E7=BE=8E?= =?UTF-8?q?=E5=8C=96=EF=BC=8C=E6=B7=BB=E5=8A=A0=E5=B9=BF=E5=91=8A=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.example | 6 +- src/App.vue | 65 ++++++++++++- src/components/Home/Home.vue | 63 ++++++++++++- .../Layout/DetailHeader/DetailHeader.vue | 70 +++++++++++++- src/components/Layout/Floor/Floor.vue | 19 +++- src/components/Layout/Header/Header.vue | 94 +++++++++++++------ src/components/Layout/Left/Left.vue | 85 +++++++++++++++-- .../Layout/ToolDetail/ToolDetail.vue | 31 +++++- 8 files changed, 381 insertions(+), 52 deletions(-) diff --git a/.env.example b/.env.example index 48fee99..c1eb6ea 100644 --- a/.env.example +++ b/.env.example @@ -12,5 +12,7 @@ VITE_SERVE = '' VITE_HOST = '127.0.0.1' # 第三方反馈互动地址 VITE_FEEDBACK_URL = '' -# 广告位开关 -VITE_ADV_SHOW = 'false' \ No newline at end of file +# 广告位开关(废弃) +VITE_ADV_SHOW = 'false' +# 左侧底部广告位 +VITE_LEFT_ADV = '' \ No newline at end of file diff --git a/src/App.vue b/src/App.vue index 0d45321..a857ff3 100644 --- a/src/App.vue +++ b/src/App.vue @@ -13,9 +13,11 @@ const componentStore = useComponentStore() @@ -122,17 +126,17 @@ onMounted(async () => { list-style: none !important; padding-left: 0 !important; margin-top: 1rem; - background-color: none !important; + background-color: transparent !important; } .el-menu:hover{ - background-color: none !important; + background-color: transparent !important; } .el-sub-menu{ border-radius: 10rem !important; list-style: none !important; margin: 0 !important; padding-left: 0 !important; - background-color: none !important; + background-color: transparent !important; } /* 深选择器获取menu__title */ @@ -140,12 +144,17 @@ onMounted(async () => { /* padding-left: 0 !important; */ font-size: 1rem; border-radius: 1rem; + transition: all 0.3s ease; + position: relative; + overflow: hidden; } + .el-sub-menu :deep(.el-sub-menu__title:hover){ /* padding-left: 0 !important; */ color: #fff; - background-color: #409EFF; + background: linear-gradient(135deg, #409EFF, #667eea); border-radius: 1rem; + box-shadow: 0 4px 15px rgba(64, 158, 255, 0.3); } .el-menu-item{ @@ -154,15 +163,77 @@ onMounted(async () => { height: 38px!important; margin: 10px 0; border-radius: 1rem !important; + transition: all 0.3s ease; + position: relative; + overflow: hidden; } + +.el-menu-item::before { + content: ''; + position: absolute; + left: 0; + top: 0; + width: 3px; + height: 100%; + background: linear-gradient(180deg, #409EFF, #667eea); + transform: scaleY(0); + transform-origin: center; + transition: transform 0.3s ease; + border-radius: 0 1rem 1rem 0; +} + +.el-menu-item:hover::before, +.el-menu-item.is-active::before { + transform: scaleY(1); +} + .el-menu-item.is-active{ color: #fff; - background-color: #409EFF; + background: linear-gradient(135deg, #409EFF, #667eea); border-radius: 1rem; + box-shadow: 0 4px 15px rgba(64, 158, 255, 0.3); } + .el-menu-item:hover{ color: #fff; - background-color: #409EFF; + background: linear-gradient(135deg, #409EFF, #667eea); border-radius: 1rem; + box-shadow: 0 4px 15px rgba(64, 158, 255, 0.3); +} + +/* 简约Logo区域 */ +.logo-container { + position: relative; + border-radius: 12px; +} + +/* 广告位样式 */ +.ad-container { + position: fixed; + bottom: 20px; + left: 20px; + width: 200px; + border-radius: 8px; + overflow: hidden; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); + transition: all 0.3s ease; +} + +.ad-container:hover { + box-shadow: 0 6px 16px rgba(0, 0, 0, 0.15); + transform: translateY(-2px); +} + +.ad-link { + display: block; + width: 100%; + height: 100%; +} + +.ad-image { + width: 100%; + height: auto; + display: block; + border-radius: 8px; } \ No newline at end of file diff --git a/src/components/Layout/ToolDetail/ToolDetail.vue b/src/components/Layout/ToolDetail/ToolDetail.vue index 58d487d..ca13d5c 100644 --- a/src/components/Layout/ToolDetail/ToolDetail.vue +++ b/src/components/Layout/ToolDetail/ToolDetail.vue @@ -13,8 +13,8 @@ onMounted(() => { \ No newline at end of file