第一步:找到 .env.development文件做如下修改

# just a flag
ENV = 'development'# base api
VUE_APP_BASE_API = 'api'

第二步:找到 :vue.config.js,配置跨域,关闭mock,必须做!!!

target换成自己的后端地址

//配置跨域
proxy: { '/api': {target: 'http://118.31.228.113:5730/',ws: true,changeOrigin: true,//允许跨域pathRewrite: {'^/api': ''   //请求的时候使用这个api就可以}}},//这行把mock禁用// before: require('./mock/mock-server.js')

第三步:在这个文件里面,把响应状态码20000改成200(前后端自己约定)

注意:做完这些其实就可以登录了,修改接口在api文件里面,如果要修改登录接口和获取信息接口,

接下来做前端权限管理,路由过滤:

首先在store下面的modules下面新建文件permission.js

复制到里面

import { asyncRoutes, constantRoutes } from '@/router'/*** Use meta.role to determine if the current user has permission* @param roles* @param route*/
function hasPermission(roles, route) {if (route.meta && route.meta.role) {return roles.some(role => route.meta.role.includes(role))} else {return true}
}/*** Filter asynchronous routing tables by recursion* @param routes asyncRoutes* @param roles*/
export function filterAsyncRoutes(routes, roles) {const res = []routes.forEach(route => {const tmp = { ...route }if (hasPermission(roles, tmp)) {if (tmp.children) {tmp.children = filterAsyncRoutes(tmp.children, roles)}res.push(tmp)}})return res;
}const state = {routes: [],addRoutes: []
}const mutations = {SET_ROUTES: (state, routes) => {state.addRoutes = routesstate.routes = constantRoutes.concat(routes)}
}const actions = {generateRoutes({ commit }, roles) {return new Promise(resolve => {let accessedRoutesif (roles.includes('ADMIN')) {//路由是否有admin,有直接全部显示accessedRoutes = asyncRoutes || []} else {//accessedRoutes这个就是当前角色可见的动态路由accessedRoutes = filterAsyncRoutes(asyncRoutes, roles)}commit('SET_ROUTES', accessedRoutes)resolve(accessedRoutes)})}
}export default {namespaced: true,state,mutations,actions
}

然后修改store下面的index.js和getters.js

index.js:

import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
import app from './modules/app'
import settings from './modules/settings'
import user from './modules/user'
//这里
import permission from './modules/permission'Vue.use(Vuex)const store = new Vuex.Store({modules: {app,settings,user,
//这里permission},getters
})export default store

getters.js:

const getters = {sidebar: state => state.app.sidebar,device: state => state.app.device,token: state => state.user.token,avatar: state => state.user.avatar,name: state => state.user.name,permission_routes: state=>state.permission.routes,
}
export default getters

然后找到和main平级的 permission.js

修改为如下,就修改了tey{}里面的内容

import router from './router'
import store from './store'
import { Message } from 'element-ui'
import NProgress from 'nprogress' // progress bar
import 'nprogress/nprogress.css' // progress bar style
import { getToken } from '@/utils/auth' // get token from cookie
import getPageTitle from '@/utils/get-page-title'NProgress.configure({ showSpinner: false }) // NProgress Configurationconst whiteList = ['/login'] // no redirect whitelistrouter.beforeEach(async (to, from, next) => {// start progress barNProgress.start()// set page titledocument.title = getPageTitle(to.meta.title)// determine whether the user has logged inconst hasToken = getToken()if (hasToken) {if (to.path === '/login') {// if is logged in, redirect to the home pagenext({ path: '/' })NProgress.done()} else {const hasGetUserInfo = store.getters.nameif (hasGetUserInfo) {next()} else {try {// get user info//从请求中获取到角色const val = await store.dispatch('user/getInfo')console.log(val.roles)// 把当前登录用户信息放到sessionStoragesessionStorage.setItem("roles", JSON.stringify(val) );//这里从permission/generateRoutes拿到路由const accessRoutes = await store.dispatch('permission/generateRoutes', val.roles)next()//刷新路由router.options.routes = store.getters.permission_routes// dynamically add accessible routesrouter.addRoutes(accessRoutes)} catch (error) {// remove token and go to login page to re-loginawait store.dispatch('user/resetToken')Message.error(error || 'Has Error')next(`/login?redirect=${to.path}`)NProgress.done()}}}} else {/* has no token*/if (whiteList.indexOf(to.path) !== -1) {// in the free login whitelist, go directlynext()} else {// other pages that do not have permission to access are redirected to the login page.next(`/login?redirect=${to.path}`)NProgress.done()}}
})router.afterEach(() => {// finish progress barNProgress.done()
})

然后就是添加异步路由了,,router下面的index.js添加asyncRoutes ,和constantRoutes平级

export const asyncRoutes = [{path: 'external-link',component: Layout,children: [{path: 'https://panjiachen.github.io/vue-element-admin-site/#/',//重点:rolemeta: { title: 'External Link', icon: 'link', role: ['admin'] },}]},
]

这就大功告成了,不懂得可以留言,一 一回复

vue-admin-template,连接自己后台,二次开发必看相关推荐

  1. ccflow表结构与运行机制(二次开发必看)

    驰骋工作流引擎,工作流程管理系统,表结构与运行机制. 前言: 1, ccflow 有自动修复数据表功能, 所以表的字段的变化不需要用户干预由ccflow自动完成. 所以如果你看到sql的错误,在执行一 ...

  2. destoon php os,destoon运行流程二次开发必看

    destoon系统采用B/S架构,MVC模式开发.融入了模型化.模板.缓存.AJAX.SEO等前沿技术 下面是运行流程,虽然版本有更新但大体上是没有变化太多的//代码首先包含common.inc.ph ...

  3. Vue Admin Template关闭eslint校验,lintOnSave:false设置无效解决办法

    目录 第一步:lintOnSave:false 第二步:修改package.json中的配置 最后一步: 使用Vue Admin Template 二次开发是一件非常愉悦的事情,可是它里面的eslin ...

  4. Vue全家桶 - 电商后台管理系统项目开发实录(详)

    目录 1. 项目概述 1.1 电商项目基本业务概述 1.2 电商后台管理系统的功能 1.3 电商后台管理系统的开发模式(前.后端分离) 2. 项目初始化 2.1 前端项目初始化步骤 码云相关操作 2. ...

  5. Vue全家桶-电商后台管理系统项目开发

    项目效果展示: 1. 项目概述 1.1 电商项目基本业务概述 一般情况下客户使用的业务服务包括:PC端,小程序,移动web,移动app. 管理员使用的业务服务:PC后台管理端: PC后台管理端的功能 ...

  6. weiphp看版本_序言 · weiphp5.0二次开发手册 · 看云

    WeiPHP5.0,公众号与小程序结合的最佳开发框架 WeiPHP5.0是一个开源,高效,简洁的移动应用系统,它实现一个后台同时管理和运营多个客户端(公众号,微信小程序,后续将支持支付宝小程序,百度小 ...

  7. 前端开发必看 | Vue在前端市场这么火,它到底是什么?

    混迹前端市场的大家可能都知道,Vue可以说是一匹黑马,目前github star数已居第一位!前端开发者对Vue使用频率也越来越高. 作为由华人程序员尤雨溪开发的前端构架,它的出身给国人带来了巨大的荣 ...

  8. 五分钟学会 Spring Boot Admin:微服务应用监控(小白必看,一看就会教程)

    Spring Boot Admin:微服务应用监控 Spring Boot Admin 简介 监控信息演示 结合注册中心使用 功能演示 添加登录认证 文末福利 Spring Boot Admin 可以 ...

  9. vue admin template开启顶部导航

    官网上没有太多的说明 废话不多说,直接上代码 1.复制vue element admin必要组件 AppMain.vue覆盖一下 2.修改一些文件 /src/store/index.js /src/s ...

最新文章

  1. ARM NEON指令集优化理论与实践
  2. Nature: 拟南芥微生物组功能研究1培养组学—高通量细菌分离培养鉴定
  3. 扩增子图表解读6韦恩图:比较组间共有和特有OTU或分类单元
  4. 多少血的教训,才能换来对自动驾驶的严格限定、真实了解和正确使用?
  5. SQL 中 not in 查询不到数据问题
  6. 文本摘要提取_了解自动文本摘要-1:提取方法
  7. 线程间的协作(2)——生产者与消费者模式
  8. (转载)20分钟读懂程序集
  9. 华为鸿蒙系统学习笔记9-华为鸿蒙OS与LiteOS对比
  10. 动手学习数据分析(四)——数据可视化
  11. PGM:部分有向模型之条件随机场与链图模型
  12. 华为路由器配置子卡端口速率
  13. 区块链会计案例_区块链会计行业 区块链会计应用案例
  14. 关于若依管理系统配置多数据源的原理分析
  15. linux数据异地备份,linux异地实时备份
  16. Mybatis 01
  17. 手机隐藏ip地址的方法简单设置
  18. php导出excel列数太多,PhpSpreadsheet导出Excel超过26列解决办法
  19. 适用于计算机/手机的常用音乐播放器推荐
  20. No safe place 无处容身 | 经济学人中英双语对照精读笔记

热门文章

  1. 关于微彩华创 - 关于
  2. 服务器中电池可以维修吗,电池修复到底有没有效果?一个维修工的遭遇揭开真相!...
  3. 用计算机函数查找,计算机二级Office:Excel-lookup,vlookup,hlookup函数
  4. status和state
  5. 网格化覆盖·智能化管控·数字化通行|公租房智能门锁有一套!
  6. svn日志中不能比较word文档
  7. P1343 地震逃生
  8. MySQL-连表查询详
  9. 数据链路层协议 广播链路 CSMA/CD协议
  10. 技术人的出路 经典转贴