From bfba8d7ad641d7eab7f1b4cc31682253fc7f5cf7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=8E=E5=BF=97=E5=BC=BA?= <357099073@qq.com>
Date: Sat, 1 Nov 2025 17:57:34 +0800
Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E9=87=8F=E6=9B=B4=E6=96=B0=EF=BC=8C?=
=?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
43.133.71.191 | 0
front/package.json | 1 -
front/src/assets/css/root.scss | 415 ------
front/src/views/components/sidebar.vue | 8 -
front/src/views/components/sub-sidebar.vue | 8 -
mobile/App.vue | 2 +-
pc/package-lock.json | 919 ++++++++++++-
pc/package.json | 3 +-
pc/src/App.vue | 1 -
pc/src/api/user.js | 44 +-
pc/src/assets/less/style.less | 1151 ++---------------
pc/src/components/CommonAside.vue | 100 +-
pc/src/components/CommonHeader.vue | 113 +-
pc/src/main.js | 6 +-
pc/src/stores/auth.js | 5 +-
pc/src/utils/theme.js | 72 --
pc/src/views/Main.vue | 4 +
.../views/apps/knowledge/components/edit.vue | 20 +-
pc/src/views/apps/knowledge/index.vue | 4 -
pc/src/views/login/index.vue | 341 +++--
pc/src/views/settings/systeminfo/index.vue | 16 +
pc/src/views/system/menus/manager.vue | 5 +-
pc/src/views/system/roles/index.vue | 17 +-
pc/src/views/system/users/index.vue | 537 ++++++--
server/controllers/auth.go | 401 +-----
server/controllers/user.go | 363 ++++++
server/models/user.go | 113 +-
server/routers/router.go | 15 +-
28 files changed, 2307 insertions(+), 2377 deletions(-)
create mode 100644 43.133.71.191
delete mode 100644 pc/src/utils/theme.js
create mode 100644 pc/src/views/settings/systeminfo/index.vue
create mode 100644 server/controllers/user.go
diff --git a/43.133.71.191 b/43.133.71.191
new file mode 100644
index 0000000..e69de29
diff --git a/front/package.json b/front/package.json
index c541b6c..3c19c3a 100644
--- a/front/package.json
+++ b/front/package.json
@@ -17,7 +17,6 @@
"@wangeditor/table-module": "^1.1.4",
"axios": "^1.11.0",
"chart.js": "^4.5.1",
- "element-plus": "^2.10.7",
"marked": "^16.4.1",
"pinia": "^3.0.3",
"pinia-plugin-persistedstate": "^4.5.0",
diff --git a/front/src/assets/css/root.scss b/front/src/assets/css/root.scss
index 9533aac..a3de164 100644
--- a/front/src/assets/css/root.scss
+++ b/front/src/assets/css/root.scss
@@ -1,11 +1,3 @@
-// 主题色变量(SCSS变量 - 默认为亮色主题)
-$primary-color: #3498db;
-$secondary-color: #2ecc71;
-$accent-color: #ffcc00;
-$background-color: #f8f9fa;
-$text-color: #333;
-$border-radius: 4px;
-
// 通用字体
$font-family-base: 'Segoe UI', 'Helvetica Neue', Arial, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
@@ -20,165 +12,6 @@ $box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
// 过渡
$transition-base: all 0.3s cubic-bezier(.25,.8,.25,1);
-
-// ==========================================
-// 主题系统 - 亮色和暗色主题
-// 使用 data-theme="light" 或 data-theme="dark" 来切换主题
-// ==========================================
-
-// 默认亮色主题
-:root[data-theme="light"],
-:root:not([data-theme]) {
- // 主题标识
- --theme-mode: light;
-
- // 主要颜色
- --primary-color: #1890ff;
- --primary-hover: #40a9ff;
- --primary-active: #096dd9;
- --secondary-color: #2ecc71;
- --secondary-hover: #27ae60;
- --secondary-active: #229954;
- --accent-color: #ffcc00;
- --accent-hover: #e6b800;
-
- // 背景颜色
- --background-color: #ffffff;
- --background-secondary: #f8f9fa;
- --background-tertiary: #f0f2f5;
- --background-hover: #e9ecef;
-
- // 文本颜色
- --text-color: #212529;
- --text-secondary: #6c757d;
- --text-tertiary: #adb5bd;
- --text-inverse: #ffffff;
-
- // 边框颜色
- --border-color: #dee2e6;
- --border-color-hover: #ced4da;
- --border-color-active: #adb5bd;
-
- // 状态颜色
- --success-color: #28a745;
- --success-bg: #d4edda;
- --warning-color: #ffc107;
- --warning-bg: #fff3cd;
- --error-color: #dc3545;
- --error-bg: #f8d7da;
- --info-color: #17a2b8;
- --info-bg: #d1ecf1;
-
- // 组件颜色
- --card-bg: #ffffff;
- --card-bg1: #1890ff;
- --card-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
- --sidebar-bg: #f8f9fa;
- --sidebar-hover: #e9ecef;
- --header-bg: #ffffff;
-
- // Hero 渐变(亮色主题 - 现代蓝色渐变)
- --hero-gradient-start: #667eea;
- --hero-gradient-end: #764ba2;
-
- // 阴影
- --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
- --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.08);
- --shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.1);
- --shadow-xl: 0 8px 24px rgba(0, 0, 0, 0.12);
-
- // 圆角
- --border-radius: 4px;
- --border-radius-sm: 2px;
- --border-radius-lg: 8px;
- --border-radius-xl: 12px;
- --border-radius-full: 9999px;
-
- // 过渡
- --transition-base: all 0.3s cubic-bezier(.25,.8,.25,1);
- --transition-fast: all 0.15s ease-in-out;
- --transition-slow: all 0.5s ease-in-out;
-
- // 字体
- --font-family-base: 'Segoe UI', 'Helvetica Neue', Arial, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
-}
-
-// 暗色主题
-:root[data-theme="dark"] {
- // 主题标识
- --theme-mode: dark;
-
- // 主要颜色
- --primary-color: #409EFF;
- --primary-hover: #66b1ff;
- --primary-active: #337ecc;
- --secondary-color: #58d68d;
- --secondary-hover: #2ecc71;
- --secondary-active: #27ae60;
- --accent-color: #f7dc6f;
- --accent-hover: #f4d03f;
-
- // 背景颜色
- --background-color: #1a1a1a;
- --background-secondary: #2d2d2d;
- --background-tertiary: #3d3d3d;
- --background-hover: #4a4a4a;
-
- // 文本颜色
- --text-color: #e9ecef;
- --text-secondary: #adb5bd;
- --text-tertiary: #6c757d;
- --text-inverse: #212529;
-
- // 边框颜色
- --border-color: #404040;
- --border-color-hover: #4d4d4d;
- --border-color-active: #5a5a5a;
-
- // 状态颜色
- --success-color: #58d68d;
- --success-bg: #1e3c24;
- --warning-color: #f7dc6f;
- --warning-bg: #4d3e1a;
- --error-color: #ec7063;
- --error-bg: #3c2626;
- --info-color: #5dade2;
- --info-bg: #1e2a33;
-
- // 组件颜色
- --card-bg: #2d2d2d;
- --card-bg1: #2d2d2d;
- --card-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
- --sidebar-bg: #1f1f1f;
- --sidebar-hover: #3d3d3d;
- --header-bg: #2d2d2d;
-
- // Hero 渐变(暗色主题 - 深紫色渐变)
- --hero-gradient-start: #4a5568;
- --hero-gradient-end: #2d3748;
-
- // 阴影
- --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
- --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.4);
- --shadow-lg: 0 4px 16px rgba(0, 0, 0, 0.5);
- --shadow-xl: 0 8px 24px rgba(0, 0, 0, 0.6);
-
- // 圆角
- --border-radius: 4px;
- --border-radius-sm: 2px;
- --border-radius-lg: 8px;
- --border-radius-xl: 12px;
- --border-radius-full: 9999px;
-
- // 过渡
- --transition-base: all 0.3s cubic-bezier(.25,.8,.25,1);
- --transition-fast: all 0.15s ease-in-out;
- --transition-slow: all 0.5s ease-in-out;
-
- // 字体
- --font-family-base: 'Segoe UI', 'Helvetica Neue', Arial, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
-}
-
body {
font-family: var(--font-family-base);
color: var(--text-color);
@@ -291,251 +124,3 @@ a {
html {
scroll-behavior: smooth;
}
-
-// ==========================================
-// Element Plus 主题覆盖 - 支持主题切换
-// ==========================================
-
-// 亮色主题下的 Element Plus 组件
-:root[data-theme="light"],
-:root:not([data-theme]) {
- --el-bg-color: #ffffff;
- --el-bg-color-page: #f2f3f5;
- --el-text-color-primary: #303133;
- --el-text-color-regular: #606266;
- --el-text-color-secondary: #909399;
- --el-text-color-placeholder: #c0c4cc;
- --el-text-color-disabled: #c0c4cc;
- --el-border-color: #dcdfe6;
- --el-border-color-light: #e4e7ed;
- --el-border-color-lighter: #ebeef5;
- --el-border-color-extra-light: #f2f6fc;
- --el-border-color-dark: #d4d7de;
- --el-border-color-darker: #cdd0d6;
-
- // 组件背景
- --el-fill-color: #f0f2f5;
- --el-fill-color-light: #f5f7fa;
- --el-fill-color-lighter: #fafafa;
- --el-fill-color-extra-light: #fafcff;
- --el-fill-color-dark: #ebedf0;
- --el-fill-color-darker: #e6e8eb;
- --el-fill-color-blank: #ffffff;
-
- // 组件颜色
- --el-color-primary: #1890ff;
- --el-color-success: #2ecc71;
- --el-color-warning: #ffcc00;
- --el-color-danger: #dc3545;
- --el-color-error: #dc3545;
- --el-color-info: #909399;
-
- // 阴影
- --el-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
- --el-box-shadow-light: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04);
- --el-box-shadow-base: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04);
- --el-box-shadow-dark: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.12);
-
- // 覆盖 Element Plus 表格样式(亮色主题)
- --el-table-bg-color: #ffffff;
- --el-table-header-bg-color: #fafafa;
- --el-table-header-text-color: #909399;
- --el-table-row-hover-bg-color: #f5f7fa;
- --el-table-border-color: #ebeef5;
- --el-table-border: 1px solid #ebeef5;
-
- // 对话框
- --el-overlay-color-light: rgba(0, 0, 0, 0.5);
- --el-overlay-color-lighter: rgba(0, 0, 0, 0.3);
- --el-mask-color: rgba(0, 0, 0, 0.5);
- --el-mask-color-extra-light: rgba(0, 0, 0, 0.2);
-}
-
-// 暗色主题下的 Element Plus 组件
-:root[data-theme="dark"] {
- --el-bg-color: #2d2d2d;
- --el-bg-color-page: #1a1a1a;
- --el-text-color-primary: #e9ecef;
- --el-text-color-regular: #adb5bd;
- --el-text-color-secondary: #6c757d;
- --el-text-color-placeholder: #495057;
- --el-text-color-disabled: #495057;
- --el-border-color: #404040;
- --el-border-color-light: #404040;
- --el-border-color-lighter: #3d3d3d;
- --el-border-color-extra-light: #3d3d3d;
- --el-border-color-dark: #4a4a4a;
- --el-border-color-darker: #4a4a4a;
-
- // 组件背景
- --el-fill-color: #3d3d3d;
- --el-fill-color-light: #3d3d3d;
- --el-fill-color-lighter: #3d3d3d;
- --el-fill-color-extra-light: #3d3d3d;
- --el-fill-color-dark: #4a4a4a;
- --el-fill-color-darker: #4a4a4a;
- --el-fill-color-blank: #2d2d2d;
-
- // 组件颜色
- --el-color-primary: #409EFF;
- --el-color-success: #58d68d;
- --el-color-warning: #f7dc6f;
- --el-color-danger: #ec7063;
- --el-color-error: #ec7063;
- --el-color-info: #adb5bd;
-
- // 阴影(暗色主题使用更深的阴影)
- --el-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.3);
- --el-box-shadow-light: 0 2px 4px rgba(0, 0, 0, 0.5);
- --el-box-shadow-base: 0 2px 4px rgba(0, 0, 0, 0.4);
- --el-box-shadow-dark: 0 2px 4px rgba(0, 0, 0, 0.6);
-
- // 覆盖 Element Plus 表格样式
- --el-table-bg-color: var(--card-bg);
- --el-table-header-bg-color: var(--header-bg);
- --el-table-header-text-color: var(--text-color);
- --el-table-row-hover-bg-color: var(--background-hover);
- --el-table-border-color: var(--border-color);
- --el-table-border: 1px solid var(--border-color);
-
- // 对话框
- --el-overlay-color-light: rgba(0, 0, 0, 0.7);
- --el-overlay-color-lighter: rgba(0, 0, 0, 0.5);
- --el-mask-color: rgba(0, 0, 0, 0.8);
- --el-mask-color-extra-light: rgba(0, 0, 0, 0.3);
-}
-
-// ==========================================
-// Element Plus 组件强制样式覆盖
-// ==========================================
-
-// 亮色和暗色主题统一样式
-.el-table {
- background-color: var(--card-bg);
- color: var(--text-color);
- transition: var(--transition-base);
-
- th.el-table__cell {
- background-color: var(--header-bg);
- color: var(--text-color);
- border-bottom-color: var(--border-color);
- }
-
- td.el-table__cell {
- background-color: var(--card-bg);
- color: var(--text-color);
- border-bottom-color: var(--border-color);
- }
-
- .el-table__row:hover {
- background-color: var(--background-hover) !important;
- }
-
- .el-table__row.current-row {
- background-color: var(--background-hover) !important;
- }
-
- .el-table__border {
- border-color: var(--border-color);
- }
-}
-
-.el-dialog {
- background-color: var(--card-bg);
- color: var(--text-color);
- transition: var(--transition-base);
-
- .el-dialog__header {
- border-bottom: 1px solid var(--border-color);
-
- .el-dialog__title {
- color: var(--text-color);
- }
- }
-
- .el-dialog__body {
- color: var(--text-color);
- }
-
- .el-dialog__footer {
- border-top: 1px solid var(--border-color);
- }
-}
-
-.el-descriptions {
- .el-descriptions__label {
- color: var(--text-secondary);
- }
-
- .el-descriptions__content {
- color: var(--text-color);
- }
-
- .el-descriptions__border {
- border-color: var(--border-color);
- }
-}
-
-// 表单
-.el-form {
- .el-form-item__label {
- color: var(--text-color);
- }
-
- .el-input__inner,
- .el-textarea__inner {
- background-color: var(--background-secondary);
- color: var(--text-color);
- border-color: var(--border-color);
-
- &::placeholder {
- color: var(--text-tertiary);
- }
- }
-}
-
-// 按钮
-.el-button {
- background-color: var(--background-secondary);
- color: var(--text-color);
- border-color: var(--border-color);
- transition: var(--transition-fast);
-
- &:hover {
- border-color: var(--primary-color);
- color: var(--primary-color);
- }
-
- &.el-button--primary {
- background-color: var(--primary-color);
- color: var(--text-inverse);
- border-color: var(--primary-color);
-
- &:hover {
- background-color: var(--primary-hover);
- }
- }
-}
-
-// 标签页
-.el-tabs {
- .el-tabs__header {
- background-color: var(--card-bg);
- }
-
- .el-tabs__item {
- color: var(--text-secondary);
-
- &.is-active {
- color: var(--primary-color);
- }
-
- &:hover {
- color: var(--primary-color);
- }
- }
-
- .el-tabs__nav-wrap::after {
- background-color: var(--border-color);
- }
-}
diff --git a/front/src/views/components/sidebar.vue b/front/src/views/components/sidebar.vue
index fb2cada..bb6d1e3 100644
--- a/front/src/views/components/sidebar.vue
+++ b/front/src/views/components/sidebar.vue
@@ -368,14 +368,6 @@ onMounted(() => {
}
}
-.sidebar-menu :deep(.el-menu-item.is-active) {
- background-color: var(--background-hover) !important;
- color: var(--primary-color) !important;
-
- i {
- color: var(--primary-color) !important;
- }
-}
.user-nickname {
font-size: 14px;
font-weight: bold;
diff --git a/front/src/views/components/sub-sidebar.vue b/front/src/views/components/sub-sidebar.vue
index 4670b4f..dad3b43 100644
--- a/front/src/views/components/sub-sidebar.vue
+++ b/front/src/views/components/sub-sidebar.vue
@@ -156,14 +156,6 @@ const handleSubMenuClick = (item: SubMenuItem) => {
}
}
- &.is-active {
- background-color: var(--background-hover) !important;
- color: var(--primary-color) !important;
-
- i {
- color: var(--primary-color) !important;
- }
- }
}
}
diff --git a/mobile/App.vue b/mobile/App.vue
index 5f2d664..a5765c3 100644
--- a/mobile/App.vue
+++ b/mobile/App.vue
@@ -32,7 +32,7 @@ export default {
this.detectDevice();
this.initAuth();
this.initRouteGuard();
- this.initTheme();
+ // this.initTheme();
},
initAuth() {
diff --git a/pc/package-lock.json b/pc/package-lock.json
index cb354d9..42b29a4 100644
--- a/pc/package-lock.json
+++ b/pc/package-lock.json
@@ -13,7 +13,7 @@
"axios": "^1.13.1",
"chart": "^0.1.2",
"chart.js": "^4.5.1",
- "element-plus": "^2.11.5",
+ "element-plus": "^2.11.7",
"less": "^4.4.2",
"marked": "^16.4.1",
"pinia": "^3.0.3",
@@ -23,6 +23,7 @@
"devDependencies": {
"@types/node": "^24.9.2",
"@vitejs/plugin-vue": "^6.0.1",
+ "sass-embedded": "^1.93.3",
"unplugin-auto-import": "^20.2.0",
"unplugin-vue-components": "^30.0.0",
"vite": "^7.1.7"
@@ -83,6 +84,13 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@bufbuild/protobuf": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmmirror.com/@bufbuild/protobuf/-/protobuf-2.10.0.tgz",
+ "integrity": "sha512-fdRs9PSrBF7QUntpZpq6BTw58fhgGJojgg39m9oFOJGZT+nip9b0so5cYY1oWl5pvemDLr0cPPsH46vwThEbpQ==",
+ "dev": true,
+ "license": "(Apache-2.0 AND BSD-3-Clause)"
+ },
"node_modules/@ctrl/tinycolor": {
"version": "3.6.1",
"resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz",
@@ -623,6 +631,316 @@
"integrity": "sha512-M5UknZPHRu3DEDWoipU6sE8PdkZ6Z/S+v4dD+Ke8IaNlpdSQah50lz1KtcFBa2vsdOnwbbnxJwVM4wty6udA5w==",
"license": "MIT"
},
+ "node_modules/@parcel/watcher": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher/-/watcher-2.5.1.tgz",
+ "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "detect-libc": "^1.0.3",
+ "is-glob": "^4.0.3",
+ "micromatch": "^4.0.5",
+ "node-addon-api": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher-android-arm64": "2.5.1",
+ "@parcel/watcher-darwin-arm64": "2.5.1",
+ "@parcel/watcher-darwin-x64": "2.5.1",
+ "@parcel/watcher-freebsd-x64": "2.5.1",
+ "@parcel/watcher-linux-arm-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm-musl": "2.5.1",
+ "@parcel/watcher-linux-arm64-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm64-musl": "2.5.1",
+ "@parcel/watcher-linux-x64-glibc": "2.5.1",
+ "@parcel/watcher-linux-x64-musl": "2.5.1",
+ "@parcel/watcher-win32-arm64": "2.5.1",
+ "@parcel/watcher-win32-ia32": "2.5.1",
+ "@parcel/watcher-win32-x64": "2.5.1"
+ }
+ },
+ "node_modules/@parcel/watcher-android-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz",
+ "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz",
+ "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz",
+ "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-freebsd-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz",
+ "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz",
+ "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz",
+ "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz",
+ "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz",
+ "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz",
+ "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz",
+ "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz",
+ "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-ia32": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz",
+ "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmmirror.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz",
+ "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
"node_modules/@popperjs/core": {
"name": "@sxzz/popperjs-es",
"version": "2.11.7",
@@ -1556,6 +1874,27 @@
"url": "https://github.com/sponsors/antfu"
}
},
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/buffer-builder": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/buffer-builder/-/buffer-builder-0.2.0.tgz",
+ "integrity": "sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==",
+ "dev": true,
+ "license": "MIT/X11"
+ },
"node_modules/call-bind": {
"version": "1.0.8",
"resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.8.tgz",
@@ -1649,6 +1988,13 @@
"node": "*"
}
},
+ "node_modules/colorjs.io": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmmirror.com/colorjs.io/-/colorjs.io-0.5.2.tgz",
+ "integrity": "sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
@@ -1757,9 +2103,9 @@
}
},
"node_modules/dayjs": {
- "version": "1.11.18",
- "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.18.tgz",
- "integrity": "sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==",
+ "version": "1.11.19",
+ "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.19.tgz",
+ "integrity": "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==",
"license": "MIT"
},
"node_modules/debug": {
@@ -1823,6 +2169,20 @@
"node": ">=0.4.0"
}
},
+ "node_modules/detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "optional": true,
+ "bin": {
+ "detect-libc": "bin/detect-libc.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
"node_modules/dom7": {
"version": "3.0.0",
"resolved": "https://registry.npmmirror.com/dom7/-/dom7-3.0.0.tgz",
@@ -1847,9 +2207,9 @@
}
},
"node_modules/element-plus": {
- "version": "2.11.5",
- "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.11.5.tgz",
- "integrity": "sha512-O+bIVHQCjUDm4GiIznDXRoS8ar2TpWLwfOGnN/Aam0VXf5kbuc4SxdKKJdovWNxmxeqbcwjsSZPKgtXNcqys4A==",
+ "version": "2.11.7",
+ "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.11.7.tgz",
+ "integrity": "sha512-Bh47wuzsqaNBNDkbtlOlZER1cGcOB8GsXp/+C9b95MOrk0wvoHUV4NKKK7xMkfYNFYdYysQ752oMhnExgAL6+g==",
"license": "MIT",
"dependencies": {
"@ctrl/tinycolor": "^3.4.1",
@@ -2190,6 +2550,20 @@
}
}
},
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/follow-redirects": {
"version": "1.15.11",
"resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.11.tgz",
@@ -2404,6 +2778,16 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/has-property-descriptors": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
@@ -2552,6 +2936,13 @@
"url": "https://opencollective.com/immer"
}
},
+ "node_modules/immutable": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmmirror.com/immutable/-/immutable-5.1.4.tgz",
+ "integrity": "sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/internal-slot": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.1.0.tgz",
@@ -2678,6 +3069,17 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/is-finalizationregistry": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz",
@@ -2712,6 +3114,20 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/is-hotkey": {
"version": "0.2.0",
"resolved": "https://registry.npmmirror.com/is-hotkey/-/is-hotkey-0.2.0.tgz",
@@ -2742,6 +3158,17 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
"node_modules/is-number-object": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/is-number-object/-/is-number-object-1.1.1.tgz",
@@ -3088,6 +3515,35 @@
"integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==",
"license": "MIT"
},
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/micromatch/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
"node_modules/mime": {
"version": "1.6.0",
"resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz",
@@ -3232,6 +3688,14 @@
"integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==",
"license": "ISC"
},
+ "node_modules/node-addon-api": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmmirror.com/node-addon-api/-/node-addon-api-7.1.1.tgz",
+ "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
+ },
"node_modules/normalize-wheel-es": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz",
@@ -3579,6 +4043,16 @@
"fsevents": "~2.3.2"
}
},
+ "node_modules/rxjs": {
+ "version": "7.8.2",
+ "resolved": "https://registry.npmmirror.com/rxjs/-/rxjs-7.8.2.tgz",
+ "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
"node_modules/safe-array-concat": {
"version": "1.1.3",
"resolved": "https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
@@ -3638,6 +4112,377 @@
"license": "MIT",
"optional": true
},
+ "node_modules/sass": {
+ "version": "1.93.3",
+ "resolved": "https://registry.npmmirror.com/sass/-/sass-1.93.3.tgz",
+ "integrity": "sha512-elOcIZRTM76dvxNAjqYrucTSI0teAF/L2Lv0s6f6b7FOwcwIuA357bIE871580AjHJuSvLIRUosgV+lIWx6Rgg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "chokidar": "^4.0.0",
+ "immutable": "^5.0.2",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ },
+ "bin": {
+ "sass": "sass.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher": "^2.4.1"
+ }
+ },
+ "node_modules/sass-embedded": {
+ "version": "1.93.3",
+ "resolved": "https://registry.npmmirror.com/sass-embedded/-/sass-embedded-1.93.3.tgz",
+ "integrity": "sha512-+VUy01yfDqNmIVMd/LLKl2TTtY0ovZN0rTonh+FhKr65mFwIYgU9WzgIZKS7U9/SPCQvWTsTGx9jyt+qRm/XFw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@bufbuild/protobuf": "^2.5.0",
+ "buffer-builder": "^0.2.0",
+ "colorjs.io": "^0.5.0",
+ "immutable": "^5.0.2",
+ "rxjs": "^7.4.0",
+ "supports-color": "^8.1.1",
+ "sync-child-process": "^1.0.2",
+ "varint": "^6.0.0"
+ },
+ "bin": {
+ "sass": "dist/bin/sass.js"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ },
+ "optionalDependencies": {
+ "sass-embedded-all-unknown": "1.93.3",
+ "sass-embedded-android-arm": "1.93.3",
+ "sass-embedded-android-arm64": "1.93.3",
+ "sass-embedded-android-riscv64": "1.93.3",
+ "sass-embedded-android-x64": "1.93.3",
+ "sass-embedded-darwin-arm64": "1.93.3",
+ "sass-embedded-darwin-x64": "1.93.3",
+ "sass-embedded-linux-arm": "1.93.3",
+ "sass-embedded-linux-arm64": "1.93.3",
+ "sass-embedded-linux-musl-arm": "1.93.3",
+ "sass-embedded-linux-musl-arm64": "1.93.3",
+ "sass-embedded-linux-musl-riscv64": "1.93.3",
+ "sass-embedded-linux-musl-x64": "1.93.3",
+ "sass-embedded-linux-riscv64": "1.93.3",
+ "sass-embedded-linux-x64": "1.93.3",
+ "sass-embedded-unknown-all": "1.93.3",
+ "sass-embedded-win32-arm64": "1.93.3",
+ "sass-embedded-win32-x64": "1.93.3"
+ }
+ },
+ "node_modules/sass-embedded-all-unknown": {
+ "version": "1.93.3",
+ "resolved": "https://registry.npmmirror.com/sass-embedded-all-unknown/-/sass-embedded-all-unknown-1.93.3.tgz",
+ "integrity": "sha512-3okGgnE41eg+CPLtAPletu6nQ4N0ij7AeW+Sl5Km4j29XcmqZQeFwYjHe1AlKTEgLi/UAONk1O8i8/lupeKMbw==",
+ "cpu": [
+ "!arm",
+ "!arm64",
+ "!riscv64",
+ "!x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "sass": "1.93.3"
+ }
+ },
+ "node_modules/sass-embedded-android-arm": {
+ "version": "1.93.3",
+ "resolved": "https://registry.npmmirror.com/sass-embedded-android-arm/-/sass-embedded-android-arm-1.93.3.tgz",
+ "integrity": "sha512-8xOw9bywfOD6Wv24BgCmgjkk6tMrsOTTHcb28KDxeJtFtoxiUyMbxo0vChpPAfp2Hyg2tFFKS60s0s4JYk+Raw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-android-arm64": {
+ "version": "1.93.3",
+ "resolved": "https://registry.npmmirror.com/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.93.3.tgz",
+ "integrity": "sha512-uqUl3Kt1IqdGVAcAdbmC+NwuUJy8tM+2ZnB7/zrt6WxWVShVCRdFnWR9LT8HJr7eJN7AU8kSXxaVX/gedanPsg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-android-riscv64": {
+ "version": "1.93.3",
+ "resolved": "https://registry.npmmirror.com/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.93.3.tgz",
+ "integrity": "sha512-2jNJDmo+3qLocjWqYbXiBDnfgwrUeZgZFHJIwAefU7Fn66Ot7rsXl+XPwlokaCbTpj7eMFIqsRAZ/uDueXNCJg==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-android-x64": {
+ "version": "1.93.3",
+ "resolved": "https://registry.npmmirror.com/sass-embedded-android-x64/-/sass-embedded-android-x64-1.93.3.tgz",
+ "integrity": "sha512-y0RoAU6ZenQFcjM9PjQd3cRqRTjqwSbtWLL/p68y2oFyh0QGN0+LQ826fc0ZvU/AbqCsAizkqjzOn6cRZJxTTQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-darwin-arm64": {
+ "version": "1.93.3",
+ "resolved": "https://registry.npmmirror.com/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.93.3.tgz",
+ "integrity": "sha512-7zb/hpdMOdKteK17BOyyypemglVURd1Hdz6QGsggy60aUFfptTLQftLRg8r/xh1RbQAUKWFbYTNaM47J9yPxYg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-darwin-x64": {
+ "version": "1.93.3",
+ "resolved": "https://registry.npmmirror.com/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.93.3.tgz",
+ "integrity": "sha512-Ek1Vp8ZDQEe327Lz0b7h3hjvWH3u9XjJiQzveq74RPpJQ2q6d9LfWpjiRRohM4qK6o4XOHw1X10OMWPXJtdtWg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-arm": {
+ "version": "1.93.3",
+ "resolved": "https://registry.npmmirror.com/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.93.3.tgz",
+ "integrity": "sha512-yeiv2y+dp8B4wNpd3+JsHYD0mvpXSfov7IGyQ1tMIR40qv+ROkRqYiqQvAOXf76Qwh4Y9OaYZtLpnsPjfeq6mA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-arm64": {
+ "version": "1.93.3",
+ "resolved": "https://registry.npmmirror.com/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.93.3.tgz",
+ "integrity": "sha512-RBrHWgfd8Dd8w4fbmdRVXRrhh8oBAPyeWDTKAWw8ZEmuXfVl4ytjDuyxaVilh6rR1xTRTNpbaA/YWApBlLrrNw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-musl-arm": {
+ "version": "1.93.3",
+ "resolved": "https://registry.npmmirror.com/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.93.3.tgz",
+ "integrity": "sha512-fU0fwAwbp7sBE3h5DVU5UPzvaLg7a4yONfFWkkcCp6ZrOiPuGRHXXYriWQ0TUnWy4wE+svsVuWhwWgvlb/tkKg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-musl-arm64": {
+ "version": "1.93.3",
+ "resolved": "https://registry.npmmirror.com/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.93.3.tgz",
+ "integrity": "sha512-PS829l+eUng+9W4PFclXGb4uA2+965NHV3/Sa5U7qTywjeeUUYTZg70dJHSqvhrBEfCc2XJABeW3adLJbyQYkw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-musl-riscv64": {
+ "version": "1.93.3",
+ "resolved": "https://registry.npmmirror.com/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.93.3.tgz",
+ "integrity": "sha512-cK1oBY+FWQquaIGEeQ5H74KTO8cWsSWwXb/WaildOO9U6wmUypTgUYKQ0o5o/29nZbWWlM1PHuwVYTSnT23Jjg==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-musl-x64": {
+ "version": "1.93.3",
+ "resolved": "https://registry.npmmirror.com/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.93.3.tgz",
+ "integrity": "sha512-A7wkrsHu2/I4Zpa0NMuPGkWDVV7QGGytxGyUq3opSXgAexHo/vBPlGoDXoRlSdex0cV+aTMRPjoGIfdmNlHwyg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-riscv64": {
+ "version": "1.93.3",
+ "resolved": "https://registry.npmmirror.com/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.93.3.tgz",
+ "integrity": "sha512-vWkW1+HTF5qcaHa6hO80gx/QfB6GGjJUP0xLbnAoY4pwEnw5ulGv6RM8qYr8IDhWfVt/KH+lhJ2ZFxnJareisQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-linux-x64": {
+ "version": "1.93.3",
+ "resolved": "https://registry.npmmirror.com/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.93.3.tgz",
+ "integrity": "sha512-k6uFxs+e5jSuk1Y0niCwuq42F9ZC5UEP7P+RIOurIm8w/5QFa0+YqeW+BPWEW5M1FqVOsNZH3qGn4ahqvAEjPA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-unknown-all": {
+ "version": "1.93.3",
+ "resolved": "https://registry.npmmirror.com/sass-embedded-unknown-all/-/sass-embedded-unknown-all-1.93.3.tgz",
+ "integrity": "sha512-o5wj2rLpXH0C+GJKt/VpWp6AnMsCCbfFmnMAttcrsa+U3yrs/guhZ3x55KAqqUsE8F47e3frbsDL+1OuQM5DAA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "!android",
+ "!darwin",
+ "!linux",
+ "!win32"
+ ],
+ "dependencies": {
+ "sass": "1.93.3"
+ }
+ },
+ "node_modules/sass-embedded-win32-arm64": {
+ "version": "1.93.3",
+ "resolved": "https://registry.npmmirror.com/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.93.3.tgz",
+ "integrity": "sha512-0dOfT9moy9YmBolodwYYXtLwNr4jL4HQC9rBfv6mVrD7ud8ue2kDbn+GVzj1hEJxvEexVSmDCf7MHUTLcGs9xQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/sass-embedded-win32-x64": {
+ "version": "1.93.3",
+ "resolved": "https://registry.npmmirror.com/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.93.3.tgz",
+ "integrity": "sha512-wHFVfxiS9hU/sNk7KReD+lJWRp3R0SLQEX4zfOnRP2zlvI2X4IQR5aZr9GNcuMP6TmNpX0nQPZTegS8+h9RrEg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
"node_modules/sax": {
"version": "1.4.1",
"resolved": "https://registry.npmmirror.com/sax/-/sax-1.4.1.tgz",
@@ -3976,6 +4821,45 @@
"url": "https://github.com/sponsors/mesqueeb"
}
},
+ "node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/sync-child-process": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/sync-child-process/-/sync-child-process-1.0.2.tgz",
+ "integrity": "sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "sync-message-port": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/sync-message-port": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmmirror.com/sync-message-port/-/sync-message-port-1.1.3.tgz",
+ "integrity": "sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
"node_modules/tiny-warning": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/tiny-warning/-/tiny-warning-1.0.3.tgz",
@@ -3999,6 +4883,20 @@
"url": "https://github.com/sponsors/SuperchupuDev"
}
},
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
"node_modules/traverse": {
"version": "0.6.11",
"resolved": "https://registry.npmmirror.com/traverse/-/traverse-0.6.11.tgz",
@@ -4284,6 +5182,13 @@
}
}
},
+ "node_modules/varint": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/varint/-/varint-6.0.0.tgz",
+ "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/vite": {
"version": "7.1.12",
"resolved": "https://registry.npmmirror.com/vite/-/vite-7.1.12.tgz",
diff --git a/pc/package.json b/pc/package.json
index 4a4dd70..15da69e 100644
--- a/pc/package.json
+++ b/pc/package.json
@@ -14,7 +14,7 @@
"axios": "^1.13.1",
"chart": "^0.1.2",
"chart.js": "^4.5.1",
- "element-plus": "^2.11.5",
+ "element-plus": "^2.11.7",
"less": "^4.4.2",
"marked": "^16.4.1",
"pinia": "^3.0.3",
@@ -24,6 +24,7 @@
"devDependencies": {
"@types/node": "^24.9.2",
"@vitejs/plugin-vue": "^6.0.1",
+ "sass-embedded": "^1.93.3",
"unplugin-auto-import": "^20.2.0",
"unplugin-vue-components": "^30.0.0",
"vite": "^7.1.7"
diff --git a/pc/src/App.vue b/pc/src/App.vue
index 5be6cb2..bf9547c 100644
--- a/pc/src/App.vue
+++ b/pc/src/App.vue
@@ -1,5 +1,4 @@
diff --git a/pc/src/api/user.js b/pc/src/api/user.js
index a6a2b34..fae3459 100644
--- a/pc/src/api/user.js
+++ b/pc/src/api/user.js
@@ -1,18 +1,35 @@
import request from '@/utils/request';
-
-// 获取用户信息
-export function getUserInfo(userId) {
+
+//获取所有用户信息
+export function getAllUsers() {
return request({
- url: `/users/${userId}`,
+ url: '/api/allUsers',
method: 'get',
});
}
-// 更新用户信息
-export function updateUserInfo(userId, data) {
+// 获取用户信息
+export function getUserInfo(userId) {
return request({
- url: `/users/${userId}`,
- method: 'put',
+ url: `/api/user/${userId}`,
+ method: 'get',
+ });
+}
+
+// 添加用户
+export function addUser(data) {
+ return request({
+ url: '/api/addUser',
+ method: 'post',
+ data,
+ });
+}
+
+// 更新用户信息
+export function editUser(userId, data) {
+ return request({
+ url: `/api/editUser/${userId}`,
+ method: 'post',
data,
});
}
@@ -20,7 +37,16 @@ export function updateUserInfo(userId, data) {
// 删除用户
export function deleteUser(userId) {
return request({
- url: `/users/${userId}`,
+ url: `/api/deleteUser/${userId}`,
method: 'delete',
});
+}
+
+// 修改密码
+export function changePassword(userId, data) {
+ return request({
+ url: `/api/changePassword/${userId}`,
+ method: 'post',
+ data,
+ });
}
\ No newline at end of file
diff --git a/pc/src/assets/less/style.less b/pc/src/assets/less/style.less
index 89ce311..f1df539 100644
--- a/pc/src/assets/less/style.less
+++ b/pc/src/assets/less/style.less
@@ -1,1113 +1,108 @@
-// 主题变量定义
+// Element Plus 主题变量覆盖
:root {
- // 亮色主题
- --primary-color: #409eff;
- --success-color: #67c23a;
- --warning-color: #e6a23c;
- --danger-color: #f56c6c;
- --info-color: #909399;
+ // 基础颜色
+ --el-color-primary: #409eff;
+ --el-color-success: #67c23a;
+ --el-color-warning: #e6a23c;
+ --el-color-danger: #f56c6c;
+ --el-color-info: #909399;
// 背景颜色
- --bg-color: #ffffff;
- --bg-color-page: #f2f3f5;
- --bg-color-overlay: #ffffff;
+ --el-bg-color: #ffffff;
+ --el-bg-color-page: #f2f3f5;
+ --el-bg-color-overlay: #ffffff;
// 文字颜色
- --text-color-primary: #303133;
- --text-color-regular: #606266;
- --text-color-secondary: #909399;
- --text-color-placeholder: #c0c4cc;
- --text-color-disabled: #c0c4cc;
+ --el-text-color-primary: #303133;
+ --el-text-color-regular: #606266;
+ --el-text-color-secondary: #909399;
+ --el-text-color-placeholder: #a8abb2;
+ --el-text-color-disabled: #c0c4cc;
// 边框颜色
- --border-color: #dcdfe6;
- --border-color-light: #e4e7ed;
- --border-color-lighter: #ebeef5;
- --border-color-extra-light: #f2f6fc;
- --border-color-dark: #d4d7de;
- --border-color-darker: #cdd0d6;
+ --el-border-color: #dcdfe6;
+ --el-border-color-light: #e4e7ed;
+ --el-border-color-lighter: #ebeef5;
+ --el-border-color-extra-light: #f2f6fc;
+ --el-border-color-dark: #d4d7de;
+ --el-border-color-darker: #cdd0d6;
// 填充颜色
- --fill-color: #f0f2f5;
- --fill-color-light: #f5f7fa;
- --fill-color-lighter: #fafafa;
- --fill-color-extra-light: #fafcff;
- --fill-color-dark: #ebedf0;
- --fill-color-darker: #e6e8eb;
- --fill-color-blank: #ffffff;
+ --el-fill-color: #f0f2f5;
+ --el-fill-color-light: #f5f7fa;
+ --el-fill-color-lighter: #fafafa;
+ --el-fill-color-extra-light: #fafcff;
+ --el-fill-color-dark: #ebedf0;
+ --el-fill-color-darker: #e6e8eb;
+ --el-fill-color-blank: #ffffff;
- // 阴影
- --box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
- --box-shadow-light: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04);
- --box-shadow-base: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04);
- --box-shadow-dark: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.12);
-
- // 头部背景
- --header-bg-color: #0081ff;
- --header-text-color: #ffffff;
-
- // 侧边栏背景
- --aside-bg-color: #0081ff;
- --aside-text-color: #ffffff;
-
- // 卡片背景
- --card-bg-color: #ffffff;
- --card-border-color: #ebeef5;
-
- // container-box 亮色主题
- --container-box-bg: #fff;
- --container-box-border: #ebeef5;
- --container-box-shadow: 0 2px 8px 0 rgba(0,0,0,0.04);
-
- // 滚动条颜色
- --scrollbar-track-color: #f1f1f1;
- --scrollbar-thumb-color: #c1c1c1;
- --scrollbar-thumb-hover-color: #a8a8a8;
-
- // Element Plus 组件主题适配
- --el-bg-color: var(--bg-color);
- --el-bg-color-page: var(--bg-color-page);
- --el-text-color-primary: var(--text-color-primary);
- --el-text-color-regular: var(--text-color-regular);
- --el-text-color-secondary: var(--text-color-secondary);
- --el-text-color-placeholder: var(--text-color-placeholder);
- --el-border-color: var(--border-color);
- --el-fill-color: var(--fill-color);
- --el-fill-color-light: var(--fill-color-light);
- --el-fill-color-lighter: var(--fill-color-lighter);
- --el-fill-color-extra-light: var(--fill-color-extra-light);
- --el-fill-color-dark: var(--fill-color-dark);
- --el-fill-color-darker: var(--fill-color-darker);
- --el-fill-color-blank: var(--fill-color-blank);
+ // Message z-index
+ --el-message-z-index: 9999;
}
// 暗色主题
[data-theme="dark"] {
- --primary-color: #409eff;
- --success-color: #67c23a;
- --warning-color: #e6a23c;
- --danger-color: #f56c6c;
- --info-color: #909399;
+ --el-color-primary: #409eff;
+ --el-color-success: #67c23a;
+ --el-color-warning: #e6a23c;
+ --el-color-danger: #f56c6c;
+ --el-color-info: #909399;
- // 背景颜色
- --bg-color: #1d1e1f;
- --bg-color-page: #141414;
- --bg-color-overlay: #1d1e1f;
+ --el-bg-color: #1d1e1f;
+ --el-bg-color-page: #141414;
+ --el-bg-color-overlay: #1d1e1f;
- // 文字颜色
- --text-color-primary: #e5eaf3;
- --text-color-regular: #cfd3dc;
- --text-color-secondary: #a3a6ad;
- --text-color-placeholder: #6c6e72;
- --text-color-disabled: #6c6e72;
+ --el-text-color-primary: #e5eaf3;
+ --el-text-color-regular: #cfd3dc;
+ --el-text-color-secondary: #a3a6ad;
+ --el-text-color-placeholder: #6c6e72;
+ --el-text-color-disabled: #6c6e72;
- // 边框颜色
- --border-color: #4c4d4f;
- --border-color-light: #414243;
- --border-color-lighter: #363637;
- --border-color-extra-light: #2b2b2c;
- --border-color-dark: #58585b;
- --border-color-darker: #636466;
+ --el-border-color: #4c4d4f;
+ --el-border-color-light: #414243;
+ --el-border-color-lighter: #363637;
+ --el-border-color-extra-light: #2b2b2c;
+ --el-border-color-dark: #58585b;
+ --el-border-color-darker: #636466;
- // 填充颜色
- --fill-color: #2b2b2c;
- --fill-color-light: #262727;
- --fill-color-lighter: #1d1e1f;
- --fill-color-extra-light: #191919;
- --fill-color-dark: #39393a;
- --fill-color-darker: #424243;
- --fill-color-blank: transparent;
-
- // 阴影
- --box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.5);
- --box-shadow-light: 0 2px 4px rgba(0, 0, 0, 0.3), 0 0 6px rgba(0, 0, 0, 0.2);
- --box-shadow-base: 0 2px 4px rgba(0, 0, 0, 0.3), 0 0 6px rgba(0, 0, 0, 0.2);
- --box-shadow-dark: 0 2px 4px rgba(0, 0, 0, 0.5), 0 0 6px rgba(0, 0, 0, 0.3);
-
- // 头部背景
- --header-bg-color: #252628;
- --header-text-color: #e5eaf3;
-
- // 侧边栏背景(暗色模式下保持可见)
- --aside-bg-color: #252628;
- --aside-text-color: #e5eaf3;
-
- // 卡片背景
- --card-bg-color: #252526;
- --card-border-color: #3c3c3d;
-
- // container-box 暗色主题
- --container-box-bg: #232325;
- --container-box-border: #363637;
- --container-box-shadow: 0 2px 8px 0 rgba(0,0,0,0.09);
-
- // 滚动条颜色
- --scrollbar-track-color: #2d2d2d;
- --scrollbar-thumb-color: #555555;
- --scrollbar-thumb-hover-color: #666666;
-
- // Element Plus 组件主题适配
- --el-bg-color: var(--bg-color);
- --el-bg-color-page: var(--bg-color-page);
- --el-text-color-primary: var(--text-color-primary);
- --el-text-color-regular: var(--text-color-regular);
- --el-text-color-secondary: var(--text-color-secondary);
- --el-text-color-placeholder: var(--text-color-placeholder);
- --el-border-color: var(--border-color);
- --el-fill-color: var(--fill-color);
- --el-fill-color-light: var(--fill-color-light);
- --el-fill-color-lighter: var(--fill-color-lighter);
- --el-fill-color-extra-light: var(--fill-color-extra-light);
- --el-fill-color-dark: var(--fill-color-dark);
- --el-fill-color-darker: var(--fill-color-darker);
- --el-fill-color-blank: var(--fill-color-blank);
+ --el-fill-color: #2b2b2c;
+ --el-fill-color-light: #262727;
+ --el-fill-color-lighter: #1d1e1f;
+ --el-fill-color-extra-light: #191919;
+ --el-fill-color-dark: #39393a;
+ --el-fill-color-darker: #424243;
+ --el-fill-color-blank: transparent;
}
-// 基础样式应用
+// body 样式
body {
- background-color: var(--bg-color-page);
- color: var(--text-color-primary);
+ background-color: var(--el-bg-color-page);
+ color: var(--el-text-color-primary);
transition: background-color 0.3s ease, color 0.3s ease;
}
+// container-box 样式
+.container-box {
+ background-color: var(--el-bg-color);
+ border: 1px solid var(--el-border-color-lighter);
+ box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.04);
+ border-radius: 8px;
+ padding: 24px;
+ transition: background-color 0.3s, border-color 0.3s, box-shadow 0.3s;
+}
+
+[data-theme="dark"] .container-box {
+ box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.09);
+}
+
.header-bar {
display: flex;
align-items: center;
justify-content: space-between;
}
-// 卡片样式
-.el-card {
- background-color: var(--card-bg-color);
- border-color: var(--card-border-color);
- color: var(--text-color-primary);
-}
-
-// container-box样式
-.container-box {
- background-color: var(--container-box-bg);
- border: 1px solid var(--container-box-border);
- box-shadow: var(--container-box-shadow);
- border-radius: 8px;
- padding: 24px;
- transition:
- background-color 0.3s,
- border-color 0.3s,
- box-shadow 0.3s;
-}
-
-// 输入框样式
-.el-input__inner {
- background-color: var(--fill-color-blank);
- border-color: var(--border-color);
- color: var(--text-color-primary);
-
- &::placeholder {
- color: var(--text-color-placeholder);
- }
-}
-
-// 按钮样式(全局主题适配)
-.el-button {
- transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
-
- // 默认按钮
- &.el-button--default {
- background-color: var(--fill-color-blank) !important;
- border-color: var(--border-color) !important;
- color: var(--text-color-primary) !important;
-
- &:hover:not(:disabled) {
- background-color: var(--fill-color-light) !important;
- border-color: var(--primary-color) !important;
- color: var(--primary-color) !important;
- }
-
- &:disabled {
- background-color: var(--fill-color) !important;
- border-color: var(--border-color-lighter) !important;
- color: var(--text-color-disabled) !important;
- }
- }
-
- // 文本按钮
- &.el-button--text {
- color: var(--text-color-primary) !important;
-
- &:hover:not(:disabled) {
- background-color: var(--fill-color-light) !important;
- color: var(--primary-color) !important;
- }
-
- &:disabled {
- color: var(--text-color-disabled) !important;
- }
- }
-}
-
-// 表格样式(全局主题适配)
-.el-table {
- background-color: var(--bg-color) !important;
- color: var(--text-color-primary) !important;
- border-color: var(--border-color-lighter) !important;
-
- // 表头
- th.el-table__cell {
- background-color: var(--fill-color-light) !important;
- color: var(--text-color-primary) !important;
- border-bottom-color: var(--border-color) !important;
- }
-
- // 表格行
- tr {
- background-color: var(--bg-color) !important;
-
- // 鼠标悬停
- &:hover > td {
- background-color: var(--fill-color-lighter) !important;
- }
- }
-
- // 表格单元格
- td.el-table__cell {
- border-bottom-color: var(--border-color-lighter) !important;
- color: var(--text-color-primary) !important;
- }
-
- // 斑马纹表格
- &.el-table--striped {
- .el-table__body tr.el-table__row--striped td {
- background-color: var(--fill-color-extra-light) !important;
- }
-
- .el-table__body tr.el-table__row--striped:hover td {
- background-color: var(--fill-color-lighter) !important;
- }
- }
-
- // 边框表格
- &.el-table--border {
- border-color: var(--border-color-lighter) !important;
-
- &::after,
- &::before {
- background-color: var(--border-color-lighter) !important;
- }
-
- th.el-table__cell,
- td.el-table__cell {
- border-right-color: var(--border-color-lighter) !important;
- }
- }
-
- // 空状态
- .el-table__empty-block {
- background-color: var(--bg-color) !important;
- color: var(--text-color-secondary) !important;
- }
-
- // 空状态文字
- .el-table__empty-text {
- color: var(--text-color-secondary) !important;
- }
-}
-
-// 标签样式(全局主题适配)
-.el-tag {
- background-color: var(--fill-color-light) !important;
- border-color: var(--border-color-lighter) !important;
- color: var(--text-color-primary) !important;
-}
-
-// 对话框样式(全局主题适配)
-.el-dialog {
- background-color: var(--bg-color) !important;
- border-color: var(--border-color) !important;
-
- .el-dialog__header {
- border-bottom-color: var(--border-color-lighter) !important;
- color: var(--text-color-primary) !important;
- }
-
- .el-dialog__title {
- color: var(--text-color-primary) !important;
- }
-
- .el-dialog__body {
- background-color: var(--bg-color) !important;
- color: var(--text-color-primary) !important;
- }
-
- .el-dialog__footer {
- border-top-color: var(--border-color-lighter) !important;
- }
-}
-
-// MessageBox 确认框样式(全局主题适配)
-.el-overlay.is-message-box {
- background-color: rgba(0, 0, 0, 0.5) !important;
-
- &[data-theme="dark"] {
- background-color: rgba(0, 0, 0, 0.7) !important;
- }
-}
-
-.el-message-box {
- background-color: var(--bg-color) !important;
-
- .el-message-box__header {
- .el-message-box__title {
- color: var(--text-color-primary) !important;
- }
- }
-
- .el-message-box__content {
- color: var(--text-color-primary) !important;
-
- .el-message-box__message {
- color: var(--text-color-primary) !important;
-
- p {
- color: var(--text-color-primary) !important;
- }
- }
- }
-}
-
-// 描述列表样式(全局主题适配)
-.el-descriptions {
- .el-descriptions__header {
- .el-descriptions__title {
- color: var(--text-color-primary) !important;
- }
- }
-
- .el-descriptions__table {
- .el-descriptions__label {
- background-color: var(--fill-color-light) !important;
- color: var(--text-color-primary) !important;
- border-color: var(--border-color-lighter) !important;
- }
-
- .el-descriptions__content {
- background-color: var(--bg-color) !important;
- color: var(--text-color-primary) !important;
- border-color: var(--border-color-lighter) !important;
- }
-
- td.el-descriptions__label,
- td.el-descriptions__content {
- border-color: var(--border-color-lighter) !important;
- }
- }
-}
-
-// 表单样式(全局主题适配)
-.el-form {
- .el-form-item__label {
- color: var(--text-color-primary) !important;
- }
-
- .el-form-item__error {
- color: var(--danger-color) !important;
- }
-}
-
-// 选择器样式(全局主题适配)
-.el-select {
- // Element Plus 2.x 使用 el-select__wrapper
- .el-select__wrapper {
- background-color: var(--fill-color-blank) !important;
- border-color: var(--border-color) !important;
- border: 1px solid var(--border-color) !important;
- box-shadow: none !important;
-
- &:hover {
- box-shadow: 0 0 0 1px var(--border-color) inset !important;
- }
-
- &.is-focus {
- box-shadow: 0 0 0 1px var(--primary-color) inset !important;
- }
- }
-
- // 如果选择器内部使用了 el-input__wrapper(兼容性处理)
- .el-input__wrapper {
- background-color: var(--fill-color-blank) !important;
- border-color: var(--border-color) !important;
- border: 1px solid var(--border-color) !important;
- box-shadow: none !important;
-
- &:hover {
- box-shadow: 0 0 0 1px var(--border-color) inset !important;
- }
-
- &.is-focus {
- box-shadow: 0 0 0 1px var(--primary-color) inset !important;
- }
- }
-
- .el-input__inner {
- background-color: transparent !important;
- color: var(--text-color-primary) !important;
- }
-
- .el-input__suffix {
- .el-input__suffix-inner {
- .el-select__caret {
- color: var(--text-color-secondary) !important;
- }
- }
- }
-}
-
-// 选择器下拉菜单样式(全局主题适配)
-.el-select-dropdown,
-.el-select-dropdown__wrap {
- background-color: var(--bg-color-overlay) !important;
- border-color: var(--border-color) !important;
-
- .el-select-dropdown__item {
- color: var(--text-color-primary) !important;
-
- &:hover {
- background-color: var(--fill-color-light) !important;
- color: var(--text-color-primary) !important;
- }
-
- &.selected {
- color: var(--primary-color) !important;
- font-weight: 700;
- }
-
- &.is-disabled {
- color: var(--text-color-disabled) !important;
-
- &:hover {
- background-color: transparent !important;
- }
- }
- }
-
- .el-select-dropdown__empty {
- color: var(--text-color-secondary) !important;
- }
-}
-
-// Element Plus Popper 组件样式(全局主题适配,用于所有通过 Popper 渲染的下拉组件)
-.el-popper,
-.el-popper__arrow::before {
- background-color: var(--bg-color-overlay) !important;
- border-color: var(--border-color) !important;
-}
-
-.el-popper.is-dark {
- background-color: var(--bg-color-overlay) !important;
- color: var(--text-color-primary) !important;
-}
-
-// 输入框组件样式(全局主题适配,兼容 Element Plus 2.x)
-.el-input {
- .el-input__wrapper {
- background-color: var(--fill-color-blank) !important;
- border-color: var(--border-color) !important;
- border: 1px solid var(--border-color) !important;
- box-shadow: none !important;
-
- &:hover {
- box-shadow: 0 0 0 1px var(--border-color) inset !important;
- }
-
- &.is-focus {
- box-shadow: 0 0 0 1px var(--primary-color) inset !important;
- }
- }
-
- .el-input__inner {
- background-color: transparent !important;
- color: var(--text-color-primary) !important;
-
- &::placeholder {
- color: var(--text-color-placeholder) !important;
- }
- }
-}
-
-// 文本域样式(全局主题适配)
-.el-textarea {
- .el-textarea__inner {
- background-color: var(--fill-color-blank) !important;
- border-color: var(--border-color) !important;
- color: var(--text-color-primary) !important;
-
- &::placeholder {
- color: var(--text-color-placeholder) !important;
- }
-
- &:focus {
- border-color: var(--primary-color) !important;
- }
- }
-}
-
-// 单选按钮组样式(全局主题适配)
-.el-radio-group {
- .el-radio {
- color: var(--text-color-primary) !important;
-
- .el-radio__label {
- color: var(--text-color-primary) !important;
- }
-
- &.is-checked {
- .el-radio__label {
- color: var(--primary-color) !important;
- }
- }
- }
-}
-
-// 数字输入框样式(全局主题适配)
-.el-input-number {
- .el-input__wrapper {
- background-color: var(--fill-color-blank) !important;
- border-color: var(--border-color) !important;
-
- .el-input__inner {
- background-color: transparent !important;
- color: var(--text-color-primary) !important;
- }
- }
-
- .el-input-number__decrease,
- .el-input-number__increase {
- background-color: var(--fill-color-light) !important;
- border-color: var(--border-color) !important;
- color: var(--text-color-primary) !important;
-
- &:hover:not(.is-disabled) {
- background-color: var(--fill-color) !important;
- color: var(--primary-color) !important;
- }
-
- &.is-disabled {
- background-color: var(--fill-color) !important;
- color: var(--text-color-disabled) !important;
- }
- }
-}
-
-// 开关组件样式(全局主题适配)
-.el-switch {
- --el-switch-on-color: var(--primary-color);
- --el-switch-off-color: var(--fill-color-dark);
-
- .el-switch__core {
- background-color: var(--fill-color-dark) !important;
- border-color: var(--border-color) !important;
- }
-
- &.is-checked {
- .el-switch__core {
- background-color: var(--primary-color) !important;
- border-color: var(--primary-color) !important;
- }
- }
-
- &.is-disabled {
- .el-switch__core {
- background-color: var(--fill-color) !important;
- border-color: var(--border-color-lighter) !important;
- opacity: 0.6;
- }
- }
-}
-
-// 警告提示样式(全局主题适配)
-.el-alert {
- background-color: var(--fill-color-light) !important;
- border-color: var(--border-color-lighter) !important;
- color: var(--text-color-primary) !important;
-}
-
-// 菜单样式
-.el-menu {
- background-color: var(--aside-bg-color);
- border-color: var(--border-color);
-}
-
-// 下拉菜单样式(全局)
-.el-dropdown {
- .el-dropdown__popper {
- .el-dropdown-menu {
- background-color: var(--bg-color-overlay) !important;
- border-color: var(--border-color) !important;
- box-shadow: var(--box-shadow);
-
- .el-dropdown-menu__item {
- color: var(--text-color-primary) !important;
- transition: background-color 0.2s ease, color 0.2s ease;
-
- .el-icon {
- color: var(--text-color-primary) !important;
- }
-
- &:not(.is-disabled):hover {
- background-color: var(--fill-color-light) !important;
- color: var(--text-color-primary) !important;
- }
-
- &.is-divided {
- border-top-color: var(--border-color) !important;
- margin-top: 4px;
- padding-top: 4px;
- }
- }
- }
- }
-}
-
-// 分页组件样式(全局)
-.el-pagination {
- color: var(--text-color-primary) !important;
- transition: color 0.3s ease;
-
- // 按钮样式
- .btn-prev,
- .btn-next {
- background-color: var(--fill-color-blank) !important;
- border-color: var(--border-color) !important;
- color: var(--text-color-regular) !important;
- transition: all 0.3s ease;
-
- &:hover:not(:disabled) {
- background-color: var(--fill-color-light) !important;
- border-color: var(--primary-color) !important;
- color: var(--primary-color) !important;
- }
-
- &:disabled {
- color: var(--text-color-disabled) !important;
- background-color: var(--fill-color) !important;
- border-color: var(--border-color-lighter) !important;
- cursor: not-allowed;
-
- .el-icon {
- color: var(--text-color-disabled) !important;
- }
- }
-
- .el-icon {
- color: inherit;
- }
- }
-
- // 页码按钮
- .el-pager {
- li {
- background-color: var(--fill-color-blank) !important;
- border-color: var(--border-color) !important;
- color: var(--text-color-regular) !important;
- transition: all 0.3s ease;
-
- &:hover:not(.is-disabled):not(.is-active) {
- background-color: var(--fill-color-light) !important;
- border-color: var(--primary-color) !important;
- color: var(--primary-color) !important;
- }
-
- &.is-active {
- background-color: var(--primary-color) !important;
- border-color: var(--primary-color) !important;
- color: #ffffff !important;
- font-weight: 500;
-
- &:hover {
- background-color: var(--primary-color) !important;
- opacity: 0.9;
- }
- }
-
- &.is-disabled {
- color: var(--text-color-disabled) !important;
- cursor: not-allowed;
- background-color: var(--fill-color) !important;
- }
- }
- }
-
- // 输入框和选择器
- .el-pagination__sizes {
- .el-select {
- .el-input__inner {
- background-color: var(--fill-color-blank) !important;
- border-color: var(--border-color) !important;
- color: var(--text-color-primary) !important;
- }
- }
- }
-
- .el-pagination__total {
- color: var(--text-color-regular) !important;
- font-weight: 400;
- }
-
- .el-pagination__jump {
- color: var(--text-color-regular) !important;
-
- .el-input__inner {
- background-color: var(--fill-color-blank) !important;
- border-color: var(--border-color) !important;
- color: var(--text-color-primary) !important;
-
- &:focus {
- border-color: var(--primary-color) !important;
- }
- }
- }
-
- // 简单分页样式(is-background 模式)
- &.is-background {
- .btn-prev,
- .btn-next {
- background-color: var(--fill-color-blank) !important;
- border-color: var(--border-color) !important;
- color: var(--text-color-regular) !important;
-
- &:hover:not(:disabled) {
- background-color: var(--fill-color-light) !important;
- border-color: var(--primary-color) !important;
- color: var(--primary-color) !important;
- }
-
- &:disabled {
- background-color: var(--fill-color) !important;
- border-color: var(--border-color-lighter) !important;
- color: var(--text-color-disabled) !important;
-
- .el-icon {
- color: var(--text-color-disabled) !important;
- }
- }
- }
-
- .el-pager {
- li {
- background-color: var(--fill-color-blank) !important;
- border-color: var(--border-color) !important;
- color: var(--text-color-regular) !important;
-
- &:hover:not(.is-active):not(.is-disabled) {
- background-color: var(--fill-color-light) !important;
- border-color: var(--primary-color) !important;
- color: var(--primary-color) !important;
- }
-
- &.is-active {
- background-color: var(--primary-color) !important;
- border-color: var(--primary-color) !important;
- color: #ffffff !important;
- }
-
- &.is-disabled {
- background-color: var(--fill-color) !important;
- border-color: var(--border-color-lighter) !important;
- color: var(--text-color-disabled) !important;
- }
- }
- }
- }
-}
-
-// 滚动条样式(全局)
-// WebKit 浏览器(Chrome, Safari, Edge)
-* {
- // Firefox 滚动条样式
- scrollbar-width: thin;
- scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-track-color);
-
- // WebKit 滚动条样式
- &::-webkit-scrollbar {
- width: 8px;
- height: 8px;
- }
-
- &::-webkit-scrollbar-track {
- background: var(--scrollbar-track-color);
- border-radius: 4px;
- }
-
- &::-webkit-scrollbar-thumb {
- background: var(--scrollbar-thumb-color);
- border-radius: 4px;
- transition: background-color 0.3s ease;
-
- &:hover {
- background: var(--scrollbar-thumb-hover-color);
- }
- }
-
- &::-webkit-scrollbar-corner {
- background: var(--scrollbar-track-color);
- }
-}
-
-// 更细的滚动条样式(可选)
-.thin-scrollbar {
- scrollbar-width: thin;
-
- &::-webkit-scrollbar {
- width: 6px;
- height: 6px;
- }
-}
-
-
.pagination-bar {
display: flex;
justify-content: flex-end;
margin: 14px 0 0 0;
}
-/* 标准文章样式 支持黑白主题 */
-.markdown-body {
- color: var(--text-color, #222);
- font-size: 16px;
- line-height: 1.8;
- word-break: break-word;
- background: var(--content-bg);
- transition: color 0.3s, background 0.3s;
-
- h1,
- h2,
- h3,
- h4,
- h5,
- h6 {
- color: var(--title-color, var(--text-color, #222));
- margin-top: 1.6em;
- margin-bottom: 0.8em;
- font-family: inherit;
- font-weight: 700;
- line-height: 1.3;
- transition: color 0.3s;
- }
- h1 {
- font-size: 2.2em;
- border-bottom: 1px solid var(--border-color-light, #eaecef);
- padding-bottom: 0.4em;
- }
- h2 {
- font-size: 1.8em;
- border-bottom: 1px solid var(--border-color-light, #eaecef);
- padding-bottom: 0.3em;
- }
- h3 {
- font-size: 1.4em;
- }
- h4 {
- font-size: 1.2em;
- }
- h5 {
- font-size: 1.06em;
- }
- h6 {
- font-size: 1em;
- color: var(--text-color-secondary, #969696);
- }
-
- p {
- margin: 0.9em 0;
- color: inherit;
- }
-
- ul,
- ol {
- padding-left: 2em;
- margin: 0.9em 0;
- }
- ul {
- list-style-type: disc;
- }
- ol {
- list-style-type: decimal;
- }
- li {
- margin: 0.7em 0 0.7em 0.7em;
- color: inherit;
- }
-
- a {
- color: var(--primary-color, #2d8cf0);
- text-decoration: underline;
- transition: color 0.2s;
- &:hover {
- color: var(--primary-hover, #1a73e8);
- }
- }
- img {
- max-width: 100%;
- height: auto;
- display: block;
- margin: 1em auto;
- border-radius: 4px;
- background: var(--img-bg, #f7f7fa);
- }
-
- blockquote {
- border-left: 4px solid var(--blockquote-border, #d0dde9);
- background: var(--blockquote-bg, #f7f9fa);
- padding: 0.6em 1.2em;
- margin: 1.1em 0;
- color: var(--blockquote-color, #6580a0);
- font-style: italic;
- transition: background 0.3s, border-color 0.3s, color 0.3s;
- }
-
- code {
- font-family: var(
- --code-font,
- "Fira Mono",
- "Menlo",
- "Consolas",
- "monospace"
- );
- background: var(--code-bg, #f4f4f4);
- border-radius: 3px;
- padding: 0.15em 0.4em;
- color: var(--code-color, #c7254e);
- font-size: 0.97em;
- margin: 0 0.1em;
- transition: background 0.3s, color 0.3s;
- }
-
- pre {
- background: var(--pre-bg, #f6f8fa);
- border-radius: 4px;
- padding: 1em 1.2em;
- font-family: var(
- --code-font,
- "Fira Mono",
- "Menlo",
- "Consolas",
- "monospace"
- );
- font-size: 0.98em;
- overflow-x: auto;
- color: var(--pre-color, #212529);
- margin: 1.2em 0;
- transition: background 0.3s, color 0.3s;
- code {
- background: none;
- color: inherit;
- font-size: inherit;
- padding: 0;
- }
- }
-
- table {
- width: 100%;
- border-collapse: collapse;
- margin: 1.2em 0;
- color: inherit;
- font-size: 1em;
- background: var(--table-bg, #fff);
- transition: background 0.3s;
- }
- th,
- td {
- border: 1px solid var(--table-border, #dee2e6);
- padding: 0.5em 1em;
- color: inherit;
- }
- th {
- background: var(--table-head-bg, #f4f8fb);
- font-weight: 600;
- }
- tr:nth-child(even) {
- background: var(--table-row-even-bg, #f9fbfc);
- }
-
- hr {
- border: none;
- border-top: 1px solid var(--border-color-light, #eaecef);
- margin: 2em 0;
- }
-
- br {
- display: block;
- margin: 0.2em 0;
- content: "";
- }
-
- // 兼容 Element 表单
- .el-form-item__label,
- .el-form-item__content,
- .el-form-item__error,
- .el-form-item__error-tip {
- color: var(--text-color, #222);
- }
-}
-
-/* 深色主题支持 */
-.dark .markdown-body {
- color: #fff;
- background: #181b21;
-
- h1,
- h2,
- h3,
- h4,
- h5,
- h6 {
- color: #fff;
- }
- h6 {
- color: #ccc;
- }
- a {
- color: #fff;
- &:hover {
- color: #e6e6e6;
- }
- }
- img {
- background: #23272b;
- }
- blockquote {
- border-left-color: #5d7896;
- background: #232a33;
- color: #cce3fa;
- }
- code {
- background: #31343b;
- color: #fff;
- }
- pre {
- background: #23272d;
- color: #fff;
- }
- table {
- background: #23272b;
- }
- th,
- td {
- border-color: #333b47;
- color: #fff;
- }
- th {
- background: #273041;
- }
- tr:nth-child(even) {
- background: #20232a;
- }
- hr {
- border-top-color: #333b47;
- }
- // Element兼容
- .el-form-item__label,
- .el-form-item__content,
- .el-form-item__error,
- .el-form-item__error-tip {
- color: #fff;
- }
-}
diff --git a/pc/src/components/CommonAside.vue b/pc/src/components/CommonAside.vue
index 10ebd09..4659195 100644
--- a/pc/src/components/CommonAside.vue
+++ b/pc/src/components/CommonAside.vue
@@ -1,17 +1,28 @@
-
+
+
+