tasks.md 4.1 KB

定时任务配置工作台 Implementation Plan

status: applying scope: V2 only

进度

Task 状态 完成度
Task 1 处理器目录和 Cron 预览 complete 3/3
Task 2 前端 API 和表单状态 complete 2/2
Task 3 重构任务总览 complete 4/4
Task 4 工作台外壳 complete 3/3
Task 5 基本信息和执行内容 complete 4/4
Task 6 CronBuilder 和执行计划 complete 4/4
Task 7 路由资源和兼容 complete 3/3
Task 8 UI 验证 applying 2/4

Task 1: 处理器目录和 Cron 预览

  • 涉及文件:
    • Create: service/JobExecutorCatalogService.java、service/JobCronService.java
    • Create: vo/JobExecutorCatalogVO.java、dto/JobCronPreviewRequest.java、vo/JobCronPreviewVO.java
    • Modify: controller/JobConfigController.java
  • 关键签名:
    • List listExecutors()
    • JobCronPreviewVO preview(JobCronPreviewRequest request, Clock clock)
  • 从 JobHandler/ScheduledJob 注册信息构建目录。
  • 固定时钟测试 Cron 合法性和未来 5 次触发。
  • 错误响应不暴露 Quartz 内部异常。
  • Task 2: 前端 API 和表单状态

    • 涉及文件:
      • Create: forge-admin-ui/src/api/system/job.js
      • Create: forge-admin-ui/src/views/system/job-config/job-config-form.js
      • Test: forge-admin-ui/src/views/system/job-config/tests/job-config-form.test.js
    • 实现详情、保存、处理器目录和 Cron 预览 API。
    • 实现新建默认停用、编辑归一化和提交转换。

    Task 3: 重构任务总览

    • 涉及文件:
      • Modify: forge-admin-ui/src/views/system/job-config.vue
    • 默认列改为任务、执行内容、执行计划、状态、下次执行和最近结果。
    • 编辑、立即运行、日志为高频操作,其它动作进入更多菜单。
    • 日志清理移入页面更多菜单。
    • 新增和编辑跳转独立路由。

    Task 4: 工作台外壳

    • 涉及文件:
      • Create: forge-admin-ui/src/views/system/job-config.editor.vue
      • Create: forge-admin-ui/src/views/system/job-config.editor.[id].vue
      • Create: forge-admin-ui/src/views/system/job-config/components/JobConfigWorkbench.vue
    • 实现固定顶部操作、左侧分区、主表单和右侧摘要。
    • 接入 dirty tab、离开确认、保存中和保存结果状态。
    • 中窄屏和移动端按 ui-reference.md 降级。

    Task 5: 基本信息和执行内容

    • 涉及文件:
      • Create: components/JobBasicSection.vue
      • Create: components/JobExecutionSection.vue
    • HANDLER 使用可搜索处理器目录和业务描述。
    • BEAN/RPC 仅在技术执行方式中显示对应字段。
    • 历史未注册目标可回显且不被静默清空。
    • JSON 参数提供格式校验和格式化。

    Task 6: CronBuilder 和执行计划

    • 涉及文件:
      • Create: forge-admin-ui/src/components/job/CronBuilder.vue
      • Create: forge-admin-ui/src/components/job/cron-builder.js
      • Create: components/JobScheduleSection.vue、JobSchedulePreview.vue
      • Test: forge-admin-ui/src/components/job/tests/cron-builder.test.js
    • 覆盖五类简单计划生成。
    • 只反解析组件可无损表达的 Cron。
    • 复杂表达式进入专家模式并保留原值。
    • 展示自然语言摘要和未来 5 次执行时间。

    Task 7: 路由资源和兼容

    • 涉及文件:
      • Create: forge-server/db/migration/V__add_job_editor_routes.sql
      • Modify: 任务列表前端入口
    • 创建新建/编辑隐藏路由并继承任务管理访问范围。
    • 现有管理 API 路径保持兼容。
    • 旧任务详情可以无损打开工作台。
    • Task 8: UI 验证

      • 创建 test-spec.md 和 execution-log.md。
      • 运行后端定向测试、前端单元测试、Lint 和生产构建。
      • 使用 Playwright 验证 1366×768、1920×1080 和移动宽度。
      • 覆盖 ui-reference.md 第 10 节的 7 个用户场景。

      Playwright 脚本已落在 ui-validation.py;当前宿主沙箱禁止本地端口监听,并禁止 Chromium 注册 Mach Port,本轮无法生成截图或互动通过证据。