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/TextResourceNode.vue | 63 +++++++++++++++++++++---------- 1 files changed, 43 insertions(+), 20 deletions(-) diff --git a/src/components/vue-flow/ui/nodes/TextResourceNode.vue b/src/components/vue-flow/ui/nodes/TextResourceNode.vue index 504151e..71f9ddc 100644 --- a/src/components/vue-flow/ui/nodes/TextResourceNode.vue +++ b/src/components/vue-flow/ui/nodes/TextResourceNode.vue @@ -7,25 +7,31 @@ :isViewMode="isViewMode" > <Handle :id="targetHandleId" type="target" :position="Position.Left" /> - <FieldLayout :title="codeInput.name"> - <el-input class="w-full flex-0" v-model="codeInput.params[0].value" placeholder="鍙傛暟鍚�" :readonly="isViewMode"> </el-input> - </FieldLayout> - <FieldLayout :title="codeStr.name"> - <CodeEditor - :disabled="isViewMode" - :title="codeStr.name" - :language="codeLanguage" - v-model:defaultLanguage="codeStr.params[0].defaultLanguage" - v-model:editValue="codeStr.params[0].value" - :readonly="isViewMode" - /> - <template #right> - <el-select v-if="!isViewMode" size="small" class="w-[100px]" v-model="codeStr.params[0].defaultLanguage"> - <el-option v-for="item in codeLanguage" :key="item" :value="item" :label="textTypeMap[item]"></el-option> - </el-select> - </template> - </FieldLayout> - + <el-form ref="formRef" :model="data" :rules="formRules" label-position="right" label-width="60px" :show-message="false"> + <FieldLayout :title="codeInput.name" required> + <el-form-item prop="group_params.0.params.0.value" labelWidth="0"> + <el-input class="w-full flex-0" v-model="codeInput.params[0].value" placeholder="鍙傛暟鍚�" :readonly="isViewMode"> </el-input> + </el-form-item> + </FieldLayout> + <FieldLayout :title="codeStr.name" required> + <el-form-item prop="group_params.1.params.0.value" labelWidth="0"> + <CodeEditor + class="w-full" + :disabled="isViewMode" + :title="codeStr.name" + :language="codeLanguage" + v-model:defaultLanguage="codeStr.params[0].defaultLanguage" + v-model:editValue="codeStr.params[0].value" + :readonly="isViewMode" + /> + </el-form-item> + <template #right> + <el-select v-if="!isViewMode" size="small" class="w-[100px]" v-model="codeStr.params[0].defaultLanguage"> + <el-option v-for="item in codeLanguage" :key="item" :value="item" :label="textTypeMap[item]"></el-option> + </el-select> + </template> + </FieldLayout> + </el-form> <Handle :id="sourceHandleId" type="source" :position="Position.Right" /> </NodeBasicLayout> </template> @@ -35,7 +41,7 @@ import { vscodeDark } from '@uiw/codemirror-theme-vscode'; import type { NodeProps } from '@vue-flow/core'; import { Handle, Position, useNode } from '@vue-flow/core'; -import { ref } from 'vue'; +import { onMounted, ref } from 'vue'; import { VueFlowHelper } from '../../VueFlowHelper'; import { NodeType, ParameterType } from '../../vueFlowEnum'; import FieldLayout from './components/FieldLayout.vue'; @@ -43,12 +49,16 @@ import type { LLMNodeData, LLMNodeEvents } from './index'; import CodeEditor from '/@/components/input/codeEditor/index.vue'; import { textTypeMap } from '/@/components/input/codeEditor/types'; +import { validateForm } from './utils'; defineProps< NodeProps<LLMNodeData, LLMNodeEvents> & { isViewMode?: boolean; } >(); +const emit = defineEmits<{ + (e: 'register', data: { validateForm: () => Promise<{ isValid: boolean; invalidFields?: any }> }): void; +}>(); const node = useNode(); const targetHandleId = ref(VueFlowHelper.getHandleId(node.node, 'target')); const sourceHandleId = ref(VueFlowHelper.getHandleId(node.node, 'source')); @@ -92,4 +102,17 @@ } codeInput.value.params[0].value.push(getInputEmptyItem()); }; + +const formRef = ref(); +const formRules = ref({ + 'group_params.0.params.0.value': [{ required: true, message: '璇疯緭鍏ュ弬鏁板悕', trigger: 'blur' }], + 'group_params.1.params.0.value': [{ required: true, message: '璇疯緭鍏ュ弬鏁板��', trigger: 'blur' }], +}); + +// 娉ㄥ唽鑺傜偣瀹炰緥 +onMounted(() => { + emit('register', { + validateForm: validateForm(formRef) as any, + }); +}); </script> -- Gitblit v1.9.3