# yq-uni-admin
**Repository Path**: yongqiang0621/yq-uni-admin
## Basic Information
- **Project Name**: yq-uni-admin
- **Description**: yq-uni-admin是基于uniapp + vue3 + ts + elementplus + uni-ui + vite的pc端后台管理系统空白模板,支持前后端控制路由权限
- **Primary Language**: TypeScript
- **License**: Not specified
- **Default Branch**: alpha
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 75
- **Forks**: 16
- **Created**: 2022-02-09
- **Last Updated**: 2025-08-10
## Categories & Tags
**Categories**: backend
**Tags**: vue3, TypeScript, uni-app, 后台管理系统, vite
## README
## vue3后台管理模板 yq-uni-admin是使用 uniapp + elementplus + unicloud(unicloud也可以换成传统服务器)的pc端后台管理系统空白模板,支持后端控制权限,根据角色分配菜单,支持地址栏路由拦截,集成状态管理pinia
- 技术栈:uniapp、vue3、ts、elementplus、pinia、vite
- 菜单权限:支持后端按角色分配;支持地址栏拦截
- 按钮权限:支持后端按角色分配
- pinia使用模块化,支持持久化存储
- 封装uni.request,方便易用
- 路由配置:pages.json修改,配置简单
## [yq-uni-admin体验地址](https://static-mp-bed742be-5cd0-413d-b7a5-c1bdcda83cd2.next.bspapp.com)
## [yq-uni-admin备用体验地址](https://static-mp-b7242594-ef25-466e-aa71-74d27d7b067f.next.bspapp.com/#/)
## 请在码云上下载或者拉取代码,不要在插件市场直接导入
[码云地址](https://gitee.com/yongqiang0621/yq-uni-admin)
## 安装依赖
```
pnpm i
```
```
pnpm run dev:h5 //或者点击hbuilderx的菜单,运行到浏览器
```
```
pnpm run build:h5 //打包 或者点击hbuilderx的菜单 发行 网站-pc
```
# 封装request promise写法 async+await 支持 GET,POST,PUT,DELETE,CONNECT,HEAD,OPTIONS,TRACE;
# 自定义请求头,更加灵活,自定义层业务层错误处理函数,支持多种外部url接口
# 使用方法 App.vue代码如下
``` vue
```
# 根目录创建apis文件夹,用来放置接口文件
# 以apis文件的index.js为例,代码如下
```javascript
import { request } from '@/utils/request';
/**
* 首页商品列表接口
*/
export const goodsPageApi = (data) =>
request({
api: '/api/goodsPage',
method:'post',
header:{'X-Custom-Header': 'custom-value'}, //支持自定义请求header,这里的header会替换qpp.vue中的全局header
data,
});
/**
* 首页商品列表接口 post的formData形式
*/
export const goodsApi = (data) =>
request({
api: '/api/goodsPage',
method:'post',
formData:true,
data
});
/**
* 首页商品列表接口 post的json形式
*/
export const goodsJsonApi = (data) =>
request({
api: '/api/goodsPage',
method:'post',
data
});
/**
* 首页公示公告列表接口 get
*/
export const newsApi = () =>
request({
api: "/api/listIndex",
});
/**
* 外部接口 get 不需要鉴权auth设置为false
*/
export const mapApi = () =>
request({
url:getApp().globalData?.baiduUrl, // 示例url
api: "/api/listIndex",
auth:false
});
```
# 在index.vue中使用 (vue3写法)
```vue
```
# 在index.vue中使用 (vue2写法)
```vue
```
```json
"pages": [
{
"path": "pages/login/login",
"style": {
"navigationBarTitleText": "登录",
"leftWindow": false,
"topWindow": false
},
"isMenu": false //不是菜单
}, {
"path": "pages/error/error",
"style": {
"navigationBarTitleText": "404"
},
"isMenu": false //不是菜单
}, {
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "首页"
},
"icon": "index" //阿里巴巴矢量图复制svg代码,不要直接下载svg,否则无法修改颜色,放在static/svg下,修改文件名为icon的值,就可以使用了
}, {
"path": "pages/setting/role-management",
"style": {
"navigationBarTitleText": "角色管理"
},
"parentMenu": "系统管理", // 父菜单的名称
"parentPath": "pages/setting", // 父菜单的路径(截取子菜单的路径部分就行,不可与子菜单路一样)
"icon": "setting",
"buttons": [{ // 页面的按钮,用来控制按钮权限,不需要按钮权限的话,去掉就行
"label": "增加",
"value": "role_add"
}, {
"label": "删除",
"value": "role_del"
}]
},
{
"path": "pages/detail/detail",
"style": {
"navigationBarTitleText": "详情页"
},
"showMenu": false // 是否显示在左侧菜单栏
},
{
"path": "pages/setting/user",
"style": {
"navigationBarTitleText": "人员管理"
},
"parentMenu": "系统管理",
"parentPath": "pages/setting",
"icon": "setting"
},
{
"path" : "pages/weburl/weburl",
"style" :
{
"navigationBarTitleText" : "外部链接"
},
"webUrl":"http://www.baidu.com", // 外部链接的url
"icon": "map"
}
],
```
# 如果插件对您有一点帮助,请在码云给个star[码云地址](https://gitee.com/yongqiang0621/yq-uni-admin),感谢支持!