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