# 发布三类动作面板与登录引导 · 设计说明（publish-sheet.vue）

> 单元：`publish-sheet` ｜ group=account·overlay ｜ P 依据：§0.1 TabBar 中央凸起「弹 action-sheet」+ 未登录引导（§0.4）
> 实现：`vue/src/pages/publish-sheet.vue` ｜ 组状态帧 fixtures：`design/fixtures/account.states.json`

## 1. 区块与密度对照

| 区块 | 实现落点 | 密度 | 达成 |
|---|---|---|---|
| 弹层本体 | ActionSheet（整页真实渲染，背景=压暗骨架示意舞台+TabBar 来源语义） | 入口 3 | ✓ |
| ①「发布拍品」 | gavel 槌图标+「挂到拍卖，担保交易」→publish-item | — | ✓ |
| ②「发帖」 | edit 笔图标+「分享到圈子」→publish-post | — | ✓ |
| ③「发布信息」 | megaphone 喇叭图标+「出物 / 求购 / 资讯」→publish-info | — | ✓ |
| ④ guest 引导帧 | Sheet「登录后即可发布」+一键登录主按钮（协议前置同 login：未勾→toast+勾选框）+验证码登录次链接 | 引导帧 | ✓ |

## 2. 状态帧

| 帧 | 渲染 |
|---|---|
| normal | 三入口动作面板（+取消） |
| guest | 登录引导半屏（必出帧） |
| empty/loading/error/extreme | N/A（na_reason：纯导航层，无数据请求/列表/表单提交，loading/error 无意义） |

## 3. 九维 A–I

- **A**：登录/未登录两形态。
- **B**：入口按压态（ActionSheet row active）；取消/遮罩/物理返回均=关闭。
- **C**：N/A（无表单，na_reason）。
- **D**：N/A（无数据位，na_reason）。
- **E**：**遮罩点击可关闭**——与 bid-sheet 出价弹层遮罩不可点关形成对照差异（两处组件注释互指：Sheet.vue lockMask 注释、bid-sheet 页注释、本页 onMaskClose 注释）；物理返回=关闭（原型回 home）。
- **F**：按 §0.5。
- **G**：N/A（轻层，na_reason）。
- **H**：图标+文字双通道（三入口各带语义图标+主副两行文字）。
- **I**：N/A（纯导航层无接口，na_reason）。

## 4. 决策点

| 决策触点 | 对应 |
|---|---|
| 发布动线统一入口 | 三类发布各带一句价值说明（担保交易/圈子/撮合），选择成本最低 |

## 5. 占位

- guest 引导协议文本示意占位；「登录成功回跳发布」为 notify 语义。
- 背景压暗舞台为骨架示意（不冒充具体来源页；来源可为 home/bid/circle/mine/info，见页头注释）。

## 7. 视觉验收修复轮（2026-10-10）

| 验收问题 | 处置 | 落点 |
|---|---|---|
| [硬] device-393.png 取消按钮底部被裁 | **组内修不掉**：render.py:87 viewport 恒 375×812（852 舞台底 40px 被 viewport 截图裁切），P-1 已记录升级；DOM 几何已验证 393×852 舞台下面板贴合（embed393 panelBottom=852） | scripts/render.py（底座） |
| [硬] states.png 两帧底部裁切 | **根因组内已修**：board 模式页面根 `height:100%` 膨胀 840 → `.pg` 改 `flex:1 1 auto` 恒 812；probe 实测 cancelBottom 844 < pgBottom 856、面板完整；板画布与 App 外壳 `.phone-stage` 包裹缺失仍提请底座（P-2） | publish-sheet.vue `.pg`；fixtures pipeline_issues |
| [中] sheet 标题与三入口描述行 3.26:1 低对比 | 已修：页内 `:deep` 覆盖为 --text-2（5.44:1≥4.5），共享 ActionSheet 不动（全局替换提案底座） | publish-sheet.vue 样式头部 |
| [轻] guest 协议勾选框 17px 触达不足 | 已修：`::before inset:-13` 热区扩展 ≥44pt（协议门禁要素） | publish-sheet.vue `.cbox` |
