feat: 初始化智能物联网设备管理系统前后端基础项目
完成项目整体结构搭建,包含: 1. 前端Vue3+TS+Vite+Antd项目基础配置与核心依赖 2. 后端MidwayJS+TypeORM+JWT权限认证框架 3. 完整的用户、角色、权限、日志数据库表结构 4. 核心业务模块API与基础服务实现 5. 全局样式、路由、状态管理配置
This commit is contained in:
commit
3d7eb12103
89 files changed
+16085
No files matched your search
@@ -0,0 +1,277 @@
|
||||
# 智能电网物联网设备后台管理系统 - 数据库文档
|
||||
|
||||
## 数据库基本信息
|
||||
|
||||
- **数据库名称**: `smart_grid_iot`
|
||||
- **字符集**: `utf8mb4` (支持完整Unicode,包括emoji表情)
|
||||
- **排序规则**: `utf8mb4_unicode_ci`
|
||||
- **存储引擎**: `InnoDB` (支持事务、外键约束、行级锁)
|
||||
- **MySQL版本要求**: 5.7+ / 8.0+ (推荐8.0+)
|
||||
|
||||
## 表清单
|
||||
|
||||
### 核心业务表(6张)
|
||||
|
||||
| 序号 | 表名 | 中文名称 | 说明 |
|
||||
|------|------|----------|------|
|
||||
| 1 | `users` | 用户表 | 存储系统用户信息,包括管理员和普通用户 |
|
||||
| 2 | `roles` | 角色表 | 存储系统角色信息,用于RBAC权限控制 |
|
||||
| 3 | `permissions` | 权限表 | 存储权限信息,支持菜单、按钮、API三种类型,支持树形结构 |
|
||||
| 4 | `user_roles` | 用户角色关联表 | 用户与角色的多对多关联关系 |
|
||||
| 5 | `role_permissions` | 角色权限关联表 | 角色与权限的多对多关联关系 |
|
||||
| 6 | `operation_logs` | 操作日志表 | 记录用户操作行为,用于审计和安全追踪 |
|
||||
|
||||
## 表结构详细说明
|
||||
|
||||
### 1. users (用户表)
|
||||
|
||||
**用途**: 存储系统所有用户的基本信息和认证信息
|
||||
|
||||
**主要字段**:
|
||||
- `id`: 主键,自增bigint
|
||||
- `username`: 用户名,唯一索引
|
||||
- `password`: bcrypt加密密码
|
||||
- `nickname`: 昵称/显示名称
|
||||
- `email`: 邮箱地址
|
||||
- `phone`: 手机号码
|
||||
- `avatar`: 头像URL
|
||||
- `status`: 账户状态(0-禁用, 1-启用)
|
||||
- `last_login_at`: 最后登录时间
|
||||
- `last_login_ip`: 最后登录IP(支持IPv6)
|
||||
|
||||
**索引**:
|
||||
- PRIMARY KEY (`id`)
|
||||
- UNIQUE KEY `uk_username` (`username`)
|
||||
- KEY `idx_status` (`status`) - 按状态筛选用户
|
||||
- KEY `idx_created_at` (`created_at`) - 按时间排序
|
||||
|
||||
### 2. roles (角色表)
|
||||
|
||||
**用途**: 定义系统中的角色,实现基于角色的访问控制(RBAC)
|
||||
|
||||
**主要字段**:
|
||||
- `id`: 主键
|
||||
- `name`: 角色显示名称
|
||||
- `code`: 角色编码(唯一标识符,如 super_admin)
|
||||
- `description`: 角色描述
|
||||
- `status`: 启用状态
|
||||
- `sort_order`: 排序权重
|
||||
|
||||
**初始角色**:
|
||||
1. **超级管理员** (super_admin) - 拥有系统所有权限
|
||||
2. **普通管理员** (admin) - 拥有大部分管理权限
|
||||
3. **运维人员** (operator) - 拥有设备管理和查看权限
|
||||
|
||||
### 3. permissions (权限表)
|
||||
|
||||
**用途**: 定义系统中的细粒度权限,支持树形菜单结构
|
||||
|
||||
**权限类型**:
|
||||
- `menu`: 菜单权限(对应前端路由页面)
|
||||
- `button`: 按钮权限(控制界面按钮显隐)
|
||||
- `api`: API接口权限(控制后端接口访问)
|
||||
|
||||
**主要字段**:
|
||||
- `parent_id`: 父权限ID(NULL表示一级菜单)
|
||||
- `route`: 前端路由路径
|
||||
- `component`: Vue组件路径
|
||||
- `icon`: 菜单图标
|
||||
|
||||
**初始权限结构**:
|
||||
```
|
||||
├── 仪表盘 (dashboard)
|
||||
├── 系统管理 (system)
|
||||
│ ├── 用户管理 (user:list)
|
||||
│ │ ├── 新增用户 (user:create)
|
||||
│ │ ├── 编辑用户 (user:update)
|
||||
│ │ ├── 删除用户 (user:delete)
|
||||
│ │ └── 重置密码 (user:resetPwd)
|
||||
│ └── 角色管理 (role:list)
|
||||
│ ├── 新增角色 (role:create)
|
||||
│ ├── 编辑角色 (role:update)
|
||||
│ ├── 删除角色 (role:delete)
|
||||
│ └── 分配权限 (role:assignPermission)
|
||||
├── 系统设置 (settings)
|
||||
│ ├── 基本设置 (system:basicSetting)
|
||||
│ └── 安全设置 (system:securitySetting)
|
||||
└── 操作日志 (log:operation)
|
||||
```
|
||||
|
||||
### 4. user_roles (用户角色关联表)
|
||||
|
||||
**用途**: 实现用户与角色的多对多关系
|
||||
|
||||
**特点**:
|
||||
- 联合唯一索引 `(user_id, role_id)` 防止重复分配
|
||||
- 支持一个用户拥有多个角色
|
||||
- 支持一个角色分配给多个用户
|
||||
|
||||
### 5. role_permissions (角色权限关联表)
|
||||
|
||||
**用途**: 实现角色与权限的多对多关系
|
||||
|
||||
**特点**:
|
||||
- 联合唯一索引 `(role_id, permission_id)` 防止重复分配
|
||||
- 通过批量授权提高效率
|
||||
- 支持灵活的权限组合
|
||||
|
||||
### 6. operation_logs (操作日志表)
|
||||
|
||||
**用途**: 记录系统的操作日志,用于安全审计和问题追踪
|
||||
|
||||
**记录内容**:
|
||||
- 操作人信息(user_id, username)
|
||||
- 操作详情(action, module, method, url)
|
||||
- 网络信息(ip_address, user_agent)
|
||||
- 请求数据(request_params - JSON)
|
||||
- 响应数据(response_data - JSON)
|
||||
- 性能指标(duration - 毫秒)
|
||||
- 错误信息(error_message - 仅失败时记录)
|
||||
|
||||
**索引优化**:
|
||||
- `idx_user_id`: 按用户查询日志
|
||||
- `idx_username`: 按用户名查询
|
||||
- `idx_module`: 按模块筛选
|
||||
- `idx_created_at`: 按时间范围查询
|
||||
|
||||
## 初始账户信息
|
||||
|
||||
### 管理员账户
|
||||
|
||||
- **用户名**: `admin`
|
||||
- **密码**: `admin123456`
|
||||
- **角色**: 超级管理员
|
||||
- **权限**: 拥有系统所有权限
|
||||
|
||||
⚠️ **重要提示**: 首次登录后请立即修改默认密码!
|
||||
|
||||
## 如何执行初始化脚本
|
||||
|
||||
### 方式一: MySQL命令行客户端
|
||||
|
||||
```bash
|
||||
# 登录MySQL
|
||||
mysql -u root -p
|
||||
|
||||
# 执行初始化脚本
|
||||
source /path/to/database/init.sql;
|
||||
|
||||
# 或者一行命令
|
||||
mysql -u root -p < /path/to/database/init.sql
|
||||
```
|
||||
|
||||
### 方式二: Navicat/DBeaver等GUI工具
|
||||
|
||||
1. 打开数据库连接工具
|
||||
2. 新建查询窗口
|
||||
3. 复制 init.sql 的全部内容
|
||||
4. 执行SQL脚本(F5或点击执行按钮)
|
||||
|
||||
### 方式三: Node.js程序化执行
|
||||
|
||||
```javascript
|
||||
const mysql = require('mysql2/promise');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
async function initDatabase() {
|
||||
const connection = await mysql.createConnection({
|
||||
host: 'localhost',
|
||||
user: 'root',
|
||||
password: 'your_password'
|
||||
});
|
||||
|
||||
const sql = fs.readFileSync(
|
||||
path.join(__dirname, 'database/init.sql'),
|
||||
'utf-8'
|
||||
);
|
||||
|
||||
await connection.query(sql);
|
||||
console.log('数据库初始化完成!');
|
||||
await connection.end();
|
||||
}
|
||||
|
||||
initDatabase().catch(console.error);
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
||||
### 🔐 安全相关
|
||||
|
||||
1. **修改默认密码**: 首次登录后立即修改admin账户的默认密码
|
||||
2. **密码加密**: 所有密码使用bcrypt加密存储(saltRounds=10)
|
||||
3. **敏感数据**: operation_logs表可能包含敏感信息,注意访问控制
|
||||
4. **备份策略**: 定期备份数据库,建议每日自动备份
|
||||
|
||||
### 📊 性能优化建议
|
||||
|
||||
1. **索引使用**: 已为常用查询字段建立索引,避免全表扫描
|
||||
2. **日志清理**: operation_logs表会持续增长,建议定期归档或清理历史数据(如保留90天)
|
||||
3. **连接池**: 应用层使用连接池管理数据库连接
|
||||
4. **查询优化**: 避免SELECT *,只查询需要的字段
|
||||
|
||||
### 🔧 维护操作
|
||||
|
||||
```sql
|
||||
-- 查看表结构和索引
|
||||
SHOW CREATE TABLE users;
|
||||
SHOW INDEX FROM users;
|
||||
|
||||
-- 查看数据量
|
||||
SELECT
|
||||
table_name,
|
||||
table_rows,
|
||||
data_length/1024/1024 AS size_mb
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'smart_grid_iot';
|
||||
|
||||
-- 清理90天前的操作日志(谨慎执行!)
|
||||
DELETE FROM operation_logs
|
||||
WHERE created_at < DATE_SUB(NOW(), INTERVAL 90 DAY);
|
||||
```
|
||||
|
||||
### 📝 字符集说明
|
||||
|
||||
- 使用 **utf8mb4** 而非 utf8,因为:
|
||||
- utf8mb4支持完整的Unicode字符集(包括emoji)
|
||||
- utf8在MySQL中实际是utf8mb3,最多3字节
|
||||
- 某些特殊字符(如💡🔧)需要4字节编码
|
||||
|
||||
### 🚀 版本兼容性
|
||||
|
||||
- **MySQL 5.7+**: 完全兼容
|
||||
- **MySQL 8.0+**: 推荐,支持更多特性(如CTE、窗口函数)
|
||||
- **MariaDB 10.3+**: 基本兼容,但部分语法可能有差异
|
||||
|
||||
## ER关系图
|
||||
|
||||
```
|
||||
users (1) ─────< (N) user_roles (N) >───── (1) roles (1) ─────< (N) role_permissions (N) >───── (1) permissions
|
||||
│
|
||||
├─ type: menu (菜单)
|
||||
├─ type: button (按钮)
|
||||
└─ type: api (接口)
|
||||
|
||||
users (1) ─────────────────────────────────────────────────────────────────────────────────────> (N) operation_logs
|
||||
```
|
||||
|
||||
## 技术栈对接
|
||||
|
||||
### 后端 (Node.js + Sequelize)
|
||||
|
||||
实体文件位置: `server/src/entity/`
|
||||
- [user.entity.ts](../server/src/entity/user.entity.ts) - User模型
|
||||
- [role.entity.ts](../server/src/entity/role.entity.ts) - Role模型
|
||||
- [permission.entity.ts](../server/src/entity/permission.entity.ts) - Permission模型
|
||||
- [userRole.entity.ts](../server/src/entity/userRole.entity.ts) - UserRole关联模型
|
||||
- [rolePermission.entity.ts](../server/src/entity/rolePermission.entity.ts) - RolePermission关联模型
|
||||
- [operationLog.entity.ts](../server/src/entity/operationLog.entity.ts) - OperationLog模型
|
||||
|
||||
### 配置文件
|
||||
|
||||
数据库连接配置: `server/src/config/config.default.ts` 或 `config.local.ts`
|
||||
|
||||
---
|
||||
|
||||
**最后更新**: 2026-05-27
|
||||
**维护者**: 开发团队
|
||||
@@ -0,0 +1,204 @@
|
||||
-- ============================================================
|
||||
-- 智能电网物联网设备后台管理系统 - 数据库初始化脚本
|
||||
-- 数据库名称: smart_grid_iot
|
||||
-- 字符集: utf8mb4 (支持完整Unicode,包括emoji)
|
||||
-- 排序规则: utf8mb4_unicode_ci
|
||||
-- 引擎: InnoDB (支持事务、外键约束)
|
||||
-- MySQL版本要求: 5.7+ / 8.0+
|
||||
-- 创建时间: 2026-05-27
|
||||
-- ============================================================
|
||||
|
||||
-- 创建数据库(如果不存在)
|
||||
CREATE DATABASE IF NOT EXISTS smart_grid_iot
|
||||
DEFAULT CHARACTER SET utf8mb4
|
||||
COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
USE smart_grid_iot;
|
||||
|
||||
-- ============================================================
|
||||
-- 表1: users (用户表)
|
||||
-- 存储系统用户信息,包括管理员和普通用户
|
||||
-- ============================================================
|
||||
CREATE TABLE `users` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`username` varchar(50) NOT NULL COMMENT '用户名',
|
||||
`password` varchar(255) NOT NULL COMMENT '加密密码(bcrypt)',
|
||||
`nickname` varchar(50) DEFAULT NULL COMMENT '昵称',
|
||||
`email` varchar(100) DEFAULT NULL COMMENT '邮箱',
|
||||
`phone` varchar(20) DEFAULT NULL COMMENT '手机号',
|
||||
`avatar` varchar(255) DEFAULT NULL COMMENT '头像URL',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态: 0-禁用 1-启用',
|
||||
`last_login_at` datetime DEFAULT NULL COMMENT '最后登录时间',
|
||||
`last_login_ip` varchar(45) DEFAULT NULL COMMENT '最后登录IP(支持IPv6)',
|
||||
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_username` (`username`),
|
||||
KEY `idx_status` (`status`),
|
||||
KEY `idx_created_at` (`created_at`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';
|
||||
|
||||
-- ============================================================
|
||||
-- 表2: roles (角色表)
|
||||
-- 存储系统角色信息,用于RBAC权限控制
|
||||
-- ============================================================
|
||||
CREATE TABLE `roles` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`name` varchar(50) NOT NULL COMMENT '角色名称',
|
||||
`code` varchar(50) NOT NULL COMMENT '角色编码(唯一标识)',
|
||||
`description` varchar(255) DEFAULT NULL COMMENT '描述',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态: 0-禁用 1-启用',
|
||||
`sort_order` int NOT NULL DEFAULT '0' COMMENT '排序(数值越小越靠前)',
|
||||
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_code` (`code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色表';
|
||||
|
||||
-- ============================================================
|
||||
-- 表3: permissions (权限表)
|
||||
-- 存储系统权限信息,包括菜单、按钮、API三种类型
|
||||
-- 支持树形结构(通过parent_id实现父子关系)
|
||||
-- ============================================================
|
||||
CREATE TABLE `permissions` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`name` varchar(50) NOT NULL COMMENT '权限名称',
|
||||
`code` varchar(100) NOT NULL COMMENT '权限编码(唯一标识)',
|
||||
`type` enum('menu','button','api') NOT NULL DEFAULT 'menu' COMMENT '权限类型: menu-菜单 button-按钮 api-接口',
|
||||
`parent_id` bigint DEFAULT NULL COMMENT '父权限ID(NULL表示一级菜单)',
|
||||
`sort_order` int NOT NULL DEFAULT '0' COMMENT '排序(数值越小越靠前)',
|
||||
`icon` varchar(50) DEFAULT NULL COMMENT '图标(菜单类型使用)',
|
||||
`route` varchar(255) DEFAULT NULL COMMENT '路由路径(菜单类型使用)',
|
||||
`component` varchar(255) DEFAULT NULL COMMENT '组件路径(菜单类型使用)',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态: 0-禁用 1-启用',
|
||||
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_code` (`code`),
|
||||
KEY `idx_parent_id` (`parent_id`),
|
||||
KEY `idx_type` (`type`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='权限表';
|
||||
|
||||
-- ============================================================
|
||||
-- 表4: user_roles (用户角色关联表)
|
||||
-- 用户和角色的多对多关联关系
|
||||
-- 一个用户可以拥有多个角色,一个角色可以分配给多个用户
|
||||
-- ============================================================
|
||||
CREATE TABLE `user_roles` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`role_id` bigint NOT NULL COMMENT '角色ID',
|
||||
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_user_role` (`user_id`, `role_id`),
|
||||
KEY `idx_role_id` (`role_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户角色关联表';
|
||||
|
||||
-- ============================================================
|
||||
-- 表5: role_permissions (角色权限关联表)
|
||||
-- 角色和权限的多对多关联关系
|
||||
-- 一个角色可以拥有多个权限,一个权限可以分配给多个角色
|
||||
-- ============================================================
|
||||
CREATE TABLE `role_permissions` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`role_id` bigint NOT NULL COMMENT '角色ID',
|
||||
`permission_id` bigint NOT NULL COMMENT '权限ID',
|
||||
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_role_permission` (`role_id`, `permission_id`),
|
||||
KEY `idx_permission_id` (`permission_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色权限关联表';
|
||||
|
||||
-- ============================================================
|
||||
-- 表6: operation_logs (操作日志表)
|
||||
-- 记录用户的操作行为,用于审计和安全追踪
|
||||
-- 包含请求详情、响应信息和性能数据
|
||||
-- ============================================================
|
||||
CREATE TABLE `operation_logs` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`user_id` bigint DEFAULT NULL COMMENT '操作用户ID',
|
||||
`username` varchar(50) DEFAULT NULL COMMENT '操作人用户名',
|
||||
`action` varchar(255) NOT NULL COMMENT '操作描述',
|
||||
`module` varchar(50) DEFAULT NULL COMMENT '操作模块',
|
||||
`method` varchar(10) DEFAULT NULL COMMENT '请求方法(GET/POST/PUT/DELETE等)',
|
||||
`url` varchar(500) DEFAULT NULL COMMENT '请求URL',
|
||||
`ip_address` varchar(45) DEFAULT NULL COMMENT 'IP地址(支持IPv6)',
|
||||
`user_agent` varchar(500) DEFAULT NULL COMMENT '浏览器UA',
|
||||
`request_params` text COMMENT '请求参数(JSON格式)',
|
||||
`response_data` text COMMENT '响应数据(JSON格式)',
|
||||
`status_code` int DEFAULT NULL COMMENT 'HTTP响应状态码',
|
||||
`duration` int DEFAULT NULL COMMENT '请求耗时(毫秒)',
|
||||
`error_message` text COMMENT '错误信息(仅失败时记录)',
|
||||
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_user_id` (`user_id`),
|
||||
KEY `idx_username` (`username`),
|
||||
KEY `idx_module` (`module`),
|
||||
KEY `idx_created_at` (`created_at`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='操作日志表';
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- 初始数据插入
|
||||
-- ============================================================
|
||||
|
||||
-- 插入管理员账户
|
||||
-- 用户名: admin
|
||||
-- 密码: admin123456 (bcrypt加密, saltRounds=10)
|
||||
INSERT INTO `users` (`username`, `password`, `nickname`, `avatar`, `status`) VALUES
|
||||
('admin', '$2a$10$EBHdTgzyUj0ofbwLyEHZ7OifI/aC7j9ZWOnpg9Ha1b/GXSUEAVZVe', '超级管理员', NULL, 1);
|
||||
|
||||
-- 插入初始角色
|
||||
INSERT INTO `roles` (`name`, `code`, `description`, `sort_order`) VALUES
|
||||
('超级管理员', 'super_admin', '拥有系统所有权限', 1),
|
||||
('普通管理员', 'admin', '拥有大部分管理权限', 2),
|
||||
('运维人员', 'operator', '拥有设备管理和查看权限', 3);
|
||||
|
||||
-- 插入一级菜单权限
|
||||
INSERT INTO `permissions` (`name`, `code`, `type`, `parent_id`, `sort_order`, `icon`, `route`, `component`) VALUES
|
||||
('仪表盘', 'dashboard', 'menu', NULL, 1, 'DashboardOutlined', '/dashboard', 'dashboard/index'),
|
||||
('系统管理', 'system', 'menu', NULL, 2, 'SettingOutlined', '/system', NULL),
|
||||
('系统设置', 'settings', 'menu', NULL, 3, 'ToolOutlined', '/settings', NULL);
|
||||
|
||||
-- 插入二级菜单权限(系统管理下的子菜单)
|
||||
INSERT INTO `permissions` (`name`, `code`, `type`, `parent_id`, `sort_order`, `icon`, `route`, `component`) VALUES
|
||||
('用户管理', 'user:list', 'menu', 2, 1, 'UserOutlined', '/system/user', 'system/user/index'),
|
||||
('角色管理', 'role:list', 'menu', 2, 2, 'SafetyCertificateOutlined', '/system/role', 'system/role/index');
|
||||
|
||||
-- 插入按钮权限(用户管理的操作按钮)
|
||||
INSERT INTO `permissions` (`name`, `code`, `type`, `parent_id`, `sort_order`) VALUES
|
||||
('新增用户', 'user:create', 'button', 4, 1),
|
||||
('编辑用户', 'user:update', 'button', 4, 2),
|
||||
('删除用户', 'user:delete', 'button', 4, 3),
|
||||
('重置密码', 'user:resetPwd', 'button', 4, 4);
|
||||
|
||||
-- 插入按钮权限(角色管理的操作按钮)
|
||||
INSERT INTO `permissions` (`name`, `code`, `type`, `parent_id`, `sort_order`) VALUES
|
||||
('新增角色', 'role:create', 'button', 5, 1),
|
||||
('编辑角色', 'role:update', 'button', 5, 2),
|
||||
('删除角色', 'role:delete', 'button', 5, 3),
|
||||
('分配权限', 'role:assignPermission', 'button', 5, 4);
|
||||
|
||||
-- 插入按钮权限(系统设置的操作按钮)
|
||||
INSERT INTO `permissions` (`name`, `code`, `type`, `parent_id`, `sort_order`) VALUES
|
||||
('基本设置', 'system:basicSetting', 'button', 3, 1),
|
||||
('安全设置', 'system:securitySetting', 'button', 3, 2);
|
||||
|
||||
-- 插入一级菜单权限(操作日志)
|
||||
INSERT INTO `permissions` (`name`, `code`, `type`, `parent_id`, `sort_order`, `icon`, `route`, `component`) VALUES
|
||||
('操作日志', 'log:operation', 'menu', NULL, 4, 'FileTextOutlined', '/log/operation', 'log/operation');
|
||||
|
||||
-- 给admin用户分配超级管理员角色(user_id=1, role_id=1)
|
||||
INSERT INTO `user_roles` (`user_id`, `role_id`) VALUES (1, 1);
|
||||
|
||||
-- 给超级管理员角色(role_id=1)分配所有权限
|
||||
INSERT INTO `role_permissions` (`role_id`, `permission_id`)
|
||||
SELECT 1, id FROM permissions;
|
||||
|
||||
|
||||
-- ============================================================
|
||||
-- 初始化完成提示
|
||||
-- ============================================================
|
||||
SELECT '数据库初始化完成!' AS message;
|
||||
SELECT CONCAT('管理员账户: admin / admin123456') AS account_info;
|
||||
SELECT COUNT(*) AS total_tables FROM information_schema.tables WHERE table_schema = 'smart_grid_iot';
|
||||
Reference in new issue
Block a user