美文网首页
2020-05-28 vue-admin-ui总结

2020-05-28 vue-admin-ui总结

作者: sll_ | 来源:发表于2020-05-28 17:36 被阅读0次

    使用vue-element开发后台管理系统,简单记录一下,element-admin的文档写的已经很仔细了,一定要好好阅读文档,使用的是admin-template这个基础模板,已经可以满足开发需求,主要是权限控制那部分,也是页面级权限控制,前端写的页面权限表,所以就和elementadmin框架思想实现思路一致了。仔细阅读该框架,代码真心优美流畅,学到很多新姿势技巧,不愧是vue的top1后台管理框架,多多向大神学习。

    cd 路径 checkout permission-control分支

    整体思路是登录后token保存到cookie,然后拿token获取用户对应的权限维护到vuex里,再动态筛选用户可以加载的权限页面,addRoutes挂载动态路由,左侧的siderbar也是根据vuex内容动态管理的导航栏。在login页面只做获取token操作,并没有顺带再去请求useinfo,相关操作都是在beforeEach拦截器里进行判断的(es6 await写法)
    hasPermission这个方法应该默认返回false
    plop-templates 创建空模板,npm run new
    重点学习了directives的用法,vue用来做按钮级的权限控制方便,强大

    vue.config.js

    这里主要修改proxy的配置项,来进行代理

      devServer: {
        port: port,
        open: true,
        proxy:{
          [process.env.VUE_APP_BASE_API]:{
            target: 'http://域名/', // 后台接口域名
            changeOrigin: true,
            pathRewrite: {
              ['^' + process.env.VUE_APP_BASE_API]: ''
            }
          }
        },
        overlay: {
          warnings: false,
          errors: true
        },
        // before: require('./mock/mock-server.js')
      },
    .env.production
    
    # just a flag
    ENV = 'production'
    
    # base api
    # VUE_APP_BASE_API = '/prod-api'
    VUE_APP_BASE_API = ''
    

    这里要注意,修改完之后,最好,重新启动一次项目

    正常启动之后,因为关闭了mock,是无法直接登录,进去的,所以我们先掉登录的接口
    找到src/api/user.js改成自己的接口地址

    export function login(data) {
      return request({
        url: '/user/login',
        method: 'post',
        data
      })
    }
    

    接着找到utils/request.js

    这里判断了,token存在的话,将其直接添加到请求头中,当然这里如果在做加密更好

    if (store.getters.token) {
        // let each request carry token
        // ['X-Token'] is a custom headers key
        // please modify it according to the actual situation
        config.headers['X-Token'] = getToken()
    }
    request.js中还要将判断的状态码改成真实后端返回的成功状态码,一般都是200
        if (res.code !== 200) {
          Message({
            message: res.message || 'Error',
            type: 'error',
            duration: 5 * 1000
          })
    

    最后找到store/modules/user.js

    这里是登录的actions,可以看到登录请求回来的是token,然后讲token提交到了SET_TOKEN,后端返回的token如果在data下,则不需要修改,要是数据结构有变化,再进行相应的修改

      login({ commit }, userInfo) {
        const { username, password } = userInfo
        return new Promise((resolve, reject) => {
          login({ username: username.trim(), password: password }).then(response => {
            const { data } = response
            commit('SET_TOKEN', data.token)
            setToken(data.token)
            resolve()
          }).catch(error => {
            reject(error)
          })
        })
      },
    以上配置都没有问题,那么登录接口就基本没问题了,不过此时还进不去主页。
    

    这里请求完登录之后,再跳转首页的时候,请求了info接口,因此,还需要一个用户信息的接口,这里只需要讲api/user.js中的user/info接口改成自己的便可,注意前后端字段要对上,如此,便能进入首页。
    3.修改页面设置项
    找到src/views/settings.js

    module.exports = {
      title: 'Vue Element Admin', //网站标题
      showSettings: true,//是否展示页面设置
      tagsView: true,//是否展示标签页
      fixedHeader: false,//是否固定头部
      sidebarLogo: false,//是否在左侧导航展示logo
      supportPinyinSearch: true,
      errorLog: 'production'
    }
    

    相关文章

      网友评论

          本文标题:2020-05-28 vue-admin-ui总结

          本文链接:https://www.haomeiwen.com/subject/biiaahtx.html