From 4bc2589ced9c2e686c3b6bc7545a386def1cf351 Mon Sep 17 00:00:00 2001 From: hwj Date: Tue, 19 May 2026 10:47:06 +0800 Subject: [PATCH] =?UTF-8?q?style=EF=BC=9A=E5=8A=9F=E8=83=BD=E5=AF=BC?= =?UTF-8?q?=E8=88=AA=E6=A8=A1=E5=9D=97=E4=BA=A4=E4=BA=92=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/dashboard/NavMenuEditor.vue | 379 ++++----------------- src/components/dashboard/NavMenuMore.vue | 41 ++- src/components/dashboard/NavSection.vue | 19 +- 3 files changed, 106 insertions(+), 333 deletions(-) diff --git a/src/components/dashboard/NavMenuEditor.vue b/src/components/dashboard/NavMenuEditor.vue index a074ee3..e250c81 100644 --- a/src/components/dashboard/NavMenuEditor.vue +++ b/src/components/dashboard/NavMenuEditor.vue @@ -1,7 +1,6 @@ @@ -459,15 +210,25 @@ watch([configuredMenuList, unconfiguredMenuList], async () => { align-items: flex-end; padding-bottom: calc(100rpx + env(safe-area-inset-bottom)); box-sizing: border-box; + transition: opacity 0.3s ease; + + &.mask-hidden { + opacity: 0; + } } .nav-menu-editor { width: 100%; - max-height: 66.6vh; + max-height: 75vh; background: #ffffff; border-radius: 32rpx 32rpx 0 0; display: flex; flex-direction: column; + transition: transform 0.3s ease; + + &.panel-hidden { + transform: translateY(100%); + } } .editor-header { @@ -516,11 +277,6 @@ watch([configuredMenuList, unconfiguredMenuList], async () => { flex-wrap: wrap; min-height: 120rpx; border-radius: 24rpx; - transition: background-color 0.15s ease; -} - -.nav-grid-target { - background: rgba(34, 72, 110, 0.06); } .nav-item { @@ -531,23 +287,12 @@ watch([configuredMenuList, unconfiguredMenuList], async () => { margin-bottom: 24rpx; padding: 16rpx; border-radius: 16rpx; + position: relative; transition: all 0.15s; &:active { opacity: 0.7; } - - &.nav-item-disabled { - opacity: 0.72; - } -} - -.is-drop-target { - background: rgba(34, 72, 110, 0.08); -} - -.is-dragging-source { - opacity: 0.25; } .nav-icon { @@ -559,12 +304,8 @@ watch([configuredMenuList, unconfiguredMenuList], async () => { justify-content: center; margin-bottom: 12rpx; - &.nav-icon-disabled { - opacity: 0.55; - } - .nav-icon-text { - font-size: 28rpx; + font-size: 32rpx; color: #1a3a5c; font-weight: 700; } @@ -580,15 +321,24 @@ watch([configuredMenuList, unconfiguredMenuList], async () => { } } +.check-badge { + position: absolute; + top: 8rpx; + right: 26rpx; + width: 32rpx; + height: 32rpx; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; +} + .click-hint { font-size: 24rpx; color: #999; text-align: center; display: block; margin-top: 16rpx; -} - -.secondary-hint { padding-bottom: 24rpx; } @@ -620,15 +370,4 @@ watch([configuredMenuList, unconfiguredMenuList], async () => { background: #22486e; color: #ffffff; } - -.drag-ghost { - position: fixed; - z-index: 1002; - width: 96rpx; - margin-left: -8rpx; - pointer-events: none; - display: flex; - flex-direction: column; - align-items: center; -} - \ No newline at end of file + diff --git a/src/components/dashboard/NavMenuMore.vue b/src/components/dashboard/NavMenuMore.vue index 8378cde..3551348 100644 --- a/src/components/dashboard/NavMenuMore.vue +++ b/src/components/dashboard/NavMenuMore.vue @@ -1,6 +1,6 @@