diff --git a/src/renderer/src/panels/Properties.tsx b/src/renderer/src/panels/Properties.tsx index 967fb96..cf8deb5 100644 --- a/src/renderer/src/panels/Properties.tsx +++ b/src/renderer/src/panels/Properties.tsx @@ -526,6 +526,22 @@ function FieldControl({ const pickPath = async (directories: boolean) => { try { + if (!directories) { + // 输出类字段(保存/输出/目标文件等)指向将来才生成的文件,用「保存」对话框允许输入新文件名; + // 输入类字段保持「打开」对话框,只能选择已存在的文件。 + const isOutputField = /输出|保存|另存|导出|目标文件|文件名|output|save|export|dest|target/i.test( + `${field.key} ${field.label ?? ""}` + ); + if (isOutputField) { + const selected = await window.rpa.dialog.save({ + title: field.label, + defaultPath: textOf(raw) || undefined, + filters: fileFiltersFor(node.componentId, field) + }); + if (selected) onChange(field.key, selected); + return; + } + } const selected = await window.rpa.dialog.open({ title: field.label, directories,