更新提示词管理逻辑,重命名相关变量,优化提示词选择器界面,支持直接编辑提示词内容

This commit is contained in:
2026-06-09 17:51:32 +08:00
parent 10d6ce2b0d
commit 52340fcd94
2 changed files with 36 additions and 493 deletions

View File

@@ -46,11 +46,11 @@
<el-icon>
<Plus />
</el-icon>
选择提示词
编辑提示词
</el-button>
<div v-if="selectedPrompt" class="selected-prompt-tag">
<div v-if="promptContent" class="selected-prompt-tag">
<el-tag type="success" size="large" closable @close="handleRemovePrompt">
{{ selectedPrompt.prompt ? selectedPrompt.prompt.substring(0, 50) + '...' : '提示词' }}
{{ promptContent.length > 50 ? `${promptContent.substring(0, 50)}...` : promptContent }}
</el-tag>
</div>
</div>
@@ -606,7 +606,7 @@
/>
<!-- 提示词选择器 -->
<PromptSelector v-model="showPromptSelector" :default-prompt="selectedPrompt" :node-type="formState.nodeCode" @confirm="handlePromptConfirm" />
<PromptSelector v-model="showPromptSelector" :default-prompt="promptContent" @confirm="handlePromptConfirm" />
<!-- 技能选择器 -->
<SkillSelector v-model="showSkillSelector" :default-skill="selectedSkill" @confirm="handleSkillConfirm" />
@@ -825,7 +825,6 @@ import SkillSelector from '/@/components/skill/NodeSkillSelector.vue';
import ModelSelector from '/@/components/model/ModelSelector.vue';
import SaveWorkflowDialog from './component/SaveWorkflowDialog.vue';
import PromptSelector from './component/PromptSelector.vue';
import type { PromptItem } from '/@/api/settings/promptManager';
import type { SkillItem } from '/@/api/settings/skill';
import {
downloadToFile,
@@ -893,7 +892,7 @@ const selectedModel = ref('');
const showSkillSelector = ref(false);
const selectedSkill = ref<SkillItem | null>(null);
const showPromptSelector = ref(false);
const selectedPrompt = ref<PromptItem | null>(null);
const promptContent = ref('');
const isSaveFileEnabled = ref(false);
const saving = ref(false);
const leftPanelTab = ref('selected'); // 默认显示"当前选中"Tab
@@ -1344,7 +1343,7 @@ const workflowDsl = computed(() => ({
: null,
outputConfig: Array.isArray(n.properties?.outputConfig) ? n.properties.outputConfig : null,
isSaveFile: n.properties?.isSaveFileEnabled ?? null,
promptContent: n.properties?.promptData?.prompt || null,
promptContent: n.properties?.promptContent || '',
outputResult: null,
})),
edges: flowDsl.value.edges.map((e) => ({
@@ -1515,13 +1514,13 @@ const handleRemoveModel = () => {
selectedModel.value = '';
selectedModelData.value = null;
};
// 处理提示词选择确认
const handlePromptConfirm = (prompt: PromptItem) => {
selectedPrompt.value = prompt;
// 处理提示词输入确认
const handlePromptConfirm = (value: string) => {
promptContent.value = value;
};
// 移除已选择的提示词
// 移除已填写的提示词
const handleRemovePrompt = () => {
selectedPrompt.value = null;
promptContent.value = '';
};
// 获取对话模型列表
const fetchChatModelList = async () => {
@@ -3401,12 +3400,8 @@ watch(
selectedSkill.value = null;
}
// 恢复提示词信息
if (e?.properties?.promptData) {
selectedPrompt.value = e.properties.promptData;
} else {
selectedPrompt.value = null;
}
// 恢复提示词内容
promptContent.value = String(e?.properties?.promptContent || '');
// 恢复对话模式状态
isSaveFileEnabled.value = e?.properties?.isSaveFileEnabled === true;
@@ -3491,7 +3486,7 @@ const applySelected = () => {
'inputSource',
'formConfig',
'skillName',
'promptData',
'promptContent',
'isSaveFileEnabled',
'width',
'height',
@@ -3547,11 +3542,11 @@ const applySelected = () => {
delete p.skillName;
}
// 保存提示词选择状态
if (selectedPrompt.value) {
p.promptData = selectedPrompt.value;
// 保存提示词内容
if (promptContent.value.trim()) {
p.promptContent = promptContent.value.trim();
} else {
delete p.promptData;
delete p.promptContent;
}
// 保存对话模式状态
@@ -3981,7 +3976,7 @@ const loadWorkflowFromDsl = (dsl: any) => {
inputSource: n.inputSource || null,
// 加载提示词和保存文件配置
isSaveFileEnabled: n.isSaveFile ?? false,
promptData: n.promptContent ? { id: 0, prompt: n.promptContent, nodeType: n.nodeCode } : null,
promptContent: n.promptContent || '',
},
};
});
@@ -4033,8 +4028,8 @@ watch(selectedElement, (newElement) => {
selectedSkill.value = null;
}
// 从节点属性中恢复提示词选择状态
selectedPrompt.value = newElement.properties.promptData || null;
// 从节点属性中恢复提示词内容
promptContent.value = String(newElement.properties.promptContent || '');
// 从节点属性中恢复对话模式状态
isSaveFileEnabled.value = newElement.properties.isSaveFileEnabled === true;
@@ -4043,7 +4038,7 @@ watch(selectedElement, (newElement) => {
selectedModel.value = '';
selectedModelData.value = null;
selectedSkill.value = null;
selectedPrompt.value = null;
promptContent.value = '';
isSaveFileEnabled.value = false;
}
});