feat(embed,ui04): E01 v2 contract skeleton — displayMode/scrollSpeed/reactionsEnabled, v2 loader entry and fixed 195x280 shell
- contracts: EmbedSlotSettings optional v2 fields (carousel default) + SlotSettingsPayload; gen + redocly green - api: DTO validation + normalization full-set (cn manage + ov public projection share normalizeStoredSettings) - embed-loader: params v2 parse/merge/url family, loader-v2.js fixed shell (border/radius/#10161E/safe-area, resize ignored, stack gap 12), dual-artifact build+sync; v1 source frozen - viewer: EmbedPage v=2 branch, EmbedStream (viewport/track/real anchors/collapse/empty), stream.ts pure fns, i18n zh/en - admin: types + utils (create default vertical-stream, clampScrollSpeed, v1/v2 snippet selection) - tests: loader 36 (+9 v2), viewer 222, admin 82, api unit 51, v1 embed e2e 20, v2 E01 gate 2 (195x280 desktop+mobile cross-origin, no footer) Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -41,12 +41,26 @@
|
||||
|
||||
## 2 版本与兼容策略(E01 定案登记)
|
||||
|
||||
(E01 完成后填写:v2 入口形态、路由/参数、新字段清单、v1 保留验证。)
|
||||
- **入口形态**:新发布物 `/embed/v2/loader.js`(源 src/loader-v2.js,v1 源 loader.js 冻结
|
||||
零改动,双产物同 build/sync 脚本);iframe 复用同一路由 `/embed/:slotToken` + 白名单
|
||||
版本查询 `v=2`(v1 loader 不拼 v → 旧 carousel 分支,旧 v1 接入零变化)。
|
||||
- **契约扩展**(全部可选、响应恒归一化全集):EmbedSlotSettings += `displayMode`
|
||||
(carousel|vertical-stream,默认 carousel)、`scrollSpeed`(8..32 CSS px/s,默认 16)、
|
||||
`reactionsEnabled`(默认 true);事件载荷 SlotSettingsPayload 同步可选字段。
|
||||
- **缺省语义**:契约/服务端缺省 displayMode=carousel(存量记录读取归一为旧模式,
|
||||
不一夜切换);管理端新建默认 vertical-stream 由表单显式提交(§8.2)。
|
||||
- **v2 尺寸硬性**:loader 侧 V2_WIDTH/V2_HEIGHT=195/280 常量;size/intervalMs/imageFit
|
||||
不进 v2 配置面(data-* 不解析、snippet 不生成、iframe 布局忽略);resize 消息 v2 忽略。
|
||||
- **E01 证据**:v2 跨源宿主桌面/手机双端 getBoundingClientRect 实测 195×280(e2e
|
||||
embed-v2.spec.ts E01 出口门 2 用例);ov 公开端点响应含新字段全集(实测 200);
|
||||
v1 回归 20 e2e 全绿(EMB-A14 部分证据);loader 36 测试(+9 v2 参数面)。
|
||||
|
||||
## 3 任务进度
|
||||
|
||||
- [x] E00 基线(本记录第 1 节)
|
||||
- [ ] E01 契约和版本骨架
|
||||
- [x] E01 契约和版本骨架(第 2 节;改动面:contracts openapi+events+gen、api dto/
|
||||
embed.service(cn 管理与 ov 投影共用归一化)、embed-loader params+loader-v2+build/sync、
|
||||
viewer EmbedPage v=2 分支+EmbedStream+stream.ts+i18n、admin 类型+utils+snippet v1/v2 版本选择)
|
||||
- [ ] E02 静态高保真样板
|
||||
- [ ] E03 连续滚动
|
||||
- [ ] E04 操作和生命周期
|
||||
|
||||
Reference in New Issue
Block a user