From 542c87259772f1fa9d148760162a94f32e644a69 Mon Sep 17 00:00:00 2001 From: andy Date: Wed, 22 Jul 2026 10:49:29 +0700 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96V4=E8=AE=A2=E5=8D=95=E4=BA=8B?= =?UTF-8?q?=E9=A1=B9=E5=8A=9E=E7=90=86=E9=A1=B5=E8=A7=86=E8=A7=89=E4=BA=A4?= =?UTF-8?q?=E4=BA=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PROJECT_STATE.md | 6 +- .../ReservationV4TaskCardSection.vue | 215 ++--- client/src/i18n/locales/en-US.ts | 10 + client/src/i18n/locales/th-TH.ts | 10 + client/src/i18n/locales/zh-CN.ts | 10 + client/src/tests/reservationV4Views.spec.ts | 30 +- .../ReservationV4OrderTaskDetailView.vue | 219 ++++-- ...7-22-v4-order-task-detail-visual-polish.md | 733 ++++++++++++++++++ 8 files changed, 1077 insertions(+), 156 deletions(-) create mode 100644 docs/superpowers/plans/2026-07-22-v4-order-task-detail-visual-polish.md diff --git a/PROJECT_STATE.md b/PROJECT_STATE.md index 02cbbda..d6c5c34 100644 --- a/PROJECT_STATE.md +++ b/PROJECT_STATE.md @@ -4,14 +4,14 @@ | --- | --- | | 最近更新 | 2026-07-22 | | 当前分支 | `feature/huangting` | -| 当前阶段 | M002 V4 入站、多卡模型、持久化基线、入站写入、查询接口、卡片确认、复核解阻、目录校验、订单详情 V4 总览、DB 目录、Lookup API、前端 lookup 接入、目录管理后台 CP1 前后端、订单列表 V4 继续处理入口 / open count 收口、V4 业务审计查询、停止旧任务双写、Debug EML V4 profile 对齐、Room Information 后端展示模型与前端业务化展示、V4 任务详情 smoke 修复、Rooming List 确认自动 DEF 后端联动、Rooming List 前端轻量事项卡、Room Information 复核 pointer 与任务详情安全边界修复、Room Information 复核 pointer 运行时规则收口、复核 pointer 部署证明与运行时 trace、OWNER RATE Room Type / Rate Code 目录口径、Payment 附件预览后端安全摘要与前端预览接入、Trace 卡后端字段契约收口、Trace 确认态字段刷新、Rooming List 事项确认卡文档口径、V4 复核态卡片交互和字段白名单文档口径,以及 V4 工作台 / 订单详情 / 任务详情普通酒店员工用户化展示与 polish 收口 | +| 当前阶段 | M002 V4 入站、多卡模型、持久化基线、入站写入、查询接口、卡片确认、复核解阻、目录校验、订单详情 V4 总览、DB 目录、Lookup API、前端 lookup 接入、目录管理后台 CP1 前后端、订单列表 V4 继续处理入口 / open count 收口、V4 业务审计查询、停止旧任务双写、Debug EML V4 profile 对齐、Room Information 后端展示模型与前端业务化展示、V4 任务详情 smoke 修复、Rooming List 确认自动 DEF 后端联动、Rooming List 前端轻量事项卡、Room Information 复核 pointer 与任务详情安全边界修复、Room Information 复核 pointer 运行时规则收口、复核 pointer 部署证明与运行时 trace、OWNER RATE Room Type / Rate Code 目录口径、Payment 附件预览后端安全摘要与前端预览接入、Trace 卡后端字段契约收口、Trace 确认态字段刷新、Rooming List 事项确认卡文档口径、V4 复核态卡片交互和字段白名单文档口径、V4 工作台 / 订单详情 / 任务详情普通酒店员工用户化展示与 polish 收口,以及订单事项办理页克制业务办理台视觉 polish | | 当前重点 | M002 V4 已停止普通业务入站双写旧 `workflow_reservation_task`,V4 后新业务主线只写 V4 order task / cards / source notification;Debug EML V4 smoke 默认复用实时 AgentBus V4 Open API subject,避免误走历史 Debug V2/V3 profile。开发阶段不维护 V2/V3 旧任务兼容,测试数据可重建,生产迁移策略后续上线前单独设计。`GET /api/reservation/orders` 可返回 V4 下一步订单任务、卡片、动作类型、动作状态、V4 open 数和统一展示字段 `open_work_item_count`;旧 `open_task_count` / `next_processable_task_id` 仅作历史诊断兼容。Room Information 已完成后端稳定展示模型和前端业务化展示:`GET /api/reservation/order-tasks/{orderTaskId}` 在 `display_payload.room_information` 返回 New / Update / Cancel 的 `current_values`、`proposed_values`、`final_values`、`change_summary[]`,前端只消费该展示模型和 `fields[]`,不再从 Agent raw payload、`business_fields` 或 `target_order` 自行推导;如果卡片 payload 已经是稳定 `room_information.final_values` 结构,后端会按稳定模型归一化查询和复核;Nights、Breakfast 和 Group Booking Status 均以后端派生值为准;确认和复核写入稳定 `confirmed_payload_json.room_information.final_values`,不回写 Agent 原始 `target_order`、Adult、邮件正文或附件 URL;接口对前端暴露的 `fields[].write_target` 使用 `confirmed_payload` / `review_resolution.field_overrides` 这类安全语义,不暴露内部列名;查询侧 `fields[].editable` 和命令侧 `review-resolution` 复核 pointer 校验已共用同一套 Room Information 字段策略。Trace 卡后端契约已收口:普通事项内容字段统一为 `trace_items[].text`,不使用 `content`;`department_code` 第一版只允许 `FO`、`HSK`、`FO+HSK`,任务详情字段会返回 `options_source=reservation_v4_trace_department_fixed` 和 `fixed_options[]` 三个固定选项;`EXTRA_BED.target_room_type_code` 只校验当前酒店 Room Type 目录存在,暂不校验当前订单已有房型;确认和复核共用同一套 Trace 字段白名单,`display_payload` / `confirmed_payload` 不返回 `target_order`、邮件正文、附件 URL、raw evidence 或 AI 原始 payload。复核 pointer 拒绝前会记录 `review_pointer_policy=m002_v4_review_pointer_runtime_fix_v1`,包含 order task、card、incoming pointer、query-side editable pointers、command-side allowed pointers、validation error pointers 和 reject reason,但不记录 payload、邮件正文或附件 URL。V4 任务详情 smoke 修复已完成:页面顺序固定为 Basic Information、业务卡、SourceMessage Display;来源邮件卡位于页面底部,只通过 SourceMessage conversation 接口定位当前触发邮件并默认折叠正文;Basic Information 和普通业务卡的展示 / 确认 payload 不再返回 Agent `target_order`,普通业务卡还会移除邮件 HTML、raw evidence、附件原始 URL 和 PMS 原始响应等敏感字段;Basic Information 的 Market Code / Source Code 前端已改为可编辑字段,普通业务页不再展示字段下方 control hint、lookup 空目录提示或“只读”胶囊。Rooming List 卡确认时已实现 Group 自动置 `DEF`:如同订单存在可更新的已确认 Room Information 快照,后端会覆盖其 `group_booking_status=DEF` 并写 `V4_ROOMING_LIST_AUTO_DEF` 审计;刷新任务详情时 `display_payload` 和 `confirmed_payload` 均以 DEF 后的确认快照为准;当前订单详情 `order_overview` 不返回 Group Booking Status 字段;如没有可更新投影,Rooming List 确认仍成功,只写安全审计提示,不临时创建不完整 Room Information。V4 任务详情已支持 ROOMING_LIST 轻量事项卡:页面只显示 “Rooming List / 房表事项”、目标订单线索、人工处理说明和确认按钮,不展示 rows、名单明细、附件预览、导入 / 生成入口、AI payload、邮件正文或附件 URL;PENDING_CONFIRM 确认只提交 `version`,成功后完全使用后端刷新详情,不由前端自行设置 `group_booking_status=DEF`。OWNER RATE `RATECODE (2)` 已确认第一阶段 Room Type 稳定集合为 `RM2`、`RM3`、`RM4`、`SU1`、`SU2`、`SU3`,不建立 Account -> Room Type 关系;Rate Code 第一阶段暂不建立 Account 适用关系,Q.B.D 与 LIAN TAI 的 40 个规范化 Rate Code 仅作为当前酒店级 `RATE_CODE` 目录候选维护。Payment 卡已在 `display_payload.payment_attachments[]` 返回付款凭证附件安全摘要,字段只包含附件 ID、文件名、类型、大小、是否图片、是否理论可预览 / 下载和可选 `external_media_id`,前端在 V4 任务详情 Payment 卡中按当前触发 SourceMessage 的 conversation 附件匹配缩略图、大图预览和非图片下载,匹配优先 `external_media_id` / `externalMediaId`,其次 `attachment_id`,不按文件名猜测;`attachment_ids[]` 第一版仍只读,前端不增删或替换附件集合,Payment 确认只提交 `version`,不提交附件 ID、附件 URL 或完整附件对象;真实 URL 仍只来自 SourceMessage 原文权限链路,权限不足或 conversation 失败时降级展示不可预览 / 不可下载。已确认 `REVIEW_REQUIRED` 仍是原业务卡复核态,页面按钮统一叫“确认卡片”,复核态允许编辑当前卡 `fields[]` 白名单内业务字段,问题字段红字提示。后续可继续做测试机 V4 smoke 复测、OWNER RATE 目录导入、真实 PMS / OPERA / OHIP 同步或 SuperAgent 目录供给方案。 | ## 1. 当前 Checkpoint - 名称:`M002-V4-reservation-workflow-user-facing-polish-frontend` -- 状态:Done,前端已完成测试机 smoke 暴露的 V4 用户化残留收口;默认页面继续保持普通酒店员工视角,不作为 V4 模型 / Task Card 调试视图展示。 -- 目标:`/reservation/tasks` 顶部导航使用“预订事项”;`/reservation/orders/{orderId}` 使用“订单总览”;`/reservation/order-tasks/{orderTaskId}` 使用“订单事项办理”。V4 Room Information 业务类型从 `NEW_BOOKING` / `UPDATE_BOOKING` / `CANCEL_BOOKING` 映射为“新预订 / 修改预订 / 取消预订”等用户文案;普通业务卡默认隐藏 lookup stale / warning 等目录技术提示;窄屏下每张事项卡的“确认卡片”按钮保持在卡片动作区右侧。 +- 状态:Done,前端已完成测试机 smoke 暴露的 V4 用户化残留收口,并完成订单事项办理页“克制的业务办理台”视觉 polish;默认页面继续保持普通酒店员工视角,不作为 V4 模型 / Task Card 调试视图展示。 +- 目标:`/reservation/tasks` 顶部导航使用“预订事项”;`/reservation/orders/{orderId}` 使用“订单总览”;`/reservation/order-tasks/{orderTaskId}` 使用“订单事项办理”。V4 Room Information 业务类型从 `NEW_BOOKING` / `UPDATE_BOOKING` / `CANCEL_BOOKING` 映射为“新预订 / 修改预订 / 取消预订”等用户文案;普通业务卡默认隐藏 lookup stale / warning 等目录技术提示;订单事项办理页首屏摘要突出订单线索、来源邮件、事项状态和卡片进度;每张事项卡的标题、提示、字段、消息和“确认卡片”按钮保持清晰层级,窄屏下主按钮仍在卡片动作区右侧。 - 边界:本 checkpoint 不改后端接口、不改 V4 确认 / 复核 / Payment / Rooming List / Trace / Room Information 提交契约;技术字段继续用于路由、并发和提交,但默认主信息层级不展示 `V4`、`ORDER_TASK`、`SOURCE_NOTIFICATION`、Task Card、JSON Pointer、payload、内部状态码、version、route、order task ID、card ID、SourceMessage ID、adapter 诊断或附件 URL。 - 联调备注:如后续需要更自然的用户标题、下一步动作短句、订单摘要短句、业务分类字段或调试区权限标记,建议后端补充 `display_title` / `next_step_label` / `summary_text` / debug visibility 标记,前端不要从 AI 原始 payload 自行拼装。 diff --git a/client/src/components/reservation/ReservationV4TaskCardSection.vue b/client/src/components/reservation/ReservationV4TaskCardSection.vue index 08fe6d0..d35f177 100644 --- a/client/src/components/reservation/ReservationV4TaskCardSection.vue +++ b/client/src/components/reservation/ReservationV4TaskCardSection.vue @@ -26,44 +26,11 @@

- - - -
-

- {{ message }} -

-
- -

- {{ successMessage }} -

- -
- -