From 30a9e748fea4121fbff0ce1db6f0070f45c81cc4 Mon Sep 17 00:00:00 2001 From: XingQue Date: Fri, 17 Jul 2026 03:21:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=93=8D=E4=BD=9C=E6=97=A5=E5=BF=97=E9=A1=B5?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E6=B7=B1=E8=89=B2=E8=A1=A8=E6=A0=BC=E4=B8=8E?= =?UTF-8?q?=E4=B8=8B=E6=8B=89=EF=BC=8C=E9=81=BF=E5=85=8D=E7=99=BD=E5=BA=95?= =?UTF-8?q?=E7=9C=8B=E4=B8=8D=E6=B8=85=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- src/views/admin/AdminUser.vue | 13 ++- src/views/admin/OpLog.vue | 174 ++++++++++++++++++++++++++++------ 2 files changed, 154 insertions(+), 33 deletions(-) diff --git a/src/views/admin/AdminUser.vue b/src/views/admin/AdminUser.vue index 5449ed2..34da5fd 100644 --- a/src/views/admin/AdminUser.vue +++ b/src/views/admin/AdminUser.vue @@ -271,7 +271,7 @@ destroy-on-close >
- + @@ -289,7 +289,16 @@ /> 搜索
- + diff --git a/src/views/admin/OpLog.vue b/src/views/admin/OpLog.vue index 02409ee..2625c9d 100644 --- a/src/views/admin/OpLog.vue +++ b/src/views/admin/OpLog.vue @@ -65,6 +65,7 @@ placeholder="类型" clearable style="width: 130px" + popper-class="op-log-dark-popper" @change="fetchLogs(1)" > @@ -86,7 +87,16 @@ - + @@ -124,6 +134,19 @@ import request from '@/utils/request' const username = localStorage.getItem('username') || '' const hasPermission = ref(true) +const headerCellStyle = { + background: '#0b1a2a', + color: '#5ee7ff', + borderColor: 'rgba(0, 180, 200, 0.35)', + fontWeight: '600' +} +const bodyCellStyle = { + background: '#0a1420', + color: '#e8f4ff', + borderColor: 'rgba(255,255,255,0.08)' +} +const rowStyle = { background: '#0a1420' } + const userKeyword = ref('') const userList = ref([]) const userLoading = ref(false) @@ -258,7 +281,7 @@ onMounted(async () => { background: radial-gradient(circle at 20% 30%, #0a0f1a, #03060c); min-height: 100vh; padding: 24px; - color: #eef2ff; + color: #e8f4ff; } .no-permission { display: flex; @@ -268,18 +291,18 @@ onMounted(async () => { height: 60vh; } .no-permission-icon { font-size: 80px; margin-bottom: 20px; opacity: 0.6; } -.no-permission-text { font-size: 24px; font-weight: bold; margin-bottom: 8px; } -.no-permission-desc { font-size: 14px; color: rgba(255,255,255,0.5); } +.no-permission-text { font-size: 24px; font-weight: bold; margin-bottom: 8px; color: #e8f4ff; } +.no-permission-desc { font-size: 14px; color: rgba(232,244,255,0.55); } .page-title { font-size: 22px; font-weight: 700; - color: #00f2ff; + color: #5ee7ff; margin-bottom: 6px; } .page-desc { font-size: 13px; - color: rgba(255,255,255,0.55); + color: rgba(232,244,255,0.6); margin-bottom: 18px; } .layout { @@ -289,8 +312,8 @@ onMounted(async () => { min-height: 70vh; } .left-panel, .right-panel { - background: rgba(6,12,20,0.65); - border: 1px solid rgba(0,242,255,0.2); + background: #071018; + border: 1px solid rgba(0,200,220,0.28); border-radius: 14px; padding: 14px; } @@ -310,19 +333,21 @@ onMounted(async () => { padding: 10px 12px; border-radius: 10px; cursor: pointer; - border: 1px solid transparent; + border: 1px solid rgba(255,255,255,0.06); margin-bottom: 6px; + background: #0a1420; + color: #e8f4ff; } -.user-item:hover { background: rgba(0,242,255,0.08); } +.user-item:hover { background: #102033; border-color: rgba(0,200,220,0.35); } .user-item.active { - background: rgba(0,242,255,0.15); - border-color: rgba(0,242,255,0.45); + background: #123047; + border-color: rgba(94,231,255,0.55); } -.user-name { font-weight: 600; } -.user-phone { font-size: 12px; color: rgba(255,255,255,0.55); margin-top: 2px; } +.user-name { font-weight: 600; color: #f2f8ff; } +.user-phone { font-size: 12px; color: #8fb3c9; margin-top: 2px; } .left-pager { margin-top: 10px; display: flex; justify-content: center; } .empty, .empty-right { - color: rgba(255,255,255,0.45); + color: #8fb3c9; text-align: center; padding: 40px 0; } @@ -334,13 +359,13 @@ onMounted(async () => { flex-wrap: wrap; margin-bottom: 12px; } -.sel-name { color: #00f2ff; font-weight: 700; font-size: 16px; } -.sel-phone { color: rgba(255,255,255,0.6); margin-left: 4px; } +.sel-name { color: #5ee7ff; font-weight: 700; font-size: 16px; } +.sel-phone { color: #8fb3c9; margin-left: 4px; } .filters { display: flex; gap: 8px; flex-wrap: wrap; } .log-change { white-space: pre-line; font-size: 13px; - color: #a8e6ff; + color: #9adfff; line-height: 1.5; } .pager { @@ -349,25 +374,112 @@ onMounted(async () => { justify-content: flex-end; } -:deep(.el-table) { background: transparent; color: #fff; } -:deep(.el-table th) { - background: rgba(0,242,255,0.15); - color: #00f2ff; - border-bottom: 1px solid rgba(0,242,255,0.3); +/* 表格强制深色,避免白底看不清 */ +:deep(.log-table) { + --el-table-bg-color: #0a1420; + --el-table-tr-bg-color: #0a1420; + --el-table-header-bg-color: #0b1a2a; + --el-table-row-hover-bg-color: #123047; + --el-table-border-color: rgba(255,255,255,0.1); + --el-table-text-color: #e8f4ff; + --el-table-header-text-color: #5ee7ff; + background: #0a1420 !important; + color: #e8f4ff !important; } -:deep(.el-table td) { - background: transparent; - color: #fff; - border-bottom: 1px solid rgba(255,255,255,0.08); +:deep(.log-table .el-table__inner-wrapper::before), +:deep(.log-table .el-table__border-left-patch), +:deep(.log-table .el-table__border-bottom-patch) { + background-color: #0a1420 !important; } -:deep(.el-table__row:hover td) { background: rgba(0,242,255,0.1) !important; } +:deep(.log-table th.el-table__cell), +:deep(.log-table td.el-table__cell) { + background-color: inherit !important; +} +:deep(.log-table .el-table__empty-text) { + color: #8fb3c9; +} +:deep(.log-table .el-loading-mask) { + background-color: rgba(7, 16, 24, 0.75); +} + +/* 输入框 / 选择器 */ :deep(.el-input__wrapper) { - background: rgba(0,0,0,0.5); - box-shadow: 0 0 0 1px rgba(0,242,255,0.25) inset; + background: #0a1420 !important; + box-shadow: 0 0 0 1px rgba(0,200,220,0.35) inset !important; +} +:deep(.el-input__inner) { + color: #e8f4ff !important; +} +:deep(.el-input__inner::placeholder) { + color: #6f8fa3 !important; +} +:deep(.el-select__wrapper) { + background: #0a1420 !important; + box-shadow: 0 0 0 1px rgba(0,200,220,0.35) inset !important; + color: #e8f4ff !important; +} +:deep(.el-select__placeholder) { + color: #6f8fa3 !important; +} +:deep(.el-select__selected-item) { + color: #e8f4ff !important; +} + +/* 分页 */ +:deep(.el-pagination) { + --el-pagination-bg-color: transparent; + --el-pagination-text-color: #cfe6f5; + --el-pagination-button-color: #cfe6f5; + --el-pagination-button-bg-color: #0a1420; + --el-pagination-hover-color: #5ee7ff; + --el-pagination-button-disabled-bg-color: #0a1420; +} +:deep(.el-pagination .el-pager li) { + background: #0a1420 !important; + color: #cfe6f5 !important; +} +:deep(.el-pagination .el-pager li.is-active) { + color: #5ee7ff !important; + background: #123047 !important; +} +:deep(.el-pagination .btn-prev), +:deep(.el-pagination .btn-next) { + background: #0a1420 !important; + color: #cfe6f5 !important; +} +:deep(.el-tag) { + --el-tag-bg-color: #123047; + --el-tag-border-color: rgba(94,231,255,0.35); + --el-tag-text-color: #9adfff; } -:deep(.el-input__inner) { color: #fff; } @media (max-width: 960px) { .layout { grid-template-columns: 1fr; } } + + +