From 10a3f18540ecf9296a43b496aa79ffc9b1b6661a Mon Sep 17 00:00:00 2001 From: liuwei Date: Fri, 27 Feb 2026 12:22:07 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E7=BE=8E=E5=8C=96=E4=B8=80?= =?UTF-8?q?=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/dashboard/templates/base.html | 177 +++++++++++------- .../templates/contacts_management.html | 32 ++-- admin/dashboard/templates/index.html | 39 ++-- admin/dashboard/templates/login.html | 38 ++-- .../templates/message_push_management.html | 6 +- admin/dashboard/templates/plugins_manage.html | 12 +- .../templates/virtual_group_management.html | 2 +- admin/dashboard/templates/wx_logs.html | 6 +- 8 files changed, 179 insertions(+), 133 deletions(-) diff --git a/admin/dashboard/templates/base.html b/admin/dashboard/templates/base.html index 5317f28..e202803 100644 --- a/admin/dashboard/templates/base.html +++ b/admin/dashboard/templates/base.html @@ -14,24 +14,32 @@ GLOBAL RESET ------------------------------ */ :root { - --tech-bg: #0b1d33; - --tech-bg-2: #0f2545; - --tech-accent: #5bd3ff; - --tech-accent-2: #41bff0; - --tech-panel: #f9fbff; - --tech-panel-2: #f2f7ff; - --tech-border: #d6e6ff; - --tech-text: #22324a; - --tech-text-muted: #6b86a8; - --tech-shadow: 0 6px 16px rgba(11, 29, 51, 0.06); + --tech-bg: #0a0b0f; + --tech-bg-2: #0c0e14; + --tech-panel: #11151f; + --tech-panel-2: #141a28; + --tech-border: #1e2535; + --tech-border-2: #252d42; + --tech-text: #e2e8f0; + --tech-text-strong: #f1f5f9; + --tech-text-muted: #94a3b8; + --tech-accent: #7c3aed; + --tech-accent-2: #8b5cf6; + --tech-highlight: #a78bfa; + --tech-silver: #cbd5e1; + --tech-glow: #22d3ee; + --tech-success: #34d399; + --tech-warning: #fbbf24; + --tech-danger: #f87171; + --tech-shadow: 0 10px 24px rgba(0, 0, 0, 0.35); } body { margin: 0; padding: 0; - background: #f2f6fb; + background: var(--tech-bg); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei"; - color: #22324a; + color: var(--tech-text); overflow: hidden; /* 禁止 body 出滚动条 */ } @@ -55,12 +63,12 @@ .header { height: 58px; padding: 0 16px; - background: #0b1d33; - border-bottom: 1px solid #0f2a4a; + background: var(--tech-panel); + border-bottom: 1px solid var(--tech-border); display: flex; align-items: center; justify-content: space-between; - box-shadow: 0 2px 10px rgba(0, 163, 255, 0.12); + box-shadow: 0 8px 18px rgba(0, 0, 0, 0.35); position: sticky; top: 0; z-index: 100; @@ -72,8 +80,8 @@ right: 12px; bottom: 0; height: 1px; - background: rgba(91, 211, 255, 0.35); - box-shadow: 0 0 8px rgba(91, 211, 255, 0.4); + background: rgba(167, 139, 250, 0.5); + box-shadow: 0 0 10px rgba(167, 139, 250, 0.5); } .header-left { @@ -85,7 +93,7 @@ width: 36px; height: 36px; margin-right: 8px; - filter: drop-shadow(0 0 6px rgba(91, 211, 255, 0.35)); + filter: drop-shadow(0 0 8px rgba(167, 139, 250, 0.45)); } .header-right { @@ -96,19 +104,19 @@ .user-info { margin-right: 8px; font-size: 14px; - color: #cfe6ff; + color: var(--tech-text-muted); } .logout-btn { - color: #9fd7ff; + color: var(--tech-text); font-weight: 500; transition: 0.2s; } .logout-btn:hover { - color: #5bd3ff; + color: var(--tech-accent-2); } .header h2 { - color: #e6f3ff; + color: var(--tech-text-strong); letter-spacing: 0.5px; } @@ -125,9 +133,9 @@ ------------------------------ */ .sidebar { width: 190px; - background: #0b1d33; - border-right: 1px solid #0f2a4a; - box-shadow: 4px 0 14px rgba(0, 163, 255, 0.12); + background: var(--tech-bg-2); + border-right: 1px solid var(--tech-border); + box-shadow: 4px 0 18px rgba(0, 0, 0, 0.35); } /* Element 菜单自定义美化 */ @@ -142,20 +150,20 @@ line-height: 46px !important; margin: 4px 2px !important; border-radius: 6px !important; - color: #cfe6ff !important; + color: var(--tech-text-muted) !important; transition: background 0.2s ease, box-shadow 0.2s ease, color 0.2s ease !important; position: relative; } .el-menu-item:hover { - background: rgba(60, 203, 255, 0.12) !important; - color: #e9f6ff !important; + background: rgba(124, 58, 237, 0.18) !important; + color: var(--tech-text-strong) !important; } .el-menu-item.is-active { - background: rgba(60, 203, 255, 0.18) !important; - color: #5bd3ff !important; + background: rgba(124, 58, 237, 0.25) !important; + color: var(--tech-accent-2) !important; font-weight: 600; - box-shadow: inset 0 0 0 1px rgba(91, 211, 255, 0.35), - 0 0 10px rgba(91, 211, 255, 0.25); + box-shadow: inset 0 0 0 1px rgba(139, 92, 246, 0.35), + 0 0 12px rgba(167, 139, 250, 0.35); } .el-menu-item.is-active::before { content: ""; @@ -164,17 +172,17 @@ top: 10px; bottom: 10px; width: 3px; - background: #5bd3ff; - box-shadow: 0 0 10px rgba(91, 211, 255, 0.6); + background: var(--tech-accent-2); + box-shadow: 0 0 10px rgba(167, 139, 250, 0.7); border-radius: 2px; } .el-menu-item i { - color: #8db7e6 !important; + color: #a1adc2 !important; margin-right: 6px; } .el-menu-item.is-active i, .el-menu-item:hover i { - color: #5bd3ff !important; + color: var(--tech-accent-2) !important; } /* ------------------------------ @@ -184,7 +192,7 @@ flex: 1; padding: 16px; overflow-y: auto; - background: #f2f6fb; + background: var(--tech-bg); position: relative; } .content::before { @@ -192,9 +200,9 @@ position: absolute; inset: 0; background-image: - linear-gradient(rgba(91, 211, 255, 0.08) 1px, transparent 1px), - linear-gradient(90deg, rgba(91, 211, 255, 0.08) 1px, transparent 1px); - background-size: 24px 24px; + linear-gradient(rgba(37, 45, 66, 0.6) 1px, transparent 1px), + linear-gradient(90deg, rgba(37, 45, 66, 0.6) 1px, transparent 1px); + background-size: 28px 28px; opacity: 0.35; pointer-events: none; } @@ -205,8 +213,8 @@ right: 12px; top: 0; height: 1px; - background: rgba(91, 211, 255, 0.4); - box-shadow: 0 0 10px rgba(91, 211, 255, 0.6); + background: rgba(167, 139, 250, 0.45); + box-shadow: 0 0 12px rgba(167, 139, 250, 0.6); pointer-events: none; } .content > * { @@ -217,9 +225,9 @@ /* 全局卡片样式统一 */ .el-card { border-radius: 0 !important; - box-shadow: 0 6px 18px rgba(11, 29, 51, 0.06) !important; - border: 1px solid #d6e6ff !important; - background: #ffffff !important; + box-shadow: var(--tech-shadow) !important; + border: 1px solid var(--tech-border) !important; + background: var(--tech-panel) !important; } .el-card__body { padding: 12px !important; @@ -262,14 +270,14 @@ } .el-button--primary { - background: #2f6bff !important; - border-color: #2f6bff !important; + background: var(--tech-accent) !important; + border-color: var(--tech-accent) !important; color: #ffffff !important; } .el-button--primary:hover, .el-button--primary:focus { - background: #1f5ad6 !important; - border-color: #1f5ad6 !important; + background: var(--tech-accent-2) !important; + border-color: var(--tech-accent-2) !important; color: #ffffff !important; } .el-button--success, @@ -278,6 +286,22 @@ .el-button--info { color: #ffffff !important; } + .el-button--success { + background: var(--tech-success) !important; + border-color: var(--tech-success) !important; + } + .el-button--warning { + background: var(--tech-warning) !important; + border-color: var(--tech-warning) !important; + } + .el-button--danger { + background: var(--tech-danger) !important; + border-color: var(--tech-danger) !important; + } + .el-button--info { + background: #64748b !important; + border-color: #64748b !important; + } .el-button--success:hover, .el-button--warning:hover, .el-button--danger:hover, @@ -289,9 +313,9 @@ color: #ffffff !important; } .el-button--default { - background: #ffffff !important; + background: var(--tech-panel-2) !important; border-color: var(--tech-border) !important; - color: #2a3b55 !important; + color: var(--tech-text) !important; } .el-button--default:hover, .el-button--default:focus { @@ -304,18 +328,31 @@ .el-input__inner, .el-textarea__inner { - background: #f7faff !important; + background: var(--tech-panel-2) !important; border-color: var(--tech-border) !important; color: var(--tech-text) !important; } + .el-input__inner::placeholder, + .el-textarea__inner::placeholder { + color: var(--tech-text-muted) !important; + } .el-input__inner:focus, .el-textarea__inner:focus { border-color: var(--tech-accent) !important; - box-shadow: 0 0 0 2px rgba(91, 211, 255, 0.15) !important; + box-shadow: 0 0 0 2px rgba(167, 139, 250, 0.2) !important; } .el-table { color: var(--tech-text) !important; + background: var(--tech-panel) !important; + } + .el-table__header-wrapper, + .el-table__body-wrapper, + .el-table__footer-wrapper { + background: var(--tech-panel) !important; + } + .el-table tr { + background: var(--tech-panel) !important; } .el-table th { background: var(--tech-panel-2) !important; @@ -334,12 +371,12 @@ border-right: 1px solid var(--tech-border) !important; } .el-table__row:hover > td { - background: #eef6ff !important; + background: #161c28 !important; } .el-pagination .el-pager li.active { background: var(--tech-accent) !important; - color: #0b1d33 !important; + color: #ffffff !important; } .el-pagination .el-pager li:hover { color: var(--tech-accent) !important; @@ -348,6 +385,16 @@ .el-pagination span { color: var(--tech-text-muted) !important; } + .el-pagination.is-background .btn-next, + .el-pagination.is-background .btn-prev, + .el-pagination.is-background .el-pager li { + background-color: var(--tech-panel-2) !important; + color: var(--tech-text-muted) !important; + } + .el-pagination.is-background .el-pager li:not(.disabled).active { + background-color: var(--tech-accent) !important; + color: #ffffff !important; + } .el-tabs__item { color: var(--tech-text-muted) !important; @@ -371,6 +418,7 @@ .el-dialog, .el-message-box { border: 1px solid var(--tech-border) !important; + background: var(--tech-panel) !important; } .el-dialog__header, .el-message-box__header { @@ -381,18 +429,15 @@ .el-message-box__title { color: var(--tech-text) !important; } + .el-dialog__body, + .el-message-box__content { + color: var(--tech-text) !important; + } - /* Disable dialog mask to allow page interaction */ + /* Keep mask invisible but clickable for close-on-click */ .v-modal { background-color: transparent !important; opacity: 0 !important; - pointer-events: none !important; - } - .el-dialog__wrapper { - pointer-events: none; - } - .el-dialog { - pointer-events: auto; } @@ -432,9 +477,9 @@