From 6ee230ce0a8d338609ab96cebdeafc1e62f6e918 Mon Sep 17 00:00:00 2001 From: wujingjing <gersonwu@qq.com> Date: 星期四, 12 十二月 2024 17:46:57 +0800 Subject: [PATCH] 判断节点 else --- src/views/project/yw/systemManage/flowApp/components/Header.vue | 73 ++++++++++++++++++++++++++++++++---- 1 files changed, 64 insertions(+), 9 deletions(-) diff --git a/src/views/project/yw/systemManage/flowApp/components/Header.vue b/src/views/project/yw/systemManage/flowApp/components/Header.vue index 2c7ec3d..b825a08 100644 --- a/src/views/project/yw/systemManage/flowApp/components/Header.vue +++ b/src/views/project/yw/systemManage/flowApp/components/Header.vue @@ -1,18 +1,23 @@ <template> <div class="h-14 flex justify-between px-2 border border-solid border-x-0 border-t-0 border-gray-300"> <div class="flex-items-center"> - <span class="ywifont ywicon-pre p-1 bg-white rounded-lg mr-2"></span> + <span class="ywifont ywicon-pre p-1.5 bg-white rounded-lg mr-4 shadow cursor-pointer" @click="backMgr"> </span> <!-- <img src="@/assets/logo.png" alt="logo" class="h-8 w-8"/> --> <div> - <span class="font-bold">娴嬭瘯</span> + <span class="font-bold text-medium">{{ flowAgent?.title }}</span> </div> </div> <div class="flex-items-center"> <!-- <el-button>杩愯</el-button> <el-button>淇濆瓨</el-button> <el-button type="primary">杩愯</el-button> --> - <el-dropdown @command="handleCommand"> + <el-button @click="handleCommand('export')">瀵煎嚭宸ヤ綔娴�</el-button> + <el-button @click="handleCommand('import')">瀵煎叆宸ヤ綔娴�</el-button> + <el-button type="danger" @click="clearGraph">娓呯┖鐢诲竷</el-button> + + <el-button type="primary" @click="saveFlow">淇濆瓨</el-button> + <!-- <el-dropdown @command="handleCommand"> <el-button style="margin-left: 8px; width: 34px"> <el-icon class="el-icon--center"> <more-filled /> @@ -24,26 +29,76 @@ <el-dropdown-item command="import">瀵煎叆</el-dropdown-item> </el-dropdown-menu> </template> - </el-dropdown> + </el-dropdown> --> </div> </div> </template> <script setup lang="ts"> import { useVueFlow } from '@vue-flow/core'; +import { useFileDialog } from '@vueuse/core'; import JSONFormat from 'json-format'; -import { downloadJSON } from '/@/utils/util'; - +import { downloadJSON, elConfirm } from '/@/utils/util'; +import { gotoRoute } from '/@/utils/route'; +import { update_workflow_json_flow } from '/@/api/workflow'; +import { ElMessage } from 'element-plus'; +const props = defineProps(['queryId', 'flowAgent']); const emit = defineEmits(['export']); -const { toObject } = useVueFlow(); +const { toObject, fromObject, nodes, edges, removeEdges, removeNodes } = useVueFlow(); +const { files, open, reset, onCancel, onChange } = useFileDialog({ + // accept: 'image/*', // Set to accept only image files + // 閫夋嫨 json鏂囦欢 + accept: 'application/json', + directory: false, // Select directories instead of files if set true +}); +const backMgr = () => { + gotoRoute({ + name: 'WorkFlowIndex', + }); +}; +const clearGraph = async () => { + const yes = await elConfirm('纭畾瑕佹竻绌虹敾甯冨悧锛�'); + if (!yes) { + return; + } + removeEdges(edges.value); + removeNodes(nodes.value); +}; +const saveFlow = async () => { + const obj = toObject(); + const jsonStr = obj ? JSONFormat(obj) : ''; + + const res = await update_workflow_json_flow({ + agent_id: props.queryId, + json_flow: jsonStr, + }); + ElMessage.success('淇濆瓨鎴愬姛锛�'); +}; + +onChange((file) => { + console.log(file); + // 鑾峰彇json 涓殑鍐呭 + const reader = new FileReader(); + reader.onload = (e) => { + const jsonStr = e.target?.result as string; + const json = JSON.parse(jsonStr); + fromObject(json) + .then((val) => {}) + .catch((err) => { + ElMessage.error('瀵煎叆澶辫触' + err); + }); + }; + reader.readAsText(file[0]); +}); const handleCommand = (command: string | number | object) => { const obj = toObject(); if (command === 'export') { const jsonStr = obj ? JSONFormat(obj) : ''; - downloadJSON(jsonStr, 'flow'); - } else { + downloadJSON(jsonStr, 'flow'); + } else if (command === 'import') { + open(); } }; </script> -- Gitblit v1.9.3