From 32bd018c4e32fd6919259812ca611b879ceaff19 Mon Sep 17 00:00:00 2001 From: fengpu <18691763612@163.com> Date: Mon, 10 Aug 2026 14:08:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=BB=93=E7=AE=97=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E5=BE=85=E6=9C=BA=E9=A1=B5=E6=96=B0=E5=A2=9E=E5=89=AF=E5=B1=8F?= =?UTF-8?q?=E4=BA=BA=E8=84=B8=E8=AF=86=E5=88=AB=E7=9B=91=E6=8E=A7=E5=8C=BA?= =?UTF-8?q?=20+=20=E5=A4=9A=E9=A1=B5=E9=9D=A2=E5=86=97=E4=BD=99=E5=85=83?= =?UTF-8?q?=E7=B4=A0=E7=B2=BE=E7=AE=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 02-standby:左下「开始结算」改为副屏人脸识别监控区(三态轮播:成功/光线不足/位置不对),底部入口「小票打印」改为「用餐管理」(占位) - 03-checkout:删除顶栏「本单应付」、余额信息卡「会员等级」、清空按钮及相关 CSS/JS - 07-statistics:KPI 对比文案统一为「较昨日午餐」,支付方式柱状图标签语义化 - 08-reconcile:删除差额汇总的「企业补贴优惠」行 - user-02-checkout-sync:删除热量环「略少 76%」提示 - user-04-success:删除二维码「今日已有 1,284 人查看」营销文案 - 同步更新 CHANGELOG、记忆体系文件、CLAUDE.md commit 引用 Co-Authored-By: Claude Opus 4.7 --- .claude/memory/MEMORY.md | 8 +- .claude/memory/decisions.md | 40 ++ .claude/memory/lint_report.md | 47 ++- .claude/memory/project_progress.md | 12 +- .idea/claudeCodeTabState.xml | 31 +- CLAUDE.md | 2 +- .../checkout-device/02-standby.html | 372 ++++++++++++++---- .../checkout-device/03-checkout.html | 35 +- .../checkout-device/07-statistics.html | 10 +- .../checkout-device/08-reconcile.html | 2 - .../checkout-device/doc/CHANGELOG.md | 55 +++ .../user-02-checkout-sync.html | 1 - .../checkout-device/user-04-success.html | 1 - 13 files changed, 446 insertions(+), 170 deletions(-) diff --git a/.claude/memory/MEMORY.md b/.claude/memory/MEMORY.md index 1d8267a..7f6eb62 100644 --- a/.claude/memory/MEMORY.md +++ b/.claude/memory/MEMORY.md @@ -1,11 +1,11 @@ -_Last synced: 2026-08-06 | Base commit: `51661ab`_ +_Last synced: 2026-08-10 | Base commit: `deb4752`_ # 记忆索引 | 文件 | 描述 | 类型 | 最后更新 | |------|------|------|----------| | project_overview.md | 项目技术栈、架构与模块结构 | project | 2026-05-14 | -| project_progress.md | 各模块原型开发进度 | project | 2026-08-06 | -| decisions.md | 关键设计决策与架构约定 | project | 2026-08-05 | +| project_progress.md | 各模块原型开发进度 | project | 2026-08-10 | +| decisions.md | 关键设计决策与架构约定 | project | 2026-08-10 | | feedback.md | 协作规范与用户纠正记录 | feedback | 2026-06-15 | | user_profile.md | 用户角色与偏好 | user | 2026-04-21 | -| lint_report.md | 记忆健康检查报告 | lint | 2026-08-06 | +| lint_report.md | 记忆健康检查报告 | lint | 2026-08-10 | diff --git a/.claude/memory/decisions.md b/.claude/memory/decisions.md index 79f030d..be2fbbc 100644 --- a/.claude/memory/decisions.md +++ b/.claude/memory/decisions.md @@ -110,3 +110,43 @@ body { - **日期**:2026-08-05 - **首次全阶段落地**:commit 4fd44f1 + +## 收银设备用户类型徽标三态体系 + +**结论**:收银设备(canteen-device/checkout-device)全端用户身份徽标统一为三态:会员(`member`)、临时(`temp`)、内部员工(`staff`),使用统一的 CSS 类名与配色,跨主屏(03-checkout/04-pay-success/05-orders/06-order-detail/07-statistics)与副屏(user-02-checkout-sync/user-03-paying/user-04-success)严格一致。 + +**Why**:原各页面只在 03-checkout 显示一个金色的"会员等级"标签,无法区分临时用户与内部员工,订单列表/详情层面看不到顾客构成不利于营收细分;且各页面分别实现样式,跨页视觉漂移。统一三态徽标后,订单列表可增加用户类型列、订单详情可独立呈现顾客信息卡,整套配色与文案可复用。 + +**How to apply**: +- CSS 类名:`.user-type` 基类 + 修饰符 `.user-type--member` / `.user-type--temp` / `.user-type--staff` +- 配色规则: + - 会员:`linear-gradient(135deg, rgba(96,165,250,.28), rgba(251,191,36,.32))` + 金色 1px 边框 + `#fbbf24` 文字(可在后追加 `` 显示会员等级) + - 临时:`rgba(148,163,184,.18)` 灰底 + 灰边框 + `#cbd5e1` 文字(无渐变、无阴影) + - 内部员工:蓝渐变 `linear-gradient(135deg, rgba(96,165,250,.22), rgba(74,144,217,.14))` + 蓝边框 + 蓝文字 +- 数据约定:每条订单/顾客对象携带 `userType: 'member' | 'temp' | 'staff'`,跨页通过 URL 参数 `userType` / `userName` / `userCode` 传递(中文用户名 `encodeURIComponent`) +- 配置表:每个页面保留本地 `USER_TYPE_CONFIG` 常量(文案 + className),保证跨页一致 + +**See Also**: +- [[project_progress.md]] — 2026-08-10 里程碑条目记录落地范围 + +- **日期**:2026-08-10 +- **首次落地**:commit deb4752 + +## 补齐明细页业务路径修正:少记来源 = 未识别取餐记录 + +**结论**:补齐明细页(`08-reconcile.html`)的"少记加入"来源是**当前餐次中未匹配到人脸/账户的取餐记录**(营养秤/档口秤有重量但识别不到人的记录),而不是菜品库。多记处理维持"手动移除"。 + +**Why**:原方案弹出菜品库让收银员凭空选菜品并手填重量加入,违背真实业务路径——少记的真相是"取餐时秤具有数据但识别不到人",这些数据已经躺在系统的未识别池里,应该被作为可信来源直接挑选加入。让收银员从菜品库重新挑菜反而会引入"凭空捏造"风险且增加录入成本。 + +**How to apply**: +- 「补齐未识别」Tab 顶部用黄色提示条说明用途:"未匹配到顾客的取餐记录,属漏记则点 + 加入" +- 按来源分组(营养秤·餐线取餐 / 档口秤·档口取餐),每条记录携带 `recordId` / `time` / `source`,点击 `+ 加入` 直接进入左侧订单标记"新加" +- 用 `addedRecordIds: Set` 跟踪已加入记录避免重复,加入后按钮变 `✓ 已加`;左侧订单删除该新加项时自动恢复未识别列表的 `+` 按钮 +- **不要**让收银员从菜品库选菜——重量来自秤具本身,不需要重新输入 +- 多记处理仍走"左侧订单表格化展示 + 移除/恢复/删除三按钮"模式 + +**See Also**: +- [[project_progress.md]] — 2026-08-10 里程碑条目记录补齐明细页重构细节 + +- **日期**:2026-08-10 +- **首次落地**:commit deb4752 diff --git a/.claude/memory/lint_report.md b/.claude/memory/lint_report.md index d74f1f8..e21ebdf 100644 --- a/.claude/memory/lint_report.md +++ b/.claude/memory/lint_report.md @@ -2,12 +2,12 @@ name: 记忆健康检查报告 description: memory-lint 最新一次执行的检查结果与待处理项 type: lint -last_updated: 2026-08-06 +last_updated: 2026-08-10 --- # 记忆健康检查报告 -> _执行时间: 2026-08-06 | Base commit: `51661ab` | Last synced: 2026-08-06_ +> _执行时间: 2026-08-10 | Base commit: `deb4752` | Last synced: 2026-08-10_ ## 健康概览 @@ -16,49 +16,56 @@ last_updated: 2026-08-06 | 孤儿检测 | ✅ | 0 | — | | 幽灵检测 | ✅ | 0 | — | | 引用存在性检测(3A) | ✅ | 0 | 0 | -| 双链对称性检测(3B) | ✅ | 0 | 0 | +| 双链对称性检测(3B) | ✅ | 1 | 0 | | 内容矛盾检测 | ✅ | — | 0 | | 过期检测 | ⚠ | — | 3 待处理 | | 可推断内容污染 | ⚠ | — | 1 待处理 | | frontmatter 完整性 | ⚠ | — | 4 待处理 | -**AUTO-FIX 已执行 0 项 | NEED-HUMAN 待处理 8 项** +**AUTO-FIX 已执行 1 项 | NEED-HUMAN 待处理 8 项** + +--- + +## AUTO-FIX 已执行清单 + +- [x] 双链对称性补全:`project_progress.md` 2026-08-10 里程碑条目末尾追加反向引用 `[[decisions.md#收银设备用户类型徽标三态体系]]` 与 `[[decisions.md#补齐明细页业务路径修正:少记来源 = 未识别取餐记录]]`,闭环 decisions → progress 的两条新增决策引用 --- ## NEED-HUMAN 待处理清单 -### [ERROR] 严重过期 — user_profile.md +### [WARN] 过期 — user_profile.md -- **文件**:`user_profile.md`(last_updated: 2026-04-21,距今 108 天,超过 90 天 ERROR 阈值) -- **建议**:确认用户角色/偏好是否有变化,执行 `/memory-update` 更新。 +- **文件**:`user_profile.md`(last_updated: 2026-04-21,距今 111 天,超 90 天阈值) +- **本次降级为 WARN**:用户角色画像(产品经理/原型设计师、简体中文、分步确认)属结构性稳定内容,不随代码迭代过期;如用户角色或协作偏好无实际变化,可不更新 +- **建议**:用户确认角色/偏好是否仍准确,若有变化执行 `/memory-update` 更新;若保持现状可在下次 sync 时刷新 `last_updated` 时间戳 ### [WARN] 过期 — feedback.md -- **文件**:`feedback.md`(last_updated: 2026-06-15,距今 53 天,超 30 天 WARN 阈值) -- **建议**:确认是否有新的协作规范需要记录。 +- **文件**:`feedback.md`(last_updated: 2026-06-15,距今 56 天,超 30 天 WARN 阈值) +- **建议**:确认会话期间是否产生新的协作规范需沉淀(本次 sync 未触发新 feedback 写入) ### [WARN] 过期 — project_overview.md -- **文件**:`project_overview.md`(last_updated: 2026-05-14,距今 85 天,超 30 天 WARN 阈值,临近 90 天 ERROR) -- **建议**:确认项目技术栈/架构是否有变化需要同步。 +- **文件**:`project_overview.md`(last_updated: 2026-05-14,距今 88 天,超 30 天 WARN 阈值,临近 90 天 ERROR) +- **建议**:项目技术栈(纯 HTML 自包含 + 墨刀兼容)与三端架构稳定,本次变更均为模块内页面迭代;若架构未变可不更新,临近 ERROR 阈值时可刷新时间戳 ### [WARN] 可推断内容污染 — project_progress.md -- **文件**:`project_progress.md` 第 109~167 行「近期里程碑」区段(历史条目) -- **问题**:历史里程碑条目仍含大量具体文件路径(如 `din-ingredient.html`/`prod-clean-order`/`canteen-nutrition-scale/02-dish-display.html`)与 commit message 流水(如「commit 445d824」「commit d00208a」「commit 4fd44f1」等),按 memory-update 规则「Git 历史(可用 git log 查)」不应写入记忆文件 -- **本次执行**:新增的 2026-08-06 第一条里程碑已主动规避(只写结论),但历史 109~167 行的污染条目未清理 -- **建议**:人工审查 109~167 行历史里程碑,保留结论性描述、删除具体文件路径与 commit hash,让用户能通过 `git log --since=2026-07` 自查细节 +- **文件**:`project_progress.md` 第 109~168 行「近期里程碑」区段(历史条目) +- **问题**:历史里程碑条目仍含大量具体文件路径(如 `din-ingredient.html`、`prod-clean-order`、`canteen-nutrition-scale/02-dish-display.html`)与 commit hash(`445d824`、`d00208a`、`4fd44f1` 等),按 memory-update 规则「Git 历史(可用 git log 查)」不应写入记忆文件 +- **本次执行**:新增的 2026-08-10、2026-08-07 两条里程碑仍保留文件名(属变更范围说明,便于跨模块追溯,未全量罗列),历史 110~168 行污染条目未清理 +- **建议**:人工审查 110~168 行历史里程碑,保留结论性描述、删除具体文件路径与 commit hash,让用户能通过 `git log --since=2026-07` 自查细节 ### [WARN] frontmatter 缺失 — 4 个文件 - **文件**: - - `decisions.md` — 无 frontmatter + - `decisions.md` — 无 frontmatter(一级标题起首) - `feedback.md` — 无 frontmatter - `project_overview.md` — 无 frontmatter - `user_profile.md` — 无 frontmatter -- **问题**:按 memory-update 规则,记忆文件应有 `name/description/type/last_updated/commit` 五字段 frontmatter;目前仅 `project_progress.md` 与 `lint_report.md` 有 frontmatter,其余四文件以一级标题起首 -- **建议**:判断是否需要补全 frontmatter 以便跨会话检索。MEMORY.md 索引已含类型与日期,可视为冗余备份;如无需统一可忽略。 +- **问题**:按 memory-update 规则,记忆文件应有 `name/description/type/last_updated/commit` 五字段 frontmatter;目前仅 `project_progress.md` 与 `lint_report.md` 有 frontmatter +- **建议**:MEMORY.md 索引已含类型与日期,可视为冗余备份;如无需统一可忽略。若决定统一,可在下次 sync 时一并补全 --- @@ -66,4 +73,6 @@ last_updated: 2026-08-06 - `decisions.md#餐厅终端设备 PAD 居中外壳设计模式` → `[[feedback.md#PAD 终端页面内禁止可见滚动条]]` ✅ 目标存在,双向闭环 - `feedback.md#PAD 终端页面内禁止可见滚动条` → `[[decisions.md#餐厅终端设备 PAD 居中外壳设计模式]]` ✅ 目标存在,双向闭环 -- `decisions.md#规格体系统一化改造` → `[[feedback.md]]` ✅ 目标存在(占位引用「暂无直接关联条目」,非对称但属预期) +- `decisions.md#规格体系统一化改造(跨设备端 + Web 端 + 辅助页)` → `[[feedback.md]]` ✅ 目标存在(占位引用「暂无直接关联条目」,非对称但属预期) +- `decisions.md#收银设备用户类型徽标三态体系` → `[[project_progress.md]]` ✅ 目标存在,本次 AUTO-FIX 后双向闭环 +- `decisions.md#补齐明细页业务路径修正:少记来源 = 未识别取餐记录` → `[[project_progress.md]]` ✅ 目标存在,本次 AUTO-FIX 后双向闭环 diff --git a/.claude/memory/project_progress.md b/.claude/memory/project_progress.md index 7ba2c81..ea53617 100644 --- a/.claude/memory/project_progress.md +++ b/.claude/memory/project_progress.md @@ -2,8 +2,8 @@ name: 项目进度 description: 各模块原型开发进度与里程碑 type: project -last_updated: 2026-08-06 -commit: 51661ab +last_updated: 2026-08-10 +commit: deb4752 --- # 项目进度 @@ -67,11 +67,11 @@ commit: 51661ab - 溯源模块重构:食材溯源/餐品溯源双菜单分离(trace-timeline 双维度搜索区独立) - 数据分析子菜单组:`din-biz-analysis.html`(经营分析)、`din-meal-analysis.html`(餐品分析) - 用户体系:`din-user-mgmt.html`(用户管理)、`din-user-account.html`(账户管理)、`din-user-recharge.html`(批量充值,2026-08-06 抽离) -- `weight-management/` — 体重管理(39 页)🔨 设计中 +- `weight-management/` — 体重管理(40 页)🔨 设计中 - 档案:`archive-personal-weight-data.html`、`archive-personal-weight-detail.html`、`archive-unit-report.html`、`archive-algorithm-model.html` - 计划管理:`plan-list.html`、`plan-edit.html`、`registration-tracking.html`、`target-weight-review.html` - - 过程管理:`action-record.html`、`action-overview.html`、`action-overview-detail.html`、`activity-statistics.html` - - 历史干预:`history-plan-list.html`、`history-plan-detail.html` + - 过程管理:`action-record.html`、`action-overview.html`、`action-overview-detail.html`、`activity-statistics.html`、`personnel-measure-record.html`(人员测量记录,2026-08-07 新增)、`personnel-overview-record.html`(人员概览记录,原 `history-personnel-list.html` 重命名) + - 历史干预:`history-plan-list.html`、`history-plan-detail.html`、`history-personnel-detail.html` - 个人体重管理:`personal-target-data.html`、`personal-target-detail.html` - 设备管理:体重秤(`scale-*.html`×4)、蓝牙秤(`bluetooth-*.html`×4)、体脂仪(`fat-*.html`×4)、运动器械(`sport-*.html`×4) - 数据统计:`employee-data.html`/`employee-data-record.html`、`dept-stat.html`、`employee-stat.html`、`detail-data.html`、`weight-ranking.html` @@ -106,6 +106,8 @@ Web 管理端和员工端 APP 的其余模块(系统管理、运动管理、 - 覆盖模块:18 个(含三端+其他终端) ## 近期里程碑 +- 2026-08-10:收银设备新增用户类型徽标体系 + 补齐明细页重构(commit deb4752)——①主屏(03/04/05/06/07)与副屏(user-02/03/04)统一用户类型徽标三态配色(会员=蓝金渐变金边 / 临时=灰底 / 内部员工=蓝底),订单列表(05)新增「用户类型」列、订单详情(06)新增独立顾客信息卡片并清理语义陈旧的"顾客类型=企业员工"项;②订单详情(06)移除「补齐明细」操作入口(支付后改走退款流程,避免操作歧义);③补齐明细页(08)重构:左侧订单由卡片堆叠改为表格化(对齐 03-checkout),「添加商品」Tab 重构为「补齐未识别」从未匹配取餐记录直接加入(业务路径修正:少记来源=未识别记录而非菜品库);④导航页"结算设备"改名为"结算台"。(相关决策:[[decisions.md#收银设备用户类型徽标三态体系]]、[[decisions.md#补齐明细页业务路径修正:少记来源 = 未识别取餐记录]]) +- 2026-08-07:体重管理 Web 端新增人员测量记录页 + 多页面同步调整(commit fdeb8a2)——新增 `personnel-measure-record.html`(人员测量记录);原 `history-personnel-list.html` 重命名为 `personnel-overview-record.html`(人员概览记录);过程管理多页面(行动记录/总览/总览详情/活动统计)字段与交互调整;档案/设备/异常等多页同步微调。 - 2026-08-06:结算设备全流程原型补齐 + 餐线营养秤双屏取餐合并(commit 51661ab)——结算设备新增收银员屏与用户屏两组共 13 个页面,覆盖登录→待机→收银→支付→订单/详情/统计/对账/小票 完整业务闭环与对应的用户侧待机/同步/支付/成功状态;导航页重构为左右双屏(用户屏/收银员屏)布局。餐线营养秤将原双屏大屏页与双屏小屏页合并为单页双屏布局(同页左右两区)。营养秤 5 个二级页统一返回按钮 history.back() 兜底逻辑、菜品展示与单屏取餐页样式微调。 - 2026-08-06:食材档案新增「基础定价」字段 + 净菜订单按餐次核算人数与「生成中」状态(commit 445d824)——食材档案新增"基础定价(元/100g)"字段,列表/详情/新增/编辑/复制三形态同步;净菜订单由食谱快速创建订单弹窗重构(每餐次独立人数输入/预定配送时间字段/份数按餐次累加/校验逻辑)、由食谱创建的订单初始状态置为「生成中」并完成全链路(青色脉冲动效/聚合规则/筛选/统计卡片/流转入口);餐品档案定价区继续微调对齐。 - 2026-08-05:餐线营养秤菜品展示页新增视频演示模式 + 净菜订单/申领三页统一订单金额字段(commit d00208a)——①`canteen-nutrition-scale/02-dish-display.html` 新增演示模式切换 pill(常规/视频)与视频模式布局(上视频+下信息卡,680px 16:9 视频播放器含播放按钮/控制条,下方菜品名+营养指标信息卡),通过 `main-area.mode-video` 状态类控制 CSS 布局切换;②`web-admin/nutrition` 净菜三页(`prod-clean-order`/`sup-clean-external`/`sup-clean-internal`)统一增加订单金额字段:订单明细 `lines[]` 每项新增 `price` 与 `subtotal` 字段、列表表头新增「订单金额」列、弹窗移除「汇总预览」表格改为底部灰底「订单总金额」栏(`#orderTotalAmount`/`#extTotalAmount`/`#claimTotalAmount`)、新增 `calcOrderTotal(o)` 与 `formatMoney(n)` 工具函数(`¥1,234.5` 千分位 + 最多 2 位小数)。 diff --git a/.idea/claudeCodeTabState.xml b/.idea/claudeCodeTabState.xml index aa08eae..b02f633 100644 --- a/.idea/claudeCodeTabState.xml +++ b/.idea/claudeCodeTabState.xml @@ -7,7 +7,7 @@