getters.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import store from '@/store/index'
  2. const getters = {
  3. sidebar: state => state.app.sidebar,
  4. size: state => state.app.size,
  5. device: state => state.app.device,
  6. visitedViews: state => state.tagsView.visitedViews,
  7. cachedViews: state => state.tagsView.cachedViews,
  8. currentUser: state => state.user,
  9. token: state => state.user.token,
  10. avatar: state => state.user.avatar,
  11. name: state => state.user.name,
  12. nickName: state => state.user.nickName,
  13. introduction: state => state.user.introduction,
  14. school: state => state.user.busiSchool?.first(),
  15. schoolName: (state, getters) => getters.school?.schoolName,
  16. firstClassName: state => state.user.busiSchool?.first()?.grade?.first()?.clazz?.first()?.className,
  17. roleList: state => state.user.roleList || [],
  18. roles: (state, getters) => getters.roleList.map(r => r.roleKey),
  19. currentRole: (state, getters) => getters.roleList.find(r => r.isCurrentRole),
  20. isFrontStudent: (state, getters) => getters.currentRole?.roleKey == 'frontStudent',
  21. isFrontTeacher: (state, getters) => getters.currentRole?.roleKey == 'frontTeacher',
  22. isFrontHeadteacher: (state, getters) => getters.currentRole?.roleKey == 'frontHeadteacher',
  23. isFrontMaster: (state, getters) => getters.currentRole?.roleKey == 'frontMaster',
  24. isAdmin: (state, getters) => getters.currentRole?.roleKey == 'admin',
  25. isCommon: (state, getters) => getters.currentRole?.roleKey == 'common',
  26. isSenior: state => state.user.period == 'senior',
  27. isJunior: state => state.user.period == 'junior',
  28. isPrimary: state => state.user.period == 'primary',
  29. period: state => state.user.period,
  30. permissions: state => state.user.permissions,
  31. permission_routes: state => state.permission.routes,
  32. topbarRouters: state => state.permission.topbarRouters,
  33. defaultRoutes: state => state.permission.defaultRoutes,
  34. sidebarRouters: state => state.permission.sidebarRouters,
  35. isWideScreen: state => state.permission.isWideScreen,
  36. studentParams: state => state.settings.studentParams,
  37. hasPermissions: (state, getters) => {
  38. return function(value) {
  39. const all_permission = '*:*:*'
  40. const permissions = getters.permissions
  41. if (value && value instanceof Array && value.length > 0) {
  42. const permissionFlag = value
  43. return permissions.some(permission => all_permission === permission || permissionFlag.includes(permission))
  44. } else {
  45. throw new Error(`请设置操作权限标签值`)
  46. }
  47. }
  48. }
  49. }
  50. export default getters