Files
sionrui/openspec/changes/refactor-task-management/proposal.md
2025-12-21 22:24:16 +08:00

128 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Change: 重构任务管理模块并新增数字人任务列表
## Why
当前系统中混剪任务列表位于 `MaterialList` 模块下,结构不够清晰,且缺少数字人生成任务的列表管理。用户需要一个统一的、组件化的任务管理中心,能够:
1. 统一管理混剪和数字人任务
2. 提供一致的交互体验
3. 实现左右分栏布局,便于切换不同任务类型
4. 提升代码复用性和可维护性
## What Changes
### 前端变更
- **新增** 任务管理模块 `task-management`,包含左右分栏布局
- **新增** 数字人任务列表页面 `digital-human-task`
- **迁移** 混剪任务列表从 `MaterialList``task-management/mix-task`
- **重构** 通用组件:筛选栏、状态标签、操作按钮等
- **更新** 侧边栏导航:在「系统管理」菜单组下新增「任务管理」子菜单
- **移除** 原「素材库」菜单组下的「混剪任务」项
### 后端变更
- **复用** 现有 API`MixTaskService``DigitalHumanTaskService`
- **无** 数据库结构变更
### 目录结构变更
```
src/views/
├── task-management/ # [新增] 任务管理中心
│ ├── layout/
│ │ └── TaskLayout.vue # 左右分栏布局
│ ├── mix-task/
│ │ └── index.vue # 混剪任务列表(迁移)
│ ├── digital-human-task/
│ │ └── index.vue # 数字人任务列表(新建)
│ ├── components/ # 通用组件
│ └── composables/ # 复用逻辑
```
## Impact
### 受影响的 Specs
- `mix-task`:更新任务列表路径和组件结构
- `digital-human-task`:新增数字人任务管理规范
- `task-management`:新增任务中心布局规范
### 受影响的代码
- 前端路由配置(`router/index.js`
- 侧边栏导航组件(`SidebarNav.vue`
- 混剪任务列表(`MixTaskList.vue``task-management/mix-task/index.vue`
- 数字人功能页面(复用现有 API
## Architecture Decisions
### 1. 布局设计
采用左右分栏布局:
- 左侧任务类型导航240px 固定宽度)
- 右侧:动态内容区域(自适应)
- 使用 Vue Router 的子路由机制实现内容切换
### 2. 组件复用
通过 Composable 提取通用逻辑:
- `useTaskList`:列表加载、分页、筛选
- `useTaskOperations`:任务操作(删除、取消、重试)
- `useTaskPolling`:状态轮询机制
### 3. 状态管理
- 使用组合式 APIComposition API
- 避免全局状态,组件内部管理状态
- 路由切换时清理定时器,防止内存泄漏
### 4. 导航设计
在系统管理菜单组下新增「任务管理」模块:
- 路径:`/system/task-management`
- 子路由:
- `/system/task-management/mix-task` - 混剪任务
- `/system/task-management/digital-human-task` - 数字人任务
- 移除「素材库」下的「混剪任务」菜单项
## Dependencies
- 依赖现有 API`MixTaskService``DigitalHumanTaskService`
- 依赖现有 UI 组件库Ant Design Vue
- 依赖现有路由系统Vue Router 4
## Risks
### 技术风险
- **API 兼容性**:数字人任务分页 API 参数可能与混剪任务不一致
- 应对:在 Composable 中分别处理不同 API 的参数格式
- **样式冲突**:原有组件样式可能与新布局冲突
- 应对:使用 scoped CSS避免全局样式污染
- **性能问题**:两个列表同时轮询可能导致性能问题
- 应对:实现智能轮询,页面隐藏时暂停
### 业务风险
- **用户迁移**:原有混剪任务列表路径变更
- 应对:保留旧路由一段时间,重定向到新路径
- **功能缺失**:数字人任务列表功能可能不完整
- 应对:参考混剪任务列表实现,确保功能对等
## Rollback Plan
如需回滚:
1. 保留 `MixTaskList.vue` 文件
2. 恢复 `router/index.js` 中的原路由配置
3. 恢复 `SidebarNav.vue` 中的原菜单配置
4. 删除新创建的 `task-management` 目录
## Success Metrics
### 功能指标
- [ ] 混剪任务列表功能 100% 保持
- [ ] 数字人任务列表功能完整实现
- [ ] 左右导航切换流畅(< 100ms
- [ ] 列表加载时间 < 2秒
### 代码质量指标
- [ ] 代码复用率提升 30%(通过 Composable
- [ ] 新增代码覆盖率 > 80%
- [ ] 无 TypeScript 类型错误
- [ ] ESLint 检查通过
### 用户体验指标
- [ ] 页面切换动画流畅
- [ ] 空数据状态友好提示
- [ ] 错误处理完善
- [ ] 响应式布局适配移动端