diff --git a/.claude/memory/MEMORY.md b/.claude/memory/MEMORY.md index 30c3a99..685645d 100644 --- a/.claude/memory/MEMORY.md +++ b/.claude/memory/MEMORY.md @@ -1,11 +1,11 @@ -_Last synced: 2026-05-25 | Base commit: `0e2dcff`_ +_Last synced: 2026-05-26 | Base commit: `869d555`_ # 记忆索引 | 文件 | 描述 | 类型 | 最后更新 | |------|------|------|----------| | project_overview.md | 项目技术栈、架构与模块结构 | project | 2026-05-14 | -| project_progress.md | 各模块原型开发进度 | project | 2026-05-25 | +| project_progress.md | 各模块原型开发进度 | project | 2026-05-26 | | decisions.md | 关键设计决策与架构约定 | project | 2026-04-21 | | feedback.md | 协作规范与用户纠正记录 | feedback | 2026-05-15 | | user_profile.md | 用户角色与偏好 | user | 2026-04-21 | diff --git a/.claude/memory/project_progress.md b/.claude/memory/project_progress.md index 1e6d04f..a64be69 100644 --- a/.claude/memory/project_progress.md +++ b/.claude/memory/project_progress.md @@ -2,8 +2,8 @@ name: 项目进度 description: 各模块原型开发进度与近期里程碑 type: project -last_updated: 2026-05-25 -commit: 0e2dcff +last_updated: 2026-05-26 +commit: 869d555 --- # 项目进度 @@ -23,10 +23,11 @@ commit: 0e2dcff - `health-consult/` — 健康咨询(32 页)✅ - `emergency-medical/` — 应急就医(25+ 页)✅ - `health-checkup/` — 健康体检(20+ 页)✅ -- `health-monitor/` — 健康监测(25 页)🔨 设计中 +- `health-monitor/` — 健康监测(25+ 页)🔨 设计中 - `wearable/` — 穿戴设备监测(16 页:血氧/心率/压力/体温/步数/运动/睡眠/血压/心电+告警) - `weight/` — 体重监测(3 页:主页/历史/报告详情) - `health-screening/` — 健康筛查/每日打卡(5 页:首页/问卷填写/问卷设置/问卷详情/打卡记录) + - `environment/` — 环境监测(3 页:入口/设备详情/报警数据) - `index.html` — 健康监测入口页 ### Web 管理端(web-admin) @@ -54,6 +55,8 @@ Web 管理端和员工端 APP 的其余模块(系统管理、运动管理、 - 覆盖模块:17 个(含三端+其他终端) ## 近期里程碑 +- 2026-05-26:卫生供应模块净菜内供/外售页面交互重构——列表去掉溯源码和仓库/出库区域列,新建弹窗包装批次号始终显示(非必填)并回显批次信息,备货完成改为补全备货信息弹窗(选择批次号),详情抽屉按净菜类型定制渲染(净菜包显示溯源码/餐品净菜包显示批次号+明细表),外售弹窗客户信息后置且改为输入框 +- 2026-05-25:员工端环境监测模块新增——地图/列表视图入口页、设备详情页、报警数据页 - 2026-05-22:味养创新交互完善——人工创新查看详情弹窗/审核双模/AI推演弹窗重构及侧边栏修复,功能说明9.5章节同步更新 - 2026-05-22:绿色种采模块全面重构——采供管理整页重构(采购单维度主表+子表、5种状态联动操作、配送/取消弹窗交互、详情抽屉动态信息),采收入库/供应商管理/种植监控/养殖监控多页面优化,功能说明文档9.4章节同步更新 - 2026-05-22:营养用餐模块多页面交互优化——数据分析页新增食堂切换栏/周选择器/餐品明细弹窗重构,食材效益页新增级联分类选择器,大模型管理新增API_KEY/API_URL列及接入/编辑弹窗,小模型管理新增新增模型弹窗,终端管理筛选栏/表格列精简,餐线管理操作列移除编辑按钮 diff --git a/CLAUDE.md b/CLAUDE.md index b36dee1..7debfec 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,4 +1,4 @@ - + # 项目约束 diff --git a/web-admin/nutrition/doc/溯源总览优化方案.md b/web-admin/nutrition/doc/溯源总览优化方案.md new file mode 100644 index 0000000..3999453 --- /dev/null +++ b/web-admin/nutrition/doc/溯源总览优化方案.md @@ -0,0 +1,161 @@ +# 溯源总览模块优化方案 + +> 整理时间:2026-05-22 | 状态:待讨论 | 关联页面:trace-query.html、trace-timeline.html + +--- + +## 一、核心问题诊断 + +### 问题 1:模块定位与内容严重不匹配 + +"溯源总览"作为营养管理的**第一个一级 Tab**,目前只有 2 个页面(查询 + 链路可视化)。对比其他模块(绿色种采 10+ 页、健康生产 10+ 页、营养用餐 8+ 页),内容极度单薄。更关键的是——**叫"总览"却没有总览 Dashboard**,用户进入后直接看到的是一个查询列表,完全没有全局视角。 + +### 问题 2:trace-query 的数据粒度混乱(最致命) + +表格的每一行粒度定义混乱: + +| 列名 | 粒度 | 矛盾点 | +|------|------|--------| +| 餐品溯源码 / 菜品名称 | 餐品级 | 一道菜一个码 | +| 来源类型 / 产地/供应商 / 种植批次 | **食材级** | 一道菜有多种食材,各有不同来源 | + +以"宫保鸡丁"为例,它包含 4 种食材(鸡胸肉=外采、花生=外采、辣椒=自种、葱姜蒜=自种),但表中只显示了一条记录,来源标记为"自产养殖"——这只对应了鸡胸肉一种食材,**其他 3 种食材的溯源信息完全丢失**。 + +如果某天的花生检出黄曲霉毒素超标,从这个表里根本看不出来。 + +### 问题 3:trace-timeline 的信息负荷过重 + +鸡胸肉链路有 **14 个节点**,水平排列后管道极长。分支节点(如净菜加工 x4、按单烹制 x3)本质上是一个节点分裂出多条并行链路,但当前设计**只用角标数字表示**,点击后详情是把所有分支挤在一个卡片里(`分支A/B/C/D`),无法直观理解分支走向和收敛。 + +### 问题 4:两个页面之间的衔接断裂 + +trace-query 中每行的"查看食材链路"都指向同一个 `trace-timeline.html`(硬编码的宫保鸡丁数据),无论点哪道菜都看到同样的内容。作为原型,至少应该在页面状态上表达"跳转后应展示对应菜品"的意图。 + +--- + +## 二、重构优化方案 + +建议将"溯源总览"模块从 2 页扩展为 **4~5 页**: + +``` +溯源总览(一级菜单) +├── 溯源看板 trace-dashboard.html 【新增】总览 Dashboard +├── 餐品溯源查询 trace-query.html 【重构】修正数据粒度 +├── 食材溯源查询 trace-ingredient.html 【新增】食材维度独立页 +├── 链路可视化 trace-timeline.html 【优化】交互减负 +└── 溯源码管理 trace-code.html 【新增,可选】溯源码规则配置 +``` + +### 2.1 新增:溯源看板(trace-dashboard) + +作为模块的**入口页和默认页**,提供全局统计视角。 + +**顶部统计卡片行(4~5 张):** +- 今日溯源覆盖率(已溯源菜品数 / 总菜品数,如 95.2%) +- 检测合格率(合格食材数 / 已检食材数,如 99.8%) +- 自产食材占比(自种+自养数量 / 总食材数,如 42%) +- 异常待处理数(检测不合格 + 链路断裂 + 数据缺失) +- 可选:今日已完成溯源链路数 + +**中部双列布局:** +- 左:近 7 天溯源趋势折线图(溯源覆盖率 + 合格率双曲线) +- 右:食材来源分布饼图(自产种植 / 自产养殖 / 外采占比) + +**底部:** +- 近期异常事件列表(检测不合格的食材、链路中断记录、溯源码异常等) +- 快捷入口卡片(跳转餐品查询、食材查询、链路可视化) + +### 2.2 重构:餐品溯源查询(trace-query) + +**核心改动:修正数据粒度为纯餐品级,食材信息下沉到展开行。** + +表格列重设计: + +| 餐品溯源码 | 菜品名称 | 就餐日期 | 餐次 | 食材数量 | 来源组成 | 检测结论 | 烹制厨师 | 上餐时间 | 操作 | +|---|---|---|---|---|---|---|---|---|---| +| TR-20260422-001 | 宫保鸡丁 | 2026-04-22 | 午餐 | 4种 | 自种2 外采2 | 全部合格 | 张厨师 | 11:30 | 展开 \| 查看链路 | + +关键变化: +- **删除**原来的"来源类型""产地/供应商""种植/养殖批次"(食材级信息不应出现在餐品级表中) +- **新增**"食材数量"列 + "来源组成"列(标签组合展示,如 `自种×2 外采×2`) +- **新增**"展开"操作:点击后在行下方展开食材子表 + +**展开后的食材子表示意:** + +``` +┌─────────────────────────────────────────────────────────────────┐ +│ 🥩 鸡胸肉 8.5kg 外采 鲜肉直供 批次:JXRJ-.. 检测:合格 │ +│ 🥜 花生 1.2kg 外采 华盛干货 批次:HS-.. 检测:合格 │ +│ 🌶️ 辣椒 0.8kg 自种 南郊基地 批次:LJ-.. 检测:合格 │ +│ 🧄 葱姜蒜 0.5kg 自种 南郊基地 批次:CJS-.. 检测:合格 │ +└─────────────────────────────────────────────────────────────────┘ +``` + +**筛选栏补充:** +- 新增"餐次"筛选(早餐/午餐/晚餐/加餐) +- "就餐日期"改为日期范围选择(默认今天) +- 新增"食堂"筛选(对应多食堂场景) + +### 2.3 新增:食材溯源查询(trace-ingredient) + +**独立的食材维度查询页**,从 trace-timeline 的"食材维度 Tab"中抽离为完整页面。 + +表格列设计: + +| 食材溯源码 | 食材名称 | 来源类型 | 产地/供应商 | 入库日期 | 入库量 | 剩余库存 | 关联菜品数 | 检测结论 | 操作 | +|---|---|---|---|---|---|---|---|---|---| +| ST-EX-XR01-MT-... | 鸡胸肉 | 外采 | 鲜肉直供公司 | 04-15 | 80kg | 32kg | 4道 | 合格 | 查看链路 \| 关联菜品 | + +页面价值: +- 追踪**一批食材被分配到了哪些菜品**(正向追溯) +- 检测不合格时快速定位**受影响的所有菜品和订单**(反向召回) +- 解决了 trace-query 中食材信息被压缩的问题 + +### 2.4 优化:链路可视化(trace-timeline) + +**优化点 1:14 个节点太拥挤 → 分段折叠** + +将 19 种节点归类为 5 个阶段,默认展示阶段概要,点击展开看细节: + +``` +[采供阶段] ────→ [存储阶段] ────→ [加工阶段] ────→ [烹制上餐] ────→ [餐后追踪] + 采供入库 毛菜入库 净菜加工 按单烹制 余量处置 + 卫生检测 毛菜存储 净菜入库 上餐监控 营养检验 + 净菜内供 用户取餐 + 净菜进柜 + 净菜组配 +``` + +每个阶段用"超级节点"表示(阶段名 + 节点数 + 整体状态),点击展开该阶段详细节点管道。 + +**优化点 2:分支角标看不懂 → 分支卡片列表** + +点击分支节点时,详情区域从单卡片改为**分支卡片列表**,每条分支单独一张卡片,标注分支走向(如"→ 宫保鸡丁""→ 辣子鸡"),用颜色/线条标注"当前追踪的是哪条分支"。 + +**优化点 3:食材维度数据不完整** + +- 提供食材搜索框,支持按食材名称/溯源码搜索 +- 展示该食材的完整溯源链路(从源头到所有去向菜品) +- 或者:将食材维度移到 trace-ingredient 页面,trace-timeline 专注餐品维度 + +### 2.5 可选新增:溯源码管理(trace-code) + +管理溯源码的编码规则、前缀配置、批次规则等系统配置页面。当前溯源码格式 `ST-{来源}-{供应商编号}-{分类}-{品名}-{重量}-{日期}-{序号}` 是隐含在数据中的,如果需要运维人员管理这些规则,可以做一个配置页。优先级较低。 + +--- + +## 三、与文档 8.5 节已有建议的关系 + +文档 8.5 节的 8 条建议(导出筛选结果、快速预览浮层、PDF报告导出、数据一致性检查、视频播放器、食材历史链路、缩略图导航、分支收敛可视化)属于**细节优化**,可以在重构后的新页面中一并实现。但如果不先解决数据粒度混乱和模块定位不清的根本问题,单独做那些优化效果有限。 + +--- + +## 四、优先级 + +| 优先级 | 页面 | 工作量 | 理由 | +|--------|------|--------|------| +| P0 | trace-dashboard 新建 | 中 | 模块入口必须有总览 | +| P0 | trace-query 重构 | 中 | 数据粒度问题是硬伤 | +| P1 | trace-ingredient 新建 | 中 | 食材维度是溯源核心能力 | +| P1 | trace-timeline 优化 | 大 | 可视化体验提升 | +| P2 | trace-code 新建 | 小 | 系统配置,可后期补 | diff --git a/web-admin/nutrition/sup-in-clean.html b/web-admin/nutrition/sup-in-clean.html index 0a31a95..c4681b0 100644 --- a/web-admin/nutrition/sup-in-clean.html +++ b/web-admin/nutrition/sup-in-clean.html @@ -198,29 +198,29 @@ tbody td.td-actions{white-space:nowrap;}
- + - + - + - + - + - + - + - +
加工批次号关联单号溯源码食材名称净菜类型加工步骤毛菜重量(kg)净菜重量(kg)出净率(%)加工人员开始时间结束时间质检结果入库状态操作加工批次号溯源码食材名称净菜类型加工步骤毛菜重量(kg)净菜重量(kg)出净率(%)加工人员开始时间结束时间质检结果入库状态操作
PROC-001NC-IN-001NC-PROC-BOCA-20260415-01土豆土豆丝去皮/切割1008686.0李加工2026-04-15 08:002026-04-15 08:45合格已入库查看视频 更多 ▾PROC-001NC-PROC-BOCA-20260415-01土豆土豆丝去皮/切割1008686.0李加工2026-04-15 08:002026-04-15 08:45合格已入库查看视频 更多 ▾
PROC-002NC-PROC-HLUB-20260415-01土豆土豆片去皮/切割14012085.7王加工2026-04-15 08:302026-04-15 09:20合格未入库查看视频 生成入库单 更多 ▾PROC-002NC-PROC-HLUB-20260415-01土豆土豆片去皮/切割14012085.7王加工2026-04-15 08:302026-04-15 09:20合格未入库查看视频 生成入库单 更多 ▾
PROC-003NC-PROC-XGUO-20260415-01土豆土豆泥去皮/切割564885.7李加工2026-04-15 09:002026-04-15 09:40合格未入库查看视频 生成入库单 更多 ▾PROC-003NC-PROC-XGUO-20260415-01土豆土豆泥去皮/切割564885.7李加工2026-04-15 09:002026-04-15 09:40合格未入库查看视频 生成入库单 更多 ▾
PROC-004NC-PROC-SJDOU-20260415-01四季豆段(5cm)清洗605286.7张加工2026-04-15 09:302026-04-15 10:00待处理未入库查看视频 更多 ▾PROC-004NC-PROC-SJDOU-20260415-01四季豆段(5cm)清洗605286.7张加工2026-04-15 09:302026-04-15 10:00待处理未入库查看视频 更多 ▾
PROC-005NC-IN-004NC-PROC-BCAI-20260415-01白菜整棵清洗807087.5张加工2026-04-15 07:302026-04-15 08:10合格未入库查看视频 生成入库单 更多 ▾PROC-005NC-PROC-BCAI-20260415-01白菜整棵清洗807087.5张加工2026-04-15 07:302026-04-15 08:10合格未入库查看视频 生成入库单 更多 ▾
PROC-006NC-IN-005NC-PROC-ZLRJ-20260415-01猪里脊丁(1.5cm)切割807695.0王加工2026-04-15 09:302026-04-15 09:55合格未入库查看视频 生成入库单 更多 ▾PROC-006NC-PROC-ZLRJ-20260415-01猪里脊丁(1.5cm)切割807695.0王加工2026-04-15 09:302026-04-15 09:55合格未入库查看视频 生成入库单 更多 ▾
PROC-007NC-PROC-ZLRJ-20260415-02猪里脊条(4cm)切割908594.4李加工2026-04-15 10:002026-04-15 10:30待处理未入库查看视频 更多 ▾PROC-007NC-PROC-ZLRJ-20260415-02猪里脊条(4cm)切割908594.4李加工2026-04-15 10:002026-04-15 10:30待处理未入库查看视频 更多 ▾
@@ -273,7 +273,7 @@ tbody td.td-actions{white-space:nowrap;}
-
+
@@ -324,13 +324,13 @@ var _stockRowData=null; function confirmGenStock(el){ var tr=el.closest('tr'); var tds=tr.querySelectorAll('td'); - /* 列序:0加工批次号 1关联单号 2溯源码 3食材名称 4净菜类型 5加工步骤 6毛菜重量 7净菜重量 */ + /* 列序:0加工批次号 1溯源码 2食材名称 3净菜类型 4加工步骤 5毛菜重量 6净菜重量 */ _stockRowData={ batch:tds[0].textContent, - trace:tds[2].textContent, - food:tds[3].textContent, - cleanType:tds[4].textContent, - weight:tds[7].textContent + trace:tds[1].textContent, + food:tds[2].textContent, + cleanType:tds[3].textContent, + weight:tds[6].textContent }; document.getElementById('confirmStockModal').style.display='flex'; } diff --git a/web-admin/nutrition/sup-in-cleanin.html b/web-admin/nutrition/sup-in-cleanin.html index a236cac..9f1be64 100644 --- a/web-admin/nutrition/sup-in-cleanin.html +++ b/web-admin/nutrition/sup-in-cleanin.html @@ -194,23 +194,23 @@ tbody td.td-actions{white-space:nowrap;}
- + - + - + - + - + - +
入库单号关联单号溯源码食材名称净菜类型入库规格入库数量入库重量(kg)当前库存(kg)操作时间保质期至存放区域存放温度(℃)操作人操作类型操作入库单号操作类型溯源码食材名称净菜类型入库规格入库数量入库重量(kg)当前库存(kg)操作时间保质期至存放区域存放温度(℃)操作人操作
NC-IN-001PROC-001NC-PROC-BOCA-20260415-01土豆土豆丝袋装/500g8643.031.02026-04-15 09:152026-04-17 09:15A仓-蔬菜区-014.1李入库设备自动查看视频 出库明细 更多 ▾NC-IN-001设备自动NC-PROC-BOCA-20260415-01土豆土豆丝袋装/500g8643.031.02026-04-15 09:152026-04-17 09:15A仓-蔬菜区-014.1李入库查看视频 出库明细 更多 ▾
NC-IN-002PROC-002NC-PROC-HLUB-20260415-01土豆土豆片袋装/500g12060.047.52026-04-15 09:452026-04-18 09:45A仓-蔬菜区-024.2王入库设备自动查看视频 出库明细 更多 ▾NC-IN-002设备自动NC-PROC-HLUB-20260415-01土豆土豆片袋装/500g12060.047.52026-04-15 09:452026-04-18 09:45A仓-蔬菜区-024.2王入库查看视频 出库明细 更多 ▾
NC-IN-003PROC-003NC-PROC-XGUO-20260415-01土豆土豆泥盒装/300g4814.49.02026-04-15 11:002026-04-17 11:00A仓-蔬菜区-034.0李入库人工录入查看视频 出库明细 更多 ▾NC-IN-003人工录入NC-PROC-XGUO-20260415-01土豆土豆泥盒装/300g4814.49.02026-04-15 11:002026-04-17 11:00A仓-蔬菜区-034.0李入库查看视频 出库明细 更多 ▾
NC-IN-004PROC-005NC-PROC-BCAI-20260415-01白菜整棵散装/整棵7035.022.52026-04-15 11:302026-04-18 11:30A仓-蔬菜区-043.8张入库人工录入查看视频 出库明细 更多 ▾NC-IN-004人工录入NC-PROC-BCAI-20260415-01白菜整棵散装/整棵7035.022.52026-04-15 11:302026-04-18 11:30A仓-蔬菜区-043.8张入库查看视频 出库明细 更多 ▾
NC-IN-005PROC-006NC-PROC-ZLRJ-20260415-01猪里脊丁(1.5cm)袋装/400g7630.418.82026-04-15 12:002026-04-16 12:00B仓-肉类区-01-2.0王入库设备自动查看视频 出库明细 更多 ▾NC-IN-005设备自动NC-PROC-ZLRJ-20260415-01猪里脊丁(1.5cm)袋装/400g7630.418.82026-04-15 12:002026-04-16 12:00B仓-肉类区-01-2.0王入库查看视频 出库明细 更多 ▾
@@ -247,7 +247,6 @@ tbody td.td-actions{white-space:nowrap;}
-