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