Files
Neo-ZQYY/docs/prd/Neo_Specs/review-report.md
Neo 6f8f12314f feat: 累积功能变更 — 聊天集成、租户管理、小程序更新、ETL 增强、迁移脚本
包含多个会话的累积代码变更:
- backend: AI 聊天服务、触发器调度、认证增强、WebSocket、调度器最小间隔
- admin-web: ETL 状态页、任务管理、调度配置、登录优化
- miniprogram: 看板页面、聊天集成、UI 组件、导航更新
- etl: DWS 新任务(finance_area_daily/board_cache)、连接器增强
- tenant-admin: 项目初始化
- db: 19 个迁移脚本(etl_feiqiu 11 + zqyy_app 8)
- packages/shared: 枚举和工具函数更新
- tools: 数据库工具、报表生成、健康检查
- docs: PRD/架构/部署/合约文档更新

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 00:03:48 +08:00

289 lines
26 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.
# Spec 审查报告Neo_Specs 遗漏需求细节
> 审查日期2026-03-20
> 审查方法:以 `docs/prd/specs/` 中 P5.1、P6-P10 为标杆,逐项对照 `docs/prd/Neo_Specs/` 中 NS1/NS3/NS4/RNS1识别 Neo_Specs 中遗漏的需求细节
> 审查范围6 个标杆文件 × 对应 Neo_Specs 文件
> 规则NS1/RNS1 中新增的需求(标杆文件没有的)不算遗漏,仅关注标杆文件中有但 Neo_Specs 中缺失的内容
---
## 一、总览汇总
| 标杆文件 | 对照文件 | 缺失项总数 | 🔴 高 | 🟠 中 | 🟡 低 |
|---------|---------|:----------:|:-----:|:-----:|:-----:|
| P5.1MCP Server AI 扩展) | NS3 | 10 | 2 | 5 | 3 |
| P6小程序前端-任务模块) | NS1 + RNS1 | 18 | 6 | 8 | 4 |
| P7小程序前端-绩效模块) | NS1 + RNS1 | 12 | 3 | 5 | 4 |
| P8小程序前端-看板模块) | NS1 + RNS1 | 14 | 4 | 5 | 5 |
| P9小程序前端-详情模块) | NS1 + RNS1 | 23 | 4 | 10 | 9 |
| P10租户管理后台 | NS4 | 9 | 0 | 4 | 5 |
| **合计** | | **86** | **19** | **37** | **30** |
---
## 二、高风险缺失项汇总(🔴 高,共 19 项)
以下缺失项可能导致功能不完整、联调失败或数据错误,建议优先补充。
### P5.1 → NS32 项)
| # | 缺失内容 | 影响 |
|---|---------|------|
| 1 | App1智能任务生成的完整 Prompt 工程规范P5.1 定义了 system prompt 模板、few-shot 示例、输出 JSON schema 约束NS3 仅提及"调用 LLM 生成任务"无 prompt 细节 | 生成质量不可控,无法验收 |
| 2 | App2财务洞察的指标计算口径P5.1 明确了 6 个财务指标的计算公式(含 items_sum 口径、环比基准NS3 仅列出"生成财务分析报告" | 财务数据可能计算错误 |
### P6 → NS1/RNS16 项)
| # | 缺失内容 | 影响 |
|---|---------|------|
| 1 | 任务卡片的视觉状态机P6 定义了 5 种卡片状态(待处理/已置顶/已完成/已放弃/过期的颜色、图标、交互差异NS1/RNS1 仅按 status 分组返回数据 | 前端无法正确渲染状态差异 |
| 2 | 任务列表的空状态设计P6 定义了 3 种空状态(无任务/筛选无结果/网络错误的文案和插图NS1/RNS1 未提及 | 空状态体验缺失 |
| 3 | 置顶任务的排序规则P6 明确"置顶任务按置顶时间倒序,非置顶按优先级→创建时间排序"NS1 TASK-1 未定义排序规则 | 列表排序可能不符合预期 |
| 4 | 任务操作的确认弹窗规范P6 定义了放弃/取消放弃操作的二次确认弹窗文案和按钮样式NS1/RNS1 未提及前端交互细节 | 误操作风险 |
| 5 | 下拉刷新与触底加载的动画规范P6 定义了 loading 动画、skeleton 屏、错误重试的交互细节NS1/RNS1 仅提及"分页"和"懒加载" | 加载体验不一致 |
| 6 | 任务详情页的 AI 分析展示规范P6 定义了 AI 分析卡片的折叠/展开交互、"重新生成"按钮、加载状态NS1 TASK-2 仅定义了 aiAnalysis 数据字段 | AI 功能交互不完整 |
### P7 → NS1/RNS13 项)
| # | 缺失内容 | 影响 |
|---|---------|------|
| 1 | 营业日分割点08:00的完整处理规范P7 多次强调"营业日以 08:00 为分割点"并给出具体示例("本月"= 当月1日 08:00 ~ 次月1日 08:00NS1/RNS1 的 PERF-1/PERF-2 使用 `biz_date` 查询但未说明 biz_date 是否已按 08:00 分割 | 跨日数据归属可能错误(如凌晨 2 点的服务归属哪天) |
| 2 | "预估"标记的完整规范P7 AC7 和 T7 明确要求"当月数据显示预估标记"NS1 PERF-1 提到 `isEstimate` 字段但未定义判断逻辑(什么条件下标记为预估?当月所有数据都是预估?还是仅未结算的?) | 预估标记逻辑不明确 |
| 3 | 定档折算惩罚的展示格式P7 AC6 明确要求"120分钟定档折算30分钟"格式NS1 PERF-2 提到 `hoursRaw`(折算前)和 `hours`(折算后)但未定义前端展示格式 | 折算信息展示不一致 |
### P8 → NS1/RNS14 项)
| # | 缺失内容 | 影响 |
|---|---------|------|
| 1 | 看板页面的 Tab 切换交互P8 定义了助教/客户/财务三个 Tab 的切换动画、缓存策略切换回来保持筛选状态NS1/RNS1 仅定义了 API 参数 | Tab 切换体验不完整 |
| 2 | 财务看板的数据加载策略P8 定义了"首次加载经营一览,其他板块懒加载"的分段加载策略NS1 BOARD-3 是单个 API 返回全部 6 板块数据 | 首屏加载慢200+ 字段一次返回) |
| 3 | 客户看板卡片的点击跳转P8 定义了"点击客户卡片跳转到 customer-detail 页面"的交互NS1/RNS1 BOARD-2 未定义卡片点击行为和跳转参数 | 看板→详情的导航链路断裂 |
| 4 | 助教看板的"距升档"进度条P8 定义了升档进度的可视化展示(进度条 + 百分比 + 差距小时数NS1 BOARD-1 仅返回 `perfGap` 文本字段 | 进度可视化缺失 |
### P9 → NS1/RNS14 项)
| # | 缺失内容 | 影响 |
|---|---------|------|
| 1 | 客户详情页的数据加载顺序P9 定义了"基本信息→消费汇总→AI 洞察→消费记录→备注"的分段加载策略和 skeleton 占位NS1 CUST-1 是单个 API 返回全部数据 | 首屏加载慢 |
| 2 | 助教详情页的档位进度可视化P9 定义了档位节点tierNodes的时间轴样式、当前档位高亮、升档动画NS1 COACH-1 仅返回 tierNodes 数据 | 档位展示缺乏视觉引导 |
| 3 | 消费记录的类型图标映射P9 定义了台桌消费/商城消费/充值 3 种类型的图标、颜色、标签样式NS1 CUST-1 仅返回 `type` 字段 | 消费类型视觉区分不明确 |
| 4 | 备注的 AI 评分展示P9 定义了备注卡片上 AI 评分的星级展示1-5 星)和评分说明 tooltipNS1 仅返回 `ai_score` 数值 | 评分展示不直观 |
---
## 三、各标杆文件详细对比
### 3.1 P5.1MCP Server AI 扩展vs NS3
P5.1 定义了 MCP Server 的 7 个 AI 应用App1-App7的完整规范NS3 覆盖了整体架构但在以下细节上有遗漏。
| # | 风险 | 缺失内容 | P5.1 位置 | NS3 现状 | 补充建议 |
|---|:----:|---------|----------|---------|---------|
| 1 | 🔴 | App1 Prompt 工程规范system prompt 模板、few-shot 示例、输出 JSON schema | §App1 详细设计 | 仅提及"调用 LLM" | 补充完整 prompt 模板和输出约束 |
| 2 | 🔴 | App2 财务指标计算口径6 个指标公式、items_sum 口径、环比基准) | §App2 详细设计 | 仅列出"生成财务分析" | 补充指标公式,引用 DWD-DOC 口径规范 |
| 3 | 🟠 | App3 维客线索生成的触发条件和频率(每日/每周/事件驱动) | §App3 调度策略 | 未定义触发机制 | 补充调度策略和去重逻辑 |
| 4 | 🟠 | App4-App7 的缓存策略cache_type 枚举、过期时间、失效条件) | §缓存设计 | 提及 ai_cache 表但未定义策略 | 补充各 App 的缓存 TTL 和失效触发条件 |
| 5 | 🟠 | LLM 调用的错误处理和降级策略(超时/限流/模型不可用时的回退) | §异常处理 | 未提及 | 补充降级策略(如返回缓存结果或提示用户) |
| 6 | 🟠 | Token 用量监控和成本控制(单次调用上限、日/月预算、超限处理) | §成本控制 | 未提及 | 补充 token 预算和告警机制 |
| 7 | 🟠 | App5话术生成的话术模板分类和质量评估标准 | §App5 详细设计 | 仅提及"生成话术" | 补充话术分类(召回/维护/推荐)和评估维度 |
| 8 | 🟡 | 各 App 的单元测试用例设计(输入/输出示例、边界条件) | §测试策略 | 未提及 | 补充关键 App 的测试用例 |
| 9 | 🟡 | MCP Server 的健康检查端点和监控指标 | §运维 | 未提及 | 补充 /health 端点和关键指标(延迟/成功率/token 用量) |
| 10 | 🟡 | AI 生成内容的审计日志(谁在什么时候对哪个客户生成了什么) | §审计 | 未提及 | 补充审计日志表或字段 |
---
### 3.2 P6小程序前端-任务模块vs NS1/RNS1
P6 定义了任务列表和任务详情两个页面的完整前端规范NS1/RNS1 主要关注后端 API 设计,以下前端交互细节有遗漏。
| # | 风险 | 缺失内容 | P6 位置 | NS1/RNS1 现状 | 补充建议 |
|---|:----:|---------|--------|--------------|---------|
| 1 | 🔴 | 任务卡片 5 种状态的视觉规范(颜色/图标/交互差异) | §任务卡片设计 | 仅按 status 分组返回 | 在契约或前端 spec 中补充状态→样式映射表 |
| 2 | 🔴 | 3 种空状态设计(无任务/筛选无结果/网络错误)的文案和插图 | §空状态 | 未提及 | 补充空状态 UI 规范 |
| 3 | 🔴 | 置顶任务排序规则(置顶按时间倒序,非置顶按优先级→创建时间) | §排序逻辑 | TASK-1 未定义排序 | 在 API 契约中明确 ORDER BY 规则 |
| 4 | 🔴 | 放弃/取消放弃的二次确认弹窗文案和按钮样式 | §操作确认 | 未提及交互细节 | 补充确认弹窗规范 |
| 5 | 🔴 | 下拉刷新/触底加载的动画规范loading/skeleton/错误重试) | §加载状态 | 仅提及"分页""懒加载" | 补充加载状态 UI 规范 |
| 6 | 🔴 | AI 分析卡片的折叠/展开交互、"重新生成"按钮、加载状态 | §AI 分析展示 | TASK-2 仅定义数据字段 | 补充 AI 卡片交互规范 |
| 7 | 🟠 | 任务优先级的视觉标识(高/中/低优先级的颜色和图标) | §优先级展示 | 未提及优先级视觉 | 补充优先级→样式映射 |
| 8 | 🟠 | 任务到期倒计时的展示规则(距到期 N 天的颜色变化) | §到期提醒 | 未提及 | 补充倒计时展示规则 |
| 9 | 🟠 | 备注输入框的字数限制和实时计数 | §备注交互 | createNote 仅定义参数 | 补充输入限制(如 500 字) |
| 10 | 🟠 | 任务详情页各模块的折叠/展开默认状态 | §详情布局 | 未提及 | 补充各模块默认展开/折叠状态 |
| 11 | 🟠 | 维客线索的展示样式tag 颜色映射、线索卡片布局) | §维客线索 | 定义了 tag 格式但未定义样式 | 补充 tag 颜色和卡片样式 |
| 12 | 🟠 | 任务列表页的搜索功能(按客户名/手机号搜索) | §搜索 | 未提及搜索功能 | 确认是否需要搜索,如需则补充 |
| 13 | 🟠 | 任务完成后的成功反馈动画 | §操作反馈 | 未提及 | 补充成功/失败的 toast 规范 |
| 14 | 🟠 | 网络异常时的离线提示和重试机制 | §异常处理 | 未提及 | 补充网络异常 UI 和重试策略 |
| 15 | 🟡 | 任务卡片的长按/滑动操作(如滑动删除、长按置顶) | §手势交互 | 未提及 | 确认是否需要手势操作 |
| 16 | 🟡 | 页面切换时的转场动画规范 | §转场 | 未提及 | 补充页面转场动画类型 |
| 17 | 🟡 | 任务列表的批量操作(如批量标记完成) | §批量操作 | 未提及 | 确认是否需要批量操作 |
| 18 | 🟡 | 无障碍适配(屏幕阅读器标签、焦点顺序) | §无障碍 | 未提及 | 补充关键元素的 aria 标签 |
---
### 3.3 P7小程序前端-绩效模块vs NS1/RNS1
P7 定义了绩效概览和绩效明细两个页面的完整规范NS1 §3.3 和 RNS1 T1-3/T1-4 覆盖了 API 设计,但以下细节有遗漏。
| # | 风险 | 缺失内容 | P7 位置 | NS1/RNS1 现状 | 补充建议 |
|---|:----:|---------|--------|--------------|---------|
| 1 | 🔴 | 营业日 08:00 分割点的完整处理规范 | AC2、页面清单多处 | PERF-1/PERF-2 用 `biz_date` 查询但未说明 biz_date 是否已按 08:00 分割 | 在 API 契约中明确biz_date 已由 ETL 层按 08:00 分割,后端直接按 biz_date 查询即可;或补充后端时间转换逻辑 |
| 2 | 🔴 | "预估"标记的判断逻辑 | AC7、T7 | PERF-1 有 `isEstimate` 字段但未定义判断条件 | 补充:当月所有数据标记为预估?还是仅未结算的?还是基于 ETL 数据更新时间? |
| 3 | 🔴 | 定档折算惩罚的展示格式规范 | AC6 | PERF-2 返回 `hours`/`hoursRaw` 但未定义展示格式 | 补充:前端展示为"120分钟定档折算30分钟"格式,明确 hours 和 hoursRaw 的关系 |
| 4 | 🟠 | "我的新客"筛选逻辑的完整定义 | AC3 | NS1 §3.3 提及 `dws_assistant_customer_stats` 但未定义"首次服务 + 2月内 + 服务次数≤2"的 SQL 条件 | 补充新客筛选的 WHERE 条件 |
| 5 | 🟠 | "我的常客"的展示字段(次数、小时数、工资合计) | AC4 | NS1 §3.3 提及数据源但未定义响应字段 | 补充常客列表的响应 schema |
| 6 | 🟠 | 收入与业绩档位卡片的视觉设计 | §performance 页面 | RNS1 T1-3 定义了数据字段但未定义卡片布局 | 补充卡片 UI 规范(进度条、档位标签、收入数字样式) |
| 7 | 🟠 | 服务记录按天归总的展示格式 | §performance 页面 | RNS1 PERF-1 定义了 DateGroup 结构但未定义日期标签格式 | 补充:日期标签格式(如"3月15日 周五")、每日汇总行样式 |
| 8 | 🟠 | 本月/上月切换的交互细节 | AC2 | RNS1 T1-6 提到 F8月份切换但未定义切换动画和数据刷新策略 | 补充切换交互规范 |
| 9 | 🟡 | 绩效页面的空状态(新助教无数据时的展示) | 隐含 | 未提及 | 补充空状态文案 |
| 10 | 🟡 | 业绩明细的导出功能(如导出 Excel | 隐含 | 未提及 | 确认是否需要导出功能 |
| 11 | 🟡 | 绩效数据的刷新频率说明(实时/每日/每次 ETL 后) | 隐含 | 未提及 | 补充数据新鲜度说明 |
| 12 | 🟡 | 业绩明细页的口径选择交互(本月/上月/本周/上周等) | §performance-records | RNS1 L3 定义了月份切换但 P7 还提到"本周/上周"口径NS1/RNS1 未覆盖周口径 | 确认是否需要周口径,如需则补充 API 参数 |
---
### 3.4 P8小程序前端-看板模块vs NS1/RNS1
P8 定义了三个看板页面(助教/客户/财务的完整前端规范NS1 八¾节和 RNS1 RNS1.3 覆盖了 API 和筛选矩阵,但以下前端细节有遗漏。
| # | 风险 | 缺失内容 | P8 位置 | NS1/RNS1 现状 | 补充建议 |
|---|:----:|---------|--------|--------------|---------|
| 1 | 🔴 | 三看板 Tab 切换的缓存策略(切换回来保持筛选状态和滚动位置) | §Tab 交互 | 未提及 Tab 缓存 | 补充 Tab 切换时的状态保持策略 |
| 2 | 🔴 | 财务看板分段加载策略(首次加载经营一览,其他板块懒加载) | §加载策略 | BOARD-3 单个 API 返回全部 6 板块 | 考虑拆分 API 或补充前端分段渲染策略 |
| 3 | 🔴 | 客户看板卡片点击跳转到 customer-detail 的交互和参数传递 | §卡片交互 | BOARD-2 未定义点击行为 | 补充卡片点击→跳转的参数customerId |
| 4 | 🔴 | 助教看板"距升档"进度条的可视化规范(进度条+百分比+差距小时数) | §进度展示 | BOARD-1 仅返回 `perfGap` 文本 | 补充进度条 UI 规范,或增加 `perfProgress` 百分比字段 |
| 5 | 🟠 | 看板数据的实时性标识(数据截止时间展示) | §数据时效 | 未提及 | 补充"数据更新于 XX:XX"的展示 |
| 6 | 🟠 | 财务看板环比数据的 tooltip 说明(点击环比箭头显示计算详情) | §环比交互 | 定义了环比格式但未定义交互 | 补充环比 tooltip 规范 |
| 7 | 🟠 | 助教看板卡片点击跳转到 coach-detail 的交互 | §卡片交互 | BOARD-1 未定义点击行为 | 补充卡片点击→跳转的参数coachId |
| 8 | 🟠 | 客户看板"最频繁"维度的柱状图交互(点击柱子显示具体数据) | §柱状图 | 定义了 weeklyVisits 数据但未定义交互 | 补充柱状图点击交互 |
| 9 | 🟠 | 看板页面的下拉刷新行为 | §刷新 | 未提及 | 补充下拉刷新规范 |
| 10 | 🟡 | 财务看板各板块的折叠/展开交互 | §板块交互 | 未提及 | 补充板块折叠/展开默认状态 |
| 11 | 🟡 | 看板数据加载失败时的错误展示 | §异常处理 | 未提及 | 补充错误状态 UI |
| 12 | 🟡 | 筛选项的动画效果(下拉展开/收起) | §筛选交互 | 未提及 | 补充筛选面板动画 |
| 13 | 🟡 | 助教看板的排名序号展示 | §排名 | 未提及 | 补充是否需要显示排名序号(如 #1#2 |
| 14 | 🟡 | 财务看板数字的格式化规范(千分位、小数位、货币符号) | §数字格式 | 未提及 | 补充数字格式化规则(如 ¥12,345.67 |
---
### 3.5 P9小程序前端-详情模块vs NS1/RNS1
P9 定义了客户详情、助教详情、客户服务记录三个页面的完整前端规范NS1 §3.4/§3.5 和 RNS1 RNS1.2 覆盖了 API 设计,但以下细节有遗漏。
| # | 风险 | 缺失内容 | P9 位置 | NS1/RNS1 现状 | 补充建议 |
|---|:----:|---------|--------|--------------|---------|
| 1 | 🔴 | 客户详情页分段加载策略基本信息→消费汇总→AI 洞察→消费记录→备注) | §加载策略 | CUST-1 单个 API 返回全部数据 | 考虑拆分 API 或补充前端分段渲染和 skeleton 占位规范 |
| 2 | 🔴 | 助教详情页档位进度时间轴的视觉规范(节点样式、当前档位高亮、升档动画) | §档位展示 | COACH-1 返回 tierNodes 数据但未定义视觉 | 补充时间轴 UI 规范 |
| 3 | 🔴 | 消费记录 3 种类型的图标/颜色/标签样式映射 | §消费记录 | CUST-1 仅返回 `type` 字段 | 补充 type→icon/color 映射表 |
| 4 | 🔴 | 备注 AI 评分的星级展示规范1-5 星样式、评分说明 tooltip | §备注展示 | 仅返回 `ai_score` 数值 | 补充星级 UI 和 tooltip 文案 |
| 5 | 🟠 | 客户详情页 Banner 区域的视觉设计(余额/消费/到店间隔/距上次到店的布局) | §Banner | RNS1 T2-1 定义了 4 个字段但未定义布局 | 补充 Banner UI 规范 |
| 6 | 🟠 | AI 洞察卡片的展示规范(标题/摘要/展开详情/刷新按钮) | §AI 洞察 | RNS1 T2-1 定义了 aiInsight 字段但未定义交互 | 补充 AI 洞察卡片 UI 和交互 |
| 7 | 🟠 | 关联助教任务列表的展示规范(任务类型图标、状态标签、服务统计) | §关联助教 | RNS1 T2-2 定义了数据字段但未定义展示 | 补充任务列表 UI 规范 |
| 8 | 🟠 | 最亲密助教的展示规范(关系指数可视化、课时统计图表) | §亲密助教 | RNS1 T2-3 定义了数据字段但未定义展示 | 补充亲密助教卡片 UI |
| 9 | 🟠 | 消费记录中助教明细子列表的展开/折叠交互 | §消费记录 | RNS1 定义了 coaches 子数组但未定义交互 | 补充子列表展开/折叠规范 |
| 10 | 🟠 | 助教详情页 TOP20 客户列表的排序规则和展示字段 | §TOP 客户 | RNS1 T2-5 定义了扩展字段但未定义排序 | 补充排序规则(按什么排?关系指数?消费金额?) |
| 11 | 🟠 | 助教详情页历史月份统计的图表展示(折线图/柱状图/表格) | §历史统计 | RNS1 T2-6 定义了数据字段但未定义展示形式 | 补充图表类型和交互 |
| 12 | 🟠 | 客户服务记录页的月度统计汇总展示monthCount/monthHours 的位置和样式) | §月度统计 | RNS1 T2-4 定义了字段但未定义展示 | 补充月度统计 UI 规范 |
| 13 | 🟠 | 助教详情页任务分组active/inactive/abandoned的视觉区分 | §任务分组 | RNS1 T2-5 定义了分组但未定义视觉 | 补充分组标题样式和折叠规则 |
| 14 | 🟠 | 客户详情页维客线索的展示规范线索卡片布局、category 颜色映射) | §维客线索 | RNS1 定义了脱敏规则但未定义展示 | 补充线索卡片 UI |
| 15 | 🟡 | 客户详情页的分享功能(分享客户信息给其他助教) | §分享 | 未提及 | 确认是否需要分享功能 |
| 16 | 🟡 | 助教详情页的联系方式展示(电话/微信) | §联系方式 | 未提及 | 确认是否需要展示联系方式 |
| 17 | 🟡 | 消费记录的时间范围筛选(除月份切换外是否需要自定义日期范围) | §时间筛选 | 仅支持月份切换 | 确认是否需要自定义日期范围 |
| 18 | 🟡 | 详情页的返回按钮行为(返回上一页 vs 返回列表页) | §导航 | 未提及 | 补充返回导航规则 |
| 19 | 🟡 | 客户详情页电话号码的脱敏展示(中间 4 位用 * | §隐私 | 未提及前端脱敏 | 补充:后端返回完整号码还是脱敏号码?前端是否需要"点击查看完整号码" |
| 20 | 🟡 | 助教详情页"收入明细"的展开/折叠交互 | §收入明细 | RNS1 定义了本月/上月各 4 项但未定义交互 | 补充收入明细展示规范 |
| 21 | 🟡 | 客户服务记录中"饮品描述"字段的展示位置和样式 | §服务记录 | NS1 L4 定义了 `drinks` 字段但未定义展示 | 补充饮品信息展示位置 |
| 22 | 🟡 | 详情页各模块的加载失败独立处理(某个模块失败不影响其他模块展示) | §异常处理 | 未提及 | 补充模块级错误处理策略 |
| 23 | 🟡 | 客户详情页"可用月数"的计算说明(余额÷月均消耗) | §余额分析 | RNS1 定义了 `availableMonths` 但未说明计算公式 | 补充计算公式和边界处理(月均消耗为 0 时) |
---
### 3.6 P10租户管理后台vs NS4
P10 定义了管理后台的完整规范React + Vite + Ant DesignNS4 覆盖了主要功能模块,但以下细节有遗漏。
| # | 风险 | 缺失内容 | P10 位置 | NS4 现状 | 补充建议 |
|---|:----:|---------|---------|---------|---------|
| 1 | 🟠 | 角色权限管理的 CRUD 界面规范(创建角色、分配权限、权限树展示) | §权限管理 | 提及权限模型但未定义管理界面 | 补充权限管理页面的 UI 和交互规范 |
| 2 | 🟠 | 门店切换功能的交互规范(多门店用户的门店选择器位置、切换后的数据刷新) | §门店管理 | 提及多门店但未定义切换交互 | 补充门店选择器 UI 和切换流程 |
| 3 | 🟠 | 数据导出功能的规范(哪些页面支持导出、导出格式、导出权限) | §数据导出 | 未提及 | 补充导出功能清单和权限控制 |
| 4 | 🟠 | 操作日志/审计日志的查看界面 | §审计 | 未提及 | 补充日志查看页面规范 |
| 5 | 🟡 | 管理后台的响应式适配(最小支持分辨率、移动端适配策略) | §响应式 | 未提及 | 补充最小分辨率和断点规则 |
| 6 | 🟡 | 表格组件的统一规范(分页大小、排序交互、筛选器位置) | §表格规范 | 未提及 | 补充 Ant Design Table 的统一配置 |
| 7 | 🟡 | 表单验证的统一规范(必填标识、错误提示位置、实时验证 vs 提交验证) | §表单规范 | 未提及 | 补充表单验证规则 |
| 8 | 🟡 | 管理后台的国际化预留(是否需要多语言支持) | §国际化 | 未提及 | 确认是否需要国际化预留 |
| 9 | 🟡 | 管理后台的主题定制品牌色、Logo 位置、暗色模式) | §主题 | 未提及 | 确认是否需要主题定制 |
---
## 四、跨文件系统性问题
以下问题在多个标杆文件中反复出现,反映了 Neo_Specs 整体层面的系统性缺失。
### 4.1 前端交互规范缺失(影响 P6/P7/P8/P9
NS1/RNS1 主要关注后端 API 设计和数据字段定义,对前端交互细节覆盖不足:
- 加载状态skeleton/loading/错误重试)未统一规范
- 空状态设计未覆盖
- 操作确认弹窗未规范
- 页面转场动画未定义
- 下拉刷新行为未统一
建议:新建一份前端交互规范文档(如 `NS-FE-INTERACTION.md`),统一定义上述交互模式,各页面 spec 引用即可。
### 4.2 数据加载策略缺失(影响 P8/P9
多个复杂页面(财务看板、客户详情、助教详情)的 API 设计为单个接口返回全部数据但标杆文件定义了分段加载策略。NS1/RNS1 未考虑:
- 首屏优先加载哪些模块
- 非首屏模块的懒加载触发条件
- 各模块独立的 loading/error 状态
建议:在 API 契约中为复杂页面提供分段加载方案(拆分 API 或定义 `fields` 参数控制返回范围)。
### 4.3 视觉样式映射缺失(影响 P6/P7/P8/P9
多处数据字段(状态、类型、等级、优先级)需要前端映射为视觉样式(颜色、图标、标签),但 NS1/RNS1 仅定义了数据字段,未提供映射表:
- 任务状态→颜色/图标
- 课程类型→标签样式
- 会员等级→标签颜色
- 助教等级→标签样式
- 消费类型→图标
建议:在 API 契约或前端规范中补充统一的枚举→样式映射表。
### 4.4 异常处理规范缺失(影响所有文件)
标杆文件中定义了各种异常场景的处理方式,但 Neo_Specs 普遍缺少:
- 网络异常时的 UI 展示和重试机制
- 单个模块加载失败时的降级策略
- 数据为空时的空状态展示
- 操作失败时的错误提示文案
建议:新建异常处理规范文档,统一定义错误码→用户提示的映射。
### 4.5 营业日时间规范未贯穿(影响 P7/P8
P7 多次强调"营业日以 08:00 为分割点"这个规则影响绩效和看板的所有时间相关查询。NS1/RNS1 使用 `biz_date` 字段但未明确说明 biz_date 的生成规则是否已包含 08:00 分割逻辑。
建议:在 API 契约中明确声明"所有 biz_date 字段已由 ETL 层按 08:00 营业日分割点处理,后端和前端无需额外转换"。
---
## 五、建议优先级
### 立即处理(阻塞开发)
1. 补充营业日 08:00 分割点的处理说明P7→NS1
2. 补充"预估"标记的判断逻辑P7→NS1
3. 补充任务排序规则到 API 契约P6→NS1
4. 评估复杂页面的分段加载策略P8/P9→NS1
### 短期补充(影响联调质量)
5. 新建前端交互规范文档,统一加载/空状态/确认弹窗/错误处理
6. 补充枚举→样式映射表
7. 补充 App1/App2 的 Prompt 工程和指标口径P5.1→NS3
8. 补充管理后台权限管理界面规范P10→NS4
### 后续完善(不阻塞但影响体验)
9. 补充各页面的无障碍适配
10. 补充数据导出功能规范
11. 补充页面转场动画规范