From 4ccab78831409decc3148668449dedc778380f07 Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期一, 17 二月 2025 16:24:09 +0800
Subject: [PATCH] Node 宽度基本一致

---
 src/components/vue-flow/ui/nodes/AnalysisNode.vue               |    5 +-
 src/components/vue-flow/ui/nodes/FuncNode.vue                   |    2 
 vite.config.ts                                                  |    2 
 src/components/vue-flow/ui/nodes/components/NodeBasicLayout.vue |    3 -
 src/components/vue-flow/ui/nodes/AgentNode.vue                  |    2 
 src/components/vue-flow/ui/nodes/OutputNode.vue                 |   10 ++++
 src/components/vue-flow/ui/nodes/components/FieldLayout.vue     |    2 
 src/components/vue-flow/ui/nodes/LLMNode.vue                    |    5 +-
 src/components/vue-flow/ui/nodes/StartNode.vue                  |   63 +++++++++----------------------
 9 files changed, 39 insertions(+), 55 deletions(-)

diff --git a/src/components/vue-flow/ui/nodes/AgentNode.vue b/src/components/vue-flow/ui/nodes/AgentNode.vue
index d9bf7d5..53cd6b6 100644
--- a/src/components/vue-flow/ui/nodes/AgentNode.vue
+++ b/src/components/vue-flow/ui/nodes/AgentNode.vue
@@ -9,7 +9,7 @@
 
 		<FieldLayout :title="VueFlowHelper.getConfigValue(VueFlowHelper.getGroupParam(data), 'name', '浠g悊鍚嶇О')">
 			<el-select
-				class="w-[340px]"
+				class="w-full"
 				filterable
 				:disabled="isViewMode"
 				:placeholder="VueFlowHelper.getConfigValue(agentParams, 'placeholder', '浠g悊鍚嶇О')"
diff --git a/src/components/vue-flow/ui/nodes/AnalysisNode.vue b/src/components/vue-flow/ui/nodes/AnalysisNode.vue
index 6b67bd0..b2bdcc7 100644
--- a/src/components/vue-flow/ui/nodes/AnalysisNode.vue
+++ b/src/components/vue-flow/ui/nodes/AnalysisNode.vue
@@ -2,7 +2,7 @@
 	<NodeBasicLayout v-model:title="data.title" :type="NodeType.Analysis" :isViewMode="isViewMode">
 		<Handle :id="targetHandleId" type="target" :position="Position.Left" />
 		<FieldLayout :title="modelSetting.name">
-			<div class="w-[340px] flex-items-center gap-x-2">
+			<div class="w-full flex-items-center gap-x-2">
 				<div class="flex-column gap-y-1.5">
 					<span class="text-gray-500">{{ VueFlowHelper.getParams(modelSetting, 'llm_model').label }}</span>
 
@@ -24,7 +24,8 @@
 					<el-input-number
 						:readonly="isViewMode"
 						v-model="VueFlowHelper.getParams(modelSetting, 'temperature').value"
-						class="w-[180px]"
+						class="w-full"
+						controls-position="right"
 						placeholder=""
 					></el-input-number>
 				</div>
diff --git a/src/components/vue-flow/ui/nodes/FuncNode.vue b/src/components/vue-flow/ui/nodes/FuncNode.vue
index b8432dd..660e8fe 100644
--- a/src/components/vue-flow/ui/nodes/FuncNode.vue
+++ b/src/components/vue-flow/ui/nodes/FuncNode.vue
@@ -3,7 +3,7 @@
 		<Handle :id="targetHandleId" type="target" :position="Position.Left" />
 		<FieldLayout :title="VueFlowHelper.getConfigValue(VueFlowHelper.getGroupParam(data), 'name', '鍑芥暟鍚嶇О')">
 			<el-select
-				class="w-[340px]"
+				class="w-full"
 				filterable
 				:placeholder="funcNameParams.placeholder"
 				v-model="funcNameParams.value"
diff --git a/src/components/vue-flow/ui/nodes/LLMNode.vue b/src/components/vue-flow/ui/nodes/LLMNode.vue
index 638a793..a612aab 100644
--- a/src/components/vue-flow/ui/nodes/LLMNode.vue
+++ b/src/components/vue-flow/ui/nodes/LLMNode.vue
@@ -8,7 +8,7 @@
 		<Handle :id="targetHandleId" type="target" :position="Position.Left" />
 
 		<FieldLayout :title="VueFlowHelper.getConfigValue(modelSetting, 'name', '妯″瀷璁剧疆')">
-			<div class="w-[340px] flex-items-center gap-x-2">
+			<div class="w-full flex-items-center gap-x-2">
 				<div class="flex-column gap-y-1.5">
 					<span class="text-gray-500">{{ VueFlowHelper.getParams(modelSetting, 'llm_model').label }}</span>
 					<el-tree-select
@@ -27,8 +27,9 @@
 				<div class="flex-column gap-y-1.5">
 					<span class="text-gray-500">{{ VueFlowHelper.getParams(modelSetting, 'temperature').label }}</span>
 					<el-input-number
+						class="w-full"
+						controls-position="right"
 						v-model="VueFlowHelper.getParams(modelSetting, 'temperature').value"
-						class="w-[180px]"
 						:readonly="isViewMode"
 						placeholder=""
 					></el-input-number>
diff --git a/src/components/vue-flow/ui/nodes/OutputNode.vue b/src/components/vue-flow/ui/nodes/OutputNode.vue
index 1933095..be303e2 100644
--- a/src/components/vue-flow/ui/nodes/OutputNode.vue
+++ b/src/components/vue-flow/ui/nodes/OutputNode.vue
@@ -1,6 +1,5 @@
 <template>
 	<NodeBasicLayout
-		:maxWidth="520"
 		v-model:title="data.title"
 		:type="NodeType.Output"
 		:description="VueFlowHelper.getConfigValue(data, 'description', '鍙悜鐢ㄦ埛鍙戦�佹秷鎭�...')"
@@ -21,6 +20,8 @@
 				v-model="VueFlowHelper.getParams(outputParams, 'output_result').value.type"
 				@change="interactionTypeChange"
 				:disabled="isViewMode"
+				class="flex-items-center justify-between interaction-radio-group"
+				
 			>
 				<el-radio v-for="item in Object.keys(interactionTypeMap)" :key="item" :value="item">
 					{{ interactionTypeMap[item] }}
@@ -152,3 +153,10 @@
 const isEditStatus = ref(false);
 const tmpEditValue = ref('');
 </script>
+<style scoped lang="scss">
+.interaction-radio-group {
+	:deep(.el-radio) {
+		margin-right: 0;
+	}
+}
+</style>
diff --git a/src/components/vue-flow/ui/nodes/StartNode.vue b/src/components/vue-flow/ui/nodes/StartNode.vue
index 4dd5e37..741c332 100644
--- a/src/components/vue-flow/ui/nodes/StartNode.vue
+++ b/src/components/vue-flow/ui/nodes/StartNode.vue
@@ -6,52 +6,27 @@
 		:isViewMode="isViewMode"
 	>
 		<FieldLayout :title="VueFlowHelper.getConfigValue(varListConfig, 'name', '娴佺▼鍙傛暟')">
-			<el-table class="flex-auto" :data="varList" border>
-				<el-table-column prop="name" width="170" label="鍙傛暟鍚�" fixed>
-					<template #default="scope">
-						<el-input v-model="scope.row.name" :readonly="isViewMode"></el-input>
+			<div v-for="(item, index) in varList" :key="index" class="group/varItem">
+				<FieldLayout level="2" title="鍙傛暟鍚�">
+					<template #right v-if="!isViewMode">
+						<span
+							class="ywifont ywicon-shanchu text-red-400 invisible group-hover/varItem:visible cursor-pointer"
+							@click="handleClickDeleteBtn(index)"
+						></span>
 					</template>
-				</el-table-column>
-				<!-- <el-table-column prop="type" width="220" label="绫诲瀷">
-					<template #default="scope">
-						<el-select v-model="scope.row.type">
-							<el-option
-								v-for="item in Object.keys(parameterTypeMap)"
-								:key="item"
-								:value="item"
-								:label="parameterTypeMap[item]"
-							></el-option>
-						</el-select>
-					</template>
-				</el-table-column> -->
-				<el-table-column prop="description" width="380" label="鎻忚堪">
-					<template #default="scope">
-						<el-input
-							class="nowheel"
-							type="textarea"
-							:autosize="{ minRows: 1, maxRows: 6 }"
-							v-model="scope.row.description"
-							:readonly="isViewMode"
-						></el-input>
-					</template>
-				</el-table-column>
-				<!-- <el-table-column prop="isRequired" width="56" label="蹇呭~">
-					<template #default="scope">
-						<el-checkbox v-model="scope.row.isRequired"></el-checkbox>
-					</template>
-				</el-table-column> -->
+					<el-input v-model="item.name" :readonly="isViewMode"></el-input>
+				</FieldLayout>
+				<FieldLayout level="2" title="鎻忚堪">
+					<el-input
+						class="nowheel"
+						type="textarea"
+						:autosize="{ minRows: 2, maxRows: 6 }"
+						v-model="item.description"
+						:readonly="isViewMode"
+					></el-input>
+				</FieldLayout>
+			</div>
 
-				<el-table-column label="鎿嶄綔" width="55" fixed="right" v-if="!isViewMode">
-					<template #default="scope">
-						<el-tooltip effect="dark" content="鍒犻櫎" placement="top">
-							<i
-								class="ywifont ywicon-shanchu !text-[17px] text-red-400 cursor-pointer"
-								@click="handleClickDeleteBtn(scope.$index)"
-							></i>
-						</el-tooltip>
-					</template>
-				</el-table-column>
-			</el-table>
 			<el-button v-if="!isViewMode" class="w-fit" type="primary" @click="handleClickAddBtn">娣诲姞鍙傛暟</el-button>
 		</FieldLayout>
 		<Handle :id="handleId" type="source" :position="Position.Right" />
diff --git a/src/components/vue-flow/ui/nodes/components/FieldLayout.vue b/src/components/vue-flow/ui/nodes/components/FieldLayout.vue
index 21fa6c6..42dd280 100644
--- a/src/components/vue-flow/ui/nodes/components/FieldLayout.vue
+++ b/src/components/vue-flow/ui/nodes/components/FieldLayout.vue
@@ -1,7 +1,7 @@
 <template>
 	<div class="flex flex-col" :class="[`gap-${gapLen}`]">
 		<div class="flex-items-center justify-between">
-			<div class="text-base" :class="[level === '1' ? 'font-bold' : 'text-secondary']">{{ title }}</div>
+			<div class="text-base" :class="[level === '1' ? 'font-bold' : 'text-secondary font-bold']">{{ title }}</div>
 			<div class="flex-items-center gap-3" v-if="$slots.right">
 				<slot name="right"></slot>
 			</div>
diff --git a/src/components/vue-flow/ui/nodes/components/NodeBasicLayout.vue b/src/components/vue-flow/ui/nodes/components/NodeBasicLayout.vue
index bf55afb..ddd0a4d 100644
--- a/src/components/vue-flow/ui/nodes/components/NodeBasicLayout.vue
+++ b/src/components/vue-flow/ui/nodes/components/NodeBasicLayout.vue
@@ -1,6 +1,6 @@
 <template>
 	<div
-		:style="{ maxHeight: `${maxHeight}px`, maxWidth: `${maxWidth}px`, minHeight: `${minHeight}px`, minWidth: minWidth }"
+		:style="{ maxHeight: `${maxHeight}px`, maxWidth: `${maxWidth}px`, minHeight: `${minHeight}px`, minWidth: `320px` }"
 		class="order-2 rounded-lg border-solid border-gray-100 bg-white p-3 shadow-md relative hover:border-blue-500 group h-fit"
 	>
 		<div
@@ -74,7 +74,6 @@
 const props = defineProps({
 	maxWidth: { type: Number },
 	maxHeight: { type: Number },
-	minWidth: { type: Number },
 	minHeight: { type: Number },
 	type: { type: String as PropType<NodeType>, required: true },
 	description: { type: String },
diff --git a/vite.config.ts b/vite.config.ts
index a568226..fa15255 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -45,7 +45,7 @@
 			host: '0.0.0.0',
 			port: env.VITE_PORT as unknown as number,
 			open: JSON.parse(env.VITE_OPEN),
-			hmr: false,
+			hmr: true,
 			proxy: {
 				'/gitee': {
 					target: 'https://gitee.com',

--
Gitblit v1.9.3