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 |   76 ++++++++++++++++++++++++++-----------
 1 files changed, 53 insertions(+), 23 deletions(-)

diff --git a/src/components/vue-flow/ui/nodes/TextResourceNode.vue b/src/components/vue-flow/ui/nodes/TextResourceNode.vue
index 7d77df3..71f9ddc 100644
--- a/src/components/vue-flow/ui/nodes/TextResourceNode.vue
+++ b/src/components/vue-flow/ui/nodes/TextResourceNode.vue
@@ -1,25 +1,38 @@
 <template>
-	<NodeBasicLayout  v-model:title="data.title" :type="NodeType.Code" :showOffset="false" :description="data.description">
+	<NodeBasicLayout
+		v-model:title="data.title"
+		:type="NodeType.TextResource"
+		:showOffset="false"
+		:description="data.description"
+		: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="鍙傛暟鍚�"> </el-input>
-		</FieldLayout>
-		<FieldLayout :title="codeStr.name">
-			<CodeEditor
-				:title="codeStr.name"
-				:language="codeLanguage"
-				v-model:defaultLanguage="codeStr.params[0].defaultLanguage"
-				v-model:editValue="codeStr.params[0].value"
-			/>
-			<template #right>
-				<el-select 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>
 
@@ -28,17 +41,24 @@
 import { vscodeDark } from '@uiw/codemirror-theme-vscode';
 import type { NodeProps } from '@vue-flow/core';
 import { Handle, Position, useNode } from '@vue-flow/core';
-import { computed, ref } from 'vue';
+import { onMounted, ref } from 'vue';
 import { VueFlowHelper } from '../../VueFlowHelper';
 import { NodeType, ParameterType } from '../../vueFlowEnum';
-import CodeEditDialog from './components/CodeEditDlg.vue';
 import FieldLayout from './components/FieldLayout.vue';
 import NodeBasicLayout from './components/NodeBasicLayout.vue';
 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>>();
+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'));
@@ -83,6 +103,16 @@
 	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