btnPermission.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import store from '@/store'
  2. const permission = {
  3. inserted(el, binding, vnode) {
  4. // console.log(binding,'binding')
  5. /*el: 指令所绑定的元素,可以用来直接操作DOM。
  6. binding: 一个对象,包含指令的很多信息。
  7. vnode: Vue编译生成的虚拟节点。*/
  8. const { value } = binding
  9. // 在登录后就可以缓存当前用户的btn权限。
  10. // sessionStorage.setItem('ButtonPermissions',JSON.stringify(['role:add']))
  11. // 自定义指令的执行函数,,取到登录缓存的按钮权限数组,赋值给全局对象userMsg
  12. global.ButtonPermissions = store.state.user.perms
  13. // global.ButtonPermissions = JSON.parse(sessionStorage.getItem('ButtonPermissions'))
  14. if (global.ButtonPermissions && global.ButtonPermissions.indexOf(value) > 0) {
  15. el.style.display = 'block'
  16. }
  17. else{
  18. el.style.display = 'none'
  19. }
  20. console.log(global.ButtonPermissions.indexOf(value), el);
  21. }
  22. }
  23. // 全局注册自定义指令
  24. const install = function (Vue) {
  25. Vue.directive('permission', permission)
  26. }
  27. if (window.Vue) {
  28. window['permission'] = permission
  29. Vue.use(install); // eslint-disable-line
  30. }
  31. permission.install = install
  32. export default permission