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

4.5 KiB
Raw Blame History

Change: 重构任务管理模块并新增数字人任务列表

Why

当前系统中混剪任务列表位于 MaterialList 模块下,结构不够清晰,且缺少数字人生成任务的列表管理。用户需要一个统一的、组件化的任务管理中心,能够:

  1. 统一管理混剪和数字人任务
  2. 提供一致的交互体验
  3. 实现左右分栏布局,便于切换不同任务类型
  4. 提升代码复用性和可维护性

What Changes

前端变更

  • 新增 任务管理模块 task-management,包含左右分栏布局
  • 新增 数字人任务列表页面 digital-human-task
  • 迁移 混剪任务列表从 MaterialListtask-management/mix-task
  • 重构 通用组件:筛选栏、状态标签、操作按钮等
  • 更新 侧边栏导航:在「系统管理」菜单组下新增「任务管理」子菜单
  • 移除 原「素材库」菜单组下的「混剪任务」项

后端变更

  • 复用 现有 APIMixTaskServiceDigitalHumanTaskService
  • 数据库结构变更

目录结构变更

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.vuetask-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

  • 依赖现有 APIMixTaskServiceDigitalHumanTaskService
  • 依赖现有 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 检查通过

用户体验指标

  • 页面切换动画流畅
  • 空数据状态友好提示
  • 错误处理完善
  • 响应式布局适配移动端