Skip to content

Commit 6691726

Browse files
committed
fix:pvx组件优化
1 parent 9bfc813 commit 6691726

21 files changed

Lines changed: 550 additions & 1244 deletions
Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
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`

docs/design/responsive-adaptation-guide.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,8 @@ Face / Body 当前分流如下:
140140
- 相关推荐采用横向卡片带时必须显示可滚动线索,并保证页面本身不横向滚动。
141141
- 弹窗、确认框、图片预览和下载提示均需单独验证触摸操作。
142142
- 图鉴详情的多阶段选择(如声望阶段奖励)在手机端可改为局部横向滑动卡片带,并使用 `grid-auto-flow: column`、稳定的可见卡片宽度和滚动吸附;奖励正文仍位于卡片带下方,不能让所有阶段纵向堆叠,也不能把横向滚动扩散到页面。
143+
- 声望详情的商人地图属于“声望资料”的补充信息,不单独占据顶层整行:大屏可在资料字段右侧并排,`1440px` 及以下在同一卡片内下移并与资料内容左边缘对齐。聚焦地图使用固定内部画布时,子模块应限制安全宽度,画布在容器内水平居中,避免单侧露出空白背景。
144+
- 宠物详情只有存在地图数据时才预留地图列;无地图数据时使用卡片与资料双列。竖屏平板及手机统一降为单列,不能因为桌面 `has-map` 状态保留多列定义。
143145
- 固定字段卡在英文、越南文等长语言下优先把标签和值改为上下排列,并对两者设置 `min-width: 0``overflow-wrap`;游戏源数据值不应因标签过长被截断。
144146
- 带胶囊标签的说明行必须使用明确的 Flex 垂直居中。标签、名称和短说明在单行时共享同一垂直中心;允许换行时应由内容自然增高,不能针对长语言统一改成顶部对齐而破坏常见单行状态。
145147

0 commit comments

Comments
 (0)