企业资产管理系统 - 详细功能需求说明书
作者: laoren
版本: 1.0.0
日期: 202607
更新日志:
- 基础需求
[toc]
一、用户认证与权限管理
1 登录功能
功能描述:用户通过账号密码登录系统,获取访问令牌。
业务规则:
- 账号不区分大小写,密码需加密存储(BCrypt)
- 连续登录失败 5 次,锁定账号 15 分钟(防暴力破解)
- 支持 ” 记住我 ” 功能(Token 有效期 7 天)
- 同一账号同一时间只允许一个设备在线(Sa-Token 并发控制)
界面交互:
- 登录页包含:账号输入框、密码输入框、验证码(可选)、登录按钮
- 密码框支持显示/隐藏密码切换
- 登录失败时,在输入框下方红色文字提示错误原因
- 登录成功后,跳转至仪表盘
异常场景:
| 场景 | 系统响应 |
|---|---|
| 账号不存在 | 提示 ” 用户名或密码错误 “(不暴露具体原因) |
| 密码错误 | 提示 ” 用户名或密码错误 “,记录失败次数 |
| 账号被禁用 | 提示 ” 账号已被禁用,请联系管理员 “ |
| Token 过期 | 自动跳转登录页,提示 ” 登录已过期,请重新登录 “ |
2 退出登录
功能描述:用户主动退出系统,清除会话信息。
业务规则:
- 退出时清除服务端 Session 和客户端 Token
- 退出后跳转到登录页
- 不支持 ” 退出但保留登录状态 ”
界面交互:
- 右上角用户头像下拉菜单中提供 ” 退出登录 ” 按钮
- 点击后弹出确认框:” 确认退出登录吗?“
3 当前用户信息获取
功能描述:获取当前登录用户的详细信息,用于前端渲染。
返回字段:
{
"userId": 3,
"username": "zhangsan",
"realName": "张三",
"roleCode": "USER",
"roleName": "普通员工",
"deptId": 2,
"deptName": "技术部",
"email": "zhangsan@company.com",
"phone": "13800000003"
}界面交互:
- 页面顶部右侧显示用户头像(首字母)和真实姓名
- 鼠标悬停显示下拉菜单:个人信息、修改密码、退出登录
4 修改密码
功能描述:用户修改自己的登录密码。
业务规则:
- 需验证原密码正确性
- 新密码长度 6-20 位,必须包含字母和数字
- 新密码不能与原密码相同
- 修改成功后,强制退出重新登录
界面交互:
- 弹窗表单:原密码、新密码、确认密码
- 密码强度指示条(弱/中/强)
- 修改成功后提示 ” 密码已修改,请重新登录 “
二、仪表盘(工作台)
1 数据概览
功能描述:展示当前用户关心的核心数据指标。
业务规则:
| 指标 | 计算逻辑 | 可见角色 |
|---|---|---|
| 总资产数 | 全部资产数量 | 全部 |
| 空闲资产数 | status=0 的资产数量 | 全部 |
| 已领用资产数 | status=1 的资产数量 | 全部 |
| 待审批数量 | status=0 的申请单数量 | MANAGER/ADMIN |
| 我的申请数 | 当前用户发起的申请总数 | 全部 |
| 本部门资产数 | 当前用户所在部门的资产数 | USER/MANAGER |
界面交互:
- 卡片式布局展示指标数字
- 点击卡片可跳转到对应的列表页面(如点击 ” 待审批 ” 跳转到待审批列表)
2 待办事项列表
功能描述:展示当前用户需要处理的待办事项。
业务规则:
- 普通用户:显示 ” 我的申请 ” 中状态为 ” 待审批 ” 的记录
- 主管/管理员:显示 ” 待审批 ” 列表
- 按申请时间倒序排列
- 最多显示 5 条,点击 ” 查看更多 ” 跳转至完整列表
界面交互:
- 列表展示:申请编号、资产名称、申请人、申请时间
- 每条记录右侧有 ” 去处理 ” 或 ” 查看详情 ” 按钮
三、资产管理
1 资产列表(分页查询)
功能描述:支持多条件筛选和分页查看资产列表。
筛选条件:
| 筛选字段 | 类型 | 说明 |
|---|---|---|
| 资产名称 | 模糊搜索 | 支持模糊匹配 |
| 资产编号 | 精确搜索 | 支持全匹配 |
| 类别 | 下拉选择 | 从类别表中读取 |
| 状态 | 下拉选择 | 空闲/已领用/维修中/已报废 |
| 所属部门 | 下拉选择 | 从部门表中读取(ADMIN 可见全部,MANAGER 可见本部门) |
| 领用人 | 模糊搜索 | 按真实姓名搜索 |
列表字段展示:
| 列名 | 宽度 | 特殊处理 |
|---|---|---|
| 序号 | 60px | 自动编号 |
| 资产名称 | 150px | - |
| 资产编号 | 130px | - |
| 类别 | 100px | - |
| 当前状态 | 100px | 使用彩色标签(绿色 - 空闲/蓝色 - 已领用/橙色 - 维修中/灰色 - 已报废) |
| 所属部门 | 120px | - |
| 领用人 | 80px | 无人领用时显示 ”-“ |
| 购买日期 | 110px | 格式:YYYY-MM-DD |
| 价格 | 100px | 保留两位小数,显示 ¥符号 |
| 操作 | 220px | 动态按钮(见下方说明) |
操作按钮权限:
| 用户角色 | 可用操作 |
|---|---|
| USER | 查看详情、发起申请(仅空闲资产) |
| MANAGER | 查看详情、发起申请(仅空闲资产)、查看本部门资产报表 |
| ADMIN | 查看详情、编辑、删除、发起申请(全部资产) |
界面交互:
- 分页组件:显示总条数、每页 10/20/50/100 可选、跳转页码
- 搜索条件支持 ” 重置 ” 一键清空
- 表格支持按列排序(资产编号、价格、购买日期)
2 新增资产
功能描述:管理员新增一条资产记录。
表单字段:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| 资产名称 | 输入框 | ✓ | 最大 50 字符 |
| 类别 | 下拉选择 | ✓ | 从类别表读取 |
| 规格型号 | 输入框 | ✗ | 最大 100 字符 |
| 购买日期 | 日期选择器 | ✓ | 不能超过当前日期 |
| 购买价格 | 数字输入框 | ✓ | 保留两位小数,大于 0 |
| 备注 | 文本域 | ✗ | 最大 200 字符 |
业务规则:
- 资产编号由系统自动生成:
ZC + 年月日 + 4位流水号(如 ZC202607190001) - 新增资产默认状态为 ” 空闲 ”
- 新增成功后在列表中刷新
界面交互:
- 使用弹窗 Dialog 形式,非跳转页面
- 提交时表单校验,校验失败高亮错误字段
- 提交成功后弹出提示并关闭弹窗
3 编辑资产
功能描述:管理员修改资产信息。
业务规则:
- 资产编号不可修改(只读)
- 状态为 ” 已领用 ” 的资产,不允许修改类别和购买日期(防止数据不一致)
- 修改成功后刷新列表
界面交互:
- 与新增资产共用同一 Dialog,通过参数区分模式
- 已领用资产的敏感字段置灰不可编辑
4 删除资产
功能描述:管理员删除资产记录。
业务规则:
- 状态为 ” 已领用 ” 的资产不允许删除(必须先归还)
- 删除为物理删除(直接从表中删除)
- 删除前需二次确认
界面交互:
- 点击删除按钮,弹出确认框:” 确认删除资产【XXX】吗?此操作不可恢复!”
- 删除成功后刷新列表
5 导出 Excel
功能描述:管理员将当前筛选结果导出为 Excel 文件。
业务规则:
- 导出的数据范围为当前筛选条件(非全量,避免性能问题)
- 导出字段包含列表所有字段
- 导出文件名:
资产列表_YYYYMMDD_HHMMSS.xlsx - 单次导出上限为 10000 条
界面交互:
- 列表上方 ” 导出 Excel” 按钮
- 点击后显示 ” 正在导出…” 加载状态
- 导出完成后浏览器自动下载
6 导入 Excel
功能描述:管理员通过 Excel 批量导入资产。
业务规则:
- 导入模板需包含:资产名称、类别编码、规格型号、购买日期、购买价格、备注
- 类别编码必须存在于类别表中,否则报错
- 导入时逐行校验,失败行记录错误原因
- 部分成功/部分失败时,成功的数据正常入库,失败的数据返回错误列表
界面交互:
- 点击 ” 导入 Excel” 打开弹窗
- 下载导入模板
- 上传文件后展示预览数据(前 10 条)
- 点击 ” 确认导入 ” 后显示导入结果(成功 X 条,失败 X 条,下载错误日志)
四、资产申请管理
1 发起申请
功能描述:用户对某个资产发起领用/归还/报废申请。
前置条件:
| 申请类型 | 资产状态要求 | 用户要求 |
|---|---|---|
| 领用 | 必须为 ” 空闲 “ | 任何登录用户 |
| 归还 | 必须为 ” 已领用 ” 且领用人为当前用户 | 当前领用人 |
| 报废 | 必须为 ” 已领用 ” 或 ” 维修中 “ | ADMIN(普通用户不可发起报废) |
表单字段:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| 资产信息 | 只读展示 | ✓ | 显示资产名称、编号、当前状态 |
| 申请类型 | 单选按钮 | ✓ | 领用/归还/报废(根据资产状态自动过滤可用选项) |
| 申请理由 | 文本域 | ✗ | 最大 200 字符 |
业务规则:
- 同一资产在同一时间只能有一个 ” 待审批 ” 的申请(防止并发重复申请)
- 申请提交后,资产状态不变,等待审批通过后才变更
- 申请编号自动生成:
SQ + 年月日 + 4位流水号(如 SQ202607190001) - 申请人默认为当前用户,所属部门自动带入
- 提交成功后跳转到 ” 我的申请 ” 列表
界面交互:
- 从资产列表点击 ” 发起申请 ” 按钮,弹出申请表单
- 申请类型根据资产状态智能推荐(空闲→领用;已领用且为当前用户→归还)
- 提交按钮防重复点击(点击后置灰)
2 我的申请列表
功能描述:查看当前用户发起的所有申请记录。
筛选条件:
| 筛选字段 | 类型 | 说明 |
|---|---|---|
| 申请编号 | 精确搜索 | - |
| 申请类型 | 下拉选择 | 全部/领用/归还/报废 |
| 状态 | 下拉选择 | 全部/待审批/已通过/已驳回/已撤销 |
| 申请日期范围 | 日期范围选择器 | 起始日期~结束日期 |
列表字段:
| 列名 | 说明 | 特殊处理 |
|---|---|---|
| 申请编号 | - | - |
| 资产名称 | - | - |
| 资产编号 | - | - |
| 申请类型 | 领用/归还/报废 | 用不同颜色标签 |
| 申请理由 | 超过 15 字符显示省略号 + 悬停完整内容 | - |
| 申请时间 | YYYY-MM-DD HH:mm:ss | - |
| 状态 | 待审批/已通过/已驳回/已撤销 | 状态标签:橙色/绿色/红色/灰色 |
| 审批人 | - | 未审批时显示 ”-“ |
| 审批意见 | - | 未审批时显示 ”-“ |
| 操作 | - | 仅 ” 待审批 ” 状态显示 ” 撤销 ” 按钮 |
业务规则:
- 已通过的申请不可撤销
- 已驳回的申请可以再次发起(重新提交申请)
- 撤销申请后,申请状态变为 ” 已撤销 “
3 撤销申请
功能描述:用户在审批前撤销自己的申请。
业务规则:
- 仅 ” 待审批 ” 状态的申请可撤销
- 仅申请人本人可撤销
- 撤销后申请状态变为 ” 已撤销 “,资产状态保持不变
界面交互:
- 在 ” 我的申请 ” 列表中,每条 ” 待审批 ” 记录显示 ” 撤销 ” 按钮
- 点击后弹出确认框:” 确认撤销该申请吗?”
- 撤销成功后刷新列表
4 待审批列表(审批管理)
功能描述:主管/管理员查看待处理的审批申请。
数据范围控制:
| 角色 | 可见范围 |
|---|---|
| MANAGER | 仅可见本部门员工发起的申请 |
| ADMIN | 可见全部申请 |
筛选条件:
- 同 ” 我的申请列表 “,但默认只显示 ” 待审批 ” 状态
- 额外增加 ” 申请人部门 ” 筛选(仅 ADMIN 可见)
列表字段:
| 列名 | 说明 | 特殊处理 |
|---|---|---|
| 申请编号 | - | - |
| 资产名称 | - | - |
| 申请人 | 真实姓名 | - |
| 申请部门 | 部门名称 | - |
| 申请类型 | - | 颜色标签 |
| 申请时间 | YYYY-MM-DD HH:mm:ss | - |
| 操作 | - | ” 审批 ” 按钮 |
界面交互:
- 点击 ” 审批 ” 按钮打开审批弹窗
- 审批后列表自动刷新
- 有新待审批时,菜单栏显示红点徽标
5 审批操作
功能描述:主管/管理员对申请进行通过或驳回处理。
表单字段:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| 申请详情 | 只读展示 | - | 展示完整的申请信息(含资产图片占位) |
| 审批结果 | 单选按钮 | ✓ | 通过/驳回 |
| 审批意见 | 文本域 | ✗ | 驳回时建议填写原因 |
业务规则:
- 审批 ” 通过 ” 时,资产状态同步变更:
- 领用 → 资产状态改为 ” 已领用 “,归属人和部门更新
- 归还 → 资产状态改为 ” 空闲 “,归属人和部门清空
- 报废 → 资产状态改为 ” 已报废 ”
- 审批 ” 驳回 ” 时,资产状态不变
- 审批完成后,申请状态变更(已通过/已驳回)
- 同一申请不可重复审批(前端 + 后端双重校验)
界面交互:
- 弹窗展示申请详情和审批表单
- 审批意见输入框:当选择 ” 驳回 ” 时,建议必填(前端提醒)
- 提交按钮加载状态(防止重复提交)
五、部门管理
1 部门列表
功能描述:树形结构展示部门层级关系。
列表字段:
| 列名 | 说明 |
|---|---|
| 部门名称 | 树形缩进显示层级 |
| 部门编码 | - |
| 创建时间 | - |
| 操作 | 编辑/删除 |
业务规则:
- 支持多级部门(parent_id 关联)
- 删除部门时,检查该部门下是否有员工,如有则禁止删除
- 删除部门时,检查该部门下是否有资产,如有则禁止删除
2 新增/编辑部门
表单字段:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| 上级部门 | 树形下拉选择 | ✗ | 不选则为顶级部门 |
| 部门名称 | 输入框 | ✓ | 最大 50 字符 |
| 部门编码 | 输入框 | ✓ | 字母 + 数字 + 下划线,唯一 |
六、员工管理
1 员工列表
功能描述:查看所有员工信息,支持分页和筛选。
筛选条件:
| 筛选字段 | 类型 | 说明 |
|---|---|---|
| 真实姓名 | 模糊搜索 | - |
| 部门 | 下拉选择 | 从部门表读取 |
| 角色 | 下拉选择 | USER/MANAGER/ADMIN |
| 状态 | 下拉选择 | 启用/禁用 |
列表字段:
| 列名 | 说明 | 特殊处理 |
|---|---|---|
| 账号 | - | - |
| 真实姓名 | - | - |
| 邮箱 | - | - |
| 手机号 | - | - |
| 部门 | - | - |
| 角色 | USER/MANAGER/ADMIN | 标签显示 |
| 状态 | 启用/禁用 | 绿色/灰色标签 |
| 创建时间 | - | - |
| 操作 | 编辑/重置密码/启用/禁用 | 动态按钮 |
2 新增/编辑员工
表单字段:
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| 账号 | 输入框 | ✓ | 字母 + 数字,唯一,4-20 位 |
| 真实姓名 | 输入框 | ✓ | 最大 20 字符 |
| 邮箱 | 输入框 | ✗ | 邮箱格式校验 |
| 手机号 | 输入框 | ✗ | 手机号格式校验 |
| 部门 | 下拉选择 | ✓ | - |
| 角色 | 下拉选择 | ✓ | USER/MANAGER/ADMIN |
| 状态 | 开关 | ✓ | 启用/禁用 |
特殊规则:
- 新增员工时,密码默认:
123456(首次登录强制修改) - 不能删除自己(ADMIN 不能删除自己的账号)
3 重置密码
功能描述:管理员将员工密码重置为默认密码。
业务规则:
- 重置后密码为
123456 - 员工下次登录时强制修改密码
- 重置前需要二次确认
七、操作日志
1 日志列表
功能描述:管理员查看所有用户的关键操作记录。
记录内容:
| 字段 | 说明 |
|---|---|
| 操作用户 | 真实姓名 |
| 操作类型 | 如 ” 登录 ”、” 新增资产 ”、” 审批通过 ” 等 |
| 请求方法 | GET/POST/PUT/DELETE |
| 请求参数 | 记录 JSON 格式参数(脱敏处理) |
| IP 地址 | - |
| 操作时间 | YYYY-MM-DD HH:mm:ss |
| 耗时 | 毫秒 |
筛选条件:
| 筛选字段 | 类型 | 说明 |
|---|---|---|
| 操作用户 | 模糊搜索 | - |
| 操作类型 | 下拉选择 | 预定义操作列表 |
| 日期范围 | 日期范围选择器 | - |
业务规则:
- 日志保留 90 天,超期自动清理(定时任务)
- 不记录密码等敏感字段(自动过滤)
- 日志量过大时,支持按日期分区表
界面交互:
- 日志列表默认展示最近 100 条
- 支持导出日志(按筛选条件
八、通知与消息(扩展功能)
1 审批通知
功能描述:当申请被审批通过/驳回时,申请人收到通知。
通知方式:
- 站内消息(右上角消息铃铛)
- (可选)邮件通知
消息内容:
- 审批通过:” 您的【资产领用】申请(编号:SQ202607190001)已通过审批 ”
- 审批驳回:” 您的【资产领用】申请(编号:SQ202607190001)已被驳回,原因:XXX”
界面交互:
- 右上角消息图标显示未读数量红点
- 点击下拉展示最近 5 条消息
- 点击 ” 查看全部 ” 跳转到消息中心
2 附录一:状态码定义
| 状态码 | 含义 |
|---|---|
| 200 | 操作成功 |
| 400 | 参数错误 |
| 401 | 未登录或 Token 过期 |
| 403 | 无权限访问 |
| 404 | 资源不存在 |
| 409 | 数据冲突(如重复提交) |
| 500 | 服务器内部错误 |
3 附录二:权限矩阵速查表
| 功能 | USER | MANAGER | ADMIN |
|---|---|---|---|
| 查看资产列表 | ✓ | ✓ | ✓ |
| 查看资产详情 | ✓ | ✓ | ✓ |
| 新增资产 | ✗ | ✗ | ✓ |
| 编辑资产 | ✗ | ✗ | ✓ |
| 删除资产 | ✗ | ✗ | ✓ |
| 导出资产 | ✗ | ✗ | ✓ |
| 导入资产 | ✗ | ✗ | ✓ |
| 发起申请 | ✓ | ✓ | ✓ |
| 查看我的申请 | ✓ | ✓ | ✓ |
| 审批申请(本部门) | ✗ | ✓ | - |
| 审批申请(全部) | ✗ | ✗ | ✓ |
| 部门管理 | ✗ | ✗ | ✓ |
| 员工管理 | ✗ | ✗ | ✓ |
| 操作日志 | ✗ | ✗ | ✓ |