## ADDED Requirements ### Requirement: 任务中心布局 任务管理系统 SHALL 提供统一的左右分栏布局,用于管理不同类型的任务。 布局规范: - 左侧导航区域:宽度固定为 240px,显示任务类型切换菜单 - 右侧内容区域:自适应宽度,显示对应的任务列表页面 - 左侧导航 SHALL 支持以下任务类型: - 混剪视频任务 - 数字人视频任务 #### Scenario: 显示任务中心布局 - **WHEN** 用户访问 `/system/task-management` 路径 - **THEN** 页面显示左右分栏布局 - **AND** 左侧显示任务类型导航菜单 - **AND** 右侧显示默认的任务列表(混剪视频任务) #### Scenario: 切换任务类型 - **WHEN** 用户点击左侧导航中的「数字人视频任务」 - **THEN** 右侧内容区域切换到数字人任务列表页面 - **AND** 左侧导航中「数字人视频任务」项高亮显示 ### Requirement: 路由配置 任务中心 SHALL 使用 Vue Router 的子路由机制,实现不同任务类型页面的切换。 路由规范: - 根路径:`/system/task-management` - 子路径: - `/system/task-management/mix-task` - 混剪任务列表 - `/system/task-management/digital-human-task` - 数字人任务列表 - 默认重定向:访问 `/system/task-management` 时自动跳转到 `/system/task-management/mix-task` #### Scenario: 默认路由跳转 - **WHEN** 用户访问 `/system/task-management` - **THEN** 系统自动重定向到 `/system/task-management/mix-task` - **AND** 显示混剪任务列表页面 #### Scenario: 直接访问子路径 - **WHEN** 用户直接访问 `/system/task-management/digital-human-task` - **THEN** 显示数字人任务列表页面 - **AND** 左侧导航中「数字人视频任务」项高亮 ### Requirement: 导航高亮 左侧导航 SHALL 高亮显示当前激活的任务类型。 高亮规范: - 当前激活的导航项 SHALL 使用主色调背景色(`var(--color-primary)`) - 非激活项 SHALL 使用默认背景色 - 鼠标悬停时 SHALL 显示悬停效果 #### Scenario: 高亮当前任务类型 - **WHEN** 用户在混剪任务列表页面 - **THEN** 左侧导航中「混剪视频任务」项高亮显示 - **AND** 「数字人视频任务」项保持默认状态 ### Requirement: 响应式适配 任务中心布局 SHALL 支持响应式设计,在不同屏幕尺寸下正常显示。 适配规范: - 桌面端(≥1200px):左侧 240px,右侧自适应 - 平板端(768px-1199px):保持左右分栏,适当缩小左侧宽度 - 移动端(<768px):左侧导航可折叠或隐藏,右侧全屏显示 #### Scenario: 平板端显示 - **WHEN** 用户在平板设备上访问任务中心 - **THEN** 左侧导航宽度调整为 200px - **AND** 右侧内容区域相应调整宽度 #### Scenario: 移动端显示 - **WHEN** 用户在手机设备上访问任务中心 - **THEN** 左侧导航默认隐藏 - **AND** 显示汉堡菜单按钮,点击后弹出导航菜单 - **OR** 左侧导航固定在底部,作为标签栏显示 ### Requirement: 过渡动画 任务类型切换时 SHALL 使用平滑的过渡动画。 动画规范: - 使用 Vue Transition 组件实现 - 动画时长:200-300ms - 动画类型:淡入淡出(fade)或滑动(slide) #### Scenario: 页面切换动画 - **WHEN** 用户从混剪任务切换到数字人任务 - **THEN** 右侧内容区域使用平滑过渡动画 - **AND** 动画时长约 250ms - **AND** 动画效果为淡入淡出 ### Requirement: 组件化设计 任务中心 SHALL 采用组件化设计,提高代码复用性和可维护性。 组件规范: - Layout 组件:`TaskLayout.vue` - 布局容器 - 通用组件: - `TaskFilterBar.vue` - 筛选栏 - `TaskStatusTag.vue` - 状态标签 - `TaskActionButtons.vue` - 操作按钮 - Composable: - `useTaskList.js` - 列表通用逻辑 - `useTaskOperations.js` - 操作通用逻辑 - `useTaskPolling.js` - 轮询通用逻辑 #### Scenario: 使用通用组件 - **WHEN** 开发混剪任务列表页面 - **THEN** 使用 `TaskFilterBar` 组件实现筛选功能 - **AND** 使用 `TaskStatusTag` 组件显示任务状态 - **AND** 使用 `TaskActionButtons` 组件实现操作按钮 - **AND** 使用 `useTaskList` Composable 处理列表逻辑 ### Requirement: 状态管理 任务中心 SHALL 使用组合式 API(Composition API)进行状态管理,避免全局状态污染。 状态管理规范: - 每个任务列表页面独立管理自己的状态 - 使用 `ref` 和 `reactive` 管理响应式数据 - 组件销毁时清理所有副作用(定时器、事件监听器等) #### Scenario: 独立状态管理 - **WHEN** 用户在混剪任务列表页面进行操作 - **THEN** 操作只影响混剪任务列表的状态 - **AND** 不影响数字人任务列表的状态 #### Scenario: 清理副作用 - **WHEN** 用户离开任务中心页面 - **THEN** 所有定时器 SHALL 被清理 - **AND** 所有事件监听器 SHALL 被移除 - **AND** 避免内存泄漏 ### Requirement: 错误处理 任务中心 SHALL 提供完善的错误处理机制,提升用户体验。 错误处理规范: - API 调用失败时显示错误提示 - 网络异常时显示重试按钮 - 操作失败时显示具体错误信息 - 加载状态使用骨架屏或加载动画 #### Scenario: API 调用失败 - **WHEN** 获取任务列表时 API 返回错误 - **THEN** 显示错误提示信息 - **AND** 提供「重试」按钮 - **AND** 用户点击重试后重新发起请求 #### Scenario: 网络异常 - **WHEN** 网络连接中断 - **THEN** 显示网络异常提示 - **AND** 自动检测网络恢复 - **AND** 网络恢复后提示用户刷新页面 ### Requirement: 无障碍访问 任务中心 SHALL 遵循 Web 无障碍访问标准,支持键盘导航和屏幕阅读器。 无障碍规范: - 所有交互元素支持键盘访问(Tab 键导航) - 提供适当的 ARIA 标签 - 颜色对比度符合 WCAG 2.1 AA 标准 - 焦点状态清晰可见 #### Scenario: 键盘导航 - **WHEN** 用户使用 Tab 键浏览任务中心页面 - **THEN** 焦点 SHALL 按逻辑顺序移动 - **AND** 所有交互元素都可以通过键盘访问 - **AND** 焦点状态清晰可见 #### Scenario: 屏幕阅读器支持 - **WHEN** 用户使用屏幕阅读器访问任务中心 - **THEN** 页面结构 SHALL 被正确朗读 - **AND** 任务状态 SHALL 有适当的 ARIA 标签 - **AND** 操作按钮 SHALL 有描述性的文本