Vue 后台模板 [Vue admin] SanJi Boot Admin Iview
导读:
很久没有写文章了,最近一直在忙,之前一直想着可以把SanJi Boot Security项目中的页面使用 Vue+webpack 进行重写,前几天算是阶段性的完成了这个计划,后期会随着SanJi Boot 的模块不断增多 对其进行对应的升级与扩展
简介:
项目源码已托管到码云上
使用技术:
webpack + Vue + Vue Router + iviewUI
实现了什么功能:
基于token进行登陆时的认证 支持跨域 需要后台配合
修改 config/index.js 文件
const path = require('path')module.exports = {dev: {// PathsassetsSubDirectory: 'static',assetsPublicPath: '/',proxyTable: { '/api':{target:'http://localhost:8089/api',changeOrigin:true,pathRewrite:{'^/api': ''}}}...}
}
自定义 axios src/api/http.js 文件
import router from '../router'
import axios from 'axios'
import bus from '../bus'// axios 配置
axios.defaults.timeout = 30000;axios.interceptors.request.use(config => {if (bus.state.token) { // 判断是否存在token,如果存在的话,则每个http header都加上tokenconfig.headers.Authorization = `${bus.state.token}`;}return config;},err => {return Promise.reject(err);});// http response 拦截器
axios.interceptors.response.use(response => {return response;},error => {if (error.response) {switch (error.response.status) {case 401:// 返回 401 清除token信息并跳转到登录页面bus.state.token=undefined;router.replace({path: 'login',query: {redirect: router.currentRoute.fullPath}})}}return Promise.reject(error.response.data) // 返回接口返回的错误信息});
export default axios;
基于Vue Router 在进入页面前进行权限的前端认证
编写 src/router/index.js 文件
import Vue from 'vue'
import Router from 'vue-router'
import bus from '../bus'Vue.use(Router)//baseconst Index = resolve => require(['../views/Index'], resolve)const Login = resolve => require(['../views/Login'], resolve)const Home = resolve => require(['../views/demo/Home'], resolve)const Forbidden = resolve => require(['../views/demo/403'], resolve)const NotFound = resolve => require(['../views/demo/NotFound'], resolve)const Icon = resolve => require(['../views/demo/Icon'], resolve)const Demo = resolve => require(['../views/demo/Demo'], resolve)// sysconst UserManager = resolve => require(['../views/sys/User'], resolve)const RoleManager = resolve => require(['../views/sys/Role'], resolve)const router = new Router({routes: [{path: '/login',name: 'login',component: Login},{path: '/',name: 'index',component: Index,meta: {requireAuth: true, // 添加该字段,表示进入这个路由是需要登录的},children: [{path: '//',name: '首页',component: Home,meta: {requireAuth: true, // 添加该字段,表示进入这个路由是需要登录的},},{path: '/demo',name: 'demo',component: Demo,meta: {requireAuth: true, // 添加该字段,表示进入这个路由是需要登录的},}, {path: '/icon',name: 'icon',component: Icon,meta: {requireAuth: true, // 添加该字段,表示进入这个路由是需要登录的},},{path: '/sys/user',name: '用戶管理',component: UserManager,meta: {requireAuth: true, // 添加该字段,表示进入这个路由是需要登录的permissions:'sys-user'}},{path: '/sys/role',name: '角色管理',component: RoleManager,meta: {requireAuth: true, // 添加该字段,表示进入这个路由是需要登录的permissions:'sys-role'}},{path: '/403',name: '403',component: Forbidden,},{path: '/*',name: '404',component: NotFound,meta: {requireAuth: true, // 添加该字段,表示进入这个路由是需要登录的}}]}]
});router.beforeEach((to, from, next) => {if (to.path === "/logout") {bus.state.token = undefined;next({path: '/login'})}else{bus.state.menu_title = to.name;if (to.meta.requireAuth) { // 判断该路由是否需要登录权限// console.log('token:',bus.state.token!=null,bus.state.token,)if (bus.state.token!="undefined"&&bus.state.token) { // 通过vuex state获取当前的token是否存在if(to.meta.permissions){if(bus.action.hasPermissions(bus,to.meta.permissions)){next();}else{bus.state.menu_title = '403'next('/403');}}else{next();}} else {next({path: '/login',query: {redirect: to.fullPath} // 将跳转的路由path作为参数,登录成功后跳转到该路由})}} else {next();}}
})export default router;
后台界面主框架 material design 风格
基于material_admin 实现前端界面响应式设计 支持快速切换后台界面主框架
<Index :current_system="current_system" :system_list="system_list" :user="user" :user_menus="user_menus":menus="menus" :menu_title="bus.state.menu_title"@click_sys_switch="sys_switch" @click_search="search" @open_tab="open_tab"><transition name="slide-left"><router-view></router-view></transition></Index>
目前有哪些功能模块:
用户管理
角色管理
demo表格+Icon图标
界面截图:
登陆页面
用户管理
角色管理
icon
后记
项目已托管 码云
需要配合 sanji-boot-security 使用
学习资料
快速上手 webpack+vue - vue cli 起手式
Vue 后台模板 [Vue admin] SanJi Boot Admin Iview相关推荐
- Vue后台模板:PanjiaChen
一.模板下载 简洁版:https://github.com/PanJiaChen/vue-admin-template 加强版:https://github.com/PanJiaChen/vue-el ...
- SpringBoot + Vue 用户登入token 之租房管理系统后台 模板
SpringBoot 项目构建:SpringBoot + MySQL8 + MyBatis-Plus + Redis +定时任务框架(elastic-job) + Spring Security + ...
- Springboot 系列(十七)迅速使用 Spring Boot Admin 监控你的 Spring Boot 程序
1. Spring Boot Admin 是什么 Spring Boot Admin 是由 codecentric 组织开发的开源项目,使用 Spring Boot Admin 可以管理和监控你的 S ...
- Springboot 系列(十七)迅速使用 Spring Boot Admin 监控你的 Spring Boot 程序,支持异常邮件通知
点赞再看,动力无限.Hello world : ) 微信搜「 程序猿阿朗 」. 本文 Github.com/niumoo/JavaNotes 和 未读代码博客 已经收录,有很多知识点和系列文章. 1. ...
- Spring Boot Admin 2 值得了解的新变化
6.19号,spring团队发布了期待已久的 Spring Cloud Finchley.RELEASE 版本. 期间Spring Boot Admin 也发布了 2.0.1 兼容它,我在升级pig ...
- Spring Boot Admin Reference Guide
2019独角兽企业重金招聘Python工程师标准>>> Spring Boot Admin Reference Guide Johannes Edmeier@joshisteVers ...
- 用Spring Boot Admin来监控我们的微服务
[转载请注明出处]:https://blog.csdn.net/huahao1989/article/details/108039738 1.概述 Spring Boot Admin是一个Web应用程 ...
- Spring Boot Admin的使用
文章目录 配置Admin Server 配置admin client 配置安全主键 Hazelcast集群 Spring Boot Admin的使用 前面的文章我们讲了Spring Boot的Actu ...
- Spring Boot Admin –用于管理Spring Boot应用程序的Admin UI
作为微服务开发的一部分,我们许多人都将Spring Boot与Spring Cloud功能一起使用. 在微服务领域,我们将有许多Spring Boot应用程序将在相同/不同的主机上运行. 如果将Spr ...
最新文章
- Linux内核中关于定时器Timer的应用
- 从对比学习(Contrastive Learning)到对比聚类(Contrastive Clustering)
- 如何在实际中计划和执行一个机器学习和深度学习项目
- JUnit 5 – 早期试用体验 – 第2篇
- 浏览器与服务器通信技术——Ajax详解
- OpenGL定向光的投影阴影
- python3.7下载教程视频_视频 | 我选择Python3.7来学习!顺便把教程分享给大家
- 装箱(Boxing)和拆箱(Unboxing)
- 安卓机+数据线,带你开发部署人脸识别应用
- 9个最常用的python深度学习库
- VMware中不能使用ifconfig教程——亲测有效
- 8086、80286、80386
- 【数据分析案例】如何定义你的“亲密关系”
- 微信内置浏览器缓存如何避免,如何防止微信缓存
- html简单图片轮播的实现
- php转换透明ico,php在线生成ico文件的代码_PHP教程
- EXCEL常用操作-----自动编号
- fedora34 不显示桌面图标
- Python实战:淘宝自动抢购
- 项目管理10大知识领域及5大过程
热门文章
- 测试Hibernate连接数据库的测试代码
- css绘制卡券优惠券_css3 绘制优惠券
- 如何改变computed执行_企业管理|执行力差的企业一般有这几个点没做好
- Android之自定义横向滚动菜单
- Swift中@IBDesignable/@IBInspectable的使用
- fastdfs上传文件_SpringBoot+FastDFS搭建分布式文件系统
- c++无穷大怎么表示_压缩机接线柱烧坏怎么处理?
- Windows下安装Python扩展模块提示“Unable to find vcvarsall.bat”的问题(转载)
- for循环console输出结果的问题
- [LeetCode] Remove Element