From 67e50265b5cdae1c28f39b924ccb277857f4acea Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期二, 18 二月 2025 14:08:36 +0800
Subject: [PATCH] 一些必填

---
 src/components/vue-flow/ui/nodes/AgentNode.vue |   50 +++++++++++++++++++++++++++++++++++---------------
 1 files changed, 35 insertions(+), 15 deletions(-)

diff --git a/src/components/vue-flow/ui/nodes/AgentNode.vue b/src/components/vue-flow/ui/nodes/AgentNode.vue
index 53cd6b6..b90f9fe 100644
--- a/src/components/vue-flow/ui/nodes/AgentNode.vue
+++ b/src/components/vue-flow/ui/nodes/AgentNode.vue
@@ -6,32 +6,36 @@
 		:isViewMode="isViewMode"
 	>
 		<Handle :id="targetHandleId" type="target" :position="Position.Left" />
-
-		<FieldLayout :title="VueFlowHelper.getConfigValue(VueFlowHelper.getGroupParam(data), 'name', '浠g悊鍚嶇О')">
-			<el-select
-				class="w-full"
-				filterable
-				:disabled="isViewMode"
-				:placeholder="VueFlowHelper.getConfigValue(agentParams, 'placeholder', '浠g悊鍚嶇О')"
-				v-model="agentParams.value"
-				@change="agentParamsValueChange"
-			>
-				<el-option v-for="item in agentNames" :key="item.id" :value="item.id" :label="item.title"></el-option>
-			</el-select>
-		</FieldLayout>
-
+		<el-form ref="formRef" :model="data" :rules="formRules" label-position="right" label-width="60px" :show-message="false">
+			<FieldLayout :title="VueFlowHelper.getConfigValue(VueFlowHelper.getGroupParam(data), 'name', '浠g悊鍚嶇О')">
+				<el-form-item prop="group_params.0.params.0.value" labelWidth="0">
+					<el-select
+						class="w-full"
+						filterable
+						:disabled="isViewMode"
+						:placeholder="VueFlowHelper.getConfigValue(agentParams, 'placeholder', '浠g悊鍚嶇О')"
+						v-model="agentParams.value"
+						clearable
+						@change="agentParamsValueChange"
+					>
+						<el-option v-for="item in agentNames" :key="item.id" :value="item.id" :label="item.title"></el-option>
+					</el-select>
+				</el-form-item>
+			</FieldLayout>
+		</el-form>
 		<Handle :id="sourceHandleId" type="source" :position="Position.Right" />
 	</NodeBasicLayout>
 </template>
 
 <script lang="ts" setup>
 import { Handle, Position, useNode } from '@vue-flow/core';
-import { ref } from 'vue';
+import { onMounted, ref } from 'vue';
 import { VueFlowHelper } from '../../VueFlowHelper';
 
 import { NodeType } from '../../vueFlowEnum';
 import FieldLayout from './components/FieldLayout.vue';
 import NodeBasicLayout from './components/NodeBasicLayout.vue';
+import { validateForm } from './utils';
 // defineProps<NodeProps<LLMNodeData, LLMNodeEvents>>();
 
 const props = defineProps({
@@ -41,6 +45,11 @@
 		default: false,
 	},
 });
+
+const emit = defineEmits<{
+	(e: 'register', data: { validateForm: () => Promise<{ isValid: boolean; invalidFields?: any }> }): void;
+}>();
+
 const agentParamsValueChange = () => {
 	// const foundNames = props.agentNames.find(item=>item.id == agentParams.value);
 	// agentParams.value.value_label =  foundNames?.title ??'';
@@ -53,4 +62,15 @@
 
 const agentParams = ref(VueFlowHelper.getParams(VueFlowHelper.getGroupParam(data.value), 'agent'));
 VueFlowHelper.getConfigValue(agentParams.value, 'label', '');
+const formRef = ref();
+const formRules = ref({
+	'group_params.0.params.0.value': [{ required: true, message: '璇烽�夋嫨浠g悊鍚嶇О', trigger: 'change' }],
+});
+
+// 娉ㄥ唽鑺傜偣瀹炰緥
+onMounted(() => {
+	emit('register', {
+		validateForm: validateForm(formRef) as any,
+	});
+});
 </script>

--
Gitblit v1.9.3