# com.hyper.hero.admin **Repository Path**: yncykj/com.hyper.hero.admin ## Basic Information - **Project Name**: com.hyper.hero.admin - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2025-11-26 - **Last Updated**: 2026-01-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Hyper Hero Admin ## 介绍 📖 Hyper Hero Admin 是一个基于 MidwayJS (Node.js) 和 Vue3 开发的全栈后台管理系统框架,同时包含了基于 uni-app 的跨平台小程序应用。项目采用前后端分离架构: - **前端管理系统**: 使用 Vue3、TypeScript、Vite5、Pinia、Element-Plus 开发 - **后端服务**: 使用 MidwayJS、TypeScript、TypeORM、PostgreSQL、Redis 等技术栈 - **小程序应用**: 基于 uni-app 框架,支持微信、支付宝等多端小程序 该框架提供了完整的用户认证、权限管理、数据管理等功能,可快速构建企业级后台管理系统和配套的小程序应用。 ## 项目结构 📁 ```text com.hyper.hero.admin ├─ apps/ # 应用目录 │ ├─ admin/ # 前端管理系统 (Vue3) │ ├─ service/ # 后端服务 (MidwayJS) │ └─ miniprogram/ # 小程序应用 (uni-app) ├─ assets/ # 资源文件目录 │ ├─ screens/ # 预览截图 │ │ └─ permissions.png # 权限管理预览图 │ └─ sql/ # SQL 脚本 │ └─ public.sql # 公共数据初始化脚本 ├─ packages/ # 共享包 │ ├─ common/ # 通用配置和工具 │ └─ utils/ # 工具函数库 ├─ .gitignore # Git 忽略配置 ├─ package.json # 项目依赖管理 ├─ LICENSE # 开源协议 └─ README.md # 项目说明文档 ``` ## 技术栈 🛠️ ### 前端 (admin) - **框架**: Vue 3.4 - **语言**: TypeScript - **构建工具**: Vite 5 - **状态管理**: Pinia - **UI 组件库**: Element Plus - **路由**: Vue Router - **HTTP 客户端**: Axios - **代码规范**: ESLint + Prettier + Stylelint ### 后端 (service) - **框架**: MidwayJS 3.x - **语言**: TypeScript - **HTTP 框架**: Koa - **ORM**: TypeORM - **数据库**: PostgreSQL - **缓存**: Redis - **认证**: JWT + Passport - **定时任务**: @midwayjs/cron - **任务队列**: Bull - **API 文档**: Swagger - **代码规范**: mwts ### 小程序 (miniprogram) - **框架**: uni-app - **语言**: TypeScript - **构建工具**: Vite - **状态管理**: Pinia - **UI 组件库**: 图鸟UI - **路由**: uni-app 路由系统 - **HTTP 客户端**: uni-ajax(封装) - **代码规范**: ESLint + Prettier ## 快速开始 🚀 ### 环境要求 - **Node.js**: >= 18.x - **包管理器**: pnpm - **数据库**: PostgreSQL - **缓存**: Redis ### 安装依赖 ```bash # 安装所有依赖 pnpm install ``` ### 开发模式 ```bash # 同时启动所有应用 pnpm dev # 仅启动前端管理系统 pnpm --filter @hyper-hero/admin dev # 仅启动后端服务 pnpm --filter @hyper-hero/service dev # 仅启动小程序(默认H5模式) pnpm --filter @hyper-hero/miniprogram dev # 启动微信小程序开发模式 pnpm --filter @hyper-hero/miniprogram dev:mp-weixin # 启动支付宝小程序开发模式 pnpm --filter @hyper-hero/miniprogram dev:mp-alipay ``` ### 构建项目 ```bash # 构建所有应用 pnpm build # 仅构建前端管理系统 pnpm --filter @hyper-hero/admin build # 仅构建后端服务 pnpm --filter @hyper-hero/service build # 构建小程序默认版本 pnpm --filter @hyper-hero/miniprogram build # 构建微信小程序 pnpm --filter @hyper-hero/miniprogram build:mp-weixin # 构建支付宝小程序 pnpm --filter @hyper-hero/miniprogram build:mp-alipay ``` ### 运行生产环境 ```bash # 启动后端服务 cd apps/service pnpm start ``` ### 代码规范检查 ```bash # 运行所有代码检查 pnpm lint # 类型检查 pnpm check-types # 格式化代码 pnpm format ``` ## 核心功能 🎯 ### 后端功能 - **用户认证与授权**: JWT + Passport 实现的认证机制 - **RBAC 权限管理**: 基于角色的访问控制 - **API 接口文档**: Swagger 自动生成 API 文档 - **定时任务**: 基于 Cron 表达式的定时任务调度 - **任务队列**: Bull 实现的异步任务处理 - **数据缓存**: Redis 缓存管理 - **数据验证**: 基于 class-validator 的请求参数验证 - **跨域支持**: 配置化的跨域解决方案 ### 前端功能 - **动态路由**: 基于权限的动态路由生成 - **按钮级权限控制**: 细粒度的权限管理 - **主题切换**: 支持多种主题模式 - **国际化**: 多语言支持 - **表格组件**: 封装的 ProTable 组件,提高开发效率 - **表单组件**: 封装的 ProForm 组件 - **文件上传**: 支持多文件上传 - **富文本编辑器**: 集成 WangEditor ### 小程序功能 - **跨平台支持**: 一套代码支持多端(微信、支付宝、H5等) - **用户认证**: 登录、注册功能 - **首页展示**: 核心业务数据展示 - **状态管理**: 基于 Pinia 的全局状态管理 - **API 封装**: 统一的 API 请求封装 - **主题定制**: 支持自定义主题样式 ## 项目特点 ✨ 1. **前后端分离**: 清晰的前后端职责划分 2. **TypeScript 全栈**: 提供类型安全保障 3. **模块化设计**: 高内聚低耦合的代码结构 4. **代码规范**: 统一的代码风格和规范 5. **易于扩展**: 灵活的插件机制和扩展点 6. **完善的文档**: 详细的使用说明和 API 文档 ## 开发指南 📚 ### 目录结构说明 #### 前端 (apps/admin) ```text ├─ src/ │ ├─ api/ # API 接口管理 │ ├─ assets/ # 静态资源 │ ├─ components/ # 全局组件 │ ├─ config/ # 全局配置 │ ├─ directives/ # 自定义指令 │ ├─ hooks/ # 自定义 Hooks │ ├─ layouts/ # 布局组件 │ ├─ routers/ # 路由配置 │ └─ views/ # 页面组件 ``` #### 后端 (apps/service) ```text ├─ src/ │ ├─ controller/ # 控制器 │ ├─ service/ # 业务逻辑 │ ├─ entity/ # 数据库实体 │ ├─ middleware/ # 中间件 │ ├─ libs/ # 工具库和通用功能 │ └─ config/ # 配置文件 ``` #### 小程序 (apps/miniprogram) ```text ├─ src/ │ ├─ api/ # API 接口管理 │ │ ├─ modules/ # 按模块组织的API │ │ │ ├─ auth/ # 认证相关API │ │ │ └─ users/ # 用户相关API │ │ └─ index.ts # API统一出口 │ ├─ config/ # 全局配置 │ ├─ interface/ # TypeScript 接口定义 │ ├─ pages/ # 页面组件 │ │ ├─ home/ # 首页 │ │ ├─ login/ # 登录页 │ │ └─ register/ # 注册页 │ ├─ static/ # 静态资源 │ ├─ stores/ # Pinia 状态管理 │ │ ├─ modules/ # 按模块组织的状态 │ │ │ ├─ system.ts # 系统状态 │ │ │ └─ users.ts # 用户状态 │ │ └─ index.ts # 状态管理统一出口 │ ├─ styles/ # 全局样式 │ │ ├─ global.scss # 全局样式文件 │ │ └─ uni.scss # uni-app内置样式变量 │ ├─ App.vue # 应用根组件 │ ├─ main.ts # 应用入口文件 │ ├─ env.d.ts # TypeScript环境声明 │ ├─ manifest.json # 小程序配置 │ └─ pages.json # 页面路由配置 ├─ .env # 环境变量配置 ├─ .env.development # 开发环境配置 ├─ .env.production # 生产环境配置 ├─ index.html # HTML模板 ├─ package.json # 项目依赖配置 ├─ shims-uni.d.ts # uni-app类型声明 ├─ tsconfig.json # TypeScript配置 └─ vite.config.ts # Vite配置 ``` ### 数据库配置 后端服务使用 PostgreSQL 数据库,配置文件位于 `apps/service/src/config/config.*.ts`。 ### 缓存配置 项目使用 Redis 作为缓存,配置文件位于 `apps/service/src/config/config.*.ts`。 ## 贡献指南 🤝 1. Fork 仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ## 许可 📄 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 截图 📸 ![权限管理预览图](./assets/screens/permissions.png) ## API 接口文档 📋 ### 1. 认证模块(Auth) #### 1.1 注册 - **请求方法**: POST - **URL**: `/auth/register` - **接口名称**: 注册 - **权限要求**: `*` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | value | string | 是 | 加密后的注册信息,包含 mobile 和 password | - **响应数据**: ```json { "id": "1", "mobile": "13800138000", "createdAt": "2024-01-01T00:00:00.000Z" } ``` #### 1.2 登录 - **请求方法**: POST - **URL**: `/auth/login` - **接口名称**: 登录 - **权限要求**: `*` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | value | string | 是 | 加密后的登录信息,包含 username 和 password | - **响应数据**: ```json { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "user": { "id": "1", "username": "admin", "nickname": "管理员", "avatar": "https://example.com/avatar.jpg" } } ``` #### 1.3 退出登录 - **请求方法**: POST - **URL**: `/auth/logout` - **接口名称**: 退出登录 - **权限要求**: `*` - **请求参数**: 无 - **响应数据**: ```json true ``` ### 2. 用户模块(Users) #### 2.1 获取用户信息 - **请求方法**: GET - **URL**: `/users/:id` - **接口名称**: 获取用户信息 - **权限要求**: `System::Users::Query` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 用户ID | - **响应数据**: ```json { "id": "1", "username": "admin", "nickname": "管理员", "avatar": "https://example.com/avatar.jpg", "mobile": "13800138000", "email": "admin@example.com", "status": 1, "createdAt": "2024-01-01T00:00:00.000Z" } ``` #### 2.2 重置用户密码 - **请求方法**: PUT - **URL**: `/users/resetPassword/:id` - **接口名称**: 重置用户密码 - **权限要求**: `System::Users::ResetPassword` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 用户ID | - **响应数据**: ```json { "password": "newPassword123" } ``` #### 2.3 删除用户 - **请求方法**: DELETE - **URL**: `/users/:id` - **接口名称**: 删除用户 - **权限要求**: `System::Users::Delete` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 用户ID | - **响应数据**: ```json true ``` #### 2.4 批量删除用户 - **请求方法**: DELETE - **URL**: `/users/batch/del` - **接口名称**: 批量删除用户 - **权限要求**: `System::Users::BatchDelete` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | ids | string[] | 是 | 用户ID数组 | - **响应数据**: ```json true ``` #### 2.5 更新用户信息 - **请求方法**: PUT - **URL**: `/users/:id` - **接口名称**: 更新用户信息 - **权限要求**: `System::Users::Updated` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 用户ID | | nickname | string | 否 | 用户昵称 | | mobile | string | 否 | 手机号 | | email | string | 否 | 邮箱 | | status | number | 否 | 状态(1:启用,0:禁用) | - **响应数据**: ```json { "id": "1", "username": "admin", "nickname": "管理员", "mobile": "13800138000", "email": "admin@example.com", "status": 1 } ``` #### 2.6 创建用户 - **请求方法**: POST - **URL**: `/users` - **接口名称**: 创建用户 - **权限要求**: `System::Users::Created` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | username | string | 是 | 用户名 | | password | string | 是 | 密码 | | nickname | string | 否 | 用户昵称 | | mobile | string | 否 | 手机号 | | email | string | 否 | 邮箱 | | status | number | 否 | 状态(1:启用,0:禁用) | - **响应数据**: ```json { "id": "2", "username": "user1", "nickname": "用户1", "mobile": "13800138001", "email": "user1@example.com", "status": 1 } ``` #### 2.7 获取当前用户信息 - **请求方法**: GET - **URL**: `/users/personal` - **接口名称**: 获取当前用户信息 - **权限要求**: `*` - **请求参数**: 无 - **响应数据**: ```json { "id": "1", "username": "admin", "nickname": "管理员", "avatar": "https://example.com/avatar.jpg", "mobile": "13800138000", "email": "admin@example.com", "status": 1 } ``` #### 2.8 获取用户列表 - **请求方法**: POST - **URL**: `/users/list` - **接口名称**: 获取用户列表 - **权限要求**: `System::Users::Query` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | page | number | 是 | 页码 | | size | number | 是 | 每页条数 | | username | string | 否 | 用户名(模糊查询) | | mobile | string | 否 | 手机号(模糊查询) | | status | number | 否 | 状态(1:启用,0:禁用) | - **响应数据**: ```json { "list": [ { "id": "1", "username": "admin", "nickname": "管理员", "mobile": "13800138000", "email": "admin@example.com", "status": 1 } ], "total": 1, "page": 1, "size": 10 } ``` #### 2.9 设置用户角色 - **请求方法**: PUT - **URL**: `/users/setRole/:id` - **接口名称**: 设置用户角色 - **权限要求**: `System::Users::SetRole` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 用户ID | | roleIds | string[] | 是 | 角色ID数组 | - **响应数据**: ```json { "id": "1", "username": "admin", "roles": [ { "id": "1", "roleName": "超级管理员", "roleCode": "SUPER_ADMIN" } ] } ``` #### 2.10 设置用户岗位 - **请求方法**: PUT - **URL**: `/users/setJob/:id` - **接口名称**: 设置用户岗位 - **权限要求**: `System::Users::SetJob` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 用户ID | | jobId | string | 是 | 岗位ID | - **响应数据**: ```json { "id": "1", "username": "admin", "job": { "id": "1", "jobName": "总经理", "jobCode": "GM" } } ``` #### 2.11 获取当前用户权限 - **请求方法**: GET - **URL**: `/users/personal/permissions` - **接口名称**: 获取当前用户权限 - **权限要求**: `*` - **请求参数**: 无 - **响应数据**: ```json ["System::Users::Query", "System::Users::Created", "System::Users::Updated", "System::Users::Delete"] ``` ### 3. 部门模块(Depts) #### 3.1 获取部门信息 - **请求方法**: GET - **URL**: `/depts/:id` - **接口名称**: 获取部门信息 - **权限要求**: `System::Dept::Query` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 部门ID | - **响应数据**: ```json { "id": "1", "deptName": "总公司", "deptCode": "COMPANY", "parentId": null, "sort": 1, "status": 1 } ``` #### 3.2 获取部门树 - **请求方法**: GET - **URL**: `/depts/tree` - **接口名称**: 获取部门树 - **权限要求**: `System::Dept::Query` - **请求参数**: 无 - **响应数据**: ```json [ { "id": "1", "deptName": "总公司", "deptCode": "COMPANY", "children": [ { "id": "2", "deptName": "技术部", "deptCode": "TECH", "children": [] } ] } ] ``` #### 3.3 创建部门 - **请求方法**: POST - **URL**: `/depts` - **接口名称**: 创建部门 - **权限要求**: `System::Dept::Created` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | deptName | string | 是 | 部门名称 | | deptCode | string | 是 | 部门编码 | | parentId | string | 否 | 父部门ID | | sort | number | 否 | 排序 | | status | number | 否 | 状态(1:启用,0:禁用) | - **响应数据**: ```json { "id": "3", "deptName": "市场部", "deptCode": "MARKET", "parentId": "1", "sort": 2, "status": 1 } ``` #### 3.4 更新部门 - **请求方法**: PUT - **URL**: `/depts/:id` - **接口名称**: 更新部门 - **权限要求**: `System::Dept::Updated` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 部门ID | | deptName | string | 否 | 部门名称 | | deptCode | string | 否 | 部门编码 | | parentId | string | 否 | 父部门ID | | sort | number | 否 | 排序 | | status | number | 否 | 状态(1:启用,0:禁用) | - **响应数据**: ```json { "id": "2", "deptName": "技术开发部", "deptCode": "TECH_DEV", "parentId": "1", "sort": 1, "status": 1 } ``` #### 3.5 删除部门 - **请求方法**: DELETE - **URL**: `/depts/:id` - **接口名称**: 删除部门 - **权限要求**: `System::Dept::Deleted` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 部门ID | - **响应数据**: ```json true ``` #### 3.6 批量删除部门 - **请求方法**: DELETE - **URL**: `/depts/batch/del` - **接口名称**: 批量删除部门 - **权限要求**: `System::Dept::Deleted` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | ids | string[] | 是 | 部门ID数组 | - **响应数据**: ```json true ``` ### 4. 字典模块(Dict) #### 4.1 获取字典树 - **请求方法**: GET - **URL**: `/dict/tree` - **接口名称**: 获取字典树 - **权限要求**: `System::Dict::Query` - **请求参数**: 无 - **响应数据**: ```json [ { "id": "1", "dictName": "用户状态", "dictCode": "USER_STATUS", "children": [ { "id": "2", "dictName": "启用", "dictCode": "ENABLED", "dictValue": "1" }, { "id": "3", "dictName": "禁用", "dictCode": "DISABLED", "dictValue": "0" } ] } ] ``` #### 4.2 创建字典 - **请求方法**: POST - **URL**: `/dict` - **接口名称**: 创建字典 - **权限要求**: `System::Dict::Created` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | dictName | string | 是 | 字典名称 | | dictCode | string | 是 | 字典编码 | | dictValue | string | 否 | 字典值(仅子字典必填) | | parentId | string | 否 | 父字典ID | | sort | number | 否 | 排序 | - **响应数据**: ```json { "id": "4", "dictName": "性别", "dictCode": "GENDER", "parentId": null, "sort": 2 } ``` #### 4.3 获取字典详情 - **请求方法**: GET - **URL**: `/dict/:id` - **接口名称**: 获取字典详情 - **权限要求**: `System::Dict::Query` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 字典ID | - **响应数据**: ```json { "id": "1", "dictName": "用户状态", "dictCode": "USER_STATUS", "parentId": null, "sort": 1, "children": [ { "id": "2", "dictName": "启用", "dictCode": "ENABLED", "dictValue": "1" } ] } ``` #### 4.4 更新字典 - **请求方法**: PUT - **URL**: `/dict/:id` - **接口名称**: 更新字典 - **权限要求**: `System::Dict::Updated` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 字典ID | | dictName | string | 否 | 字典名称 | | dictCode | string | 否 | 字典编码 | | dictValue | string | 否 | 字典值(仅子字典必填) | | parentId | string | 否 | 父字典ID | | sort | number | 否 | 排序 | - **响应数据**: ```json { "id": "4", "dictName": "用户性别", "dictCode": "USER_GENDER", "parentId": null, "sort": 2 } ``` ### 5. 岗位模块(Jobs) #### 5.1 获取岗位信息 - **请求方法**: GET - **URL**: `/jobs/:id` - **接口名称**: 获取岗位信息 - **权限要求**: `System::Jobs::Query` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 岗位ID | - **响应数据**: ```json { "id": "1", "jobName": "总经理", "jobCode": "GM", "deptId": "1", "sort": 1, "status": 1 } ``` #### 5.2 删除岗位 - **请求方法**: DELETE - **URL**: `/jobs/:id` - **接口名称**: 删除岗位 - **权限要求**: `System::Jobs::Delete` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 岗位ID | - **响应数据**: ```json true ``` #### 5.3 批量删除岗位 - **请求方法**: DELETE - **URL**: `/jobs/batch/del` - **接口名称**: 批量删除岗位 - **权限要求**: `System::Jobs::BatchDelete` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | ids | string[] | 是 | 岗位ID数组 | - **响应数据**: ```json true ``` #### 5.4 创建岗位 - **请求方法**: POST - **URL**: `/jobs` - **接口名称**: 创建岗位 - **权限要求**: `System::Jobs::Created` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | jobName | string | 是 | 岗位名称 | | jobCode | string | 是 | 岗位编码 | | deptId | string | 是 | 部门ID | | sort | number | 否 | 排序 | | status | number | 否 | 状态(1:启用,0:禁用) | - **响应数据**: ```json { "id": "2", "jobName": "技术总监", "jobCode": "TECH_DIRECTOR", "deptId": "2", "sort": 2, "status": 1 } ``` #### 5.5 更新岗位信息 - **请求方法**: PUT - **URL**: `/jobs/:id` - **接口名称**: 更新岗位信息 - **权限要求**: `System::Jobs::Updated` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 岗位ID | | jobName | string | 否 | 岗位名称 | | jobCode | string | 否 | 岗位编码 | | deptId | string | 否 | 部门ID | | sort | number | 否 | 排序 | | status | number | 否 | 状态(1:启用,0:禁用) | - **响应数据**: ```json { "id": "2", "jobName": "技术总监", "jobCode": "TECH_DIR", "deptId": "2", "sort": 2, "status": 1 } ``` #### 5.6 获取岗位列表 - **请求方法**: POST - **URL**: `/jobs/list` - **接口名称**: 获取岗位列表 - **权限要求**: `System::Jobs::Query` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | page | number | 是 | 页码 | | size | number | 是 | 每页条数 | | jobName | string | 否 | 岗位名称(模糊查询) | | jobCode | string | 否 | 岗位编码(模糊查询) | | deptId | string | 否 | 部门ID | - **响应数据**: ```json { "list": [ { "id": "1", "jobName": "总经理", "jobCode": "GM", "deptId": "1", "sort": 1, "status": 1 } ], "total": 1, "page": 1, "size": 10 } ``` ### 6. 菜单模块(Menus) #### 6.1 获取菜单信息 - **请求方法**: GET - **URL**: `/menus/:id` - **接口名称**: 获取菜单信息 - **权限要求**: `System::Menu::Query` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 菜单ID | - **响应数据**: ```json { "id": "1", "menuName": "系统管理", "menuType": "M", "path": "/system", "component": "Layout", "icon": "system", "sort": 1, "status": 1 } ``` #### 6.2 获取当前用户路由 - **请求方法**: GET - **URL**: `/menus/router` - **接口名称**: 获取当前用户路由 - **权限要求**: `*` - **请求参数**: 无 - **响应数据**: ```json [ { "id": "1", "menuName": "系统管理", "menuType": "M", "path": "/system", "component": "Layout", "icon": "system", "children": [ { "id": "2", "menuName": "用户管理", "menuType": "C", "path": "/system/users", "component": "system/users/index", "icon": "user" } ] } ] ``` #### 6.3 获取菜单树 - **请求方法**: GET - **URL**: `/menus/trees` - **接口名称**: 获取菜单树 - **权限要求**: `System::Menu::Query` - **请求参数**: 无 - **响应数据**: ```json [ { "id": "1", "menuName": "系统管理", "menuType": "M", "children": [ { "id": "2", "menuName": "用户管理", "menuType": "C" } ] } ] ``` #### 6.4 创建菜单 - **请求方法**: POST - **URL**: `/menus` - **接口名称**: 创建菜单 - **权限要求**: `System::Menu::Created` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | menuName | string | 是 | 菜单名称 | | menuType | string | 是 | 菜单类型(M:目录,C:菜单,F:按钮) | | path | string | 否 | 路径 | | component | string | 否 | 组件路径 | | icon | string | 否 | 图标 | | parentId | string | 否 | 父菜单ID | | sort | number | 否 | 排序 | | status | number | 否 | 状态(1:启用,0:禁用) | - **响应数据**: ```json { "id": "3", "menuName": "角色管理", "menuType": "C", "path": "/system/roles", "component": "system/roles/index", "icon": "role", "parentId": "1", "sort": 2, "status": 1 } ``` #### 6.5 更新菜单 - **请求方法**: PUT - **URL**: `/menus/:id` - **接口名称**: 更新菜单 - **权限要求**: `System::Menu::Updated` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 菜单ID | | menuName | string | 否 | 菜单名称 | | menuType | string | 否 | 菜单类型(M:目录,C:菜单,F:按钮) | | path | string | 否 | 路径 | | component | string | 否 | 组件路径 | | icon | string | 否 | 图标 | | parentId | string | 否 | 父菜单ID | | sort | number | 否 | 排序 | | status | number | 否 | 状态(1:启用,0:禁用) | - **响应数据**: ```json { "id": "3", "menuName": "角色管理", "menuType": "C", "path": "/system/roles", "component": "system/roles/index", "icon": "role", "parentId": "1", "sort": 2, "status": 1 } ``` #### 6.6 删除菜单 - **请求方法**: DELETE - **URL**: `/menus/:id` - **接口名称**: 删除菜单 - **权限要求**: `System::Menu::Delete` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 菜单ID | - **响应数据**: ```json true ``` #### 6.7 批量删除菜单 - **请求方法**: DELETE - **URL**: `/menus/batch/del` - **接口名称**: 批量删除菜单 - **权限要求**: `System::Menu::Delete` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | ids | string[] | 是 | 菜单ID数组 | - **响应数据**: ```json true ``` ### 7. 权限模块(Permissions) #### 7.1 获取权限列表 - **请求方法**: POST - **URL**: `/permissions/list` - **接口名称**: 获取权限列表 - **权限要求**: `System::Permissions::Query` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | page | number | 是 | 页码 | | size | number | 是 | 每页条数 | | permissionName | string | 否 | 权限名称(模糊查询) | | permissionCode | string | 否 | 权限编码(模糊查询) | - **响应数据**: ```json { "list": [ { "id": "1", "permissionName": "用户查询", "permissionCode": "System::Users::Query", "sort": 1 } ], "total": 1, "page": 1, "size": 10 } ``` #### 7.2 获取权限信息 - **请求方法**: GET - **URL**: `/permissions/:id` - **接口名称**: 获取权限信息 - **权限要求**: `System::Permissions::Query` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 权限ID | - **响应数据**: ```json { "id": "1", "permissionName": "用户查询", "permissionCode": "System::Users::Query", "sort": 1 } ``` #### 7.3 创建权限 - **请求方法**: POST - **URL**: `/permissions` - **接口名称**: 创建权限 - **权限要求**: `System::Permissions::Created` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | permissionName | string | 是 | 权限名称 | | permissionCode | string | 是 | 权限编码 | | sort | number | 否 | 排序 | - **响应数据**: ```json { "id": "2", "permissionName": "用户创建", "permissionCode": "System::Users::Created", "sort": 2 } ``` #### 7.4 更新权限 - **请求方法**: PUT - **URL**: `/permissions/:id` - **接口名称**: 更新权限 - **权限要求**: `System::Permissions::Updated` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 权限ID | | permissionName | string | 否 | 权限名称 | | permissionCode | string | 否 | 权限编码 | | sort | number | 否 | 排序 | - **响应数据**: ```json { "id": "2", "permissionName": "用户新增", "permissionCode": "System::Users::Created", "sort": 2 } ``` ### 8. 角色模块(Roles) #### 8.1 获取角色信息 - **请求方法**: GET - **URL**: `/roles/:id` - **接口名称**: 获取角色信息 - **权限要求**: `System::Roles::Query` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 角色ID | - **响应数据**: ```json { "id": "1", "roleName": "超级管理员", "roleCode": "SUPER_ADMIN", "status": 1, "sort": 1 } ``` #### 8.2 创建角色 - **请求方法**: POST - **URL**: `/roles` - **接口名称**: 创建角色 - **权限要求**: `System::Roles::Created` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | roleName | string | 是 | 角色名称 | | roleCode | string | 是 | 角色编码 | | status | number | 否 | 状态(1:启用,0:禁用) | | sort | number | 否 | 排序 | - **响应数据**: ```json { "id": "2", "roleName": "普通管理员", "roleCode": "ADMIN", "status": 1, "sort": 2 } ``` #### 8.3 设置角色菜单 - **请求方法**: PUT - **URL**: `/roles/setMenus/:id` - **接口名称**: 设置角色菜单 - **权限要求**: `System::Roles::SetMenus` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 角色ID | | menuIds | string[] | 是 | 菜单ID数组 | - **响应数据**: ```json { "id": "2", "roleName": "普通管理员", "roleCode": "ADMIN", "menus": [ { "id": "1", "menuName": "系统管理", "menuType": "M" } ] } ``` #### 8.4 设置角色权限 - **请求方法**: PUT - **URL**: `/roles/setPermission/:id` - **接口名称**: 设置角色权限 - **权限要求**: `System::Roles::SetPermissions` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 角色ID | | permissionIds | string[] | 是 | 权限ID数组 | - **响应数据**: ```json { "id": "2", "roleName": "普通管理员", "roleCode": "ADMIN", "permissions": [ { "id": "1", "permissionName": "用户查询", "permissionCode": "System::Users::Query" } ] } ``` #### 8.5 获取角色列表 - **请求方法**: POST - **URL**: `/roles/list` - **接口名称**: 获取角色列表 - **权限要求**: `System::Roles::Query` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | page | number | 是 | 页码 | | size | number | 是 | 每页条数 | | roleName | string | 否 | 角色名称(模糊查询) | | roleCode | string | 否 | 角色编码(模糊查询) | | status | number | 否 | 状态(1:启用,0:禁用) | - **响应数据**: ```json { "list": [ { "id": "1", "roleName": "超级管理员", "roleCode": "SUPER_ADMIN", "status": 1, "sort": 1 } ], "total": 1, "page": 1, "size": 10 } ``` ### 9. 任务模块(Tasks) #### 9.1 获取任务列表 - **请求方法**: POST - **URL**: `/tasks/list` - **接口名称**: 任务列表 - **权限要求**: `System::Tasks::Query` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | page | number | 是 | 页码 | | size | number | 是 | 每页条数 | | taskName | string | 否 | 任务名称(模糊查询) | | status | number | 否 | 状态(1:启用,0:禁用) | - **响应数据**: ```json { "list": [ { "id": "1", "taskName": "定时备份", "taskCode": "BACKUP", "cronExpression": "0 0 * * *", "status": 1 } ], "total": 1, "page": 1, "size": 10 } ``` #### 9.2 获取任务详情 - **请求方法**: GET - **URL**: `/tasks/:id` - **接口名称**: 任务详情 - **权限要求**: `System::Tasks::Query` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 任务ID | - **响应数据**: ```json { "id": "1", "taskName": "定时备份", "taskCode": "BACKUP", "cronExpression": "0 0 * * *", "status": 1, "createdAt": "2024-01-01T00:00:00.000Z" } ``` #### 9.3 创建任务 - **请求方法**: POST - **URL**: `/tasks` - **接口名称**: 创建任务 - **权限要求**: `System::Tasks::Created` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | taskName | string | 是 | 任务名称 | | taskCode | string | 是 | 任务编码 | | cronExpression | string | 是 | Cron表达式 | | status | number | 否 | 状态(1:启用,0:禁用) | - **响应数据**: ```json { "id": "2", "taskName": "数据统计", "taskCode": "STATISTICS", "cronExpression": "0 1 * * *", "status": 1 } ``` #### 9.4 更新任务 - **请求方法**: PUT - **URL**: `/tasks/:id` - **接口名称**: 更新任务 - **权限要求**: `System::Tasks::Updated` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 任务ID | | taskName | string | 否 | 任务名称 | | taskCode | string | 否 | 任务编码 | | cronExpression | string | 否 | Cron表达式 | | status | number | 否 | 状态(1:启用,0:禁用) | - **响应数据**: ```json { "task": { "id": "2", "taskName": "数据统计", "taskCode": "STAT", "cronExpression": "0 2 * * *", "status": 1 }, "restartResult": "任务已重启" } ``` #### 9.5 删除任务 - **请求方法**: DELETE - **URL**: `/tasks/:id` - **接口名称**: 删除任务 - **权限要求**: `System::Tasks::Delete` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 任务ID | - **响应数据**: ```json true ``` #### 9.6 批量删除任务 - **请求方法**: DELETE - **URL**: `/tasks/batch/del` - **接口名称**: 批量删除任务 - **权限要求**: `System::Tasks::BatchDelete` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | ids | string[] | 是 | 任务ID数组 | - **响应数据**: ```json true ``` #### 9.7 运行任务 - **请求方法**: POST - **URL**: `/tasks/:id/run` - **接口名称**: 运行任务 - **权限要求**: `System::Tasks::Run` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 任务ID | - **响应数据**: ```json { "message": "任务已启动" } ``` #### 9.8 停止任务 - **请求方法**: POST - **URL**: `/tasks/:id/stop` - **接口名称**: 停止任务 - **权限要求**: `System::Tasks::Stop` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 任务ID | - **响应数据**: ```json { "message": "任务已停止" } ``` ### 10. 任务日志模块(TasksLoggers) #### 10.1 获取任务日志列表 - **请求方法**: POST - **URL**: `/tasks_loggers/list` - **接口名称**: 获取任务日志列表 - **权限要求**: 无 - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | page | number | 是 | 页码 | | size | number | 是 | 每页条数 | | taskId | string | 否 | 任务ID | | status | number | 否 | 状态(1:成功,0:失败) | - **响应数据**: ```json { "list": [ { "id": "1", "taskId": "1", "taskName": "定时备份", "status": 1, "startTime": "2024-01-01T00:00:00.000Z", "endTime": "2024-01-01T00:00:30.000Z" } ], "total": 1, "page": 1, "size": 10 } ``` #### 10.2 获取任务日志详情 - **请求方法**: GET - **URL**: `/tasks_loggers/:id` - **接口名称**: 获取任务日志详情 - **权限要求**: 无 - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 任务日志ID | - **响应数据**: ```json { "id": "1", "taskId": "1", "taskName": "定时备份", "status": 1, "startTime": "2024-01-01T00:00:00.000Z", "endTime": "2024-01-01T00:00:30.000Z", "logContent": "备份成功" } ``` #### 10.3 删除任务日志 - **请求方法**: DELETE - **URL**: `/tasks_loggers/:id` - **接口名称**: 删除任务日志 - **权限要求**: 无 - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 任务日志ID | - **响应数据**: ```json true ``` #### 10.4 批量删除任务日志 - **请求方法**: DELETE - **URL**: `/tasks_loggers/batch/del` - **接口名称**: 批量删除任务日志 - **权限要求**: 无 - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | ids | string[] | 是 | 任务日志ID数组 | - **响应数据**: ```json true ``` ### 11. 文件上传模块(Upload) #### 11.1 上传文件 - **请求方法**: POST - **URL**: `/upload/file` - **接口名称**: 上传文件 - **权限要求**: 无 - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | files | file[] | 是 | 文件列表 | - **响应数据**: ```json [ { "id": "1", "fileOriginName": "example.txt", "fileName": "example.txt", "fileSize": 1024, "fileType": "text/plain", "fileUrl": "http://example.com/upload/example.txt" } ] ``` #### 11.2 上传图片 - **请求方法**: POST - **URL**: `/upload/image` - **接口名称**: 上传图片 - **权限要求**: 无 - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | files | file[] | 是 | 图片文件列表 | - **响应数据**: ```json [ { "id": "2", "fileOriginName": "image.jpg", "fileName": "image.jpg", "fileSize": 2048, "fileType": "image/jpeg", "fileUrl": "http://example.com/upload/image.jpg" } ] ``` #### 11.3 上传视频 - **请求方法**: POST - **URL**: `/upload/video` - **接口名称**: 上传视频 - **权限要求**: 无 - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | files | file[] | 是 | 视频文件列表 | - **响应数据**: ```json [ { "id": "3", "fileOriginName": "video.mp4", "fileName": "video.mp4", "fileSize": 1024000, "fileType": "video/mp4", "fileUrl": "http://example.com/upload/video.mp4" } ] ``` #### 11.4 上传音频 - **请求方法**: POST - **URL**: `/upload/audio` - **接口名称**: 上传音频 - **权限要求**: 无 - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | files | file[] | 是 | 音频文件列表 | - **响应数据**: ```json [ { "id": "4", "fileOriginName": "audio.mp3", "fileName": "audio.mp3", "fileSize": 512000, "fileType": "audio/mpeg", "fileUrl": "http://example.com/upload/audio.mp3" } ] ``` #### 11.5 上传文档 - **请求方法**: POST - **URL**: `/upload/document` - **接口名称**: 上传文档 - **权限要求**: 无 - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | files | file[] | 是 | 文档文件列表 | - **响应数据**: ```json [ { "id": "5", "fileOriginName": "document.pdf", "fileName": "document.pdf", "fileSize": 2048000, "fileType": "application/pdf", "fileUrl": "http://example.com/upload/document.pdf" } ] ``` #### 11.6 获取文件列表 - **请求方法**: POST - **URL**: `/upload/list` - **接口名称**: 获取文件列表 - **权限要求**: 无 - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | page | number | 是 | 页码 | | size | number | 是 | 每页条数 | | fileType | string | 否 | 文件类型 | - **响应数据**: ```json { "list": [ { "id": "1", "fileOriginName": "example.txt", "fileName": "example.txt", "fileSize": 1024, "fileType": "text/plain", "fileUrl": "http://example.com/upload/example.txt" } ], "total": 1, "page": 1, "size": 10 } ``` #### 11.7 获取文件详情 - **请求方法**: GET - **URL**: `/upload/:id` - **接口名称**: 获取文件详情 - **权限要求**: 无 - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 文件ID | - **响应数据**: ```json { "id": "1", "fileOriginName": "example.txt", "fileName": "example.txt", "fileSize": 1024, "fileType": "text/plain", "fileUrl": "http://example.com/upload/example.txt", "createdAt": "2024-01-01T00:00:00.000Z" } ``` #### 11.8 删除文件 - **请求方法**: DELETE - **URL**: `/upload/:id` - **接口名称**: 删除文件 - **权限要求**: 无 - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 文件ID | - **响应数据**: ```json true ``` #### 11.9 批量删除文件 - **请求方法**: DELETE - **URL**: `/upload/batch/del` - **接口名称**: 批量删除文件 - **权限要求**: 无 - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | ids | string[] | 是 | 文件ID数组 | - **响应数据**: ```json true ``` ### 12. 日志模块(Logger) #### 12.1 获取日志列表 - **请求方法**: POST - **URL**: `/logger/list` - **接口名称**: 获取日志列表 - **权限要求**: `System::Logger::Query` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | page | number | 是 | 页码 | | size | number | 是 | 每页条数 | | username | string | 否 | 用户名 | | status | number | 否 | 状态(1:成功,0:失败) | - **响应数据**: ```json { "list": [ { "id": "1", "username": "admin", "operation": "登录", "status": 1, "ip": "127.0.0.1", "createdAt": "2024-01-01T00:00:00.000Z" } ], "total": 1, "page": 1, "size": 10 } ``` #### 12.2 获取日志详情 - **请求方法**: GET - **URL**: `/logger/:id` - **接口名称**: 获取日志详情 - **权限要求**: `System::Logger::Query` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 日志ID | - **响应数据**: ```json { "id": "1", "username": "admin", "operation": "登录", "status": 1, "ip": "127.0.0.1", "userAgent": "Mozilla/5.0...", "createdAt": "2024-01-01T00:00:00.000Z" } ``` #### 12.3 删除日志 - **请求方法**: DELETE - **URL**: `/logger/:id` - **接口名称**: 删除日志 - **权限要求**: `System::Logger::Delete` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | id | string | 是 | 日志ID | - **响应数据**: ```json true ``` #### 12.4 批量删除日志 - **请求方法**: DELETE - **URL**: `/logger/batch/del` - **接口名称**: 批量删除日志 - **权限要求**: `System::Logger::Delete` - **请求参数**: | 参数名 | 类型 | 必填 | 描述 | | --- | --- | --- | --- | | ids | string[] | 是 | 日志ID数组 | - **响应数据**: ```json true ``` ## 联系方式 📧 如有问题或建议,欢迎通过以下方式联系: - 项目地址: https://gitee.com/yncykj/com.hyper.hero.admin.git --- **Hyper Hero Admin** - 让后台开发更高效! 🚀