permission.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. const PERMISSION_ENUM = {
  2. 'add': { key: 'add', label: '新增' },
  3. 'delete': { key: 'delete', label: '删除' },
  4. 'edit': { key: 'edit', label: '修改' },
  5. 'query': { key: 'query', label: '查询' },
  6. 'get': { key: 'get', label: '详情' },
  7. 'enable': { key: 'enable', label: '启用' },
  8. 'disable': { key: 'disable', label: '禁用' },
  9. 'import': { key: 'import', label: '导入' },
  10. 'export': { key: 'export', label: '导出' }
  11. }
  12. function plugin (Vue) {
  13. if (plugin.installed) {
  14. return
  15. }
  16. !Vue.prototype.$auth && Object.defineProperties(Vue.prototype, {
  17. $auth: {
  18. get () {
  19. const _this = this
  20. return (permissions) => {
  21. const permissionList = _this.$store.getters.roles.permissionList
  22. return permissionList.includes(permissions)
  23. }
  24. }
  25. }
  26. })
  27. !Vue.prototype.$enum && Object.defineProperties(Vue.prototype, {
  28. $enum: {
  29. get () {
  30. // const _this = this;
  31. return (val) => {
  32. let result = PERMISSION_ENUM
  33. val && val.split('.').forEach(v => {
  34. result = result && result[v] || null
  35. })
  36. return result
  37. }
  38. }
  39. }
  40. })
  41. }
  42. export default plugin