From 318bb91a8f9cb601bdf35f912f5808f9b106bf2d Mon Sep 17 00:00:00 2001 From: binbankm <393439956@qq.com> Date: Mon, 15 Jun 2026 12:42:26 +0800 Subject: [PATCH 01/11] refactor: standardize design tokens by implementing semantic color aliases and utility-based component styling across the UI. --- src/app/layouts/AppFooter.vue | 12 +- src/app/layouts/AppSidebar.vue | 32 +- src/assets/styles/main.css | 328 ++++++------------ src/common/ui/BaseModal.vue | 6 +- src/common/ui/BatchActionToolbar.vue | 30 +- src/common/ui/ConfirmModal.vue | 12 +- src/common/ui/EmptyState.vue | 4 +- src/common/ui/MoreMenu.vue | 8 +- src/common/ui/Pagination.vue | 4 +- src/common/ui/Toast.vue | 24 +- src/views/DashboardView.vue | 64 ++-- src/views/LoginView.vue | 24 +- src/views/NodesView.vue | 6 +- src/views/ProfilesView.vue | 8 +- src/views/SubscriptionsView.vue | 8 +- .../dashboard/NodeDistributionChart.vue | 21 +- src/widgets/node/ManualNodeCard.vue | 18 +- src/widgets/node/NodeDetailsModal.vue | 40 +-- src/widgets/node/NodeModal.vue | 14 +- src/widgets/node/SubscriptionImportModal.vue | 22 +- src/widgets/profile/ProfileCard.vue | 20 +- src/widgets/profile/ProfileModal.vue | 38 +- .../profile/SubscriptionExportModal.vue | 20 +- src/widgets/settings/BackupView.vue | 102 +++--- src/widgets/settings/HelpModal.vue | 50 +-- src/widgets/settings/SettingsModal.vue | 62 ++-- .../settings/StorageBackendSwitcher.vue | 44 +-- .../subscription/NodeFilterRuleEditor.vue | 72 ++-- src/widgets/subscription/SubscriptionCard.vue | 56 +-- .../subscription/SubscriptionModal.vue | 22 +- 30 files changed, 521 insertions(+), 650 deletions(-) diff --git a/src/app/layouts/AppFooter.vue b/src/app/layouts/AppFooter.vue index 9983c925..f4328109 100644 --- a/src/app/layouts/AppFooter.vue +++ b/src/app/layouts/AppFooter.vue @@ -42,15 +42,15 @@ const currentYear = computed(() => new Date().getFullYear());
@@ -82,14 +82,14 @@ const currentYear = computed(() => new Date().getFullYear()); > -
+
安全可靠
高效管理 @@ -98,7 +98,7 @@ const currentYear = computed(() => new Date().getFullYear());
隐私保护 diff --git a/src/app/layouts/AppSidebar.vue b/src/app/layouts/AppSidebar.vue index 726d46f7..f46139a2 100644 --- a/src/app/layouts/AppSidebar.vue +++ b/src/app/layouts/AppSidebar.vue @@ -102,8 +102,8 @@ const navigationItems = computed(() => [ id: 'dashboard', label: '仪表盘', icon: 'dashboard', - gradient: 'from-orange-500 to-amber-600', - shadow: 'shadow-orange-500/30', + gradient: 'from-warning-500 to-warning-600', + shadow: 'shadow-warning-500/30', description: '概览状态' }, { @@ -111,8 +111,8 @@ const navigationItems = computed(() => [ label: '订阅管理', icon: 'subscription', count: props.subscriptionsCount, - gradient: 'from-indigo-500 to-purple-600', - shadow: 'shadow-indigo-500/30', + gradient: 'from-primary-500 to-secondary-600', + shadow: 'shadow-primary-500/30', description: '管理订阅源' }, { @@ -120,8 +120,8 @@ const navigationItems = computed(() => [ label: '订阅组', icon: 'profile', count: props.profilesCount, - gradient: 'from-purple-500 to-pink-600', - shadow: 'shadow-purple-500/30', + gradient: 'from-secondary-500 to-pink-600', + shadow: 'shadow-secondary-500/30', description: '组织订阅' }, @@ -130,8 +130,8 @@ const navigationItems = computed(() => [ label: '手动节点', icon: 'node', count: props.manualNodesCount, - gradient: 'from-green-500 to-emerald-600', - shadow: 'shadow-green-500/30', + gradient: 'from-success-500 to-success-600', + shadow: 'shadow-success-500/30', description: '管理节点' } ]); @@ -144,8 +144,8 @@ const utilityItems = computed(() => [ id: 'help', label: '帮助文档', icon: 'help', - gradient: 'from-amber-500 to-orange-600', - shadow: 'shadow-amber-500/30', + gradient: 'from-warning-500 to-warning-600', + shadow: 'shadow-warning-500/30', description: '查看文档' }, { @@ -253,7 +253,7 @@ onUnmounted(() => {