# webadmin **Repository Path**: wlq0831/webadmin ## Basic Information - **Project Name**: webadmin - **Description**: 一个基于 .NET 8 + Vue 3 的前后端分离后台管理系统,类似若依框架,包含用户管理、角色管理、菜单管理等核心功能。 - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-30 - **Last Updated**: 2026-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: dotNET, 后台框架 ## README # WebAdmin 后台管理系统 一个基于 .NET 8 + Vue 3 的前后端分离后台管理系统,类似若依框架,包含用户管理、角色管理、菜单管理等核心功能。 ## 技术栈 ### 后端 - **框架**:ASP.NET Core 8 Web API - **ORM**:SqlSugarCore 5.1 - **数据库**:MySQL - **认证**:JWT Bearer Token - **API 文档**:Swagger ### 前端 - **框架**:Vue 3 + TypeScript - **UI 组件**:Element Plus - **构建工具**:Vite 5 - **状态管理**:Pinia - **路由**:Vue Router 4 - **HTTP 请求**:Axios ## 项目结构 ``` webadmin/ ├── webadmin/ # 后端项目 │ ├── Common/ # 公共工具类 │ │ ├── JwtHelper.cs # JWT 生成 │ │ ├── PasswordHelper.cs # 密码加密 │ │ ├── SqlSugarSetup.cs # SqlSugar 配置 │ │ └── DbInitializer.cs # 数据库初始化 │ ├── Controllers/ # API 控制器 │ │ ├── LoginController.cs # 登录/用户信息/路由 │ │ ├── SysUserController.cs # 用户管理 │ │ ├── SysRoleController.cs # 角色管理 │ │ └── SysMenuController.cs # 菜单管理 │ ├── Models/ # 实体模型 │ │ ├── SysUser.cs │ │ ├── SysRole.cs │ │ ├── SysMenu.cs │ │ ├── SysUserRole.cs │ │ ├── SysRoleMenu.cs │ │ └── ApiResult.cs # 统一返回模型 │ ├── Services/ # 业务逻辑层 │ │ ├── ILoginService.cs / LoginService.cs │ │ ├── ISysUserService.cs / SysUserService.cs │ │ ├── ISysRoleService.cs / SysRoleService.cs │ │ └── ISysMenuService.cs / SysMenuService.cs │ ├── Program.cs # 入口文件 │ ├── appsettings.json # 配置文件 │ └── init.sql # 手动建表脚本 ├── webadmin-frontend/ # 前端项目 │ ├── src/ │ │ ├── api/ # API 接口 │ │ ├── router/ # 路由配置 │ │ ├── stores/ # Pinia 状态管理 │ │ ├── utils/ # 工具函数 │ │ ├── views/ # 页面组件 │ │ │ ├── login/ # 登录页 │ │ │ ├── layout/ # 主布局 │ │ │ ├── dashboard/ # 首页 │ │ │ └── system/ # 系统管理 │ │ │ ├── user/ # 用户管理 │ │ │ ├── role/ # 角色管理 │ │ │ └── menu/ # 菜单管理 │ │ └── styles/ # 样式 │ └── vite.config.ts # Vite 配置 └── webadmin.sln # 解决方案文件 ``` ## 快速开始 ### 1. 环境准备 - .NET 8 SDK - Node.js 18+ - MySQL 8.0+ ### 2. 数据库配置 创建 MySQL 数据库: ```sql CREATE DATABASE IF NOT EXISTS webadmin DEFAULT CHARACTER SET utf8mb4; ``` 修改 `webadmin/appsettings.json` 中的数据库连接字符串: ```json "ConnectionStrings": { "DefaultConnection": "Server=localhost;Database=webadmin;User=root;Password=你的密码;Port=3306;Charset=utf8mb4;" } ``` > 表结构会在首次运行时由 SqlSugar CodeFirst 自动创建,并初始化种子数据。 ### 3. 启动后端 ```bash cd webadmin dotnet restore dotnet run ``` 后端启动后访问: - API 地址:http://localhost:8080 - Swagger 文档:http://localhost:8080/swagger ### 4. 启动前端 ```bash cd webadmin-frontend npm install npm run dev ``` 前端启动后访问:http://localhost ## 默认账号 | 账号 | 密码 | 角色 | |------|------|------| | admin | admin123 | 超级管理员(所有权限) | | user | user123 | 普通用户(仅用户管理查看) | ## API 接口 所有 API 均需在请求头携带 JWT Token(除登录接口外): ``` Authorization: Bearer {token} ``` ### 主要接口 | 方法 | 路径 | 说明 | |------|------|------| | POST | /api/Login | 登录 | | GET | /api/Login/userInfo | 获取当前用户信息 | | GET | /api/Login/routers | 获取路由菜单 | | GET | /api/Login/permissions | 获取权限标识 | | PUT | /api/Login/password | 修改密码 | | GET | /api/SysUser | 用户列表(分页) | | POST | /api/SysUser | 新增用户 | | PUT | /api/SysUser/{id} | 修改用户 | | DELETE | /api/SysUser/{id} | 删除用户 | | PUT | /api/SysUser/{id}/roles | 分配角色 | | GET | /api/SysRole | 角色列表(分页) | | POST | /api/SysRole | 新增角色 | | PUT | /api/SysRole/{id}/menus | 分配菜单权限 | | GET | /api/SysMenu/tree | 菜单树 | | POST | /api/SysMenu | 新增菜单 | | PUT | /api/SysMenu/{id} | 修改菜单 | | DELETE | /api/SysMenu/{id} | 删除菜单 | ## RBAC 权限模型 - **用户** ← 多对多 → **角色** ← 多对多 → **菜单** - 菜单分为三种类型:目录(M)、菜单(C)、按钮(F) - 前端根据用户角色动态加载路由菜单 - 按钮权限通过权限标识(perms)控制