permission.js 682 B

1234567891011121314151617181920212223242526272829
  1. import store from '@/store'
  2. export default{
  3. inserted(el, binding, vnode) {
  4. const { value } = binding
  5. const perms = store.getters && store.getters.perms
  6. if (value && value instanceof Array && value.length > 0) {
  7. const permissions = value
  8. var hasPermission = false
  9. if (perms.indexOf('*') >= 0) {
  10. hasPermission = true
  11. } else {
  12. hasPermission = perms.some(perm => {
  13. return permissions.includes(perm)
  14. })
  15. }
  16. if (!hasPermission) {
  17. el.parentNode && el.parentNode.removeChild(el)
  18. }
  19. } else {
  20. throw new Error(`need perms! Like v-permission="['GET /aaa','POST /bbb']"`)
  21. }
  22. }
  23. }