optimize ui loading and dashboard performance
This commit is contained in:
Binary file not shown.
@@ -1655,6 +1655,42 @@ corepack pnpm@10.33.0 exec vitest run apps/worker-recording/src/transfer.spec.ts
|
||||
| 数据检查 | release 目录和 public 目录一致。 |
|
||||
| 安全检查 | 发布不覆盖后端 env、node_modules 或用户上传录音。 |
|
||||
|
||||
#### WEB-007 慢页面统一加载反馈
|
||||
|
||||
| 字段 | 内容 |
|
||||
| --- | --- |
|
||||
| 优先级 | P0 |
|
||||
| 目的 | 验证页面请求超过 2 秒时才显示加载弹窗,完成或失败后立即隐藏。 |
|
||||
| 前置条件 | 管理员已登录;浏览器可将目标接口延迟到 1.5 秒、2.5 秒和失败三种状态。 |
|
||||
| 步骤 | 1. 分别以三种延迟进入 Dashboard、话单、质检、号码库。2. 观察弹窗和列表状态。3. 在请求过程中切换菜单。 |
|
||||
| 预期结果 | 2 秒内无弹窗;超过 2 秒出现“页面加载中”;请求完成、失败或被页面切换取消后弹窗立即消失;加载阶段只显示骨架,不出现“暂无数据”。 |
|
||||
| 数据检查 | 页面切换会取消上一页面未完成请求,不产生旧响应覆盖新页面。 |
|
||||
| 安全检查 | 弹窗和错误信息不显示 token、SQL 或内部堆栈。 |
|
||||
|
||||
#### WEB-008 Dashboard 按页面取数
|
||||
|
||||
| 字段 | 内容 |
|
||||
| --- | --- |
|
||||
| 优先级 | P0 |
|
||||
| 目的 | 验证登录首页只请求首页概览数据,不再预加载全站接口。 |
|
||||
| 前置条件 | 管理员登录,浏览器 Network 保留日志。 |
|
||||
| 步骤 | 1. 清空 Network。2. 登录或刷新首页。3. 检查 `/api/v2/dashboard/overview` 及其他业务接口。4. 切换到客户、供应商后复查。 |
|
||||
| 预期结果 | 首页使用一个 overview 请求并行取得 summary/trends;未进入的客户、供应商、网关、用户、角色、日志等接口不请求;进入对应页面后才按需请求。 |
|
||||
| 数据检查 | 首页指标全部来自真实 overview 响应,不使用 fixture 回退。 |
|
||||
| 安全检查 | 只请求当前账号具备权限的数据。 |
|
||||
|
||||
#### WEB-009 话单首屏性能与分页稳定性
|
||||
|
||||
| 字段 | 内容 |
|
||||
| --- | --- |
|
||||
| 优先级 | P0 |
|
||||
| 目的 | 验证话单首屏缩小到 25 条、列表和总数并行查询、同时间记录分页顺序稳定。 |
|
||||
| 前置条件 | 话单表存在超过 50 条记录,其中多条 `startedAt` 相同。 |
|
||||
| 步骤 | 1. 首次进入话单中心。2. 检查请求 take。3. 连续翻页并返回。4. 记录接口耗时并观察重复/遗漏。 |
|
||||
| 预期结果 | 默认 `take=25`;按 `startedAt desc, id desc` 稳定排序;列表与 count 并行;主列表仅展示核心字段,完整字段在详情抽屉。 |
|
||||
| 数据检查 | 前后页无重复或遗漏,total/hasMore 正确。 |
|
||||
| 安全检查 | 话单筛选和详情仍遵守 `cdrs.view` 权限。 |
|
||||
|
||||
### 8.9 性能、故障与安全
|
||||
|
||||
本节覆盖小规模并发、Worker/数据服务故障、Redis 热路径故障、SIP 安全探针、API 越权/重放和恢复性。执行故障类用例前必须确认回滚点和当前环境可中断。
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
# UI 与页面性能整改实施记录(2026-08-27)
|
||||
|
||||
## 实施范围
|
||||
|
||||
本次按《LisgloSIPS UI 性能整改方案》实施前端加载体验、按页面取数、Dashboard 请求合并、话单首屏性能、质检与号码库懒加载、宽表可读性和中文状态文案。TLS 证书按要求不在本次代码整改范围内,未修改证书或生产环境配置。
|
||||
|
||||
## 已完成
|
||||
|
||||
- 全局请求增加 10 秒超时和主动取消;切换菜单时取消上一页面请求,避免旧响应覆盖当前页面。
|
||||
- 页面请求超过 2 秒才显示加载弹窗,完成、失败或取消后立即隐藏;表格加载中显示骨架,不再与空状态同时出现。
|
||||
- 登录首页由全站 11 组接口预加载改为按当前路由加载;Dashboard 新增 `/api/v2/dashboard/overview`,服务端并行取得 summary 与 trends,前端只发一个首页概览请求。
|
||||
- 话单默认页大小由 100/50 降为 25;列表与总数改为并行查询,并增加 `startedAt desc, id desc` 稳定排序;主表精简为核心字段,完整信息保留在详情抽屉。
|
||||
- 质检录音默认限制为 50;抽检规则及客户/线路依赖只在打开规则抽屉时加载。
|
||||
- 号码库由首次同时加载四个页签改为只加载当前页签,其他页签首次打开时再读取。
|
||||
- 当前通话自动刷新改为静默更新;失败后停止自动轮询,避免 5 秒间隔持续叠加失败请求;手动首次加载仍使用延迟弹窗。
|
||||
- 宽表支持横向滚动、右侧操作列固定、长文本自动断行;长列表启用浏览器内容可见性优化。
|
||||
- Dashboard 未接入指标明确显示“等待真实数据”,不再使用开发 fixture 伪装实时数据;操作向文案已做中文化。
|
||||
|
||||
## 暂未直接实施
|
||||
|
||||
- 未新增数据库索引。整改方案要求先以生产库 `EXPLAIN ANALYZE` 或等价执行计划确认慢点;当前没有获得生产数据库只读诊断授权和执行计划,直接增加索引可能放大写入成本。
|
||||
- 未修改 TLS 证书、Nginx 或生产部署配置。
|
||||
- 未发布生产。当前改动仅在本地源码、测试和构建层验证。
|
||||
|
||||
## 本地验证
|
||||
|
||||
- ESLint:通过。
|
||||
- TypeScript project build/typecheck:通过。
|
||||
- Vitest:26 个测试文件、95 个测试全部通过。
|
||||
- Web production build:通过,生成 `dist/index.html`、CSS 和 JS hash 产物。
|
||||
- 浏览器验收:本地 Vite 页面 URL、标题、非空 DOM、登录页截图和浏览器 console 已检查,未发现 console warning/error 或框架错误覆盖层。本机未配置 API 所需的 MySQL/Redis/鉴权环境,因此登录页按预期显示本地 API 500;已登录 Dashboard、话单和 2 秒延迟交互仍需在接入可用后端后做最终浏览器回归。
|
||||
Reference in New Issue
Block a user