From 890adec7fddfe9d5f5da4511343ac6e8341d46b3 Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期一, 16 十二月 2024 10:34:41 +0800
Subject: [PATCH] 可改变大小

---
 src/components/vue-flow/ui/nodes/components/NodeBasicLayout.vue |   15 +++++++++------
 src/components/vue-flow/ui/nodes/EndNode.vue                    |    1 +
 src/components/vue-flow/ui/nodes/OutputNode.vue                 |   17 ++++++++++++++---
 src/components/vue-flow/MainCanvas.vue                          |   10 ++++++++--
 src/components/vue-flow/ui/nodes/StartNode.vue                  |    1 -
 5 files changed, 32 insertions(+), 12 deletions(-)

diff --git a/src/components/vue-flow/MainCanvas.vue b/src/components/vue-flow/MainCanvas.vue
index 585d4d5..db9aabb 100644
--- a/src/components/vue-flow/MainCanvas.vue
+++ b/src/components/vue-flow/MainCanvas.vue
@@ -39,7 +39,7 @@
 import CustomEdge from './ui/edges/CustomEdge.vue';
 import { onMounted } from 'vue';
 
-const props = defineProps(['flowJson', 'agentNames','funcNames']);
+const props = defineProps(['flowJson', 'agentNames', 'funcNames']);
 
 const nodeTypes = {
 	start: markRaw(StartNode),
@@ -157,14 +157,20 @@
 @import '@vue-flow/minimap/dist/style.css';
 @import '@vue-flow/node-resizer/dist/style.css';
 
-
 #main-canvas {
 	--vf-handle: #2563eb;
 	--handle-size: 13px;
+	--resize-handle-size:8px;
 	.vue-flow__handle {
 		width: var(--handle-size);
 		height: var(--handle-size);
 	}
+
+	.vue-flow__resize-control.handle {
+		width: var(--resize-handle-size);
+		height: var(--resize-handle-size);
+		// visibility: hidden;
+	}
 }
 </style>
 
diff --git a/src/components/vue-flow/ui/nodes/EndNode.vue b/src/components/vue-flow/ui/nodes/EndNode.vue
index 9035ad1..2c665af 100644
--- a/src/components/vue-flow/ui/nodes/EndNode.vue
+++ b/src/components/vue-flow/ui/nodes/EndNode.vue
@@ -2,6 +2,7 @@
 	<NodeBasicLayout
 		v-model:title="data.title"
 		:type="NodeType.End"
+		
 		:showOffset="false"
 		:description="VueFlowHelper.getConfigValue(data, 'description', '宸ヤ綔娴佽繍琛屽埌姝ょ粨鏉熴��')"
 	>
diff --git a/src/components/vue-flow/ui/nodes/OutputNode.vue b/src/components/vue-flow/ui/nodes/OutputNode.vue
index 052ed66..9799f76 100644
--- a/src/components/vue-flow/ui/nodes/OutputNode.vue
+++ b/src/components/vue-flow/ui/nodes/OutputNode.vue
@@ -1,11 +1,22 @@
 <template>
-	<NodeBasicLayout v-model:title="data.title" :type="NodeType.Output" :description="VueFlowHelper.getConfigValue(data, 'description', '鍙悜鐢ㄦ埛鍙戦�佹秷鎭紝骞朵笖鏀寔杩涜鏇翠赴瀵岀殑浜や簰锛屼緥濡傝姹傜敤鎴锋壒鍑嗚繘琛屾煇椤规晱鎰熸搷浣溿�佸厑璁哥敤鎴峰湪妯″瀷杈撳嚭鍐呭鐨勫熀纭�涓婄洿鎺ヤ慨鏀瑰苟鎻愪氦銆�')">
+	<NodeBasicLayout
+		:maxWidth="520"
+		v-model:title="data.title"
+		:type="NodeType.Output"
+		:description="
+			VueFlowHelper.getConfigValue(
+				data,
+				'description',
+				'鍙悜鐢ㄦ埛鍙戦�佹秷鎭紝骞朵笖鏀寔杩涜鏇翠赴瀵岀殑浜や簰锛屼緥濡傝姹傜敤鎴锋壒鍑嗚繘琛屾煇椤规晱鎰熸搷浣溿�佸厑璁哥敤鎴峰湪妯″瀷杈撳嚭鍐呭鐨勫熀纭�涓婄洿鎺ヤ慨鏀瑰苟鎻愪氦銆�'
+			)
+		"
+	>
 		<Handle :id="targetHandleId" type="target" :position="Position.Left" />
 		<FieldLayout level="2" :title="VueFlowHelper.getParams(outputParams, 'output_msg').label">
 			<el-input
 				v-model="VueFlowHelper.getParams(outputParams, 'output_msg').value.msg"
 				type="textarea"
-				:rows="4"
+				:autosize="{ minRows: 4, maxRows: 6 }"
 				:placeholder="VueFlowHelper.getParams(outputParams, 'output_msg').placeholder"
 				autocomplete="off"
 			>
@@ -18,7 +29,7 @@
 			<el-input
 				v-model="VueFlowHelper.getParams(outputParams, 'output_result').value.value"
 				type="textarea"
-				:rows="4"
+				:autosize="{ minRows: 4, maxRows: 6 }"
 				v-if="VueFlowHelper.getParams(outputParams, 'output_result').value.type === InteractionType.Input"
 			>
 			</el-input>
diff --git a/src/components/vue-flow/ui/nodes/StartNode.vue b/src/components/vue-flow/ui/nodes/StartNode.vue
index 462cd7d..dcb3d2a 100644
--- a/src/components/vue-flow/ui/nodes/StartNode.vue
+++ b/src/components/vue-flow/ui/nodes/StartNode.vue
@@ -3,7 +3,6 @@
 		v-model:title="data.title"
 		:type="NodeType.Start"
 		:description="VueFlowHelper.getConfigValue(data, 'description', '宸ヤ綔娴佽繍琛岀殑璧峰鑺傜偣銆�')"
-		maxWidth="540"
 	>
 		<FieldLayout :title="VueFlowHelper.getConfigValue(varListConfig, 'name', '娴佺▼鍙傛暟')">
 			<el-table class="flex-auto" :data="varList" border>
diff --git a/src/components/vue-flow/ui/nodes/components/NodeBasicLayout.vue b/src/components/vue-flow/ui/nodes/components/NodeBasicLayout.vue
index 883fb74..08832dd 100644
--- a/src/components/vue-flow/ui/nodes/components/NodeBasicLayout.vue
+++ b/src/components/vue-flow/ui/nodes/components/NodeBasicLayout.vue
@@ -1,9 +1,6 @@
 <template>
-	<NodeResizer />
-	<div
-		class="order-2 rounded-lg border-solid border-gray-100 bg-white p-3 shadow-md relative hover:border-blue-500 group"
-		:style="{ maxWidth: `${maxWidth}px` }"
-	>
+	<NodeResizer :maxHeight="maxHeight" :maxWidth="maxWidth" :minHeight="minHeight" :minWidth="minWidth" />
+	<div class="order-2 rounded-lg border-solid border-gray-100 bg-white p-3 shadow-md relative hover:border-blue-500 group h-full">
 		<div
 			class="group-hover:visible invisible flex absolute divide-y-[1.5px] divide-solid divide-gray-100 rounded-lg right-0 -top-0.5 translate-y-[-100%]"
 			style="box-shadow: 0 0 15px #dbdee6"
@@ -65,10 +62,16 @@
 import { VueFlowConfig } from '../../VueFlowConfig';
 import { deepClone } from '/@/utils/other';
 
+defineOptions({
+	inheritAttrs: false,
+});
 const titleIsEdit = ref(false);
 
 const props = defineProps({
-	maxWidth: { type: String, default: '520' },
+	maxWidth: { type: Number },
+	maxHeight: { type: Number },
+	minWidth: { type: Number },
+	minHeight: { type: Number },
 	type: { type: String as PropType<NodeType>, required: true },
 	description: { type: String },
 	showOffset: {

--
Gitblit v1.9.3