|
@@ -1,12 +1,19 @@
|
|
<template>
|
|
<template>
|
|
<div class="flex h-screen">
|
|
<div class="flex h-screen">
|
|
<workflow-details-card :workflow="workflow" />
|
|
<workflow-details-card :workflow="workflow" />
|
|
- <workflow-builder class="flex-1" />
|
|
|
|
|
|
+ <workflow-builder
|
|
|
|
+ class="flex-1"
|
|
|
|
+ :data="workflow.drawflow"
|
|
|
|
+ @addBlock="addBlock"
|
|
|
|
+ @deleteBlock="deleteBlock"
|
|
|
|
+ @saveWorkflow="saveWorkflow"
|
|
|
|
+ />
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
<script setup>
|
|
<script setup>
|
|
import { computed, onMounted } from 'vue';
|
|
import { computed, onMounted } from 'vue';
|
|
import { useRoute, useRouter } from 'vue-router';
|
|
import { useRoute, useRouter } from 'vue-router';
|
|
|
|
+import Task from '@/models/task';
|
|
import Workflow from '@/models/workflow';
|
|
import Workflow from '@/models/workflow';
|
|
import WorkflowBuilder from '@/components/newtab/workflow/WorkflowBuilder.vue';
|
|
import WorkflowBuilder from '@/components/newtab/workflow/WorkflowBuilder.vue';
|
|
import WorkflowDetailsCard from '@/components/newtab/workflow/WorkflowDetailsCard.vue';
|
|
import WorkflowDetailsCard from '@/components/newtab/workflow/WorkflowDetailsCard.vue';
|
|
@@ -14,12 +21,27 @@ import WorkflowDetailsCard from '@/components/newtab/workflow/WorkflowDetailsCar
|
|
const route = useRoute();
|
|
const route = useRoute();
|
|
const router = useRouter();
|
|
const router = useRouter();
|
|
|
|
|
|
-const workflow = computed(() => Workflow.find(route.params.id) || {});
|
|
|
|
|
|
+const workflowId = route.params.id;
|
|
|
|
+const workflow = computed(() => Workflow.find(workflowId) || {});
|
|
|
|
+
|
|
|
|
+function addBlock(data) {
|
|
|
|
+ Task.insert({
|
|
|
|
+ data: { ...data, workflowId },
|
|
|
|
+ });
|
|
|
|
+}
|
|
|
|
+function deleteBlock(id) {
|
|
|
|
+ Task.delete(id);
|
|
|
|
+}
|
|
|
|
+function saveWorkflow(data) {
|
|
|
|
+ console.log('saved', workflowId, data);
|
|
|
|
+ Workflow.update({
|
|
|
|
+ where: workflowId,
|
|
|
|
+ data: { drawflow: data },
|
|
|
|
+ });
|
|
|
|
+}
|
|
|
|
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
- const isWorkflowExists = Workflow.query()
|
|
|
|
- .where('id', route.params.id)
|
|
|
|
- .exists();
|
|
|
|
|
|
+ const isWorkflowExists = Workflow.query().where('id', workflowId).exists();
|
|
|
|
|
|
if (!isWorkflowExists) {
|
|
if (!isWorkflowExists) {
|
|
router.push('/workflows');
|
|
router.push('/workflows');
|