|
| 1 | +# PVX 公共组件接入与页面回归记录(2026-07-30) |
| 2 | + |
| 3 | +## 1. 文档范围 |
| 4 | + |
| 5 | +本文记录 2026-07-30 当前 PVX 工作区尚未提交的改动,覆盖: |
| 6 | + |
| 7 | +- `@jx3box/*` 公共库版本升级; |
| 8 | +- 公共组件新版样式和 i18n 能力接入; |
| 9 | +- 已由公共库承担的 PVX 本地深层覆盖清理; |
| 10 | +- 地图、Face/Body 数据组件的兼容修复; |
| 11 | +- 本轮用户检查中发现的页面级响应式问题。 |
| 12 | + |
| 13 | +实施和后续回归同时遵循: |
| 14 | + |
| 15 | +- `docs/design/pvx-visual-style-guide.md` |
| 16 | +- `docs/design/responsive-adaptation-guide.md` |
| 17 | +- `docs/common/i18n-development-guide.md` |
| 18 | + |
| 19 | +## 2. 公共库版本 |
| 20 | + |
| 21 | +| 公共库 | 调整前 | 当前接入 | 本轮用途 | |
| 22 | +| --- | --- | --- | --- | |
| 23 | +| `@jx3box/jx3box-ui` | `^2.3.21` | `^2.3.22` | Wiki surface variant、公共 Wiki 组件样式与 i18n | |
| 24 | +| `@jx3box/jx3box-map` | `^1.0.0` | `^1.1.12` | 响应式地图、聚焦模式、错误状态、可访问性和地图 i18n | |
| 25 | +| `@jx3box/jx3box-facedat` | `^2.7.6` | `^2.7.7` | Facedat/Bodydat 数据查看器公共样式 | |
| 26 | +| `@jx3box/jx3box-editor` | `^3.2.12` | `^3.2.13` | 跟进公共编辑器修订版本,本轮无新增业务改造 | |
| 27 | + |
| 28 | +`npm run update` 已补充 `@jx3box/jx3box-map@latest`,后续统一更新公共依赖时不会遗漏地图库。 |
| 29 | + |
| 30 | +## 3. `@jx3box/jx3box-ui` 接入 |
| 31 | + |
| 32 | +### 3.1 已完成 |
| 33 | + |
| 34 | +- [x] `PvxUser` 向 WikiPanel、WikiRevisions、WikiComments 统一传递 variant。 |
| 35 | +- [x] 普通 Web 使用 `surface`,机器人输出继续使用 `default`,避免改变抓图结构。 |
| 36 | +- [x] 书籍、家具、坐骑、宠物、声望详情删除已由公共组件承担的 WikiPanel 深层结构覆盖。 |
| 37 | +- [x] 删除的覆盖包括 panel head/body/title/actions、评论正文容器和移动端重复内边距。 |
| 38 | +- [x] 保留真正属于 PVX 页面层的 Grid、区块间距、社区外框排布和业务按钮品牌色。 |
| 39 | + |
| 40 | +### 3.2 i18n 边界 |
| 41 | + |
| 42 | +- WikiPanel、WikiComments、WikiRevisions 的固定界面文案由 `jx3boxUi.*` 维护。 |
| 43 | +- PVX 通过现有宿主 i18n 实例合并公共库词条,不创建第二套语言状态。 |
| 44 | +- 用户正文、贡献说明、NPC、地图名和其他游戏源数据不由公共组件强制翻译。 |
| 45 | +- 机器人场景继续使用公共组件默认 variant,普通 Web 的 PVX surface 不得改变机器人输出。 |
| 46 | + |
| 47 | +### 3.3 后续 |
| 48 | + |
| 49 | +- [ ] 统一评估各详情主题仍保留的 `.u-btn--link` 品牌色是否可以改用公共组件 CSS Variable。 |
| 50 | +- [ ] 在公共组件 API 稳定后继续减少消费者对内部 class 的依赖。 |
| 51 | + |
| 52 | +## 4. `@jx3box/jx3box-facedat` 接入 |
| 53 | + |
| 54 | +### 4.1 已完成 |
| 55 | + |
| 56 | +- [x] 删除 `FaceBodyDataViewer.vue` 中完整的 Facedat 主题副本。 |
| 57 | +- [x] 删除 Face/Body 解析页中针对 Tab、贴花列表、参数、价格、Slider 和移动端滚动的深层覆盖。 |
| 58 | +- [x] 删除普通 Web 详情页中重复的 Facedat Tab 内部修正。 |
| 59 | +- [x] 保留页面预览区最小高度、详情模块间距等宿主布局职责。 |
| 60 | + |
| 61 | +### 4.2 接入原则 |
| 62 | + |
| 63 | +- Facedat/Bodydat 的字段、参数组、贴花结构和组件主题由 `@jx3box/jx3box-facedat` 维护。 |
| 64 | +- PVX 不再复制公共库的完整内部 DOM 样式。 |
| 65 | +- PVX 只处理公共组件所在页面的宽度、间距、模块顺序和终端分流。 |
| 66 | + |
| 67 | +## 5. `@jx3box/jx3box-map` 接入 |
| 68 | + |
| 69 | +### 5.1 公共能力确认 |
| 70 | + |
| 71 | +- [x] 支持 `focus`、`overview`、`responsive` 模式。 |
| 72 | +- [x] 使用 `ResizeObserver` 响应容器变化。 |
| 73 | +- [x] 提供 resize/error 等事件和图片加载失败重试状态。 |
| 74 | +- [x] 提供地图、点位可访问名称和键盘焦点。 |
| 75 | +- [x] 地图加载、失败、重试、子地图切换等固定 UI 使用公共库四语言词条。 |
| 76 | + |
| 77 | +地图名、NPC、坐标和点位说明仍属于业务源数据,由 PVX 传入,不由地图库猜测翻译。 |
| 78 | + |
| 79 | +### 5.2 宠物详情 |
| 80 | + |
| 81 | +- [x] 只有存在地图数据时才为宠物详情添加 `has-map`。 |
| 82 | +- [x] 无地图宠物使用“宠物卡片 + 资料”双列,不再预留空白第三列。 |
| 83 | +- [x] 竖屏平板及手机统一降为单列,避免宠物卡片和字段区横向溢出。 |
| 84 | +- [x] 修复模板读取未定义 `petWiki` 的 Vue 警告,成就 ID 从宠物数据安全读取。 |
| 85 | +- [x] 社区区块补充单列收缩约束,避免 Wiki surface 接入后撑宽页面。 |
| 86 | + |
| 87 | +### 5.3 声望详情 |
| 88 | + |
| 89 | +- [x] 声望商人点位优先使用 `Guides[0].map`,避免把 NPC 坐标绘制到错误的 `szMapIDs` 地图。 |
| 90 | +- [x] 不再强制覆盖 `.c-map__inner` 的 1024 × 896 聚焦画布宽高。 |
| 91 | +- [x] 声望商人地图并入“声望资料”卡片,不再作为顶层独立整行卡片。 |
| 92 | +- [x] `>1440px` 时资料与地图在同一卡片内左右排列并顶部对齐。 |
| 93 | +- [x] `≤1440px` 时地图在同一卡片内下移,整个商人模块与资料区左边缘对齐。 |
| 94 | +- [x] 上下布局的商人模块限制为 960px 安全宽度。 |
| 95 | +- [x] 聚焦地图画布在容器内水平居中,避免只在右侧露出空白背景。 |
| 96 | +- [x] 地图在手机、平板、中等桌面和 2K 大屏均保留,不因适配困难隐藏业务内容。 |
| 97 | + |
| 98 | +### 5.4 后续 |
| 99 | + |
| 100 | +- [ ] 回归坐骑播报/详情和书籍详情的新版地图库表现。 |
| 101 | +- [ ] 继续评估可以由 responsive/overview API 取代的固定高度和强制 resize 逻辑。 |
| 102 | + |
| 103 | +## 6. 页面级响应式与视觉修复 |
| 104 | + |
| 105 | +### 6.1 科举首页 |
| 106 | + |
| 107 | +- [x] 移动端重排 Hero 图标、标题、说明和“补充题目”操作。 |
| 108 | +- [x] 英文长标题和说明允许自然换行,不再把内容挤成窄竖列。 |
| 109 | +- [x] 搜索、随机题目和空状态在手机安全宽度内展示。 |
| 110 | + |
| 111 | +### 6.2 奇遇章节 |
| 112 | + |
| 113 | +- [x] “加载更多”使用 PVX 主色软背景和可辨识文字色。 |
| 114 | +- [x] 补充 Hover、Active、Loading 状态的背景、边框、阴影和位移反馈。 |
| 115 | +- [x] Loading 状态不继承可点击 Hover 效果。 |
| 116 | + |
| 117 | +### 6.3 伙伴详情 |
| 118 | + |
| 119 | +- [x] 移动端取消详情容器和信息卡的固定最小高度。 |
| 120 | +- [x] 双栏信息改为完整纵向排列,内部正文不再单独滚动。 |
| 121 | +- [x] 属性表改为圆角字段卡,标签和值保持稳定双列和可换行能力。 |
| 122 | + |
| 123 | +### 6.4 日常公告 |
| 124 | + |
| 125 | +- [x] 移动端特殊坐骑卡片允许英文长文本自然增高。 |
| 126 | +- [x] 刷新状态、时间和坐骑图标不再互相挤压或越界。 |
| 127 | + |
| 128 | +## 7. 验证记录 |
| 129 | + |
| 130 | +- [x] `npm run lint` |
| 131 | +- [x] `git diff --check` |
| 132 | +- [x] 宠物 190/429 的移动端、无地图和控制台警告检查。 |
| 133 | +- [x] 声望 283 的地图资源、地图 ID、点位可见性和多尺寸布局检查。 |
| 134 | +- [x] 科举、奇遇章节、伙伴、日常公告目标移动端页面检查。 |
| 135 | +- [ ] 提交前按最终工作区运行 `npm run verify:legacy-js`。 |
| 136 | +- [ ] 提交前按风险和时间运行必要构建。 |
| 137 | + |
| 138 | +## 8. 提交前清单 |
| 139 | + |
| 140 | +- [ ] 确认 package-lock 与 package.json 的四个公共库版本一致。 |
| 141 | +- [ ] 搜索是否仍有可由新版公共组件替代的深层选择器。 |
| 142 | +- [ ] 检查新增或修改文件中的固定界面文案是否进入对应 i18n 命名空间。 |
| 143 | +- [ ] 检查英文、越南文长文本没有遮挡操作或制造页面级横向滚动。 |
| 144 | +- [ ] 检查普通 Web 的 variant 没有改变机器人和小程序/App 输出。 |
| 145 | +- [ ] 完成最终 lint、legacy JS 检查、必要构建和 `git diff --check`。 |
0 commit comments