# 实名认证引导 · 设计说明（realname.vue）

> 单元：`realname` ｜ group=account ｜ P 依据：基准线第 4 条（实名=后台开关，不硬编码强制）+ P05-F「实名开关开启时提交前校验→未实名引导」
> 实现：`vue/src/pages/realname.vue` ｜ 组状态帧 fixtures：`design/fixtures/account.states.json`

## 1. 区块与密度对照

| 区块 | 实现落点 | 密度 | 达成 |
|---|---|---|---|
| ① 说明卡 | 「为什么需要实名？」+「平台担保交易要求实名；资料仅用于核验，不会公开展示。本页为设计原型示意声明，非服务承诺」 | 字段 2+说明卡 | ✓ |
| ② 姓名 | FormField 必填+失焦非空校验 | — | ✓ |
| ③ 身份证号 | number 键盘（inputmode=numeric，maxlength 18）+失焦格式校验「身份证号格式不正确」+脱敏回显 110\*\*\*\*\*\*0056【占位】 | — | ✓ |
| ④ 提交 | AppButton loading 锁（submitting 帧「核验中…」） | — | ✓ |
| ⑤ 结果态 | success/already：绿圆勾+「实名认证通过/你已完成实名认证」+Pill 已实名+脱敏回显+返回来源/去发布拍品 | — | ✓ |

## 2. 状态帧

| 帧 | 渲染 |
|---|---|
| normal | 说明卡+姓名+身份证号表单 |
| submitting | 按钮 loading 锁 |
| success | 已实名结果态（通过文案+脱敏回显+「返回发布拍品」/「去发布拍品」） |
| already | 已是实名用户进入（无需重复提交+去发布拍品） |
| error | 格式校验红字/核验未通过示意（「重试提交」） |
| guest | EmptyState→login（必登录） |
| empty/extreme | N/A（na_reason：表单页；格式校验归 error 帧） |

## 3. 九维 A–I

- **A**：认证状态机（表单→提交→通过/失败；已实名用户直达 already）。
- **B**：提交 loading 锁；失败重试。
- **C**：身份证号 number 键盘+失焦格式校验（17 位数字+校验位 X）。
- **D**：脱敏回显规则（110\*\*\*\*\*\*0056【占位样值】；正式由接口回传掩码）。
- **E**：成功回来源页（publish-item / account-security 双入口；原型以双出口按钮演示——「返回账号安全」/「去发布拍品」与去向一一对应，正式实现按来源参数回跳）。
- **F**：后台开关控制入口显隐（开关关闭时本页不可达——由调用方守卫，本页为开启态引导）。
- **G**：N/A（轻表单，na_reason）。
- **H**：错误红字 6.32:1；成功=绿圆勾图标+文字双通道。
- **I**：`POST /user/realname`（**占位，不接真实核验**）。

## 4. 决策点

| 决策触点 | 对应 |
|---|---|
| 理解为什么实名+放心交资料 | 说明卡（用途+不公开声明+示意声明非承诺）+脱敏回显预期 |

## 5. 占位与红线

- 脱敏回显 110\*\*\*\*0056 样值与姓名「谷小仓」均为示意【占位】（登记 fixtures）；**不接真实核验通道**。
- 「已实名」徽章随示意数据披露，不冒充真实核验能力（执行方案 §8）。
- 实名为后台开关（基准线 4）：本页只在开关开启且未实名时被引导进入。

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

| 验收问题 | 处置 | 落点 |
|---|---|---|
| [B] success 主按钮「返回发布拍品」实去 account-security（文案/去向错配） | 已修：主按钮改「返回账号安全」（与去向一致）；「去发布拍品」独立按钮实去 publish-item；双出口语义在 §3-E 更新为「来源回跳按来源参数，原型以双出口演示」 | realname.vue `backToSource/goPublish` |
| [B] 同屏两个「发布拍品」按钮去向不同无从分辨 | 已修（同上）：主次按钮文案/去向一一对应 | realname.vue 结果态 |
| [B] error 帧缺字段级「身份证号格式不正确」红字（fixtures/design 承诺） | 已修：error 帧强制成帧字段红字（`idErrShown` computed） | realname.vue 表单 |
| [C] guest「一键登录」≈30pt 触达不足 | 已修：EmptyState CTA 页内加高+热区扩展（共享组件不动） | realname.vue `.guest :deep(.act)` |
| [C·文档] already 帧缺「去发布拍品」与本文档不符 | 已修：already 帧补「去发布拍品」次按钮，双出口同 success | realname.vue |
| [C] fine 行将接口路径写进用户可见文案 | 已修：改纯示意声明「实名核验为原型示意流程，不接真实核验通道…」 | realname.vue `.fine` |
