基于 vue + Element-ui 开发的后台管理系统

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/csdn_yudong/article/details/85250412

基于 vue + Element-ui 开发的后台管理系统

项目演示地址:https://git.io/fp9UM
项目仓库地址:https://github.com/Neveryu/vue-cms

引文

搞一个后台管理系统,应该是每个公司都会有的需求。基于后端(JAVA、PHP、GO)的 MVC 模式的后台管理系统中,一般前端使用的技术栈都是 jQuery + Bootstrap。

因为现在都是前后端分离,所以搞一个基于 Vue + ElementUI 的纯前端的后台管理系统,通过接口与后端交互。

思考

纯前端搞一个后台管理系统,如果不是 SPA 的话,可能还确实挺麻烦的:
1、全局状态、登录状态、用户信息之类的数据如何维护
2、菜单、路由权限如何设计管理
3、模块、组件如何划分以及复用
4、代码如何管理维护


所以,SPA 还是挺好的。

快速上手

# 克隆项目
git clone https://github.com/Neveryu/vue-cms.git

# 进入项目目录
cd vue-cms

# install dependencies
npm install

# serve with hot reload at localhost:8080
npm start

完成上面这套操作,就可以在浏览器中输入:localhost:8080 看到项目了。


项目结构介绍

在这里插入图片描述
项目的外层目录文件,就没啥好说的了,本身也是用 vue-cli 来构建的,大家应该都清楚。我们主要来看一下 src 里面的内容。
在这里插入图片描述

引入 ElementUI

npm i element-ui -S

Element UI 作为我们主要的 UI 组件库,还是推荐使用 完整引入 的方式。
然后,在 main.js 中:

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

Vue.use(ElementUI, {
  size: 'medium'
})

👉 引入示例

登录功能设计

  • 自定义输入验证校验规则

ElementUI 本身有提供表单的验证功能,但是验证规则有限,如果你想更丰富,更适合自己场景的验证规则,可以使用 自定义校验规则

// username 验证规则
const validateUsername = (rule, value, callback) => {
	if (!isValidUsername(value)) {
	  // 如果callback是一个error对象,则验证不通过
	  callback(new Error('请输入正确的用户名'))
	} else {
	  callback()
	}
}
// 在 rules 中对要验证的字段配置 validator
rules: {
 username: [
    { required: true, message: '请输入账号', trigger: 'blur' },
    { required: true, trigger: 'blur', validator: validateUsername },
    { required: true, trigger: 'change', validator: validateUsername }
  ],
  pwd: [
    { required: true, message: '请输入密码', trigger: 'blur' },
    { required: true, trigger: 'blur', validator: validatePwd },
    { required: true, trigger: 'change', validator: validatePwd }
  ]
}
  • 登录功能以及权限

提交用户输入的登录信息,调用接口要做验证。验证成功之后:
1、localstorage 会存储登录成功后下发的 token (后端会验证token的时效性)
2、登录成功后会跳到系统的主页
3、每一次路由跳转之前都会验证是否是登录态

  • 权限以及菜单栏

1,permission.js 的功能是全局的权限校验,每一次路由跳转都会触发这里面的全局路由前置钩子函数,这个是非常有必要的。
2、对于不同权限的用户对应不同的菜单来说,在登录之后,获取到用户在这个系统中所属的角色,然后,将 【基础菜单】 和 【角色所属菜单】做一个叠加,生成登录用户的菜单栏。


项目演示地址:https://git.io/fp9UM
项目仓库地址:https://github.com/Neveryu/vue-cms

展开阅读全文

没有更多推荐了,返回首页