feat: 优化工作流字段化参数配置
- 开始节点固定 user_input 并区分系统入口与自定义参数 - LLM 与知识库节点切换为字段值加上游引用配置 - 单节点调试改为字段预览与上游引用输入模式
This commit is contained in:
@@ -2,6 +2,11 @@ export interface ParameterLike {
|
||||
name?: string;
|
||||
ref?: string;
|
||||
refType?: string;
|
||||
resolved?: boolean;
|
||||
disconnected?: boolean;
|
||||
displayName?: string;
|
||||
formLabel?: string;
|
||||
dataType?: string;
|
||||
children?: ParameterLike[];
|
||||
}
|
||||
|
||||
@@ -27,6 +32,9 @@ export type TokenPart =
|
||||
export interface ParameterCandidate {
|
||||
name: string;
|
||||
resolved: boolean;
|
||||
disconnected?: boolean;
|
||||
displayName?: string;
|
||||
dataType?: string;
|
||||
}
|
||||
|
||||
const TOKEN_PATTERN = /\{\{\s*([^{}]+?)\s*}}/g;
|
||||
@@ -46,6 +54,10 @@ function isParameterResolved(parameter?: ParameterLike): boolean {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (typeof parameter.resolved === 'boolean') {
|
||||
return parameter.resolved;
|
||||
}
|
||||
|
||||
const refType = (parameter.refType || '').trim();
|
||||
if (refType === 'fixed' || refType === 'input') {
|
||||
return true;
|
||||
@@ -65,7 +77,13 @@ export function flattenParameterCandidates(
|
||||
const candidates: ParameterCandidate[] = [];
|
||||
const indexMap = new Map<string, number>();
|
||||
|
||||
const addCandidate = (name: string, resolved: boolean) => {
|
||||
const addCandidate = (
|
||||
name: string,
|
||||
resolved: boolean,
|
||||
disconnected: boolean,
|
||||
displayName?: string,
|
||||
dataType?: string,
|
||||
) => {
|
||||
const normalized = name.trim();
|
||||
if (!normalized) {
|
||||
return;
|
||||
@@ -76,13 +94,26 @@ export function flattenParameterCandidates(
|
||||
candidates.push({
|
||||
name: normalized,
|
||||
resolved,
|
||||
disconnected,
|
||||
displayName: displayName?.trim() || normalized,
|
||||
dataType,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
// 同名参数只要有一个可解析,就视为可解析
|
||||
const existingCandidate = candidates[exists]!;
|
||||
if (resolved) {
|
||||
candidates[exists].resolved = true;
|
||||
existingCandidate.resolved = true;
|
||||
existingCandidate.disconnected = false;
|
||||
} else if (disconnected && !existingCandidate.resolved) {
|
||||
existingCandidate.disconnected = true;
|
||||
}
|
||||
if (!existingCandidate.displayName && displayName?.trim()) {
|
||||
existingCandidate.displayName = displayName.trim();
|
||||
}
|
||||
if (!existingCandidate.dataType && dataType) {
|
||||
existingCandidate.dataType = dataType;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -99,7 +130,18 @@ export function flattenParameterCandidates(
|
||||
|
||||
const currentPath = parentPath ? `${parentPath}.${rawName}` : rawName;
|
||||
const currentResolved = inheritedResolved && isParameterResolved(item);
|
||||
addCandidate(currentPath, currentResolved);
|
||||
const currentDisconnected = item?.disconnected === true;
|
||||
const displayName =
|
||||
item?.displayName?.trim() ||
|
||||
item?.formLabel?.trim() ||
|
||||
currentPath;
|
||||
addCandidate(
|
||||
currentPath,
|
||||
currentResolved,
|
||||
currentDisconnected,
|
||||
displayName,
|
||||
item?.dataType,
|
||||
);
|
||||
|
||||
if (item.children && item.children.length > 0) {
|
||||
walk(item.children, currentPath, currentResolved);
|
||||
|
||||
Reference in New Issue
Block a user