permission.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. export 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 [permission, action] = permissions.split('.')
  22. const permissionList = _this.$store.getters.roles.permissions
  23. return permissionList.find((val) => {
  24. return val.permissionId === permission
  25. }).actionList.findIndex((val) => {
  26. return val === action
  27. }) > -1
  28. }
  29. }
  30. }
  31. })
  32. !Vue.prototype.$enum && Object.defineProperties(Vue.prototype, {
  33. $enum: {
  34. get () {
  35. // const _this = this;
  36. return (val) => {
  37. let result = PERMISSION_ENUM
  38. val && val.split('.').forEach(v => {
  39. result = result && result[v] || null
  40. })
  41. return result
  42. }
  43. }
  44. }
  45. })
  46. }
  47. export default plugin