踩坑记录

1.vue的单选框组的label需要是数字才可以和model双向绑定

      
        学生
        管理员
      

2.关于不同角色有不同的路由这个设定。

    首先在Login.vue中登录验证成功之后将对应的role写进session里面方便后面调用。

                sessionStorage.setItem('role','admin')

    然后在route.js里面设置路由的meta值

    {
      path: '/student',
      component: () => import('./views/Home.vue'),
      name: '信息查询与考试报名',
      hidden: true,
      meta: {role: ['student']},
      children: [
        {path: '/student1', component: () => import('./views/manager/qingjia.vue'), name: '请假审核'},
      ]
    },

最后是Home.vue

this.$router.options.routes.forEach(function (item) {
        if(item.meta != undefined ){
          for(var r in item.meta.role){
            // console.log(r)
            if(item.meta.role[r] == sessionStorage.getItem('role')){
              item.hidden = false
              break
            }else{
              item.hidden = true
            }
          }
        }else{
          item.hidden = true
        }
      })

3.vue 通过attr取值为undefined

使用nextTick可以解决

          this.$nextTick(function () {
            if (this.editForm.sUrl !== '') {
              $('#image1').css('display', 'block')
              $('#img1').attr('src',res.sUrl)
              console.log($('#img1').attr('src'))
            }
          })

 

你可能感兴趣的:(踩坑记录)