# 多智能体任务管理系统 v3.0 界面设计文档
## 📋 文档信息
- **版本**: v3.0
- **设计日期**: 2026-02-15
- **技术栈**: Vue 3 + Vite + Element Plus + Pinia
- **设计师**: AI Assistant
- **审核状态**: 🔄 待审核
---
## 🎯 设计目标
### 核心目标
1. **提升用户体验** - 采用现代项目管理工具的经典布局(类似 Jira / Trello)
2. **可视化流程** - 通过 Kanban 看板清晰展示任务流转过程
3. **减少跳转** - 利用侧边栏、浮层减少页面跳转,提高操作效率
4. **层级管理** - 充分利用项目→任务→子任务的层级关系
5. **智能交互** - 支持拖拽、快捷键、实时更新等高级交互
### 用户角色
- **人类用户** - 项目管理者,创建项目、分配任务、审核结果
- **智能体** - 任务执行者,领取任务、完成工作、上传成果
---
## 🏗️ 整体架构
### 布局结构
```
┌─────────────────────────────────────────────────────────────────┐
│ Header (固定顶部,60px) │
│ 🤖 系统名 | 📁项目3 📋任务15 🤖智能体5/8 | 📜规约 🔔通知 │
├────────────┬────────────────────────────────────────────────────┤
│ │ │
│ Sidebar │ Main Content Area │
│ (240px) │ (自适应宽度) │
│ │ │
│ 📁 项目 │ ┌──────────────────────────────────────────────┐ │
│ • 项目A │ │ │ │
│ • 项目B │ │ 动态路由内容区 │ │
│ • 项目C │ │ - Dashboard 仪表盘 │ │
│ │ │ - TaskBoard 任务看板 │ │
│ ───────── │ │ - ProjectDetail 项目详情 │ │
│ │ │ - AgentList 智能体管理 │ │
│ 🤖 智能体 │ │ │ │
│ ⚪ 空闲:3 │ └──────────────────────────────────────────────┘ │
│ 🟢 工作:2 │ │
│ │ │
│ [折叠按钮] │ │
└────────────┴────────────────────────────────────────────────────┘
┌──────────────────────────┐
│ TaskDetail Sidebar │
│ (右侧滑出,480px) │
│ │
│ 任务详情、编辑、附件 │
│ 子任务管理 │
│ │
└──────────────────────────┘
```
### 技术架构
```
┌─────────────────────────────────────────────────────┐
│ Vue 3 Application │
├─────────────────────────────────────────────────────┤
│ │
│ Presentation Layer (视图层) │
│ ┌─────────────┬─────────────┬──────────────┐ │
│ │ Layouts │ Views │ Components │ │
│ │ MainLayout │ Dashboard │ TaskCard │ │
│ │ │ TaskBoard │ MarkdownEd │ │
│ │ │ AgentList │ FileUpload │ │
│ └─────────────┴─────────────┴──────────────┘ │
│ │
├─────────────────────────────────────────────────────┤
│ │
│ State Management (状态管理 - Pinia) │
│ ┌──────────┬──────────┬──────────┬──────────┐ │
│ │ project │ task │ agent │ stats │ │
│ │ store │ store │ store │ store │ │
│ └──────────┴──────────┴──────────┴──────────┘ │
│ │
├─────────────────────────────────────────────────────┤
│ │
│ API Layer (接口层) │
│ ┌──────────────────────────────────────────┐ │
│ │ axios instance + interceptors │ │
│ │ project.js task.js agent.js ... │ │
│ └──────────────────────────────────────────┘ │
│ │
├─────────────────────────────────────────────────────┤
│ │
│ Utilities (工具层) │
│ ┌──────────────────────────────────────────┐ │
│ │ constants date markdown helpers │ │
│ └──────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────┘
↓ HTTP
┌─────────────────────────────────────────────────────┐
│ Backend API (Node.js) │
│ /api/projects /api/tasks ... │
└─────────────────────────────────────────────────────┘
```
---
## 🎨 页面详细设计
### 1. Dashboard - 仪表盘
**路由**: `/`
**功能**: 全局数据概览,快速访问入口
**布局**:
```
┌─────────────────────────────────────────────────────────┐
│ 📊 仪表盘 │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │📁 │ │📋 │ │🟡 │ │✅ │ │
│ │项目总数│ │任务总数│ │进行中 │ │已完成 │ │
│ │ 8 │ │ 45 │ │ 12 │ │ 28 │ │
│ └────────┘ └────────┘ └────────┘ └────────┘ │
│ │
├──────────────────────────┬──────────────────────────────┤
│ │ │
│ 📊 任务状态分布 │ 📈 任务类型分布 │
│ ┌────────────────────┐ │ ┌────────────────────┐ │
│ │ │ │ │ │ │
│ │ 饼图 (ECharts) │ │ │ 饼图 (ECharts) │ │
│ │ │ │ │ │ │
│ │ • 初始 5 │ │ │ • 需求 8 │ │
│ │ • 进行中 12 │ │ │ • 设计 6 │ │
│ │ • 待测试 3 │ │ │ • 开发 18 │ │
│ │ • 测试中 2 │ │ │ • 测试 7 │ │
│ │ • 完成 28 │ │ │ • 部署 6 │ │
│ └────────────────────┘ │ └────────────────────┘ │
│ │ │
└──────────────────────────┴──────────────────────────────┘
│ │
│ 📁 最近活跃项目 │
│ ┌───────────────────────────────────────────────────┐ │
│ │ 项目名称 │ 描述 │ 创建时间 │ │
│ ├───────────────────────────────────────────────────┤ │
│ │ 智能客服系统 │ AI客服... │ 2天前 [查看]│ │
│ │ 数据分析平台 │ 大数据... │ 5天前 [查看]│ │
│ │ 用户画像系统 │ 用户标签... │ 1周前 [查看]│ │
│ └───────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────┘
```
**组件**:
- `el-statistic` - 统计卡片
- `v-chart` (ECharts) - 饼图
- `el-table` - 项目列表
**交互**:
- 点击统计卡片 → 跳转到对应筛选的任务列表
- 点击图表区域 → 高亮对应数据
- 点击项目名称 → 跳转到项目详情
---
### 2. TaskBoard - 任务看板(Kanban)
**路由**: `/tasks/board/:projectId`
**功能**: 可视化任务流转,拖拽改变状态
**布局**:
```
┌─────────────────────────────────────────────────────────────────┐
│ 📋 任务看板 - 智能客服系统 │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ [+ 新建任务] [🔍 搜索...] [类型▼] [优先级▼] [筛选▼] │ │
│ └──────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │ 初始 │ │进行中 │ │待测试 │ │测试中 │ │ 完成 │ │
│ │ (5) │ │ (12) │ │ (3) │ │ (2) │ │ (28) │ │
│ ├────────┤ ├────────┤ ├────────┤ ├────────┤ ├────────┤ │
│ │ │ │ │ │ │ │ │ │ │ │
│ │ ┌────┐ │ │ ┌────┐ │ │ ┌────┐ │ │ ┌────┐ │ │ ┌────┐ │ │
│ │ │任务│ │ │ │任务│ │ │ │任务│ │ │ │任务│ │ │ │任务│ │ │
│ │ │卡片│ │ │ │卡片│ │ │ │卡片│ │ │ │卡片│ │ │ │卡片│ │ │
│ │ │ 1 │ │ │ │ 3 │ │ │ │ 7 │ │ │ │ 9 │ │ │ │10 │ │ │
│ │ └────┘ │ │ └────┘ │ │ └────┘ │ │ └────┘ │ │ └────┘ │ │
│ │ │ │ │ │ │ │ │ │ │ │
│ │ ┌────┐ │ │ ┌────┐ │ │ ┌────┐ │ │ ┌────┐ │ │ ┌────┐ │ │
│ │ │任务│ │ │ │任务│ │ │ │任务│ │ │ │任务│ │ │ │任务│ │ │
│ │ │卡片│ │ │ │卡片│ │ │ │卡片│ │ │ │卡片│ │ │ │卡片│ │ │
│ │ │ 2 │ │ │ │ 4 │ │ │ │ 8 │ │ │ │ │ │ │ │11 │ │ │
│ │ └────┘ │ │ └────┘ │ │ └────┘ │ │ └────┘ │ │ └────┘ │ │
│ │ ... │ │ ... │ │ │ │ │ │ ... │ │
│ │ │ │ │ │ │ │ │ │ │ │
│ └────────┘ └────────┘ └────────┘ └────────┘ └────────┘ │
│ 可拖拽 ──────────→ │
│ │
└─────────────────────────────────────────────────────────────────┘
```
**任务卡片设计**:
```
┌──────────────────────────────────────┐
│ 实现用户登录功能 │ ← 标题 (14px, 加粗)
│ ───────────────────────────────── │
│ [开发] [高优先级] │ ← 徽章 (类型 + 优先级)
│ ───────────────────────────────── │
│ 🤖 Agent-001 🔗 3/5 📎 2 │ ← 底部信息
└──────────────────────────────────────┘
↑ 分配的智能体 ↑子任务 ↑附件数
```
**卡片颜色规范**:
- **任务类型徽章**:
- 需求: 紫色 `#9C27B0`
- 设计: 蓝色 `#2196F3`
- 开发: 绿色 `#4CAF50`
- 测试: 橙色 `#FF9800`
- 部署: 红色 `#F44336`
- **优先级徽章**:
- 高: 红色背景
- 普通: 默认
- 低: 灰色背景
**组件**:
- `draggable` (vuedraggable) - 拖拽容器
- `TaskCard` - 自定义任务卡片组件
- `el-input` - 搜索框
- `el-select` - 筛选下拉
**交互**:
1. **拖拽** - 拖动任务卡片到其他列改变状态
2. **点击卡片** - 打开右侧任务详情 Sidebar
3. **筛选** - 按类型、优先级、关键词筛选
4. **搜索** - 实时搜索任务标题和描述
---
### 3. TaskDetail Sidebar - 任务详情侧边栏
**触发方式**: 点击任务卡片
**位置**: 从右侧滑入,覆盖在主内容区上方
**宽度**: `480px`
**布局**:
```
┌──────────────────────────────┐
│ × │
│ 实现用户登录功能 │
│ ───────────────────────── │
│ [编辑] [删除] │
├──────────────────────────────┤
│ │
│ 📊 基本信息 │
│ 状态: [进行中 ▼] │
│ 类型: [开发 ▼] │
│ 优先级: [高 ▼] │
│ 创建者: 人类 │
│ 分配给: Agent-001 │
│ 创建时间: 2天前 │
│ │
│ ───────────────────────── │
│ │
│ 📝 描述 │
│ ┌──────────────────────┐ │
│ │ │ │
│ │ ## 需求 │ │
│ │ 实现用户登录... │ │
│ │ │ │
│ │ ## 技术要求 │ │
│ │ - JWT认证 │ │
│ │ - 密码加密 │ │
│ │ │ │
│ └──────────────────────┘ │
│ [编辑描述] │
│ │
│ ───────────────────────── │
│ │
│ 📎 附件 (2) │
│ [设计图.png] [下载] ✕ │
│ [API文档.pdf] [下载] ✕ │
│ [+ 上传附件] │
│ │
│ ───────────────────────── │
│ │
│ 🔀 子任务 (3/5 完成) │
│ ✓ 前端登录页面 │
│ ✓ 后端API接口 │
│ ☐ 单元测试 │
│ ☐ 集成测试 │
│ ☐ 文档更新 │
│ [+ 添加子任务] │
│ │
│ ───────────────────────── │
│ │
│ 💬 评论 (即将上线) │
│ │
└──────────────────────────────┘
```
**组件**:
- `el-drawer` - 抽屉组件
- `el-select` - 下拉选择器
- `MarkdownEditor` - 自定义 Markdown 编辑器
- `FileUpload` - 自定义文件上传组件
- `SubtaskList` - 自定义子任务列表
**交互**:
- 点击 `×` 或点击遮罩层关闭
- 下拉选择器即时更新(带防抖)
- 附件拖拽上传
- 子任务点击切换状态
---
### 4. ProjectDetail - 项目详情
**路由**: `/projects/:id`
**功能**: 查看项目详情、规约、共享笔记
**布局**:
```
┌─────────────────────────────────────────────────────────┐
│ 📁 智能客服系统 [编辑] [归档] │
│ 一个基于AI的智能客服系统... │
├─────────────────────────────────────────────────────────┤
│ [概览] [任务列表] [协作规约] [共享笔记] [统计] │
├─────────────────────────────────────────────────────────┤
│ │
│ Tab 1 - 概览 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 总任务 │ │ 进行中 │ │ 已完成 │ │
│ │ 45 │ │ 12 │ │ 28 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ │
│ 最近任务 │
│ • [开发] 实现用户登录 Agent-001 进行中 │
│ • [设计] 数据库设计 Agent-002 待测试 │
│ • [测试] 单元测试 Agent-003 完成 │
│ │
│ [查看完整看板] │
│ │
├─────────────────────────────────────────────────────────┤
│ │
│ Tab 2 - 协作规约 (Markdown) │
│ ┌───────────────────────────────────────────────────┐ │
│ │ # 协作规约 │ │
│ │ │ │
│ │ ## 代码规范 │ │
│ │ - 遵循 PEP 8 │ │
│ │ - 提交前必须通过 lint │ │
│ │ │ │
│ │ ## 提交规范 │ │
│ │ - 使用 conventional commits │ │
│ │ │ │
│ └───────────────────────────────────────────────────┘ │
│ [编辑规约] │
│ │
├─────────────────────────────────────────────────────────┤
│ │
│ Tab 3 - 共享笔记 │
│ ┌───────────────────────────────────────────────────┐ │
│ │ 📝 数据库选型确定 Agent-001 │ │
│ │ PostgreSQL 15 + Redis 2天前 │ │
│ ├───────────────────────────────────────────────────┤ │
│ │ 📝 API设计完成 人类 │ │
│ │ RESTful API设计文档已上传 3天前 │ │
│ └───────────────────────────────────────────────────┘ │
│ [+ 新建笔记] │
│ │
└─────────────────────────────────────────────────────────┘
```
**组件**:
- `el-tabs` - 选项卡
- `el-statistic` - 统计卡片
- `MarkdownViewer` - Markdown 渲染器
- `el-timeline` - 时间线(笔记列表)
---
### 5. AgentList - 智能体管理
**路由**: `/agents`
**功能**: 查看智能体状态、注册新智能体
**布局**:
```
┌─────────────────────────────────────────────────────────┐
│ 🤖 智能体管理 [注册新智能体] │
├─────────────────────────────────────────────────────────┤
│ [全部(8)] [空闲(3)] [工作中(5)] │
├─────────────────────────────────────────────────────────┤
│ │
│ 名称 状态 当前任务 完成数 最后心跳│
│ ──────────────────────────────────────────────────── │
│ Agent-001 🟢工作 实现登录 12 1分钟前│
│ Agent-002 🟢工作 数据库设计 8 2分钟前│
│ Agent-003 ⚪空闲 - 15 5分钟前│
│ Agent-004 🟢工作 单元测试 6 1分钟前│
│ Agent-005 ⚪空闲 - 9 3分钟前│
│ Agent-006 🟢工作 前端开发 11 1分钟前│
│ Agent-007 ⚪空闲 - 13 4分钟前│
│ Agent-008 🟢工作 API开发 7 2分钟前│
│ │
└─────────────────────────────────────────────────────────┘
选中某个智能体后,右侧显示详情:
┌────────────────────────────┐
│ Agent-001 │
│ ─────────────────────────│
│ 类型: 开发 │
│ 能力: │
│ • backend │
│ • python │
│ • database │
│ │
│ 当前任务: │
│ 实现用户登录功能 │
│ │
│ 历史统计: │
│ • 总完成: 12 │
│ • 平均用时: 2.3小时 │
│ • 成功率: 95% │
│ │
│ 最后心跳: 1分钟前 │
│ 注册时间: 2周前 │
└────────────────────────────┘
```
**组件**:
- `el-table` - 智能体列表表格
- `el-tag` - 状态标签
- `el-descriptions` - 详情描述列表
---
## 🎨 视觉设计规范
### 颜色系统
```scss
// 主题色
$primary: #667eea; // 主色(渐变起点)
$primary-dark: #764ba2; // 主色(渐变终点)
// 状态色
$success: #67C23A; // 成功/完成
$warning: #E6A23C; // 警告/进行中
$danger: #F56C6C; // 危险/删除
$info: #909399; // 信息/初始
// 任务状态色
$status-initial: #3498db; // 初始 - 蓝色
$status-in-progress: #f39c12; // 进行中 - 橙色
$status-testing-pending: #9b59b6; // 待测试 - 紫色
$status-testing: #e67e22; // 测试中 - 深橙
$status-completed: #27ae60; // 完成 - 绿色
// 任务类型色
$type-requirement: #9C27B0; // 需求 - 紫色
$type-design: #2196F3; // 设计 - 蓝色
$type-development: #4CAF50; // 开发 - 绿色
$type-testing: #FF9800; // 测试 - 橙色
$type-deployment: #F44336; // 部署 - 红色
// 灰度色
$text-primary: #303133;
$text-regular: #606266;
$text-secondary: #909399;
$text-placeholder: #C0C4CC;
$border-base: #DCDFE6;
$border-light: #E4E7ED;
$border-lighter: #EBEEF5;
$border-extra-light: #F2F6FC;
$bg-base: #FFFFFF;
$bg-light: #F5F7FA;
$bg-dark: #F0F2F5;
```
### 间距系统
```scss
$spacing-xs: 4px;
$spacing-sm: 8px;
$spacing-md: 16px;
$spacing-lg: 24px;
$spacing-xl: 32px;
$spacing-xxl: 48px;
```
### 圆角
```scss
$radius-sm: 4px;
$radius-md: 8px;
$radius-lg: 12px;
$radius-xl: 16px;
```
### 阴影
```scss
$shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.08);
$shadow-md: 0 4px 8px rgba(0, 0, 0, 0.12);
$shadow-lg: 0 8px 16px rgba(0, 0, 0, 0.15);
```
### 字体
```scss
$font-family-base: 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
$font-family-mono: 'Consolas', 'Monaco', 'Courier New', monospace;
$font-size-xs: 12px;
$font-size-sm: 13px;
$font-size-md: 14px;
$font-size-lg: 16px;
$font-size-xl: 18px;
$font-size-xxl: 20px;
```
---
## 🔄 交互设计
### 拖拽交互(Kanban)
**流程**:
1. 用户按住任务卡片
2. 卡片变为半透明,跟随鼠标移动
3. 经过其他列时,列高亮显示
4. 松开鼠标,卡片落入目标列
5. 发送 API 请求更新状态
6. 成功: 提示"任务状态已更新"
7. 失败: 卡片恢复原位,提示错误
**视觉反馈**:
```scss
.task-card {
transition: transform 0.2s, box-shadow 0.2s;
&.dragging {
opacity: 0.5;
transform: rotate(3deg);
box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
}
&:hover {
transform: translateY(-2px);
box-shadow: $shadow-md;
}
}
.kanban-column {
transition: background-color 0.2s, border 0.2s;
&.drag-over {
background: rgba(102, 126, 234, 0.05);
border: 2px dashed $primary;
}
}
```
### 侧边栏动画
**TaskDetail Sidebar**:
```scss
.task-detail-sidebar {
position: fixed;
right: 0;
top: 60px;
width: 480px;
height: calc(100vh - 60px);
background: white;
box-shadow: -4px 0 16px rgba(0, 0, 0, 0.15);
transform: translateX(100%);
transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
z-index: 1000;
&.active {
transform: translateX(0);
}
}
.overlay {
position: fixed;
top: 60px;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.3);
opacity: 0;
pointer-events: none;
transition: opacity 0.3s;
&.active {
opacity: 1;
pointer-events: auto;
}
}
```
### 加载状态
**Skeleton 骨架屏**:
- 列表加载时显示骨架屏,避免白屏
- 使用 `el-skeleton` 组件
```vue
```
**按钮加载**:
```vue
提交
```
### Toast 提示
**成功提示**:
```javascript
ElMessage.success('任务状态已更新')
```
**错误提示**:
```javascript
ElMessage.error('更新失败,请重试')
```
**警告提示**:
```javascript
ElMessage.warning('文件大小不能超过 10MB')
```
---
## 📱 响应式设计
### 断点设置
```scss
$breakpoint-xs: 480px; // 手机
$breakpoint-sm: 768px; // 平板竖屏
$breakpoint-md: 992px; // 平板横屏
$breakpoint-lg: 1200px; // 桌面
$breakpoint-xl: 1920px; // 大屏
```
### 适配策略
**移动端 (< 768px)**:
- Sidebar 自动收起,通过汉堡菜单展开
- TaskDetail Sidebar 全屏显示
- Kanban 看板横向滚动
- 统计卡片 2列布局
**平板 (768px - 992px)**:
- Sidebar 保持展开
- TaskDetail Sidebar 占 50% 宽度
- Kanban 看板可视化 3 列
- 统计卡片 4列布局
**桌面 (> 992px)**:
- 完整布局
- 所有功能正常使用
---
## ⚡ 性能优化
### 1. 组件懒加载
```javascript
const Dashboard = () => import('@/views/Dashboard.vue')
const TaskBoard = () => import('@/views/TaskBoard.vue')
```
### 2. 虚拟滚动
对于超过 100 条的任务列表,使用虚拟滚动:
```vue
```
### 3. 防抖节流
**搜索防抖**:
```javascript
import { debounce } from 'lodash-es'
const handleSearch = debounce((keyword) => {
taskStore.setFilters({ keyword })
}, 300)
```
**状态更新节流**:
```javascript
import { throttle } from 'lodash-es'
const updateStatus = throttle(async (taskId, status) => {
await taskApi.updateTask(taskId, { status })
}, 1000)
```
### 4. 图片懒加载
附件图片使用懒加载:
```vue
```
### 5. Keep-Alive 缓存
缓存频繁切换的页面:
```vue
```
---
## 🔐 安全考虑
### 1. XSS 防护
- Markdown 渲染使用 DOMPurify 过滤
- 用户输入统一转义
```javascript
import DOMPurify from 'dompurify'
export function renderMarkdown(content) {
const dirty = marked(content)
return DOMPurify.sanitize(dirty)
}
```
### 2. CSRF 防护
- Axios 默认携带 CSRF Token
- 关键操作二次确认
```javascript
ElMessageBox.confirm(
'确定要删除这个任务吗?',
'警告',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}
).then(() => {
deleteTask(taskId)
})
```
### 3. 文件上传安全
- 限制文件类型
- 限制文件大小(10MB)
- 后端验证文件内容
---
## 🧪 测试策略
### 1. 单元测试
使用 Vitest + Vue Test Utils:
```javascript
import { mount } from '@vue/test-utils'
import TaskCard from '@/components/TaskCard.vue'
describe('TaskCard', () => {
it('renders task title', () => {
const wrapper = mount(TaskCard, {
props: {
task: {
id: '1',
title: '测试任务',
status: 'initial'
}
}
})
expect(wrapper.text()).toContain('测试任务')
})
})
```
### 2. 集成测试
测试关键用户流程:
- 创建项目 → 创建任务 → 拖拽任务 → 查看详情
### 3. E2E 测试
使用 Playwright 或 Cypress:
```javascript
describe('Task Board', () => {
it('can drag and drop tasks', () => {
cy.visit('/tasks/board/1')
cy.get('[data-task-id="task-1"]')
.drag('[data-status="in_progress"]')
cy.contains('任务状态已更新')
})
})
```
---
## 📊 数据流示例
### 创建任务流程
```
用户点击 [+ 新建任务]
↓
打开 TaskFormDialog
↓
填写表单(标题、描述、类型、优先级)
↓
点击 [提交]
↓
taskStore.createTask(formData)
↓
POST /api/tasks
↓
后端验证 → 插入数据库
↓
返回新任务对象
↓
taskStore.tasks.push(newTask)
↓
关闭对话框 + 成功提示
↓
看板自动刷新显示新任务
```
### 拖拽更新任务状态流程
```
用户拖动任务卡片
↓
onDragEnd 事件触发
↓
获取 taskId 和 newStatus
↓
taskStore.updateTask(taskId, { status: newStatus })
↓
PUT /api/tasks/:id { status: 'in_progress' }
↓
后端验证状态流转规则
↓
更新数据库
↓
返回更新后的任务
↓
taskStore 更新本地状态
↓
UI 重新渲染(任务移动到新列)
↓
显示成功提示
```
---
## 🎯 开发优先级
### P0 (核心功能 - 第一周)
1. ✅ 项目初始化和基础配置
2. ✅ 路由和状态管理
3. ✅ API 封装
4. ✅ 主布局(Header + Sidebar + Main)
5. ✅ TaskBoard 任务看板 + 拖拽
6. ✅ TaskCard 任务卡片组件
7. ✅ TaskDetail Sidebar 任务详情
### P1 (重要功能 - 第二周)
8. ✅ Dashboard 仪表盘
9. ✅ ProjectDetail 项目详情
10. ✅ MarkdownEditor 编辑器
11. ✅ FileUpload 文件上传
12. ✅ 实时更新功能
### P2 (扩展功能 - 第三周)
13. ✅ AgentList 智能体管理
14. ✅ 全局规约管理
15. ✅ 共享笔记功能
16. ✅ 响应式适配
17. ✅ 性能优化
18. ✅ 单元测试
### P3 (锦上添花 - 后续)
19. 快捷键支持
20. 暗黑模式
21. 国际化(i18n)
22. 通知中心
23. 评论系统
24. 工作流自动化
---
## ✅ 验收标准
### 功能完整性
- [ ] ✅ 用户可以创建项目
- [ ] ✅ 用户可以创建任务(支持 Markdown 描述)
- [ ] ✅ 用户可以在看板中拖拽任务改变状态
- [ ] ✅ 用户可以点击任务查看详情
- [ ] ✅ 用户可以上传附件(最大 10MB)
- [ ] ✅ 用户可以管理子任务
- [ ] ✅ 用户可以设置和查看协作规约
- [ ] ✅ 用户可以添加共享笔记
- [ ] ✅ 智能体可以注册并领取任务
- [ ] ✅ 统计数据实时更新
### 交互体验
- [ ] ✅ 拖拽流畅,无明显延迟
- [ ] ✅ 路由切换有过渡动画
- [ ] ✅ 加载状态友好(骨架屏/Loading)
- [ ] ✅ 错误提示清晰明确
- [ ] ✅ 成功操作有即时反馈
- [ ] ✅ 表单验证完善
### 视觉规范
- [ ] ✅ 使用 Element Plus 组件库
- [ ] ✅ 颜色符合设计系统
- [ ] ✅ 间距、圆角、阴影统一
- [ ] ✅ 字体大小和行高合理
- [ ] ✅ 移动端适配良好
### 性能指标
- [ ] ✅ 首屏加载 < 2 秒
- [ ] ✅ API 响应时间 < 500ms
- [ ] ✅ 拖拽延迟 < 100ms
- [ ] ✅ 列表渲染流畅(60fps)
- [ ] ✅ 组件懒加载和代码分割
### 代码质量
- [ ] ✅ 使用 Composition API
- [ ] ✅ 状态管理清晰(Pinia)
- [ ] ✅ 组件职责单一
- [ ] ✅ API 封装合理
- [ ] ✅ 错误处理完善
- [ ] ✅ 关键功能有单元测试
---
## 📝 开发日志
### 2026-02-15 22:50
- ✅ 完善设计文档
- ✅ 定义页面布局和组件
- ✅ 制定视觉规范
- ✅ 规划交互流程
- ✅ 确定开发优先级
- 🔄 待审核...
---
## 🔗 相关文档
- [API-V2.md](./API-V2.md) - 后端 API 接口文档
- [TASKS-VUE.md](./TASKS-VUE.md) - Vue 开发任务清单
- [FRONTEND-VUE.md](./FRONTEND-VUE.md) - Vue 前端技术方案
---
## 📞 审核意见
**请审核以下方面**:
1. **布局设计** - 是否符合现代项目管理工具的风格?
2. **交互流程** - 拖拽、侧边栏等交互是否合理?
3. **视觉规范** - 颜色、间距、字体是否统一?
4. **功能完整性** - 是否覆盖所有核心需求?
5. **性能考虑** - 优化策略是否足够?
6. **开发优先级** - 排期是否合理?
**审核状态**: 🔄 待审核
**审核结果**: _待填写_
**修改意见**: _待填写_
---
**文档版本**: v3.0
**最后更新**: 2026-02-15 22:50
**状态**: 待审核