完成项目整体结构搭建,包含: 1. 前端Vue3+TS+Vite+Antd项目基础配置与核心依赖 2. 后端MidwayJS+TypeORM+JWT权限认证框架 3. 完整的用户、角色、权限、日志数据库表结构 4. 核心业务模块API与基础服务实现 5. 全局样式、路由、状态管理配置
117 lines
5.2 KiB
Markdown
117 lines
5.2 KiB
Markdown
# 智能物联网设备后台管理系统 - 实施规范 (Spec)
|
||
|
||
## Why
|
||
企业需要一个集中化的智能物联网设备管理平台来统一管理设备、控制访问权限和维护系统配置。当前缺乏这样的管理系统导致设备分散、权限混乱、运维效率低下。
|
||
|
||
## What Changes
|
||
- **初始化前后端分离项目结构**:基于Vue 3 + Midway.js的全栈应用
|
||
- **实现认证授权系统**:JWT Token认证 + RBAC三层权限模型
|
||
- **构建核心管理模块**:用户管理、角色权限、系统设置、操作日志、仪表盘
|
||
- **建立数据库模型**:6张核心表(users, roles, permissions, user_roles, role_permissions, operation_logs)
|
||
- **开发RESTful API**:18个标准API接口,包含完整的CRUD操作
|
||
- **设计现代化UI界面**:基于Ant Design Vue的后台管理系统界面
|
||
|
||
## Impact
|
||
- Affected specs: 无(新项目)
|
||
- Affected code: 全新代码库(client/前端 + server/后端)
|
||
|
||
## ADDED Requirements
|
||
|
||
### Requirement: 项目初始化与基础架构
|
||
The system SHALL provide a complete full-stack project structure with:
|
||
- Vue 3 + TypeScript前端框架(Vite构建工具)
|
||
- Midway.js 3.x后端框架(TypeScript)
|
||
- Ant Design Vue 4.x UI组件库
|
||
- Pinia状态管理 + Vue Router 4.x路由
|
||
- Sequelize ORM + MySQL数据库
|
||
- Redis缓存支持
|
||
- Yarn包管理器(遵循用户规则)
|
||
|
||
#### Scenario: 成功初始化项目
|
||
- **WHEN** 开发者运行初始化命令
|
||
- **THEN** 创建完整的前后端项目结构,所有依赖安装成功,开发服务器可正常启动
|
||
|
||
### Requirement: 用户认证与授权系统
|
||
The system SHALL implement secure authentication and authorization:
|
||
- JWT Token双Token机制(Access Token 2h + Refresh Token 7d)
|
||
- bcrypt密码加密存储(saltRounds=10)
|
||
- RBAC三层权限模型(User → Role → Permission)
|
||
- 前端路由守卫 + 后端接口鉴权
|
||
- 登录失败锁定策略
|
||
- IP白名单功能(可选)
|
||
|
||
#### Scenario: 用户成功登录
|
||
- **WHEN** 用户输入正确的账号密码并提交
|
||
- **THEN** 系统验证凭据,返回JWT Token和用户信息(含角色权限),跳转到仪表盘页面
|
||
|
||
#### Scenario: 未授权访问拦截
|
||
- **WHEN** 未登录用户或无权限用户尝试访问受保护资源
|
||
- **THEN** 系统重定向到登录页或显示403禁止访问提示
|
||
|
||
### Requirement: 用户管理模块
|
||
The system SHALL provide complete user management functionality:
|
||
- 用户列表展示(分页、搜索、筛选、排序)
|
||
- 新增用户(含角色分配)
|
||
- 编辑用户信息(密码修改可选)
|
||
- 删除用户(二次确认)
|
||
- 启用/禁用用户状态切换
|
||
- 批量操作(批量删除、批量启用/禁用)
|
||
|
||
#### Scenario: 管理员成功创建用户
|
||
- **WHEN** 管理员填写完整的用户信息表单(必填项:用户名、密码、昵称、角色)并提交
|
||
- **THEN** 系统校验数据合法性,创建用户记录,分配指定角色,刷新用户列表显示新用户
|
||
|
||
### Requirement: 角色与权限管理模块
|
||
The system SHALL implement flexible role-based access control:
|
||
- 角色CRUD操作(创建、编辑、删除、查看)
|
||
- 权限树形结构展示(菜单权限、按钮权限、API权限)
|
||
- 角色-权限关联配置(可视化勾选)
|
||
- 角色关联用户数量统计
|
||
- 权限继承机制
|
||
|
||
#### Scenario: 管理员配置角色权限
|
||
- **WHEN** 管理员选择某个角色,在权限树中勾选/取消勾选权限节点
|
||
- **THEN** 系统保存角色-权限关联关系,拥有该角色的用户立即获得/失去相应权限
|
||
|
||
### Requirement: 系统设置模块
|
||
The system SHALL provide configurable system parameters:
|
||
- 基本设置(站点名称、Logo上传、会话超时时间)
|
||
- 安全设置(密码策略、登录限制、IP白名单)
|
||
- 通知设置(邮件开关、SMTP配置)
|
||
- 设置变更实时生效(Redis缓存更新)
|
||
|
||
#### Scenario: 管理员修改系统参数
|
||
- **WHEN** 管理员在设置页面修改某个配置项并保存
|
||
- **THEN** 系统验证参数合法性,持久化到数据库,清除相关缓存,返回成功提示
|
||
|
||
### Requirement: 操作日志模块
|
||
The system SHALL record all user operations for audit:
|
||
- 自动记录用户操作(增删改查)
|
||
- 日志字段:操作人、操作类型、时间、IP地址、请求详情
|
||
- 日志查询(按时间范围、操作人、操作类型筛选)
|
||
- 日志导出功能(CSV/Excel格式)
|
||
- 异步写入保证性能
|
||
|
||
#### Scenario: 系统自动记录操作日志
|
||
- **WHEN** 用户执行任何数据变更操作(创建、编辑、删除)
|
||
- **THEN** 系统异步记录完整操作信息到operation_logs表,不影响主业务响应时间
|
||
|
||
### Requirement: 仪表盘模块
|
||
The system SHALL provide data visualization dashboard:
|
||
- 关键指标统计卡片(设备总数、在线数、今日告警数、活跃用户数)
|
||
- 设备趋势折线图(近7天数据)
|
||
- 设备类型分布饼图
|
||
- 最近告警滚动列表
|
||
- 最近活动时间线
|
||
- 数据实时刷新(可配置间隔)
|
||
|
||
#### Scenario: 用户查看仪表盘
|
||
- **WHEN** 已登录用户访问仪表盘页面
|
||
- **THEN** 页面加载统计数据和图表,展示系统运营概况,数据每30秒自动刷新
|
||
|
||
## MODIFIED Requirements
|
||
无(新项目,无需修改现有需求)
|
||
|
||
## REMOVED Requirements
|
||
无(新项目,无需移除功能)
|