# P06 我的竞拍 · 设计说明（my-auctions.vue）

> 单元：`my-auctions` ｜ group=core ｜ P06 ｜ 依据：pages.json unit#6 + 规格表 P06 + 执行方案 §5.6
> 实现：`vue/src/pages/my-auctions.vue` ｜ 状态帧 fixtures：`design/fixtures/my-auctions.states.json`

## 1. 区块与密度对照

| 区块 | 实现落点 | 密度 | 达成 |
|---|---|---|---|
| ① 顶 tab 3 | SegmentTabs：我出价的/我发布的/我的收藏（empty-items/empty-fav 帧自动切到对应 tab） | **3** | ✓ |
| ② 卡列表（我出价的） | 行卡 7 信息点：图/标题单行/状态徽章(领先绿·被超红·已结束灰)/出价数/倒计时/我的出价 vs 当前价(tabular)/操作按钮 | **7 点** | ✓ |
| ② 卡列表（我发布的） | myItems 4 态：竞拍中/待支付(橙)/已成交(绿)/流拍(灰)+当前价+出价数+操作直达 | 4 卡覆盖 4 态 | ✓ |
| ② 我的收藏 | 双列 ItemCard ×favorites 2 | — | ✓ |

## 2. 状态帧（8 帧）

| 帧 | 渲染 |
|---|---|
| normal | 我出价的 tab：领先 1（去出价→bid-sheet）/被超 1（夺回来→bid-sheet 直弹层）/已结束 1（查看详情→item；已结束不显示未来倒计时，显示「已截拍」） |
| empty-bids | 「还没有出过价，去捡漏」+去捡漏→bid |
| empty-items | 「还没有发布过拍品」+去发布→publish-item |
| empty-fav | 「还没有收藏」+去逛逛→bid |
| loading | SkeletonList |
| error | 黄条+缓存列表 |
| extreme | 压测行：我的出价/当前价顶格（fmtMoney 呈现 ¥999,999.00）+出价数 999++超长徽章语义 |
| guest | 页面照常渲染+半屏登录引导 Sheet（一键登录→login，登录后回跳本页） |

## 3. 维度差异

- B：被超徽章/「夺回来」点击直达 bid-sheet（出价弹层）；徽章按钮可点带 toast 说明。
- D：我的出价与当前价差值同排对比（tabular 等宽）。
- E：tab 切换保持页内状态（SPA 页内 state）。
- H：领先/被超=徽章色+文字双通道（Pill 图标+文字）。
- I：GET /my/bids?tab、GET /my/items?tab。

## 4. 数据一致性说明

**「我发布的」/「我的收藏」满数据帧补拍入口（验收证据覆盖缺口处置）**：静态状态板按 STATES 拍帧，normal 帧=「我出价的」默认 tab，empty-items/empty-fav 帧语义为对应 tab 空态——两 tab 的满数据形态无法在不违背帧语义的前提下进入状态板。已在本页加 `?tab=mine|fav` 直开参数（页内读 location.search，默认仍 bids），**提请整合期集中截图时追加拍 `?page=my-auctions&embed=1&tab=mine` 与 `&tab=fav` 两帧**即可覆盖 4 态卡与收藏双列的视觉证据；运行时可点演示中切 tab 即见。

- myBids/myItems/favorites 均引 items 键（同商品跨页同图同价）；myItems[1] state='unpaid-buyer'（我发布的·待支付）→去支付→payment-result；sold→查看订单→orders；failed→再次发布→publish-item。
- 已结束行（myBids[2]）：mock 中 endTs 在未来而 state=ended，设计侧以状态徽章为准、隐藏未来倒计时（显示「已截拍」），避免自相矛盾帧；数据侧矛盾已在此登记（底座可选修正 mock）。

## 5. 占位与缺口

- 无 toast 占位入口（操作全部直达注册 key）。
- 无新增素材缺口（卡图全部 items 键或 .ph 角标）。

## 6. 压测样值声明

extremeRow：myBid=999999、**topBid=1000000（>myBid，「被超」语义自洽，验收修复项——原同值矛盾）**、item.bids=9999（fmtMoney/fmtCount 呈现）。
- extreme 行「夺回来」按钮包 .ract 右对齐（与普通行形态一致）。
- 触达（§0.7）：行内操作按钮 sm→md（40px）；「被超」徽章可点 button 热区扩展（padding 负 margin 法，视觉不变）。
- 【升级底座】device-393.png 实测 750×1624（375×812@2x）而非文档标注 786×1704：render.py hero/device-393 拍摄未按 ?w=393 切换视口，属共享脚本事项，本组不可改 scripts，提请底座修正后统一重拍 device-393。

## 7. 2026-10-10 五页剩余问题修复记录

- **「我发布的」满数据 4 态卡与「我的收藏」双列此前无任何交付截图（决定性项）**：登记补拍真实落地——`?tab=mine|fav` → supplement-tab-mine.png（竞拍中/待支付/已成交/流拍 4 态卡+货款待支付）/ supplement-tab-fav.png（双列 ItemCard），375×812@2x 整列，由 render.py `--supplements` 统一拍摄并登记 evidence.json。
- 触达修复：行操作按钮热区 40→44px（`.ract :deep(.btn)`；AppButton.md 全局 40px 属共享层口径不改动）；徽章可点热区 30→44px（padding 13px 8px + 负 margin，视觉位不变）。
- 注释如实化：原注释「热区扩展≥44pt」实际仅约 30pt，属虚假注释，已改为真实数值与算法说明。
- 强检：repair_capture.py 断言 mine=4 行+4 态徽章文案、4 按钮高≥43px、fav=2 卡+「我的收藏」tab 高亮。
