完成项目整体结构搭建,包含: 1. 前端Vue3+TS+Vite+Antd项目基础配置与核心依赖 2. 后端MidwayJS+TypeORM+JWT权限认证框架 3. 完整的用户、角色、权限、日志数据库表结构 4. 核心业务模块API与基础服务实现 5. 全局样式、路由、状态管理配置
5.2 KiB
5.2 KiB
智能物联网设备后台管理系统 - 实施规范 (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
无(新项目,无需移除功能)