feat(editor): Add evaluation workflow and enhance workflow selector with pinned data support (#12773)

This commit is contained in:
oleg
2025-01-29 11:03:03 +01:00
committed by GitHub
parent 05b5f95331
commit be967ebec0
11 changed files with 290 additions and 125 deletions

View File

@@ -1,13 +1,11 @@
<script setup lang="ts">
import { useLoadingService } from '@/composables/useLoadingService';
import { useI18n } from '@/composables/useI18n';
import { NEW_SAMPLE_WORKFLOW_CREATED_CHANNEL, VIEWS } from '@/constants';
import { VIEWS } from '@/constants';
import { useTemplatesStore } from '@/stores/templates.store';
import { useWorkflowsStore } from '@/stores/workflows.store';
import { onMounted } from 'vue';
import { useRoute, useRouter } from 'vue-router';
import type { IWorkflowDataCreate } from '@/Interface';
import { SAMPLE_SUBWORKFLOW_WORKFLOW } from '@/constants.workflows';
const loadingService = useLoadingService();
const templateStore = useTemplatesStore();
@@ -17,10 +15,6 @@ const route = useRoute();
const i18n = useI18n();
const openWorkflowTemplate = async (templateId: string) => {
if (templateId === SAMPLE_SUBWORKFLOW_WORKFLOW.meta.templateId) {
await openSampleSubworkflow();
return;
}
try {
loadingService.startLoading();
const template = await templateStore.getFixedWorkflowTemplate(templateId);
@@ -58,42 +52,6 @@ const openWorkflowTemplate = async (templateId: string) => {
}
};
const openSampleSubworkflow = async () => {
try {
loadingService.startLoading();
const projectId = route.query?.projectId;
const sampleSubWorkflows = Number(route.query?.sampleSubWorkflows ?? 0);
const workflowName = `${SAMPLE_SUBWORKFLOW_WORKFLOW.name} ${sampleSubWorkflows + 1}`;
const workflow: IWorkflowDataCreate = {
...SAMPLE_SUBWORKFLOW_WORKFLOW,
name: workflowName,
};
if (projectId) {
workflow.projectId = projectId as string;
}
const newWorkflow = await workflowsStore.createNewWorkflow(workflow);
const sampleSubworkflowChannel = new BroadcastChannel(NEW_SAMPLE_WORKFLOW_CREATED_CHANNEL);
sampleSubworkflowChannel.postMessage({ workflowId: newWorkflow.id });
await router.replace({
name: VIEWS.WORKFLOW,
params: { name: newWorkflow.id },
});
loadingService.stopLoading();
} catch (e) {
await router.replace({ name: VIEWS.NEW_WORKFLOW });
loadingService.stopLoading();
}
};
onMounted(async () => {
const templateId = route.params.id;
if (!templateId || typeof templateId !== 'string') {