useProjectID.ts 860 B

123456789101112131415161718192021222324252627282930313233343536
  1. import { computed, ref, watch } from "vue";
  2. import { useRoute, useRouter } from "vue-router";
  3. import { isNil } from "lodash";
  4. // project 页面及其子页面获取项目 ID
  5. export default function useProjectID() {
  6. const route = useRoute();
  7. console.log("route", route);
  8. const router = useRouter();
  9. // 是否已经获取到了 projectID
  10. const shouldRender = ref(false);
  11. // 项目 ID
  12. const projectID = computed(() => route.query.projectID);
  13. watch(
  14. projectID,
  15. async (val) => {
  16. if (route.path.startsWith("/project") && (isNil(val) || val === "")) {
  17. shouldRender.value = false;
  18. await router.replace("/project-list");
  19. } else {
  20. shouldRender.value = true;
  21. }
  22. },
  23. {
  24. immediate: true,
  25. }
  26. );
  27. return {
  28. // 是否已经获取到了 projectID
  29. shouldRender,
  30. projectID,
  31. };
  32. }