diff --git a/apps/web/src/components/pipeline/PipelineMergeWizard.vue b/apps/web/src/components/pipeline/PipelineMergeWizard.vue new file mode 100644 index 0000000..e47f7d3 --- /dev/null +++ b/apps/web/src/components/pipeline/PipelineMergeWizard.vue @@ -0,0 +1,471 @@ + + + + + diff --git a/apps/web/src/views/PipelineSettingsView.vue b/apps/web/src/views/PipelineSettingsView.vue index 58d47bf..e7696fe 100644 --- a/apps/web/src/views/PipelineSettingsView.vue +++ b/apps/web/src/views/PipelineSettingsView.vue @@ -5,6 +5,7 @@ import { api } from '@/lib/api'; import { toFaDigits } from '@/lib/jalali'; import { UiButton, UiCard, UiEmptyState, UiField, UiInput, UiModal, UiPageHeader } from '@/components/ui'; import UiIcon from '@/components/UiIcon.vue'; +import PipelineMergeWizard from '@/components/pipeline/PipelineMergeWizard.vue'; import type { PipelineDto } from '@mento/shared'; type PipelineListItem = PipelineDto & { @@ -21,9 +22,6 @@ const mergeOpen = ref(false); const mergeSourceId = ref(null); const canMerge = computed(() => pipelines.value.length >= 2); -const mergeSource = computed(() => - pipelines.value.find((pipeline) => pipeline.id === mergeSourceId.value) ?? null, -); function apiError(e: unknown, fallback: string) { if (axios.isAxiosError(e)) { @@ -77,6 +75,13 @@ function openMerge(pipeline: PipelineListItem) { function closeMerge() { mergeOpen.value = false; + mergeSourceId.value = null; +} + +async function onMergeDone() { + okMsg.value = 'کاریز با موفقیت ادغام شد.'; + await load(); + closeMerge(); } onMounted(load); @@ -149,16 +154,13 @@ onMounted(load); /> - - -

- کاریز مبدا: {{ mergeSource.name }} -

- +
@@ -241,10 +243,6 @@ onMounted(load); font-size: 0.85rem; } -.modal-copy { - margin: 0 0 0.5rem; -} - .ok { color: #0f766e; margin: 0;