From 869d555eeded3cdb1a5ab38e4620244ed496fe9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=AF=E6=99=AE?= <18691763612@163.com> Date: Tue, 26 May 2026 08:32:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8D=AB=E7=94=9F=E4=BE=9B=E5=BA=94?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E5=87=80=E8=8F=9C=E5=86=85=E4=BE=9B/?= =?UTF-8?q?=E5=A4=96=E5=94=AE=E9=A1=B5=E9=9D=A2=E4=BA=A4=E4=BA=92=E9=87=8D?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 净菜内供/外售:去掉列表溯源码和关联仓库/出库区域列 - 新建弹窗:净菜类型在前,包装批次号始终显示(非必填),选择后回显批次包装信息 - 备货完成:从二次确认改为补全备货信息弹窗(选择包装批次号) - 详情抽屉:按净菜类型定制渲染(净菜包显示溯源码,餐品净菜包显示批次号+明细表) - 外售弹窗字段顺序调整:净菜信息在前,客户信息在后,客户名称改为输入框 - sup-in-clean/cleanin/raw/pkg-label:列调整与交互优化 Co-Authored-By: Claude Opus 4.6 --- web-admin/nutrition/doc/溯源总览优化方案.md | 161 +++++++++++ web-admin/nutrition/sup-clean-external.html | 301 ++++++++++++++------ web-admin/nutrition/sup-clean-internal.html | 240 ++++++++++++---- web-admin/nutrition/sup-in-clean.html | 28 +- web-admin/nutrition/sup-in-cleanin.html | 13 +- web-admin/nutrition/sup-in-raw.html | 2 +- web-admin/nutrition/sup-pkg-label.html | 181 +++++++++--- 7 files changed, 724 insertions(+), 202 deletions(-) create mode 100644 web-admin/nutrition/doc/溯源总览优化方案.md 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-clean-external.html b/web-admin/nutrition/sup-clean-external.html index 41bd20f..6485bce 100644 --- a/web-admin/nutrition/sup-clean-external.html +++ b/web-admin/nutrition/sup-clean-external.html @@ -122,6 +122,10 @@ textarea.form-control{height:auto;padding:8px 12px;resize:vertical;min-height:60 .drawer-field{display:flex;flex-direction:column;gap:2px;} .drawer-field__label{font-size:var(--font-xs);color:var(--text-placeholder);} .drawer-field__value{font-size:var(--font-sm);color:var(--text-primary);font-weight:500;min-height:22px;} +/* 食材明细表格(抽屉内) */ +.ing-detail-table{width:100%;border-collapse:collapse;margin-top:8px;} +.ing-detail-table th{background:#FAFAFA;padding:8px 12px;text-align:left;font-size:var(--font-xs);color:var(--text-secondary);font-weight:500;border:1px solid var(--border);} +.ing-detail-table td{padding:6px 12px;font-size:var(--font-sm);color:var(--text-primary);border:1px solid var(--border);} @@ -206,17 +210,17 @@ textarea.form-control{height:auto;padding:8px 12px;resize:vertical;min-height:60
- + - - - - - - - - + + + + + + + +
订单号溯源码客户名称净菜类型净菜/餐品包装规格售卖份数计量(kg)单价(元/kg)小计金额出库区域下单时间物流单号订单状态操作订单号客户名称净菜类型净菜/餐品包装规格售卖份数计量(kg)单价(元/kg)小计金额下单时间物流单号订单状态操作
EXT-001NC-INT-BOCA-20260422-01社区便民超市🥬 净菜包土豆(土豆丝)5kg/箱1050¥3.5¥175A仓-蔬菜区-012026-04-22 08:00SF1234567890已完成详情 删除
EXT-001NC-INT-HLUB-20260422-01社区便民超市🥬 净菜包土豆(土豆块)5kg/箱630¥3.5¥105A仓-蔬菜区-032026-04-22 08:00SF1234567890已完成详情 删除
EXT-002NC-INT-ZLRJ-20260422-01周边餐饮企业🥬 净菜包净猪里脊1kg/箱550¥28¥1,400B仓-肉类区-012026-04-22 09:30SF9876543210配送中确认收货 详情 删除
EXT-003NC-INT-JXRJ-20260422-01周边餐饮企业🍱 餐品净菜包宫保鸡丁标准份(500g)4020¥12¥240B仓-肉类区-022026-04-22 09:30SF9876543210配送中确认收货 详情 删除
EXT-004NC-INT-BCAI-20260422-01学校食堂🥬 净菜包鸡肉(鸡肉块)1kg/箱660¥2.0¥120A仓-蔬菜区-022026-04-22 10:00待配送立即发货 详情 删除
EXT-004NC-INT-XLHU-20260422-01学校食堂🥬 净菜包净西兰花5kg/箱840¥4.5¥180A仓-蔬菜区-042026-04-22 10:00待配送立即发货 详情 删除
EXT-005NC-INT-QZYU-20260422-01职工家属区团购🍱 餐品净菜包清蒸鱼标准份(500g)2010¥15¥150C仓-水产区-012026-04-22 10:30备货中备货完成 详情 删除
EXT-006NC-INT-SRBC-20260422-01职工家属区团购🍱 餐品净菜包蒜蓉菠菜标准份(500g)3015¥8¥120A仓-蔬菜区-012026-04-22 10:30备货中备货完成 详情 删除
EXT-001社区便民超市🥬 净菜包土豆(土豆丝)5kg/箱1050¥3.5¥1752026-04-22 08:00SF1234567890已完成详情 删除
EXT-001社区便民超市🥬 净菜包土豆(土豆块)5kg/箱630¥3.5¥1052026-04-22 08:00SF1234567890已完成详情 删除
EXT-002周边餐饮企业🥬 净菜包净猪里脊1kg/箱550¥28¥1,4002026-04-22 09:30SF9876543210配送中确认收货 详情 删除
EXT-003周边餐饮企业🍱 餐品净菜包宫保鸡丁标准份(500g)4020¥12¥2402026-04-22 09:30SF9876543210配送中确认收货 详情 删除
EXT-004学校食堂🥬 净菜包鸡肉(鸡肉块)1kg/箱660¥2.0¥1202026-04-22 10:00待配送立即发货 详情 删除
EXT-004学校食堂🥬 净菜包净西兰花5kg/箱840¥4.5¥1802026-04-22 10:00待配送立即发货 详情 删除
EXT-005职工家属区团购🍱 餐品净菜包清蒸鱼标准份(500g)2010¥15¥1502026-04-22 10:30备货中备货完成 详情 删除
EXT-006职工家属区团购🍱 餐品净菜包蒜蓉菠菜标准份(500g)3015¥8¥1202026-04-22 10:30备货中备货完成 详情 删除
@@ -239,44 +243,15 @@ textarea.form-control{height:auto;padding:8px 12px;resize:vertical;min-height:60 - +