483 lines
10 KiB
Markdown
483 lines
10 KiB
Markdown
# 项目管理系统产品需求文档
|
||
|
||
## 文档信息
|
||
- **文档版本**: V1.0
|
||
- **创建日期**: 2026-01-26
|
||
- **文档类型**: 产品需求文档 (PRD)
|
||
|
||
---
|
||
|
||
## 1. 产品概述
|
||
|
||
### 1.1 产品简介
|
||
项目管理系统是一个基于BS架构的企业级项目管理平台,旨在帮助企业实现项目全生命周期的数字化管理,包括项目创建、编辑、跟踪、统计等功能。
|
||
|
||
### 1.2 产品目标
|
||
- 规范项目管理流程,提高项目执行效率
|
||
- 实现项目信息的集中管理和共享
|
||
- 提供完善的项目修改历史记录,便于追溯
|
||
- 支持多维度项目筛选和统计分析
|
||
|
||
### 1.3 目标用户
|
||
- 管理员:系统最高权限用户,负责用户管理和系统维护
|
||
- 市场部人员:负责项目创建和项目信息维护
|
||
- 其他部门人员:负责项目内容的修改和更新
|
||
|
||
---
|
||
|
||
## 2. 用户角色与权限
|
||
|
||
### 2.1 角色定义
|
||
|
||
#### 2.1.1 管理员
|
||
**权限范围:**
|
||
- 用户管理:创建、编辑、删除用户
|
||
- 权限管理:分配用户角色和权限
|
||
- 密码管理:重置用户密码
|
||
- 项目管理:查看、编辑所有项目
|
||
- 统计分析:查看所有项目统计报表
|
||
- 系统配置:管理系统基础配置
|
||
|
||
#### 2.1.2 市场部人员
|
||
**权限范围:**
|
||
- 项目创建:创建新项目
|
||
- 项目编辑:编辑项目信息
|
||
- 项目查看:查看所有项目
|
||
- 历史记录:查看项目修改历史
|
||
|
||
#### 2.1.3 其他部门人员
|
||
**权限范围:**
|
||
- 项目编辑:编辑项目内容
|
||
- 项目查看:查看所有项目
|
||
- 历史记录:查看项目修改历史
|
||
|
||
### 2.2 权限矩阵
|
||
|
||
| 功能模块 | 管理员 | 市场部 | 其他部门 |
|
||
|---------|--------|--------|----------|
|
||
| 用户管理 | ✓ | ✗ | ✗ |
|
||
| 权限管理 | ✓ | ✗ | ✗ |
|
||
| 密码管理 | ✓ | ✗ | ✗ |
|
||
| 项目创建 | ✓ | ✓ | ✗ |
|
||
| 项目编辑 | ✓ | ✓ | ✓ |
|
||
| 项目查看 | ✓ | ✓ | ✓ |
|
||
| 历史记录查看 | ✓ | ✓ | ✓ |
|
||
| 项目统计 | ✓ | ✗ | ✗ |
|
||
| 系统配置 | ✓ | ✗ | ✗ |
|
||
|
||
---
|
||
|
||
## 3. 功能需求
|
||
|
||
### 3.1 用户管理模块
|
||
|
||
#### 3.1.1 用户创建
|
||
**功能描述:** 管理员可以创建新用户账号
|
||
|
||
**输入信息:**
|
||
- 用户名(必填,唯一)
|
||
- 密码(必填,需满足安全策略)
|
||
- 真实姓名(必填)
|
||
- 部门(必填,可选:市场部、技术部、设计部、财务部等)
|
||
- 联系电话(选填)
|
||
- 邮箱(选填,需格式验证)
|
||
- 角色(必填:管理员、市场部、其他部门)
|
||
|
||
**业务规则:**
|
||
- 用户名必须唯一,不能重复
|
||
- 密码长度不少于8位,包含字母和数字
|
||
- 邮箱格式必须正确
|
||
- 创建成功后自动分配初始权限
|
||
|
||
#### 3.1.2 用户编辑
|
||
**功能描述:** 管理员可以编辑用户基本信息
|
||
|
||
**可编辑字段:**
|
||
- 真实姓名
|
||
- 部门
|
||
- 联系电话
|
||
- 邮箱
|
||
- 角色
|
||
|
||
**业务规则:**
|
||
- 用户名不可修改
|
||
- 修改角色会自动更新权限
|
||
- 修改部门会影响项目创建权限
|
||
|
||
#### 3.1.3 密码管理
|
||
**功能描述:** 管理员可以重置用户密码
|
||
|
||
**操作方式:**
|
||
- 选择用户
|
||
- 生成新随机密码或手动设置密码
|
||
- 通知用户新密码
|
||
|
||
**业务规则:**
|
||
- 新密码需满足安全策略
|
||
- 密码重置后建议用户首次登录修改密码
|
||
|
||
#### 3.1.4 用户列表
|
||
**功能描述:** 展示所有用户信息
|
||
|
||
**显示字段:**
|
||
- 用户名
|
||
- 真实姓名
|
||
- 部门
|
||
- 角色
|
||
- 创建时间
|
||
- 最后登录时间
|
||
- 状态(正常/禁用)
|
||
|
||
**支持操作:**
|
||
- 编辑用户
|
||
- 重置密码
|
||
- 禁用/启用用户
|
||
- 删除用户
|
||
|
||
### 3.2 项目管理模块
|
||
|
||
#### 3.2.1 项目创建
|
||
**功能描述:** 市场部人员可以创建新项目
|
||
|
||
**创建条件:**
|
||
- 用户角色为市场部或管理员
|
||
|
||
**项目信息结构:**
|
||
|
||
**基本信息**
|
||
- 项目编号(自动生成)
|
||
- 项目名称
|
||
- 项目状态(未开始、进行中、已完成、已暂停、已取消)
|
||
- 创建日期(自动生成)
|
||
- 负责人
|
||
- 联系电话
|
||
- 邮箱
|
||
|
||
**项目描述**
|
||
- 项目背景
|
||
- 项目目标
|
||
- 项目范围
|
||
|
||
**项目团队**
|
||
- 成员列表(姓名、角色、部门)
|
||
|
||
**项目时间**
|
||
- 开始日期
|
||
- 预计结束日期
|
||
- 实际结束日期
|
||
|
||
**项目预算**
|
||
- 总预算
|
||
- 已使用
|
||
- 剩余
|
||
|
||
**项目里程碑**
|
||
- 里程碑列表(名称、计划日期、实际日期、状态)
|
||
|
||
**项目风险**
|
||
- 风险列表(描述、等级、应对措施)
|
||
|
||
**项目备注**
|
||
- 备注内容
|
||
|
||
**业务规则:**
|
||
- 项目编号自动生成,格式:PRJ + 年份 + 序号(如:PRJ2025001)
|
||
- 项目状态默认为"未开始"
|
||
- 创建者自动记录为创建人
|
||
- 创建时间自动记录
|
||
|
||
#### 3.2.2 项目编辑
|
||
**功能描述:** 所有用户可以编辑项目信息
|
||
|
||
**编辑权限:**
|
||
- 管理员:可编辑所有项目
|
||
- 市场部:可编辑所有项目
|
||
- 其他部门:可编辑所有项目
|
||
|
||
**编辑内容:**
|
||
- 可编辑项目的所有字段
|
||
- 编辑后自动记录修改历史
|
||
|
||
**业务规则:**
|
||
- 项目编号不可修改
|
||
- 创建日期不可修改
|
||
- 创建人不可修改
|
||
- 每次修改都记录修改历史
|
||
|
||
#### 3.2.3 项目查看
|
||
**功能描述:** 所有用户可以查看项目详情
|
||
|
||
**查看内容:**
|
||
- 项目完整信息
|
||
- 项目修改历史记录
|
||
|
||
**业务规则:**
|
||
- 所有用户都可以查看所有项目
|
||
- 项目修改历史按时间倒序显示
|
||
|
||
#### 3.2.4 项目列表
|
||
**功能描述:** 展示所有项目列表
|
||
|
||
**显示字段:**
|
||
- 项目编号
|
||
- 项目名称
|
||
- 项目状态
|
||
- 负责人
|
||
- 创建日期
|
||
- 最后修改时间
|
||
|
||
**支持操作:**
|
||
- 查看项目详情
|
||
- 编辑项目
|
||
- 查看修改历史
|
||
|
||
### 3.3 项目历史记录模块
|
||
|
||
#### 3.3.1 历史记录记录
|
||
**功能描述:** 自动记录项目修改历史
|
||
|
||
**记录内容:**
|
||
- 修改时间
|
||
- 修改人
|
||
- 修改字段
|
||
- 修改前值
|
||
- 修改后值
|
||
- 修改类型(创建、更新、删除)
|
||
|
||
**记录时机:**
|
||
- 项目创建时
|
||
- 项目信息修改时
|
||
- 项目状态变更时
|
||
|
||
**业务规则:**
|
||
- 历史记录不可删除
|
||
- 历史记录不可修改
|
||
- 历史记录永久保存
|
||
|
||
#### 3.3.2 历史记录查看
|
||
**功能描述:** 查看项目修改历史
|
||
|
||
**显示内容:**
|
||
- 修改时间
|
||
- 修改人
|
||
- 修改详情
|
||
- 修改前后的值对比
|
||
|
||
**显示方式:**
|
||
- 按时间倒序排列
|
||
- 支持按修改人筛选
|
||
- 支持按时间范围筛选
|
||
|
||
### 3.4 项目统计模块
|
||
|
||
#### 3.4.1 项目筛选
|
||
**功能描述:** 管理员可以通过多种条件筛选项目
|
||
|
||
**筛选条件:**
|
||
- 项目编号
|
||
- 项目名称(模糊查询)
|
||
- 项目状态
|
||
- 负责人
|
||
- 创建日期范围
|
||
- 修改日期范围
|
||
- 部门
|
||
- 项目状态
|
||
|
||
**业务规则:**
|
||
- 支持多条件组合筛选
|
||
- 筛选结果可导出
|
||
- 筛选条件可保存
|
||
|
||
#### 3.4.2 项目统计
|
||
**功能描述:** 管理员可以查看项目统计数据
|
||
|
||
**统计维度:**
|
||
- 按项目状态统计
|
||
- 按部门统计
|
||
- 按负责人统计
|
||
- 按创建时间统计
|
||
- 按项目预算统计
|
||
|
||
**统计指标:**
|
||
- 项目总数
|
||
- 各状态项目数量
|
||
- 项目完成率
|
||
- 项目平均周期
|
||
- 预算使用率
|
||
|
||
**展示方式:**
|
||
- 数据表格
|
||
- 柱状图
|
||
- 饼图
|
||
- 折线图
|
||
|
||
**业务规则:**
|
||
- 统计数据实时更新
|
||
- 支持时间范围选择
|
||
- 支持统计结果导出
|
||
|
||
---
|
||
|
||
## 4. 项目数据结构
|
||
|
||
### 4.1 用户数据结构
|
||
```json
|
||
{
|
||
"userId": "用户ID",
|
||
"username": "用户名",
|
||
"password": "密码(加密)",
|
||
"realName": "真实姓名",
|
||
"department": "部门",
|
||
"phone": "联系电话",
|
||
"email": "邮箱",
|
||
"role": "角色",
|
||
"status": "状态",
|
||
"createTime": "创建时间",
|
||
"lastLoginTime": "最后登录时间"
|
||
}
|
||
```
|
||
|
||
### 4.2 项目数据结构
|
||
```json
|
||
{
|
||
"projectId": "项目ID",
|
||
"projectNo": "项目编号",
|
||
"projectName": "项目名称",
|
||
"status": "项目状态",
|
||
"createTime": "创建时间",
|
||
"creator": "创建人",
|
||
"basicInfo": {
|
||
"leader": "负责人",
|
||
"phone": "联系电话",
|
||
"email": "邮箱"
|
||
},
|
||
"description": {
|
||
"background": "项目背景",
|
||
"goal": "项目目标",
|
||
"scope": "项目范围"
|
||
},
|
||
"team": [
|
||
{
|
||
"name": "姓名",
|
||
"role": "角色",
|
||
"department": "部门"
|
||
}
|
||
],
|
||
"timeInfo": {
|
||
"startDate": "开始日期",
|
||
"plannedEndDate": "预计结束日期",
|
||
"actualEndDate": "实际结束日期"
|
||
},
|
||
"budget": {
|
||
"total": "总预算",
|
||
"used": "已使用",
|
||
"remaining": "剩余"
|
||
},
|
||
"milestones": [
|
||
{
|
||
"name": "名称",
|
||
"plannedDate": "计划日期",
|
||
"actualDate": "实际日期",
|
||
"status": "状态"
|
||
}
|
||
],
|
||
"risks": [
|
||
{
|
||
"description": "描述",
|
||
"level": "等级",
|
||
"measure": "应对措施"
|
||
}
|
||
],
|
||
"remarks": "备注",
|
||
"updateTime": "最后修改时间",
|
||
"lastModifier": "最后修改人"
|
||
}
|
||
```
|
||
|
||
### 4.3 项目历史记录数据结构
|
||
```json
|
||
{
|
||
"historyId": "历史记录ID",
|
||
"projectId": "项目ID",
|
||
"projectNo": "项目编号",
|
||
"operationType": "操作类型",
|
||
"operator": "操作人",
|
||
"operationTime": "操作时间",
|
||
"changes": [
|
||
{
|
||
"field": "字段名",
|
||
"oldValue": "修改前值",
|
||
"newValue": "修改后值"
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 5. 系统架构
|
||
|
||
### 5.1 技术架构
|
||
- **架构模式**: BS架构(Browser/Server)
|
||
- **前端技术**: 待定
|
||
- **后端技术**: 待定
|
||
- **数据库**: 待定
|
||
|
||
### 5.2 部署架构
|
||
- **前端**: Web浏览器访问
|
||
- **后端**: 应用服务器部署
|
||
- **数据库**: 数据库服务器部署
|
||
|
||
### 5.3 安全架构
|
||
- 用户认证:用户名密码登录
|
||
- 权限控制:基于角色的访问控制(RBAC)
|
||
- 数据加密:敏感数据加密存储
|
||
- 操作审计:记录用户操作日志
|
||
|
||
---
|
||
|
||
## 6. 非功能性需求
|
||
|
||
### 6.1 性能要求
|
||
- 系统响应时间:页面加载时间 < 3秒
|
||
- 并发用户数:支持至少100个并发用户
|
||
- 数据查询:复杂查询响应时间 < 5秒
|
||
|
||
### 6.2 可用性要求
|
||
- 系统可用性:99.5%
|
||
- 系统恢复时间:故障恢复时间 < 1小时
|
||
|
||
### 6.3 安全性要求
|
||
- 密码加密:使用安全的加密算法
|
||
- 会话管理:会话超时时间30分钟
|
||
- 数据备份:每日自动备份数据
|
||
- 权限控制:严格的权限验证机制
|
||
|
||
### 6.4 可扩展性要求
|
||
- 支持模块化扩展
|
||
- 支持新增用户角色
|
||
- 支持自定义项目字段
|
||
|
||
### 6.5 易用性要求
|
||
- 界面简洁直观
|
||
- 操作流程清晰
|
||
- 提供操作提示
|
||
- 支持快捷键操作
|
||
|
||
---
|
||
|
||
## 7. 附录
|
||
|
||
### 7.1 术语表
|
||
- **BS架构**: Browser/Server架构,浏览器/服务器架构
|
||
- **RBAC**: Role-Based Access Control,基于角色的访问控制
|
||
- **PRD**: Product Requirements Document,产品需求文档
|
||
|
||
### 7.2 参考资料
|
||
- 项目示例文件:docs/example.xsl
|
||
|
||
### 7.3 变更记录
|
||
| 版本 | 日期 | 修改人 | 修改内容 |
|
||
|------|------|--------|----------|
|
||
| V1.0 | 2026-01-26 | - | 初始版本创建 |
|