# 实现1:建立项目框架 ## 项目概述 任务跟踪系统,采用前后端分离架构,支持多级机构管理和任务全生命周期管理。 ## 技术栈 ### 前端 - **框架**: Vue 3.0 - **UI组件库**: Element UI 2.15.6 - **状态管理**: Vuex 4.x - **路由**: Vue Router 4.x - **HTTP客户端**: Axios - **构建工具**: Vite - **开发语言**: TypeScript ### 后端 - **框架**: gin - **数据库**: MySQL 8.0 - **ORM**: GORM - **认证**: JWT - **日志**: Zap - **配置管理**: Viper - **API文档**: Swagger ## 核心功能 ### 1. 机构管理 - **三层机构架构** - 第一层:任务发布者(总部/管理层) - 第二层:任务执行部门(各部门/分公司) - 第三层:任务执行人(具体员工) - **机构功能** - 机构创建、编辑、删除 - 机构层级管理 - 人员归属管理 - 权限分配 ### 2. 任务管理 - **任务生命周期** - 任务发布:创建任务,分配执行者 - 任务执行:执行者接收并处理任务 - 任务跟踪:实时监控任务进度 - 任务完成:确认任务完成状态 - **任务属性** - 任务标题、描述 - 任务类型、分类 - 创建时间、截止时间 - 执行者、负责人 - 任务状态(待处理、进行中、已完成、已取消) ### 3. 任务统计 - **统计维度** - 按机构统计任务完成情况 - 按时间段统计(日、周、月、年) - 按任务类型统计 - 按执行者统计 - **统计指标** - 任务完成率 - 任务延期率 - 任务平均处理时间 - 工作量分布 ### 4. 任务提醒 - **提醒类型** - 任务到期提醒 - 任务逾期提醒 - 任务状态变更通知 - **提醒方式** - 系统内通知 - 邮件提醒 - 微信通知(可选) ### 5. 任务看板 - **看板视图** - 待处理任务 - 进行中任务 - 已完成任务 - 已逾期任务 - **拖拽操作** - 任务状态变更 - 任务优先级调整 ### 6. 任务搜索 - **搜索条件** - 任务标题、内容 - 任务状态 - 创建时间范围 - 执行者、创建者 - 任务标签 - **高级搜索** - 多条件组合搜索 - 搜索历史记录 - 搜索结果导出 ### 7. 任务评论 - **评论功能** - 任务进度更新 - 问题反馈 - 协作沟通 - **评论管理** - 评论权限控制 - 评论历史记录 - @提醒功能 ### 8. 任务附件 - **附件类型** - 文档文件(Word、Excel、PDF等) - 图片文件 - 视频文件 - **附件管理** - 文件上传、下载 - 文件预览 - 文件版本管理 ### 9. 任务优先级 - **优先级分类** - 紧急(红色) - 高优先级(橙色) - 中优先级(黄色) - 低优先级(绿色) - **优先级管理** - 优先级设置 - 优先级排序 - 优先级提醒 ### 10. 任务标签 - **标签系统** - 自定义标签 - 标签分类管理 - 标签颜色设置 - **标签应用** - 任务分类 - 快速筛选 - 统计分析 ### 11. 任务分配 - **分配方式** - 手动分配 - 自动分配(基于工作量) - 批量分配 - **分配规则** - 部门权限控制 - 工作量平衡 - 技能匹配 ### 12. 任务时限 - **时限设置** - 任务开始时间 - 任务截止时间 - 预计完成时间 - **时限管理** - 时限提醒 - 延期申请 - 时限统计 ## 项目结构 ### 前端项目结构 ``` frontend/ ├── public/ │ ├── index.html │ └── favicon.ico ├── src/ │ ├── components/ # 公共组件 │ │ ├── Layout/ # 布局组件 │ │ ├── Table/ # 表格组件 │ │ ├── Form/ # 表单组件 │ │ └── Common/ # 通用组件 │ ├── views/ # 页面组件 │ │ ├── Dashboard/ # 仪表盘 │ │ ├── Organization/ # 机构管理 │ │ ├── Task/ # 任务管理 │ │ ├── Statistics/ # 统计分析 │ │ └── Profile/ # 个人中心 │ ├── store/ # Vuex状态管理 │ ├── router/ # 路由配置 │ ├── api/ # API接口 │ ├── utils/ # 工具函数 │ ├── assets/ # 静态资源 │ └── styles/ # 样式文件 ├── package.json ├── vite.config.js └── README.md ``` ### 后端项目结构 ``` backend/ ├── api/ # API接口层 │ ├── handlers/ # 请求处理器 │ ├── middleware/ # 中间件 │ └── types/ # 类型定义 ├── internal/ # 内部业务逻辑 │ ├── config/ # 配置管理 │ ├── logic/ # 业务逻辑 │ ├── svc/ # 服务上下文 │ └── types/ # 类型定义 ├── model/ # 数据模型 ├── migration/ # 数据库迁移 ├── pkg/ # 公共包 │ ├── auth/ # 认证相关 │ ├── cache/ # 缓存相关 │ ├── database/ # 数据库相关 │ └── utils/ # 工具函数 ├── go.mod ├── go.sum └── README.md ``` ## 数据库设计 ### 核心数据表 #### 1. 用户表 (users) - id: 主键 - username: 用户名 - email: 邮箱 - password: 密码(加密) - real_name: 真实姓名 - phone: 手机号 - avatar: 头像 - status: 状态(启用/禁用) - created_at: 创建时间 - updated_at: 更新时间 #### 2. 机构表 (organizations) - id: 主键 - name: 机构名称 - code: 机构代码 - parent_id: 父级机构ID - level: 机构层级 - sort: 排序 - status: 状态 - created_at: 创建时间 - updated_at: 更新时间 #### 3. 用户机构关系表 (user_organizations) - id: 主键 - user_id: 用户ID - organization_id: 机构ID - role: 角色(管理员/成员) - created_at: 创建时间 #### 4. 任务表 (tasks) - id: 主键 - title: 任务标题 - description: 任务描述 - type: 任务类型 - priority: 优先级 - status: 状态 - creator_id: 创建者ID - assignee_id: 执行者ID - organization_id: 所属机构ID - start_time: 开始时间 - end_time: 截止时间 - completed_at: 完成时间 - created_at: 创建时间 - updated_at: 更新时间 #### 5. 任务标签表 (task_tags) - id: 主键 - name: 标签名称 - color: 标签颜色 - organization_id: 所属机构ID - created_at: 创建时间 #### 6. 任务标签关系表 (task_tag_relations) - id: 主键 - task_id: 任务ID - tag_id: 标签ID #### 7. 任务评论表 (task_comments) - id: 主键 - task_id: 任务ID - user_id: 用户ID - content: 评论内容 - created_at: 创建时间 #### 8. 任务附件表 (task_attachments) - id: 主键 - task_id: 任务ID - file_name: 文件名 - file_path: 文件路径 - file_size: 文件大小 - file_type: 文件类型 - uploaded_by: 上传者ID - created_at: 创建时间 ## 开发阶段 ### 第一阶段:基础框架搭建(2周) - [x] 项目初始化 - [ ] 前端Vue3项目搭建 - [ ] 后端Go-Zero项目搭建 - [ ] 数据库设计和创建 - [ ] 基础认证功能 - [ ] 项目部署环境准备 ### 第二阶段:核心功能开发(4周) - [ ] 用户管理功能 - [ ] 机构管理功能 - [ ] 任务CRUD功能 - [ ] 任务状态管理 - [ ] 基础权限控制 ### 第三阶段:高级功能开发(3周) - [ ] 任务看板功能 - [ ] 任务搜索功能 - [ ] 任务统计功能 - [ ] 任务提醒功能 - [ ] 任务评论功能 ### 第四阶段:扩展功能开发(2周) - [ ] 任务附件功能 - [ ] 任务标签功能 - [ ] 任务优先级功能 - [ ] 任务分配优化 ### 第五阶段:优化和测试(1周) - [ ] 性能优化 - [ ] 单元测试 - [ ] 集成测试 - [ ] 用户体验优化 ## API接口设计 ### 认证相关 - POST /api/auth/login - 用户登录 - POST /api/auth/logout - 用户退出 - POST /api/auth/refresh - 刷新Token - GET /api/auth/me - 获取当前用户信息 ### 机构管理 - GET /api/organizations - 获取机构列表 - POST /api/organizations - 创建机构 - PUT /api/organizations/:id - 更新机构 - DELETE /api/organizations/:id - 删除机构 - GET /api/organizations/:id/users - 获取机构用户 ### 任务管理 - GET /api/tasks - 获取任务列表 - POST /api/tasks - 创建任务 - GET /api/tasks/:id - 获取任务详情 - PUT /api/tasks/:id - 更新任务 - DELETE /api/tasks/:id - 删除任务 - PUT /api/tasks/:id/status - 更新任务状态 ### 任务统计 - GET /api/statistics/overview - 获取统计概览 - GET /api/statistics/tasks - 获取任务统计 - GET /api/statistics/users - 获取用户统计 ## 部署说明 ### 开发环境 - 前端:npm run dev (http://localhost:5173) - 后端:go run main.go (http://localhost:8080) - 数据库:MySQL 8.0 (localhost:3306) ### 生产环境 - 前端:nginx反向代理 - 后端:Docker容器化部署 - 数据库:MySQL主从架构 - 缓存:Redis集群 - 监控:Prometheus + Grafana ### 环境配置 - 开发环境:config/dev.yaml - 测试环境:config/test.yaml - 生产环境:config/prod.yaml ## 注意事项 1. **安全性** - 所有接口都要进行身份验证 - 敏感数据加密存储 - SQL注入防护 - XSS攻击防护 2. **性能优化** - 数据库索引优化 - 查询语句优化 - 缓存机制 - 分页查询 3. **用户体验** - 响应式设计 - 友好的错误提示 - 加载状态提示 - 操作确认提示 4. **代码质量** - 代码规范检查 - 单元测试覆盖 - 代码审查 - 文档完整性