# base-js-code **Repository Path**: iutils/base-js-code ## Basic Information - **Project Name**: base-js-code - **Description**: 基于nodejs的基础平台,用于给AI编程的基础代码 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-28 - **Last Updated**: 2026-06-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基础管理平台 一个基于 **Vue 3 + Element Plus + Express + MySQL** 的前后端分离后台管理系统,实现了 RBAC 权限模型(用户-角色-菜单三级权限管理)及操作日志记录。 ## 技术栈 | 层级 | 技术 | 版本 | |------|------|------| | 前端框架 | Vue 3 | 3.5 | | 构建工具 | Vite | 8 | | UI 组件库 | Element Plus | 2.14 | | 状态管理 | Pinia | 3 | | 路由 | Vue Router | 4 | | HTTP 客户端 | Axios | 1.16 | | 后端框架 | Express | 5 | | 数据库 | MySQL (mysql2) | 3 | | 认证 | JWT (jsonwebtoken) + bcryptjs | - | ## 项目结构 ``` base-js-code/ ├── admin/ # 前端项目 │ ├── public/ │ ├── src/ │ │ ├── api/ # API 接口封装 │ │ │ ├── request.js # Axios 封装(拦截器、Token 注入) │ │ │ ├── user.js # 用户 API │ │ │ ├── role.js # 角色 API │ │ │ └── menu.js # 菜单 API │ │ ├── layout/ # 布局组件(侧边栏 + 顶栏) │ │ ├── router/ # 路由配置 + 导航守卫 │ │ ├── store/ # Pinia 状态管理 │ │ │ ├── user.js # 用户/Token/权限状态 │ │ │ └── app.js # 应用状态(侧边栏折叠) │ │ ├── styles/ # 全局样式 │ │ └── views/ # 页面组件 │ │ ├── login/ # 登录页 │ │ ├── dashboard/ # 仪表盘 │ │ └── system/ # 系统管理 │ │ ├── user/ # 用户管理 │ │ ├── role/ # 角色管理 │ │ └── menu/ # 菜单管理 │ └── vite.config.js # Vite 配置(含代理) │ └── server/ # 后端项目 ├── .env # 环境变量(MySQL 配置) ├── index.js # Express 入口 ├── db/ │ ├── index.js # 数据库初始化 + 种子数据 │ └── mysql.js # MySQL 连接池配置 ├── middleware/ │ ├── auth.js # JWT 认证中间件 │ └── logger.js # 操作日志中间件 └── routes/ ├── auth.js # 登录 / 用户信息 / 修改密码 ├── users.js # 用户 CRUD + 批量删除 ├── roles.js # 角色 CRUD + 权限分配 ├── menus.js # 菜单树形 CRUD └── logs.js # 操作日志查询 + 清空 ``` ## 快速开始 ### 环境要求 - Node.js >= 18 - npm >= 9 - MySQL >= 5.7(推荐 8.0) ### 1. 创建数据库 ```sql CREATE DATABASE base_admin DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` ### 2. 配置环境变量 编辑 `server/.env`: ``` DB_HOST=localhost DB_PORT=3306 DB_USER=root DB_PASSWORD=你的密码 DB_NAME=base_admin PORT=8080 ``` ### 3. 安装依赖 ```bash # 安装前端依赖 cd admin npm install # 安装后端依赖 cd ../server npm install ``` ### 4. 启动服务 ```bash # 1. 启动后端服务(端口 8080) cd server npm start # 2. 启动前端服务(端口 3000) cd admin npm run dev ``` 首次启动时,系统会自动创建所有数据库表并插入种子数据。 启动后访问 `http://localhost:3000` 即可使用。 ### 测试账号 | 用户名 | 密码 | 角色 | |--------|------|------| | admin | 123456 | 超级管理员 | ## 功能模块 ### 登录 - JWT Token 认证,登录后 Token 存入 localStorage - 路由守卫拦截未登录访问 ### 仪表盘 - 系统概览页面 ### 用户管理 - 用户列表(分页、搜索) - 新增 / 编辑 / 删除用户 - 为用户分配角色 - 批量删除 ### 角色管理 - 角色列表 - 新增 / 编辑 / 删除角色 - 为角色分配菜单权限(树形选择) ### 菜单管理 - 菜单树形列表 - 新增 / 编辑 / 删除菜单(支持目录、菜单、按钮三种类型) - 递归删除子菜单 ### 操作日志 - 自动记录用户的增删改操作 - 支持按用户名、模块、操作、时间范围筛选 - 支持清空日志 ## API 接口 | 方法 | 路径 | 说明 | 认证 | |------|------|------|------| | POST | `/api/auth/login` | 用户登录 | 否 | | GET | `/api/auth/userinfo` | 获取当前用户信息及权限 | 是 | | PUT | `/api/auth/profile` | 更新个人资料 | 是 | | PUT | `/api/auth/password` | 修改密码 | 是 | | GET | `/api/users` | 用户列表(分页+搜索) | 是 | | POST | `/api/users` | 新增用户 | 是 | | PUT | `/api/users/:id` | 更新用户 | 是 | | DELETE | `/api/users/:id` | 删除用户 | 是 | | POST | `/api/users/batch-delete` | 批量删除用户 | 是 | | PUT | `/api/users/:id/reset-password` | 重置密码 | 是 | | GET | `/api/roles` | 角色列表 | 是 | | GET | `/api/roles/all` | 全部角色(不分页) | 是 | | POST | `/api/roles` | 新增角色 | 是 | | PUT | `/api/roles/:id` | 更新角色 | 是 | | DELETE | `/api/roles/:id` | 删除角色 | 是 | | PUT | `/api/roles/:id/permissions` | 设置角色权限 | 是 | | GET | `/api/menus/tree` | 菜单树 | 是 | | POST | `/api/menus` | 新增菜单 | 是 | | PUT | `/api/menus/:id` | 更新菜单 | 是 | | DELETE | `/api/menus/:id` | 删除菜单(递归删除子菜单) | 是 | | GET | `/api/logs` | 操作日志列表(分页+筛选) | 是 | | GET | `/api/logs/modules` | 日志模块列表(筛选下拉) | 是 | | DELETE | `/api/logs/clear` | 清空日志 | 是 | ## 数据库设计 项目使用 MySQL 数据库,包含 6 张表: | 表名 | 说明 | |------|------| | `users` | 用户表 | | `roles` | 角色表 | | `user_role` | 用户-角色关联表 | | `menus` | 菜单/权限表(树形结构) | | `role_menu` | 角色-菜单关联表 | | `operation_logs` | 操作日志表 | ### ER 关系 ``` users ──┬── user_role ──┬── roles ── role_menu ──┬── menus │ │ │ └───────────────┘ └───────────────┘ ``` ## License MIT