use-permission.ts 892 B

12345678910111213141516171819202122232425262728293031323334
  1. import { computed, onMounted, ref, unref } from "vue";
  2. import { ContentConfig } from "/@/components/PageContent";
  3. import { useUserStoreHook } from "/@/store/modules/user";
  4. type Params = {
  5. pageName: string;
  6. callback: (permissions: Array<string>) => void;
  7. contentConfig: ContentConfig;
  8. };
  9. export function usePermission({ pageName, callback, contentConfig }: Params) {
  10. const permissions = ref<Array<string>>([]);
  11. const contentConfigRef = computed(() => contentConfig);
  12. const permission = computed(() => {
  13. return {
  14. list: permissions.value.some(i => i === "001"),
  15. create: permissions.value.some(i => i === "002")
  16. };
  17. });
  18. onMounted(() => {
  19. permissions.value = useUserStoreHook().getMenuActions(pageName);
  20. console.log(permissions.value);
  21. callback(unref(permissions));
  22. });
  23. return {
  24. contentConfigRef,
  25. permissions,
  26. permission
  27. };
  28. }