# hsh-admin-web
**Repository Path**: techshino/hsh-admin-web
## Basic Information
- **Project Name**: hsh-admin-web
- **Description**: HSH Admin - 基于 Vue3 + Element Plus 的现代后台管理系统,提供用户管理、角色权限、菜单管理、部门管理、字典管理、系统配置、多平台存储管理(支持本地/阿里云OSS/腾讯云COS等)、文件管理、定时任务、代码生成等完整功能,支持按钮级权限控制,开箱即用。
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2026-02-12
- **Last Updated**: 2026-04-03
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# HSH Admin
基于 Vue3 + Element Plus 的后台管理系统
## 技术栈
- Vue 3
- Vite
- Element Plus
- Vue Router
- Pinia
- Axios
- TypeScript
## 功能特性
- 🎯 用户登录/登出
- 👥 用户管理
- 🔐 角色管理(含权限分配 + 数据权限管理)
- 📋 菜单管理
- 🏢 部门管理
- 📚 字典管理
- ⚙️ 系统配置
- 💾 存储配置管理(支持本地、阿里云 OSS、腾讯云 COS、百度云 BOS、七牛云 Kodo、MinIO)
- 📁 文件管理
- ⏰ 定时任务管理(含 Cron 表达式编辑器 + 执行日志)
- 🔑 权限控制(基于权限标识的按钮级权限)
- 🏷️ 动态菜单加载
- 📌 标签页导航
- 🍞 面包屑导航
## 快速开始
### 安装依赖
```bash
npm install
# 或者
pnpm install
# 或者
yarn install
```
### 开发模式
```bash
npm run dev
```
### 生产环境构建
```bash
npm run build:prod
```
### 预览构建结果
```bash
npm run preview
```
## 环境变量
项目使用了两个环境变量文件:
### .env.development(开发环境)
```
VITE_APP_TITLE=HSH Admin (开发环境)
VITE_APP_BASE_API=/dev-api
VITE_APP_PROXY_TARGET=http://localhost:8080
```
### .env.production(生产环境)
```
VITE_APP_TITLE=HSH Admin (生产环境)
VITE_APP_BASE_API=https://api.example.com
```
## 项目结构
```
hsh-admin-web/
├── src/
│ ├── api/ # API 接口
│ ├── components/ # 公共组件
│ ├── composables/ # Vue 组合式函数
│ ├── layout/ # 布局组件
│ ├── router/ # 路由配置
│ ├── stores/ # Pinia 状态管理
│ ├── styles/ # 全局样式
│ ├── types/ # TypeScript 类型定义
│ ├── utils/ # 工具函数
│ ├── views/ # 页面视图
│ │ ├── system/ # 系统管理
│ │ ├── tool/ # 系统工具
│ ├── App.vue # 根组件
│ └── main.ts # 入口文件
├── .env.development # 开发环境变量
├── .env.production # 生产环境变量
├── .gitignore # Git 忽略文件
├── index.html # HTML 模板
├── package.json # 依赖配置
├── vite.config.ts # Vite 配置
├── tsconfig.json # TypeScript 配置
├── README.md # 项目说明
└── DEVELOPMENT.md # 开发说明文档
```
## 权限控制
### 权限标识列表
| 模块 | 权限标识 | 说明 |
|--------|-----------|------|
| 用户管理 | user:add, user:edit, user:delete |
| 角色管理 | role:add, role:edit, role:delete |
| 菜单管理 | menu:add, menu:edit, menu:delete |
| 部门管理 | dept:add, dept:edit, dept:delete |
| 字典管理 | dict:view, dict:add, dict:edit, dict:delete |
| 系统配置 | config:add, config:edit, config:delete |
| 存储配置 | oss:config:edit, oss:config:active |
| 文件管理 | oss:file:view, oss:file:upload, oss:file:delete |
| 代码生成 | tool:gen:add, tool:gen:edit, tool:gen:preview, tool:gen:gen, tool:gen:delete |
| 定时任务 | tool:job:add, tool:job:edit, tool:job:run, tool:job:delete, tool:job:list |
### 使用方式
#### 使用指令
```vue
新增
```
#### 使用方法调用
```typescript
import { usePermissionStore } from '@/stores/permission'
const permissionStore = usePermissionStore()
if (permissionStore.hasPermission('user:edit')) {
// 有编辑权限
}
```
## 后端接口
项目后端接口地址默认为 `http://localhost:8080/api`,可以在 `.env.development` 中修改 `VITE_APP_PROXY_TARGET` 配置。
开发环境使用代理配置,访问 `/dev-api/*` 会被代理到后端接口。
## 组件使用
### FileUploader 组件
通用文件上传组件,支持自定义配置。
```vue
```
**Props:**
- `buttonText` - 按钮文字,默认 "上传文件"
- `showFileList` - 是否显示文件列表,默认 false
- `showTip` - 是否显示提示文字,默认 false
- `tipText` - 提示文字内容
- `limit` - 文件数量限制,默认 1
**Events:**
- `upload-success` - 上传成功回调,参数为上传的文件信息
- `upload-error` - 上传失败回调
### use-file-url Composable
文件 URL 管理 Hook,支持缓存和临时授权 URL 获取。
```vue
```
## License
MIT