Files
Xboard/.helloagents/archive/2026-04/202604210400_admin-frontend-apple-performance-refresh/proposal.md
T
yinjianm f68ba190a8 feat(admin-frontend): 重做登录回跳与仪表盘样式
重构管理端登录、主布局和仪表盘,统一为 Apple 风格
并移除高成本装饰层以提升页面流畅度。

补充仪表盘统计、趋势、排行和系统状态接口封装,
同时完善受保护路由的 redirect 回跳逻辑。
2026-04-21 04:23:23 +08:00

184 lines
7.6 KiB
Markdown

# 变更提案: admin-frontend-apple-performance-refresh
## 元信息
```yaml
类型: 重构 + 优化
方案类型: implementation
优先级: P1
状态: 已完成
创建: 2026-04-21
```
---
## 1. 需求
### 背景
上一轮管理端首页已完成深色 Composio 风格仪表盘,但用户反馈“页面非常卡顿”。结合当前实现可见,卡顿风险主要来自全局远程字体加载、固定噪点层、多个径向渐变与模糊装饰、较重阴影以及偏复杂的深色视觉特效。用户本轮明确要求改为 `apple/DESIGN.md` 设计体系,并将登录页、主布局和仪表盘统一重做。
### 目标
- 将登录页、主布局、仪表盘首页整体切换为 Apple 风格视觉体系。
- 明确降低页面运行时开销,优先删除高成本视觉装饰和非必要动画。
- 保留现有数据接入、登录回跳和后台业务信息结构,不回退功能。
### 约束条件
```yaml
时间约束: 本轮仅重做 admin-frontend 的登录页、主布局、仪表盘首页
性能约束: 去除远程字体依赖、固定背景噪点层、强滤镜和高频装饰性重绘
兼容性约束: 保持现有 Vue3 + Vite + Element Plus 栈,不新增重型 UI 或图表依赖
业务约束: 登录逻辑、secure_path、自定义 API 请求和统计接口保持不变
```
### 验收标准
- [ ] 登录页、主布局、仪表盘首页统一符合 Apple 设计系统,视觉更克制、轻量、清晰。
- [ ] 移除当前页面中的高成本装饰层,首屏样式明显降载。
- [ ] 仪表盘的数据接口、排行、趋势、系统状态功能保持可用。
- [ ] `admin-frontend` 重新构建通过。
---
## 2. 方案
### 技术方案
本轮采用“保留逻辑,重写视图皮层”的方式:
1. 全局样式降载
`src/styles/index.scss` 中移除 Google Fonts、固定噪点遮罩、全局径向辉光与过重背景层,改为 Apple 风格的系统字体栈、纯色背景与轻量层次。
2. 登录页重构
将当前双辉光深色登录页重构为 Apple 式大标题 + 清爽表单卡布局,保留登录回跳逻辑,只替换视觉和结构。
3. 主布局重构
把当前“夜间控制台”侧栏和头部压缩为更克制的 Apple 导航语言,减少边框、渐变、信号灯和装饰芯片。
4. 仪表盘重构
保留真实数据接口与 SVG 趋势图,但改成 Apple 风格的黑/浅灰分区、简洁卡片、单一蓝色交互重点和更轻的图表样式。
### 影响范围
```yaml
涉及模块:
- admin-frontend/src/styles: 全局视觉与性能基线
- admin-frontend/src/views/login: 登录页 Apple 风格重构
- admin-frontend/src/layouts: 主布局和导航样式重构
- admin-frontend/src/views/dashboard: 仪表盘内容重排与轻量样式替换
预计变更文件: 4-6
```
### 风险评估
| 风险 | 等级 | 应对 |
|------|------|------|
| 视觉重构影响当前布局层级 | 中 | 保持数据结构和主要 DOM 分区稳定,只重写样式与局部布局 |
| Apple 风格若过度追求极简导致信息密度下降 | 中 | 保留统计卡片、趋势图、排行和状态分区,只减少装饰噪音 |
| 去除装饰层后页面可能显得“过空” | 低 | 用黑/浅灰区块切换、系统字体、轻阴影和单一蓝色 CTA 建立节奏 |
---
## 3. 技术设计(可选)
> 涉及架构变更、API设计、数据模型变更时填写
### 架构设计
```mermaid
flowchart TD
A[index.scss] --> B[LoginView]
A --> C[AdminLayout]
A --> D[DashboardView]
D --> E[getDashboardStats]
D --> F[getOrderTrend]
D --> G[getTrafficRank]
D --> H[getSystemStatus/getQueueStats]
```
### API设计
#### GET /api/v2/{secure_path}/stat/getStats
- **请求**: 无
- **响应**: 仪表盘总览统计
#### GET /api/v2/{secure_path}/stat/getOrder
- **请求**: `start_date`, `end_date`
- **响应**: 收入趋势与汇总
#### GET /api/v2/{secure_path}/stat/getTrafficRank
- **请求**: `type`, `start_time`, `end_time`
- **响应**: 节点/用户排行
### 数据模型
| 字段 | 类型 | 说明 |
|------|------|------|
| DashboardStats | object | 统计卡片数据 |
| OrderTrendData | object | 收入趋势图数据 |
| TrafficRankResponse | object | 排行区数据 |
| QueueStats/SystemStatus | object | 作业详情与系统状态数据 |
---
## 4. 核心场景
> 执行完成后同步到对应模块文档
### 场景: 登录进入后台
**模块**: LoginView / router
**条件**: 用户访问登录页或被守卫重定向到登录页
**行为**: 用户输入管理员账号密码并提交
**结果**: 登录成功后按原有 redirect 规则返回目标页
### 场景: 查看首页经营数据
**模块**: DashboardView
**条件**: 管理员进入仪表盘
**行为**: 页面加载总览、趋势、排行和系统状态
**结果**: 页面用更轻量的 Apple 风格区块展示相同业务信息
---
## 5. 技术决策
> 本方案涉及的技术决策,归档后成为决策的唯一完整记录
### admin-frontend-apple-performance-refresh#D001: 采用 Apple 设计系统并优先做性能减法
**日期**: 2026-04-21
**状态**: ✅采纳
**背景**: 用户已明确指出当前页面“非常卡顿”,并要求按 `apple/DESIGN.md` 重做。
**选项分析**:
| 选项 | 优点 | 缺点 |
|------|------|------|
| A: 保留 Composio 风格,仅做性能微调 | 改动小 | 无法满足用户指定的 Apple 方向 |
| B: Apple 风格 + 性能减法重构 | 同时解决风格偏差和卡顿 | 需要重写多个页面的样式结构 |
**决策**: 选择方案 B
**理由**: 这次诉求的核心不是补功能,而是重新定义页面体验和运行成本。
**影响**: 登录页、主布局、仪表盘、全局样式
### admin-frontend-apple-performance-refresh#D002: 维持现有数据逻辑,仅替换视图皮层
**日期**: 2026-04-21
**状态**: ✅采纳
**背景**: 当前 API 封装和跳转逻辑已完成,不需要在本轮视觉重构中回退或重写。
**选项分析**:
| 选项 | 优点 | 缺点 |
|------|------|------|
| A: 连逻辑层一起重做 | 可重新整理代码 | 超出本轮目标,风险更高 |
| B: 保留逻辑层,重构页面与样式 | 风险可控,收益集中 | 需要在旧结构中做设计转换 |
**决策**: 选择方案 B
**理由**: 用户反馈集中在“前端效果卡顿”,而不是数据和接口错误。
**影响**: `api/*``router/*` 只做最小配合,改动集中于视图和样式
---
## 6. 成果设计
> 含视觉产出的任务由 DESIGN Phase2 填充。非视觉任务整节标注"N/A"。
### 设计方向
- **美学基调**: Apple Product Editorial。像 Apple 产品页与系统面板的混合体,控制住装饰噪音,让内容像展品一样陈列。
- **记忆点**: 黑色英雄区和浅灰信息区交替展开,单一 Apple Blue 成为全页唯一强调色。
- **参考**: [apple/DESIGN.md](/E:/code/php/Xboard-new/apple/DESIGN.md)
### 视觉要素
- **配色**: 黑色 `#000000`、浅灰 `#f5f5f7`、正文深灰 `#1d1d1f`、交互蓝 `#0071e3`
- **字体**: 采用系统栈模拟 SF Pro 体验,优先 `-apple-system`, `BlinkMacSystemFont`, `SF Pro Display`, `SF Pro Text`, `Helvetica Neue`, Arial, sans-serif`
- **布局**: 英雄区大标题 + 轻卡片信息区 + 简洁双列内容;信息通过区块切换而不是发光边框表达层级
- **动效**: 仅保留轻量 hover 和淡入,不保留大面积 blur、辉光、滤镜动画
- **氛围**: 纯色背景、轻阴影、玻璃感顶栏;不使用噪点、网格、径向发光和复杂纹理
### 技术约束
- **可访问性**: 文字与背景维持高对比;交互色仅使用 Apple Blue
- **响应式**: 登录页双栏在窄屏下改为单列;仪表盘卡片和内容区在平板/手机下自动折叠为单列