save code

This commit is contained in:
Your Name
2026-01-26 12:29:56 +08:00
parent 4408f41d81
commit 40d2f3f6ac
13 changed files with 4891 additions and 124 deletions
+482
View File
@@ -0,0 +1,482 @@
# 项目管理系统产品需求文档
## 文档信息
- **文档版本**: 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 | - | 初始版本创建 |