WP09:Editor 项目放映表单
状态:完成(2026-10-17)。阶段:M0。主责:Editor。 上层工作项:E01;详见模块计划。本包是该工作项的实施拆分,不是另一份配置契约。
前置与输入
前置完成:WP03、WP07。 字段与行为以统一契约为准;所有依赖编号见执行清单。
修改范围与交付
- 修改范围:专用放映字段组件、草稿组合逻辑、项目入口与顶层 slideshow 提交;秒/毫秒转换和保存错误。
- 交付物:可保存、重开、恢复当前值的项目默认配置界面。
- 提交边界:不继续把全部逻辑堆进展示配置弹窗,不用 localStorage 保存第二份项目配置。
完成标准
- [x] 实现及评审覆盖上述修改范围,未超出提交边界。
- [x] 行为验收:使用生成类型;应用样式不污染放映草稿;只展示实际阶段可用操作;无动画提交合法 0ms。
- [x] 验证范围:表单草稿/转换/校验/失败保留;Editor 类型检查与相关构建检查。
- [x] 关联验收:A02、A03、A08;见联调与验收计划。
- [x] 记录代码版本、实际测试命令/结果、未运行项及原因,产物保存到任务专属临时目录。
- [x] 回填本卡状态与证据;阶段能力是否开放由对应阶段出口包决定,单包完成不等于整阶段交付。
建议提交标题:WP09:Editor 项目放映表单。通常按一个可评审 PR 实施;若实际改动仍过大,先按输入/输出再拆子包,保留父编号和依赖。
测试环境与命令选择遵循 dev-start-test,不因执行本卡重复启动服务或重置开发数据。
实施记录
- 交付代码:新增
ProjectSlideshowFields.vue(效果、动画时长、翻页模式、停留时长、循环、自动开始)与project-slideshow-values.ts(秒/毫秒转换、范围收敛、无动画 0ms);src/types/api.ts增加SlideshowSettings生成类型别名。 - 弹窗集成:
ProjectPresentationConfigDialog保存载荷增加完整slideshow;应用样式只覆盖展示字段、不重建放映草稿;恢复当前值重新读项目配置。PagesView与api/catalog.ts的更新参数透传slideshow。 - 阶段边界:UI 只提供 none/fade/push 与 manual/timer,不暴露
media_end;timer/auto_start 的配置可先保存,实际执行依赖 WP13–WP16 运行时能力开放。 - 验证:
npx vitest run src/components/project/project-slideshow-values.test.ts src/components/project/ProjectSlideshowFields.test.ts src/components/project/ProjectPresentationConfigDialog.test.ts→ 9 passed(转换/收敛、表单事件、保存载荷与样式隔离);npx vue-tsc --noEmit -p tsconfig.json通过。 - 未运行:真实浏览器 UI 交互与构建产物验证(留给 WP12 联调)。