permission.js 703 B

123456789101112131415161718192021222324252627282930
  1. import store from '@/store'
  2. function checkPermission(el, binding) {
  3. const { value } = binding
  4. const roles = store.getters && store.getters.roles
  5. if (value && value instanceof Array) {
  6. if (value.length > 0) {
  7. const permissionRoles = value
  8. const hasPermission = roles.some(role => {
  9. return permissionRoles.includes(role.roleCode)
  10. })
  11. if (!hasPermission) {
  12. el.parentNode && el.parentNode.removeChild(el)
  13. }
  14. }
  15. } else {
  16. throw new Error(`need roles! Like v-permission="['admin','editor']"`)
  17. }
  18. }
  19. export default {
  20. inserted(el, binding) {
  21. checkPermission(el, binding)
  22. },
  23. update(el, binding) {
  24. checkPermission(el, binding)
  25. }
  26. }