# vue-admin-template
**Repository Path**: jiekong/vue-admin-template
## Basic Information
- **Project Name**: vue-admin-template
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 2
- **Created**: 2019-10-28
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# vue-admin-template
vue轻量级后台管理系统基础模板
[在线预览](https://woai3c.github.io)
## 更新
### 2019.10.14 更新
* 修复窗口宽度过小不会收缩侧边栏的问题
* 新增:打开页面时,默认展开和路由对应的菜单栏
### 2019.8.19 修复BUG
`components/Index.vue` 文件第 31 行代码的 `v-show="isShowAsideTitle"` 会造成侧边栏收缩时二级菜单隐藏,目前已修复。
### 2019.7.24 更新
**增加页面进度条**
在页面跳转时增加进度条
### 2019.6.25 更新
**修复路由表冲突问题**
退出当前用户,换账号重新登陆时,上个账号和现在的账号路由表会有冲突的问题,解决办法是在退出登陆时重置路由表。
具体实现请查看 `router/index.js`、`Login.vue` 和 `Index.vue` 的退出登陆回调方法。
### 2019.6.18 更新
**优化动态添加路由功能**
以前的动态路由功能并不完善,首先要将所有的路由都添加到路由表里,然后根据后台返回的菜单栏数据来生成菜单。
导致的问题就是,虽然有页面在菜单栏上不显示,但由于已经添加到路由表里了,所以可以在地址栏上手动输入在菜单栏上不存在(但在路由表存在)的页面,进而可以越权访问。
现在除了必要的页面需要在一开始添加到路由表里,其他的页面都可以根据后台数据来自动生成。而且菜单栏上没有的页面,在地址栏上输入地址也是访问不了的。
另外,如果在未登陆时要访问某一指定页面,会重定向到登陆页,登陆成功后会自动跳到这个指定页面。
具体实现请看 `permission.js` 和 `util` 目录下的 `index.js` 文件
### 2019.3.14 更新
**增加404页面**
假如跳转到一个不存在的页面时会重定向到404页面
### 2019.3.8 更新
**增加面包屑功能**
用于展示当前页面的路径
**增加权限控制功能**
如果未登陆,访问所有页面都重定向到登陆页
### 2019.3.1 更新
**增加动态菜单栏功能**
`icon`使用的是`iview`组件的`icon`组件。
数据格式:
```js
// 左侧菜单栏数据
menuItems: [
{
name: 'Home', // 要跳转的路由名称 不是路径
size: 18, // icon大小 非必填
type: 'md-home', // icon类型 非必填
text: '主页' // 文本内容
},
{
text: '二级菜单',
type: 'ios-paper',
children: [
{
type: 'ios-grid',
name: 'T1',
text: '表格'
},
{
text: '三级菜单',
type: 'ios-paper',
children: [
{
type: 'ios-notifications-outline',
name: 'Msg',
text: '查看消息'
},
{
type: 'md-lock',
name: 'Password',
text: '修改密码'
},
{
type: 'md-person',
name: 'UserInfo',
text: '基本资料',
}
]
}
]
}
]
```
## 相关依赖
* [vue-router](https://router.vuejs.org/zh/)
* [iview](https://www.iviewui.com/docs/guide/install)
* [axios](https://www.kancloud.cn/yunye/axios/234845)
* [vuex](https://vuex.vuejs.org/zh/)
## 功能
#### 登录页
* 一周七天自动切换不同的壁纸(建议自己配置)
#### 标签栏
* 点击标签切换页面
* 刷新当前标签页
* 关闭其他标签/关闭所有标签
**注意:** 组件的名称和路由的名称一定要一致,例如 `Home.vue` 组件名称 `name: home`,则在路由文件中也要给它设置为 `name: home`,否则页面内容不能缓存
```js
// 在router文件中
{
path: 'home',
name: 'home',
component: () => import('../views/Home.vue')
}
// 在Home.vue中
export default {
name: 'home'
}
```
#### 侧边栏
* 伸展/收缩
* 页面宽度过小自动收缩
* 多级菜单(利用iView组件)
#### 用户相关
* 消息通知
* 用户头像
* 基本资料
#### 动态菜单栏
* 根据数据动态生成菜单
#### 面包屑
* 展示当前页面的路径
#### 权限控制
* 如果在未登陆的情况下访问指定页面 将会重定向到登陆页
#### 其它
* 利用`axios`拦截器 实现了`ajax`请求前展示`loading` 请求结束关闭`loading`
## 注意
* 源码可见 并且添加了必要的注释 可以自行更改
`Index`组件一般情况下只需要传数据就行 其他不用关注
市面上有大量的vue后台管理系统模板 但是功能都太丰富了 而且有很多组件用不上 所以写了这么一个最基础的 只有必要功能的模板
UI库使用的是`iView` 有大量的组件可用
### 子组件跳转到子组件
```
// xxx为你想跳转的子组件name
this.$parent.gotoPage('xxx')
```
### 路由传参
```
this.gotoPage('userinfo', {
id: id,
})
// 在userinfo组件里取参
this.$route.params.id
```
## 使用
#### 下载
```
git clone git@github.com:woai3c/vue-admin-template.git
cd vue-admin-template
npm i
```
#### 开发
```
npm run serve
```
#### 打包
````
npm run build
````
### 如果对你有帮助,请给个Star