index.vue 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <template>
  2. <PageWrapper
  3. title="前端权限示例"
  4. contentBackground
  5. contentClass="p-4"
  6. content="由于刷新的时候会请求用户信息接口,会根据接口重置角色信息,所以刷新后界面会恢复原样,如果不需要,可以注释 src/layout/default/index内的获取用户信息接口"
  7. >
  8. <CurrentPermissionMode />
  9. <p>
  10. 当前角色: <a> {{ userStore.getRoleListState }} </a>
  11. </p>
  12. <Alert class="mt-4" type="info" message="点击后请查看左侧菜单变化" show-icon />
  13. <div class="mt-4">
  14. 权限切换(请先切换权限模式为前端角色权限模式):
  15. <a-button-group>
  16. <a-button @click="changeRole(RoleEnum.SUPER)" :type="isSuper ? 'primary' : 'default'">
  17. {{ RoleEnum.SUPER }}
  18. </a-button>
  19. <a-button @click="changeRole(RoleEnum.TEST)" :type="isTest ? 'primary' : 'default'">
  20. {{ RoleEnum.TEST }}
  21. </a-button>
  22. </a-button-group>
  23. </div>
  24. </PageWrapper>
  25. </template>
  26. <script lang="ts">
  27. import { computed, defineComponent } from 'vue';
  28. import { Alert } from 'ant-design-vue';
  29. import CurrentPermissionMode from '../CurrentPermissionMode.vue';
  30. import { userStore } from '/@/store/modules/user';
  31. import { RoleEnum } from '/@/enums/roleEnum';
  32. import { usePermission } from '/@/hooks/web/usePermission';
  33. import { PageWrapper } from '/@/components/Page';
  34. export default defineComponent({
  35. components: { Alert, CurrentPermissionMode, PageWrapper },
  36. setup() {
  37. const { changeRole } = usePermission();
  38. return {
  39. userStore,
  40. RoleEnum,
  41. isSuper: computed(() => userStore.getRoleListState.includes(RoleEnum.SUPER)),
  42. isTest: computed(() => userStore.getRoleListState.includes(RoleEnum.TEST)),
  43. changeRole,
  44. };
  45. },
  46. });
  47. </script>
  48. <style lang="less" scoped>
  49. .demo {
  50. background: #fff;
  51. }
  52. </style>