getters.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. firstClassName: state => state.user.busiSchool?.first()?.grade?.first()?.clazz?.first()?.className,
  16. roleList: state => state.user.roleList || [],
  17. roles: (state, getters) => getters.roleList.map(r => r.roleKey),
  18. currentRole: (state, getters) => getters.roleList.find(r => r.isCurrentRole),
  19. isFrontStudent: (state, getters) => getters.currentRole?.roleKey == 'frontStudent',
  20. isFrontTeacher: (state, getters) => getters.currentRole?.roleKey == 'frontTeacher',
  21. isFrontHeadteacher: (state, getters) => getters.currentRole?.roleKey == 'frontHeadteacher',
  22. isFrontMaster: (state, getters) => getters.currentRole?.roleKey == 'frontMaster',
  23. isAdmin: (state, getters) => getters.currentRole?.roleKey == 'admin',
  24. isCommon: (state, getters) => getters.currentRole?.roleKey == 'common',
  25. isSenior: state => state.user.period == 'senior',
  26. isJunior: state => state.user.period == 'junior',
  27. isPrimary: state => state.user.period == 'primary',
  28. period: state => state.user.period,
  29. permissions: state => state.user.permissions,
  30. permission_routes: state => state.permission.routes,
  31. topbarRouters: state => state.permission.topbarRouters,
  32. defaultRoutes: state => state.permission.defaultRoutes,
  33. sidebarRouters: state => state.permission.sidebarRouters,
  34. isWideScreen: state => state.permission.isWideScreen,
  35. studentParams: state => state.settings.studentParams,
  36. hasPermissions: (state, getters) => {
  37. return function(value) {
  38. const all_permission = '*:*:*'
  39. const permissions = getters.permissions
  40. if (value && value instanceof Array && value.length > 0) {
  41. const permissionFlag = value
  42. return permissions.some(permission => all_permission === permission || permissionFlag.includes(permission))
  43. } else {
  44. throw new Error(`请设置操作权限标签值`)
  45. }
  46. }
  47. }
  48. }
  49. export default getters