diff --git a/docs/superpowers/brainstorm/2026-07-19-pl-outbound-site-link-demo.html b/docs/superpowers/brainstorm/2026-07-19-pl-outbound-site-link-demo.html
new file mode 100644
index 000000000..aea2b60cc
--- /dev/null
+++ b/docs/superpowers/brainstorm/2026-07-19-pl-outbound-site-link-demo.html
@@ -0,0 +1,813 @@
+
+
+
+
+
+ 现场链接 · 出库单公共页 Demo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
本 Demo 相对现状的改动要点
+
+ - 补回旧版现场链接信息:业务类型、日期、备注、取货信息(地址+导航+时间+注意事项)、送货信息、上次保存。
+ - 保留新版能力:产品行可填实际数量、整单回执上传、现场备注、提交。
+ - 产品实际数量美化:每产品独立卡片;规格 / 包装规格 / 计划数量网格展示;实际数量大字输入 + 单位后缀。
+ - 单位:展示字典标签「吨」,不展示字典码
dun(后端公共接口应对齐旧版 crm_product_unit 转义)。
+ - 包装规格:明细需带
packageSpec(当前出入库明细表可能缺该字段,需快照补齐或从计划产品回填)。
+
+
+
+
+
+
diff --git a/docs/superpowers/specs/2026-07-19-pl-io-order-site-link-enrichment-design.md b/docs/superpowers/specs/2026-07-19-pl-io-order-site-link-enrichment-design.md
new file mode 100644
index 000000000..9c75526a1
--- /dev/null
+++ b/docs/superpowers/specs/2026-07-19-pl-io-order-site-link-enrichment-design.md
@@ -0,0 +1,153 @@
+# 入库/出库单信息完善与现场链接对齐设计
+
+**日期:** 2026-07-19
+**状态:** 已确认
+**范围:** web-admin 公共现场页 + 管理端入库/出库单(列表 / 编辑弹窗 / 计划查看回传)+ backend PL IO 公共与管理 API
+**视觉参考:** `docs/superpowers/brainstorm/2026-07-19-pl-outbound-site-link-demo.html`「提案(完善后)」
+**界面模式:** 列表 P01;编辑弹窗 Fresh Mint `dialog-form-layout`;公共页对齐既有 `public/pl/site`
+
+---
+
+## 1. 背景与问题
+
+出入库单上线后,现场链接与管理端展示均为「最小快照」,相对旧版「运输现场」公共页信息明显偏少:
+
+| 场景 | 现状缺口 |
+|------|----------|
+| 现场链接 `/#/public/pl/inbound\|outbound/:token` | 无取/送货、无包装规格;单位展示字典码 `dun`;产品区样式简陋 |
+| 管理端入库/出库列表与编辑弹窗 | 无取/送货;产品仅名称/规格/计划/实际 |
+| 计划查看「入库/出库回传」 | 同上,字段不齐 |
+
+用户确认范围 **C**:公共页按 Demo 完善 + 管理端列表 / 编辑弹窗 / 计划查看回传一并补齐。
+
+---
+
+## 2. 已确认决策
+
+| # | 决策 | 选择 |
+|---|------|------|
+| D1 | 数据组装策略 | **读时 enrichment**(方案 A):从 `pl_plan` / `pl_plan_product` 组装;本期 **不做** 明细表 DDL 快照列 |
+| D2 | 入库 / 出库 | **对称**;公共页共用 `PublicIoOrderPage`;管理端共用 `IoOrderListPage` |
+| D3 | 管理端表面 | **C**:列表 + 编辑弹窗 + `PlPlanViewTabs` 回传区 |
+| D4 | 单位展示 | 公共页与管理端展示 `crm_product_unit` **标签**(`dun` → `吨`);库内仍存字典码 |
+| D5 | 列表产品列 | 列表保持 `productSummary` 摘要;**不**把 8 个产品字段全铺进列表 |
+| D6 | 列表物流列 | 增加取货地址、送货地址(或送货点名称优先)摘要列 |
+| D7 | 可编辑字段 | 仅 `actualQty`、现场备注、附件、状态(既有规则);取送货与产品扩展字段 **只读** |
+
+---
+
+## 3. 后端
+
+### 3.1 Enrichment 输出字段
+
+在 `order_header_to_dict` / 公共 `_build_page` / 管理端 get·list 响应中统一附加(可抽共享 helper):
+
+**主单(来自 `pl_plan`,无计划则空)**
+
+| 字段(camelCase) | 来源 |
+|-------------------|------|
+| `businessType` | 计划业务类型展示名或既有枚举文案 |
+| `remark` | `plan.remark`(计划备注;与现场备注区分) |
+| `pickupAddress` / `pickupLng` / `pickupLat` / `pickupTime` / `pickupNotes` | 计划取货 |
+| `destinationName` / `destinationAddress` / `destinationLng` / `destinationLat` / `deliveryTime` / `destinationNotes` | 计划送货 |
+| `planDate` | 已有快照,保留 |
+
+列表可只保证:`pickupAddress`、`destinationAddress`(展示用:`destinationAddress \|\| destinationName`)。
+
+**明细(来自 `pl_plan_product` via `plan_product_id`)**
+
+| 字段 | 说明 |
+|------|------|
+| `productNo` | 产品编号 |
+| `productName` | 已有 |
+| `specification` | 已有(型号/规格,来自 `model`) |
+| `unit` | 库内码;管理端可用字典转标签,或额外 `unitLabel` |
+| `unitLabel` | 字典标签,缺省回退码或「吨」 |
+| `planQty` / `actualQty` | 已有 |
+| `packageSpec` | 包装规格 |
+| `remark` | 产品行备注 |
+
+公共页:响应中 `unit` 直接返回 **已转义标签**(对齐旧 `public_site._resolve_unit_label`),避免免登录页拉字典。
+
+### 3.2 改动文件(示意)
+
+- `backend/app/services/pl_io_order_service.py` — enrichment + `order_header_to_dict` items 扩展
+- `backend/app/api/pl/public_io_order.py` — `_build_page` 补全取送货与单位转义(可复用 service helper)
+- `backend/app/api/pl/io_order.py` — 详情/列表走同一序列化
+- 可选:schema `IoOrderItemRead` / 前端类型同步
+
+### 3.3 非目标
+
+- `pl_inbound_order_item` / `pl_outbound_order_item` 加 `package_spec` 等列
+- 改旧 `/public/pl/site` 历史链路(除非后续单独需求)
+- 司机运输公共页
+
+---
+
+## 4. 前端 · 现场公共页
+
+**文件:** `web-admin/src/views/public/pl/_shared/PublicIoOrderPage.vue`、`api/pl/public-io-order.ts`
+**样式参考:** Demo + 既有 `public/pl/site`、`public-mobile-vant.scss`
+
+区块顺序:
+
+1. 概况:业务类型、日期、往来单位、车牌、计划号、单号、状态、计划备注(有则显示)
+2. 取货信息:地址 + 导航、时间、注意事项
+3. 送货信息:地址 + 导航、时间、注意事项
+4. 产品实际数量:每产品卡片 — 名称、规格型号、包装规格、计划数量+单位标签、实际数量输入
+5. 回执上传、现场备注、上次保存
+6. 底部提交
+
+入库/出库仅 `navTitle` / 业务类型文案不同。
+
+---
+
+## 5. 前端 · 管理端列表(`IoOrderListPage`)
+
+在现有列后增加:
+
+- `取货地址` ← `pickupAddress`
+- `送货地址` ← `destinationAddress \|\| destinationName`
+
+均 `min-width` + `show-overflow-tooltip`。其余列不变。
+
+---
+
+## 6. 前端 · 编辑弹窗(`IoOrderListPage`)
+
+- 宽度约 **960–1080px**,`dialog-form-layout`,`label-position="top"`,`form-grid-2`
+- 主信息只读区增加取货/送货字段(长地址 `form-col-span-2`)
+- 产品表列(固定顺序):
+
+| 产品编号 | 产品名称 | 型号/规格 | 单位 | 计划数量 | 实际数量 | 包装规格 | 备注 |
+
+- 实际数量:`el-input-number`,作废不可编辑
+- 单位列展示 `unitLabel`(或字典 `getLabel`)
+
+---
+
+## 7. 前端 · 计划查看回传(`PlPlanViewTabs`)
+
+- `ioOrderViewFields` 补取送货相关 KV
+- 只读子表与快捷编辑弹窗产品表列与第 6 节对齐
+
+---
+
+## 8. 验收要点
+
+| ID | 场景 |
+|----|------|
+| V1 | 出库现场链接:有取/送货、导航;产品卡片含包装规格;计划数量单位为「吨」非 `dun` |
+| V2 | 入库现场链接与出库对称 |
+| V3 | 入库/出库列表可见取货、送货地址列 |
+| V4 | 编辑弹窗主信息含取送货;产品 8 列齐全;实际数量可保存 |
+| V5 | 计划查看回传区字段与弹窗对齐 |
+| V6 | 已作废单不可提交现场 / 管理端不可改数量(既有行为保持) |
+
+---
+
+## 9. 决策记录
+
+- 视觉 Demo:`docs/superpowers/brainstorm/2026-07-19-pl-outbound-site-link-demo.html`
+- 管理端表面:用户选 **C**
+- 组装策略:用户确认方案 **A**(读时 enrichment)