Files
anxinyan/docs/static-data-audit-20260423.md
wushumin 9aac78b8da first
2026-05-11 15:28:27 +08:00

227 lines
6.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 安心验静态数据与展示映射审计
审计时间2026-04-23
## 一、已确认的真实问题
### 1. 后台订单详情页存在“接口有值但页面没展示完整”的问题
- 文件:`admin-web/src/pages/orders/index.vue`
- 现象:
- 接口已返回 `product_info.color`
- 接口已返回 `extra_info.condition_desc` / `remark`
- 页面原先只展示了 `size_spec``usage_status`
- 导致后台看到的内容与接口实际内容不一致,且卡片出现大面积空白
- 本轮已修复:
- 商品信息区补充 `颜色 / 规格`
- 补充信息区补充 `补充说明`
### 2. 鉴定作业台也存在同类字段遗漏
- 文件:`admin-web/src/pages/appraisal-tasks/index.vue`
- 现象:
- 页面已有 `product_info.color`
- 但工作区与上下文区未展示,导致检测侧看到的信息不完整
- 本轮已修复:
- 商品与送检区补充 `颜色 / 规格`
- 工作台左侧上下文区补充 `颜色 / 规格`
### 3. 用户端多个页面在接口失败时会静默回退到 mock 数据
- 风险级别:高
- 问题本质:
- 页面请求失败后,没有给用户明确错误态
- 而是继续显示 `src/mocks/app.ts` 中的示例数据
- 会造成“接口已经失败,但页面仍像有真实数据”的错觉
- 这类问题比普通静态文案更危险,因为会直接影响业务判断
## 二、前端仍在使用 mock / fallback 的页面
### 1. 用户端高风险页面
以下页面在请求失败时,会直接沿用 mock 或 fallback 数据:
- `user-app/src/pages/home/index.vue`
- `user-app/src/pages/address/index.vue`
- `user-app/src/pages/message/index.vue`
- `user-app/src/pages/mine/index.vue`
- `user-app/src/pages/order/detail.vue`
- `user-app/src/pages/order/shipping.vue`
- `user-app/src/pages/report/detail.vue`
- `user-app/src/pages/help/index.vue`
- `user-app/src/pages/help/detail.vue`
- `user-app/src/pages/settings/index.vue`
- `user-app/src/pages/support/index.vue`
- `user-app/src/pages/support/detail.vue`
- `user-app/src/pages/support/create.vue`
- `user-app/src/pages/verify/result.vue`
统一来源:
- `user-app/src/mocks/app.ts`
### 2. 风险说明
- 订单、报告、消息、地址、工单、验真都属于真实业务数据
- 这些页面不适合在接口失败时展示示例数据
- 正确策略应该是:
- 显示错误态
- 提供重试按钮
- 保留空态,但不能伪造业务内容
## 三、后端接口本身仍是静态拼装的数据
### 1. 首页接口
- 文件:`server-api/app/controller/app/HomeController.php`
- 当前静态内容:
- `banners`
- `service_entries`
- `quick_entries`
- `trust_metrics`
- `trust_points`
- `faqs`
- 当前只有 `category_entries` 来自数据库
补充说明:
- `user-app/src/pages/home/index.vue` 原先没有消费 `banners`
- 即使接口已经返回首页头图文案,前端页面也仍然使用写死标题
- 本轮已修复为直接读取接口 `banners[0]`
### 2. 帮助中心接口
- 文件:`server-api/app/controller/app/HelpCenterController.php`
- 当前问题:
- 帮助分类与文章内容全部写在控制器里
- 搜索和分类筛选只是对本地数组做过滤
- 结论:
- 当前帮助中心已经“可用”,但本质仍是写死内容,不是后台可运营内容
### 3. 设置页协议入口
- 文件:`server-api/app/controller/app/SettingsController.php`
- 当前静态内容:
- `legal_entries`
- 跳转的帮助中心关键词
### 4. 下单预览协议文案
- 文件:`server-api/app/controller/app/AppraisalController.php`
- 当前静态内容:
- `preview()` 中的 `agreements`
- `service_agreement`
- `privacy_policy`
- `appraisal_notice`
## 四、前端仍然硬编码的业务选项
这些不一定是 bug但如果要达到“后台可维护、线上可运营”的标准后续建议逐步改成可配置或接口下发。
### 1. 用户端
- `user-app/src/pages/support/create.vue`
- 工单类型 `typeOptions`
- `user-app/src/pages/support/index.vue`
- 常见问题快捷入口 `quickTypes`
- `user-app/src/pages/appraisal/product.vue`
- 颜色建议 `colorSuggestions`
- 规格建议 `sizeSuggestions`
- `user-app/src/pages/appraisal/extra.vue`
- 购买渠道
- 使用情况
- 附件情况
### 2. 管理后台
- `admin-web/src/pages/orders/index.vue`
- 服务筛选项
- 状态筛选项
- `admin-web/src/pages/appraisal-tasks/index.vue`
- 阶段筛选项
- 状态筛选项
- 结果选项
- `admin-web/src/pages/reports/index.vue`
- 服务筛选项
- 报告状态项
- 结果项
- `admin-web/src/pages/tickets/index.vue`
- 工单类型与状态筛选
说明:
- 这类枚举型选项短期内可以先保留
- 但工单类型、结果模板、服务文案如果未来需要运营调整,建议迁移为后台字典表或系统配置
## 五、已发现的“假入口 / 假交互”
- `user-app/src/pages/appraisal/upload.vue`
- `查看示例` 按钮无实际功能
- `查看拍摄示例` 入口无实际功能
- `user-app/src/pages/home/index.vue`
- 未识别的快捷入口会落到“该功能正在完善中”
- `user-app/src/pages/mine/index.vue`
- 未识别入口也会落到“该功能正在完善中”
## 六、推荐开发顺序
### P0先清掉会误导真实业务判断的 fallback
优先处理以下页面:
- 订单详情
- 报告详情
- 消息中心
- 地址管理
- 工单列表 / 工单详情
- 设置页
- 验真页
目标:
- 失败时显示明确错误状态,不再显示 mock 业务数据
### P1把接口里已返回但页面没展示完整的字段补齐
优先处理以下模块:
- 后台订单详情
- 鉴定作业台
- 用户端订单详情
- 报告详情页的商品摘要 / 估值摘要一致性
目标:
- 页面展示与接口字段保持一致
- 同一份订单数据在用户端、后台、报告端口径一致
### P2把后端静态内容迁移为可维护内容
优先处理:
- 首页内容
- 帮助中心
- 设置页协议入口
- 下单预览协议区
推荐做法:
- 新建内容配置表 / 帮助中心表 / 协议配置表
- 后台增加内容维护入口
- 用户端改为读取接口配置
### P3把前端硬编码枚举逐步改为字典化
优先处理:
- 工单类型
- 鉴定结果模板
- 用户端下单辅助枚举
## 七、建议的下一步落地动作
1. 先移除用户端业务页面对 `user-app/src/mocks/app.ts` 的依赖,改为错误态 + 重试。
2. 统一订单 / 报告 / 鉴定任务三端字段口径,补齐 `color``condition_desc``remark``accessories` 等实际字段。
3. 设计内容配置模型,把首页、帮助中心、协议说明迁到后台管理。
4. 最后再做字典化,把工单类型、辅助选项、结果模板迁到接口配置。