This commit is contained in:
wushumin
2026-05-11 15:28:27 +08:00
commit edd1a02157
302 changed files with 67193 additions and 0 deletions

View File

@@ -0,0 +1,226 @@
# 安心验静态数据与展示映射审计
审计时间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. 最后再做字典化,把工单类型、辅助选项、结果模板迁到接口配置。