From 6b1c170f31233e61c597da602a42d418ded3b3ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=AF=E6=99=AE?= <18691763612@163.com> Date: Thu, 21 May 2026 10:33:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=81=A5=E5=BA=B7=E7=94=9F=E4=BA=A7?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E4=BA=A4=E4=BA=92=E5=AE=8C=E5=96=84=E2=80=94?= =?UTF-8?q?=E2=80=94=E4=BD=99=E9=87=8F=E5=A4=84=E7=BD=AE=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E3=80=81=E4=B8=8A=E9=A4=90=E7=9B=91=E6=8E=A7=E6=9B=B4=E5=A4=9A?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E3=80=81=E7=94=9F=E4=BA=A7=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E6=97=A5=E6=9C=9F=E8=8C=83=E5=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - prod-proc-surplus: 筛选栏新增餐线/餐次,余量红色倒序,操作列合并为更多下拉,新增弹窗三级联动+员工福利领取记录 - prod-proc-serve: 操作列详情/编辑/删除合并为更多hover下拉菜单,新增上餐弹窗自动回填 - prod-proc-stats: 生产报表和成本利润日期筛选改为范围选择器,默认当月 - 营养管理功能说明.md: 新增9.3健康生产调整记录章节 Co-Authored-By: Claude Opus 4.6 --- web-admin/nutrition/doc/营养管理功能说明.md | 70 ++++++- web-admin/nutrition/prod-proc-serve.html | 167 +++++++++++++++-- web-admin/nutrition/prod-proc-stats.html | 15 +- web-admin/nutrition/prod-proc-surplus.html | 192 +++++++++++++++----- 4 files changed, 386 insertions(+), 58 deletions(-) diff --git a/web-admin/nutrition/doc/营养管理功能说明.md b/web-admin/nutrition/doc/营养管理功能说明.md index 5399108..5c527c3 100644 --- a/web-admin/nutrition/doc/营养管理功能说明.md +++ b/web-admin/nutrition/doc/营养管理功能说明.md @@ -1202,7 +1202,75 @@ - 人群基础标准:全部4个表格(算法标准/个性化方案/大众方案/动态规则)补全了完整的新增/编辑/详情/删除弹窗交互;筛选器增加 JS 事件绑定;删除"批量安排复评"按钮及弹窗 - VIP定制标准:新增完整的 VIP 新增/编辑/详情/删除弹窗;定制目标增加彩色 tag 标签;删除"批量安排复评"按钮及弹窗 -#### 9.3 绿色种采 +#### 9.3 健康生产 + +##### 1. prod-proc-combo.html(净菜组配) +- 筛选栏新增「当前食堂」「任务来源」「任务截止日期」筛选,截止日期默认当天 +- 表头重构:去掉需求规格列,新增餐品规格/份数/任务截止时间/任务来源/完成时间列 +- 食材配方列移至任务截止时间后,「查看配方」改为「食材明细」 +- 操作列重构:固定三项(食材溯源链路、查看视频、更多▾ hover 下拉)+ 状态按钮 +- 新建组配任务弹窗重构:改用下拉选择餐品/规格/份数/来源,移除手动食材清单 +- 食材明细弹窗新增「分类」列(主材/辅材/调料 标签) + +##### 2. prod-proc-cook.html(按单烹制) +- 筛选栏新增「当前食堂」「烹制日期」筛选,烹制日期默认当天 +- 表头重构:去掉计划/实际烹制规格、视频记录,新增餐品规格/需求份数/烹制份数/烹制日期 +- 烹制状态前移至烹制份数后,食材明细/温度过程/模型数据列前移至生重/熟重/生熟比前 +- 生熟比格式改为 1:0.8 +- 操作列重构:固定三项 + hover 下拉 + 状态按钮(通知取餐/烹制完成/开始烹制) +- 新增烹制状态对应不同的操作按钮 + +##### 3. prod-proc-serve.html(上餐监控) +- 筛选栏新增「当前食堂」下拉 +- 操作列重构:保留「食材溯源链路」「查看视频」,将「详情/编辑/删除」合并为「更多▾」hover 下拉菜单 +- 新增上餐弹窗:选择已完成烹制餐品后自动回填信息卡片(任务号/菜品/厨师/出锅时间/温度/餐次/识别方式/重量) +- 新增 .action-more 下拉菜单样式体系 +- 调整表格列的顺序和部分内容 + +##### 4. prod-proc-surplus.html(余量处置) +- 筛选栏新增「当前食堂」下拉 +- 筛选栏新增「餐线」「餐次」下拉筛选框(位于食堂之后) +- 处置日期默认选中当天 +- 表格新增「餐线」列(位于餐次前)、「备注」列(位于处置方式后) +- 余量(kg)列使用红色字体显示,数据按余量倒序排列 +- 操作列重构:将「详情/编辑/删除」合并为「更多▾」hover 下拉菜单 +- 新增余量登记弹窗重构:餐线→餐次→菜品三级联动选择(菜品来自上餐监控),选择后自动回填计划制作量/实际制作量/销售取餐量/余量信息卡片 +- 处置方式选择「员工福利」时,弹窗下方动态显示员工领取记录表格(含操作列删除按钮),支持点击「+ 新增领取记录」按钮展开输入行 +- 员工福利取餐明细弹窗:新增「操作」列(删除按钮),新增底部「+ 新增领取记录」交互(点击后显示输入行,支持确认/取消) + +##### 5. prod-proc-stats.html(生产统计) +- 新增页面标题行 + 食堂切换下拉(canteen-select 高亮样式) +- 移除两个 Tab 筛选栏中原有的「食堂」筛选项 +- 生产报表 Tab:日期筛选从单个 date 改为日期范围(起始日期 至 结束日期),默认当月 +- 成本利润 Tab:日期筛选从单个 date 改为日期范围,默认当月 + +##### 6. prod-qc-daily.html(食安监控) +- 水电气表 Tab 移除「生成能耗日报」按钮 +- 水/电/气三张能耗卡片右上角新增「✏️ 录入」入口,支持手动编辑当前余量与今日用量 +- 新增页面标题行 + 食堂切换下拉切换 +- 新增摄像头回放弹窗(含播放器、时间轴、分时段列表) +- 新增新增证件、新增留样弹窗及交互 + +##### 7. prod-clean-order.html(净菜订单) +- 新增页面标题行 + 食堂切换下拉 +- 筛选栏新增「预定配送时间」日期范围筛选 +- 筛选栏新增「净菜类型」下拉(净菜包/餐品净菜包) +- 订单状态选项调整为:备货中/待配送/配送中/已完成,配送中进行确认收货操作 +- 新增弹窗通用样式与表单网格布局 +- 调整表格字段(净菜类型,调整规格与计量方式) + +##### 8. prod-proc-cabinet.html(净菜进柜) +- 新增页面标题行 + 食堂切换下拉 +- 重构页面样式(采用左侧柜体【支持切换】+右侧储物明细) +- 移除 Tab(食材净菜、餐品净菜包 、智能柜总览) 切换结构,改为左右分栏布局 +- 新增标签/链接通用样式 +- 新增手动存入净菜按钮及交互 + +##### 9. prod-recipe-plan.html(食谱规划) +- 选择餐品弹窗增加营养信息展示,对齐食谱规划页弹窗样式 +- 按周为单位进行食谱规划 + +#### 9.4 绿色种采 ##### 1.绿色种采-土地环境模块 - 地块管理:表格改为二级表头(基本信息+最新监测数据); - 新增灌溉方式/土壤类型/负责人字段; diff --git a/web-admin/nutrition/prod-proc-serve.html b/web-admin/nutrition/prod-proc-serve.html index 68aa7dc..b71407c 100644 --- a/web-admin/nutrition/prod-proc-serve.html +++ b/web-admin/nutrition/prod-proc-serve.html @@ -39,7 +39,7 @@ body{font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei .table-card{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden;} .table-card__header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border);} .table-card__title{font-size:var(--font-base);font-weight:600;} -.table-card__content{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;} +.table-card__content{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;} .table-card__content table{min-width:100%;white-space:nowrap;} table{width:100%;border-collapse:collapse;} thead th{background:#FAFAFA;padding:12px 16px;text-align:left;font-size:var(--font-sm);color:var(--text-secondary);font-weight:500;border-bottom:1px solid var(--border);white-space:nowrap;} @@ -62,6 +62,39 @@ tbody tr:hover{background:#F8FBFF;} thead th:last-child,tbody td.td-actions{position:sticky;right:0;background:#fff;box-shadow:-4px 0 8px rgba(0,0,0,0.04);z-index:2;white-space:nowrap;} thead th:last-child{background:#FAFAFA;} tbody tr:hover td.td-actions{background:#F8FBFF;} +/* 更多下拉菜单 - hover触发 */ +.action-more{position:relative;display:inline-flex;} +.action-more__trigger{color:var(--primary);cursor:pointer;font-size:var(--font-sm);user-select:none;} +.action-more__trigger:hover{color:#40a9ff;} +.action-more__menu{display:none;position:absolute;right:0;bottom:100%;margin-bottom:4px;background:#fff;border-radius:var(--radius-sm);box-shadow:0 3px 12px rgba(0,0,0,0.15);min-width:90px;z-index:100;padding:4px 0;} +.action-more:hover .action-more__menu{display:block;} +.action-more__item{display:block;padding:6px 14px;font-size:var(--font-sm);color:var(--text-primary);cursor:pointer;white-space:nowrap;transition:background .1s;} +.action-more__item:hover{background:var(--primary-light);color:var(--primary);} +.action-more__item--danger{color:var(--danger);} +.action-more__item--danger:hover{background:#FFF1F0;color:var(--danger);} +/* 弹窗 */ +.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.45);z-index:1000;display:flex;align-items:center;justify-content:center;} +.modal{background:#fff;border-radius:8px;max-height:85vh;overflow-y:auto;box-shadow:0 4px 12px rgba(0,0,0,0.15);} +.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid #e8e8e8;} +.modal-title{font-size:16px;font-weight:600;color:#262626;} +.modal-close{font-size:22px;cursor:pointer;color:#8c8c8c;line-height:1;}.modal-close:hover{color:#262626;} +.modal-body{padding:24px;} +.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #e8e8e8;} +/* 表单网格 */ +.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;} +.form-grid .form-item--full{grid-column:1/-1;} +.form-item{display:flex;flex-direction:column;gap:6px;} +.form-item__label{font-size:13px;color:#595959;}.form-item__label em{color:var(--danger);font-style:normal;margin-right:2px;} +.form-item__input{height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 12px;font-size:13px;color:var(--text-primary);outline:none;background:#fff;} +.form-item__input:focus{border-color:var(--primary);} +.form-item__input[readonly]{background:#f5f5f5;color:#8c8c8c;cursor:not-allowed;} +.form-item__select{height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0 28px 0 12px;font-size:13px;color:var(--text-primary);outline:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E") no-repeat right 10px center;appearance:none;cursor:pointer;} +.form-item__select:focus{border-color:var(--primary);} +/* 回填信息卡片 */ +.autofill-card{background:#f6f9ff;border:1px solid #d6e4ff;border-radius:6px;padding:12px 16px;display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:8px 16px;} +.autofill-card__item{display:flex;flex-direction:column;gap:2px;} +.autofill-card__label{font-size:11px;color:#8c8c8c;} +.autofill-card__value{font-size:13px;color:#262626;font-weight:500;} @@ -87,15 +120,15 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
-
-
-
-
-
+
+
+
+
+ @@ -104,14 +137,14 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
上餐监控
- + - - - - - - + + + + + +
餐次菜品名称识别方式厨师烹制任务号出锅时间出锅温度(℃)送达餐线时间送达餐线送达设备(秤台)上餐重量(kg)上餐状态操作
送达餐线餐次送达设备(秤台)识别方式菜品名称当前余量(kg)上餐重量(kg)出锅时间送达餐线时间上餐状态烹制任务号出锅温度(℃)厨师操作
午餐宫保鸡丁🤖 自动识别张厨师COOK-00111:188211:30A区中餐线00025号秤38.2上餐中食材溯源链路 查看视频 详情 编辑 删除
午餐番茄炒蛋🤖 自动识别李厨师COOK-00211:207811:30A区中餐线00025号秤22.6上餐中食材溯源链路 查看视频 详情 编辑 删除
午餐红烧肉👤 人工选择王厨师COOK-00311:228611:38B区中餐线00027号秤42.6延误8分钟食材溯源链路 查看视频 详情 编辑 删除
早餐小米粥🤖 自动识别赵厨师COOK-00607:207507:28A区早餐线00022号秤12.6已结束食材溯源链路 查看视频 详情 编辑 删除
早餐燕麦粥👤 人工选择陈厨师COOK-00707:227207:35B区早餐线00023号秤8.4延误5分钟食材溯源链路 查看视频 详情 编辑 删除
午餐蒜蓉菠菜👤 人工选择COOK-005C区快餐线00028号秤待上餐食材溯源链路 查看视频 详情 编辑 删除
A区中餐线午餐00025号秤🤖 自动识别宫保鸡丁12.538.211:1811:30上餐完成COOK-00182张厨师食材溯源链路 查看视频 更多 ▾
A区中餐线午餐00025号秤🤖 自动识别番茄炒蛋8.322.611:2011:30上餐完成COOK-00278李厨师食材溯源链路 查看视频 更多 ▾
B区中餐线午餐00027号秤👤 人工选择红烧肉1.242.611:2211:38余量不足COOK-00386王厨师食材溯源链路 查看视频 更多 ▾
A区早餐线早餐00022号秤🤖 自动识别小米粥012.607:2007:28上餐完成COOK-00675赵厨师食材溯源链路 查看视频 更多 ▾
B区早餐线早餐00023号秤👤 人工选择燕麦粥2.18.407:2207:35上餐完成COOK-00772陈厨师食材溯源链路 查看视频 更多 ▾
C区快餐线午餐00028号秤👤 人工选择蒜蓉菠菜待上餐COOK-005食材溯源链路 查看视频 更多 ▾
@@ -121,6 +154,112 @@ tbody tr:hover td.td-actions{background:#F8FBFF;}
- + + + + + diff --git a/web-admin/nutrition/prod-proc-stats.html b/web-admin/nutrition/prod-proc-stats.html index aa8e810..0586d2e 100644 --- a/web-admin/nutrition/prod-proc-stats.html +++ b/web-admin/nutrition/prod-proc-stats.html @@ -146,7 +146,7 @@ tr.summary-row td{font-weight:700;background:#FAFAFA;}
-
+
@@ -171,7 +171,7 @@ tr.summary-row td{font-weight:700;background:#FAFAFA;}
-
+
@@ -217,6 +217,17 @@ tr.summary-row td{font-weight:700;background:#FAFAFA;}