useProject.ts 762 B

1234567891011121314151617181920212223242526
  1. import { computed } from 'vue';
  2. import { useStore } from '@/store';
  3. import { WorkspaceDispatcher } from '@/store/dispatchers';
  4. import { useRouter } from 'vue-router';
  5. export const useProjectList = () => {
  6. const store = useStore();
  7. const router = useRouter();
  8. const projectList = computed(() => store.state.workspace.projectList);
  9. const selectedProject = computed(() => store.getters.currentProjectInfo);
  10. const handleProjectChange = (projectId: number) => {
  11. WorkspaceDispatcher.changeProject(projectId);
  12. if (router.currentRoute.value.path.includes('schedule')) {
  13. router.go(0);
  14. } else {
  15. router.push(`/project/${projectId}/schedule`);
  16. }
  17. };
  18. return {
  19. projectList,
  20. selectedProject,
  21. handleProjectChange,
  22. };
  23. };