Back to Aionui

定时任务模块体验优化 (F-CRON-OPT)

docs/prds/cron/cron-entry-optimization.md

2.1.256.0 KB
Original Source

定时任务模块体验优化 (F-CRON-OPT)

本文档覆盖定时任务(Scheduled Tasks / Cron)模块的两项体验优化:对话头部入口的「空态收敛」,以及任务列表页「创建入口」的双路径化(手动创建 / 对话创建)。 面向新读者:定时任务是 AionUi 中让助手按计划自动执行的能力,用户可在「定时任务」列表页集中管理,也可在对话内由助手协助创建。


背景与名词

  • 对话头部入口:每个对话页面左上角的一个时钟图标(组件 CronJobManager),用于提示当前对话是否关联了定时任务,并提供跳转。
  • 定时任务列表页:路由 #/scheduled,集中展示用户的所有定时任务,右上角有「创建」按钮。
  • 创建弹窗:列表页点击创建后弹出的表单(CreateTaskDialog),用户在其中手动配置频率、执行模式、助手等。
  • 首页:路由 #/guid,新建对话的起始页,中部有输入框(sendbox)。
  • 助手记忆:首页会自动恢复用户上一次选择的助手(assistant)及其相关配置,这是已有行为。

(F-CRON-OPT-01) 对话头部入口空态收敛

想解决的问题

当前对话页面左上角,即便用户从未创建过任何定时任务,只要该对话加载了 cron 技能,就会显示一个灰色时钟图标,hover 弹出「立即创建」气泡。这个灰色图标对绝大多数没有定时任务诉求的用户是干扰——它占据标题栏视觉位置,却不对应任何已存在的对象。

期望行为

  • 无关联定时任务时:不显示任何图标(无论该对话是否加载了 cron 技能)。
  • 有关联定时任务时:保持现状——显示彩色状态图标(绿色=运行中 / 橙色=已暂停 / 红色=出错),点击跳转到该任务的详情页。

改动前后对比

场景改动前改动后
无任务 + 无 cron 技能不显示不显示
无任务 + 有 cron 技能灰色图标 + hover「立即创建」气泡不显示
有任务彩色状态图标,点击跳详情彩色状态图标,点击跳详情(不变)

验收标准

  • 一个全新对话(未关联任务)的标题栏左上角不出现时钟图标
  • 当对话关联的任务被创建后,标题栏出现对应状态色的图标
  • 点击该图标跳转到 #/scheduled/:job_id 详情页
  • 任务暂停 / 出错时图标颜色相应变化
  • 子对话(由定时任务派生)仍能通过 cron_job_id 正确显示来源任务图标

(F-CRON-OPT-02) 列表页创建入口双路径化

想解决的问题

定时任务的配置项较多(频率、cron 表达式、执行模式、助手、模型、工作空间),手动填表对新用户有门槛。AionUi 已具备「让助手在对话中帮你创建定时任务」的能力,但列表页的「创建」按钮只通向手动弹窗,用户感知不到对话创建这条更轻量的路径。

期望行为

列表页右上角的单一「创建」按钮,改为一个分体下拉按钮(split button)

  • 主按钮区域:默认动作 = 对话创建(Create via chat)。点击后跳转到首页,并自动在输入框填入一段定时任务创建提示词,用户可直接发送或修改后发送,由助手完成创建。
  • 下拉箭头区域:展开两个选项
    • Create via chat(对话创建):同主按钮动作。
    • Create manually(手动创建):保持现状,弹出 CreateTaskDialog 表单。

对话创建路径的细节

  • 跳转到首页后,输入框预填提示词,内容沿用现有的默认提示词文案(i18n key cron.status.defaultPrompt),不改动文案。
  • 助手沿用首页既有逻辑:本功能只负责填入提示词,不指定 / 不重置助手。首页默认恢复用户上一次选择的助手,符合「轻量引导、尊重用户上下文」的预期。
  • 预填发生在首页挂载时:首页原本会在挂载时清空输入框草稿,新增逻辑为——若本次跳转携带了预填提示词,则填入提示词而非清空。

验收标准

  • 列表页右上角显示分体下拉按钮,主区域文案为「对话创建」
  • 点击主区域 → 跳转首页,输入框自动填入默认提示词
  • 跳转后首页选中的助手与用户上一次使用的一致(未被强制重置)
  • 展开下拉 → 显示「对话创建」「手动创建」两项
  • 点击「手动创建」→ 弹出创建表单(与原「创建」按钮行为一致)
  • 点击「对话创建」(下拉项)→ 与主区域动作一致
  • 预填后,首页其他草稿状态(文件、工作空间)按既有规则处理,不被预填逻辑破坏

国际化

  • 复用:cron.status.defaultPrompt(对话创建预填的提示词)。
  • 新增:分体下拉两项的文案
    • 「对话创建」label
    • 「手动创建」label
  • 覆盖语言:与 cron 模块现有 i18n 一致的全部语言。

影响范围(供技术参考)

模块文件改动性质
对话头部入口pages/cron/components/CronJobManager.tsx移除无任务时的灰色入口分支
列表页创建入口pages/cron/ScheduledTasksPage/index.tsx单按钮改分体下拉,新增 via chat 跳转
首页预填pages/guid/GuidPage.tsx挂载时按 location.state 预填提示词
文案cron 模块 i18n 资源复用 1 + 新增 2