1. vue-element-admin 介绍
- vue-element-admin 是一个后台前端解决方案,它基于 Vue.js 和 Element-UI 实现,它使用了最新的前端技术栈,内置了 i18 国际化解决方案,动态路由,权限验证,提炼了典型的业务模型,提供了丰富的功能组件,它可以帮助你快速搭建企业级中后台产品原型,内部集成了PC项目中很多的业务场景和功能, 尤其在当下SPA的趋势下,我们可以从中获得很多成熟的解决方案。
官网地址
线上demo地址
2. vue-admin-template 介绍
- vue-admin-template (在线运行效果) ------(官方文档)
vue-admin-template
是在vue-element-admin
的基础上做了大量的删减,只保留了后台管理系统最关键的框架部分,非常适合我们在此基础上做二次开发- 市面上使用vue技术栈开发的PC后台管理项目很大一部分都是基于
vue-admin-template
进行的二次开发,我们的人资项目也基于它来实现
。
3. 下载运行vue-admin-template (官方文档)
$ git clone https://gitee.com/panjiachen/vue-admin-template.git # 从码云拉取代码
$ cd vue-admin-template #切换到具体目录下
$ npm install #安装所有依赖
$ npm run dev #启动开发调试模式 查看package.json文件的scripts可知晓启动命令
4. 认识vue-admin-template 目录结构
├── build # 构建相关
├── mock # 项目mock 模拟数据,在接口服务器没有就绪时,临时充当接口
├── public # 静态资源
│ ├── favicon.ico # favicon图标
│ └── index.html # html模板
├── src # 源代码
│ ├── api # 所有请求
│ ├── assets # 主题 字体等静态资源 不会参与打包 直接直出
│ ├── components # 全局公用组件 和业务不相关 上传组件
│ ├── icons # 项目所有 svg icons
│ ├── layout # 全局 layout 负责搭建项目的整体架子结构 html结构
│ ├── router # 路由
│ ├── store # 全局 store管理 vuex管理数据的位置 模块化开发 全局getters
│ ├── styles # 全局样式
│ ├── utils # 全局公用方法 request.js
│ ├── vendor # 公用vendor
│ ├── views # views 所有页面 路由级别的组件
│ ├── App.vue # 入口页面 根组件
│ ├── main.js # 入口文件 加载组件 初始化等
│ └── permission.js # 权限管理
│ └── settings.js # 配置文件
├── tests # 测试
├── .env.xxx # 环境变量配置
├── .eslintignore # eslint 忽略文件
├── .eslintrc.js # eslint 配置项
├── .gitignore # git 忽略文件
├── .travis.yml # 自动化CI配置
├── .babel.config.js # babel-loader 配置
├── jest.config.js # 测试配置
├── vue.config.js # vue-cli 配置
├── postcss.config.js # postcss 配置
└── package.json # package.json
- src目录:在做项目时,最关注的就是
src
目录, 里面是所有的源代码和资源 - 非src目录:一般都是对项目的环境和工具的配置
5. 认识src目录熟悉项目的运行机制
├── src # 源代码
│ ├── api # 所有请求
│ ├── assets # 主题 字体等静态资源
│ ├── components # 全局公用组件
│ ├── icons # 项目所有 svg icons
│ ├── layout # 全局 layout
│ ├── router # 路由
│ ├── store # 全局 store管理
│ ├── styles # 全局样式
│ ├── utils # 全局公用方法
│ ├── vendor # 公用vendor
│ ├── views # views 所有页面
│ ├── App.vue # 入口页面
│ ├── main.js # 入口文件 加载组件 初始化等
│ └── permission.js # 权限管理
│ └── settings.js # 配置文件
5.1 整体运行方式
6. 重点文件
6.1 main.js
- main.js是整个项目的入口文件(webpack中学习的入口文件
6.2 App.vue
- App.vue是根组件
6.3 permission.js
- permission.js 是控制页面登录权限的文件,在main.js中引入了它
- 此处的代码没有经历构建过程会很难理解, 所以先将此处的代码进行注释,等我们构建权限功能时,再从0到1进行构建。请直接注释代码即可
6.4 settings.js
-
对于一些项目信息的配置,里面有三个属性
title
(项目名称),fixedHeader
(固定头部),sidebarLogo
(显示左侧菜单logo) -
settings.js
中的文件在其他的位置会引用到,我们不用动它
6.5 Vuex
- 当前的Vuex结构采用了模块形式进行管理共享状态,其架构如下
其中app.js模块和settings.js模块,功能已经完备,不需要再进行修改。 user.js模块是我们后期需要重点开发的内容,所以这里我们将user.js里面的内容删除,并且导出一个默认配置
store/modules/user.js
export default {
namespaced: true,
state: {},
mutations: {},
actions: {}
}
6.6 scss 和 icons
- 该项目还使用了scss作为css的扩展语言,在**
styles
**目录下,我们可以发现scss的相关文件,相关用法 我们会在下一小节进行详细讲解 - 图标字体使用,icons的结构如下
7. 重置代码
- 这里为了后续更清楚的书写代码,我们将原有代码注释掉,换成如下代码
utils/request.js
// 导出一个axios的实例 而且这个实例要有请求拦截器 响应拦截器
import axios from 'axios'
const service = axios.create() // 创建一个axios的实例
// service.interceptors.request.use() // 请求拦截器
// service.interceptors.response.use() // 响应拦截器
export default service // 导出axios实例
- 移除mock:由于我们本项目有配套的后端接口,所以不需要用到模拟数据,这里将mock部分删除掉。
(1).main.js中删除(或注释)mock部分的功能
(2) 删除**src/mock
**文件夹
8. 小结
- 所有vue项目的关键文件都基本相同,可以理解为都是用vue脚手架工具创建出来的;
- vue-admin-template额外做了一些配置,我们可以直接使用;
9. 准备后端服务器
- 安装mongodb
- 后端服务-Nodejs
- 启动后端服务,文件第一次启动要用 npm run start ( 后续运行npm run serve)
9.1 测试接口服务器
- 用postman工具,测试接口服务器的功能
- localhost:3000/api/sys/login
测试账号:13800000002 密码: 123456