fix: 修复工作流开始表单文案清空回退

- 保留标题和说明的显式空值

- 同步运行页与后端解析逻辑
This commit is contained in:
2026-07-21 18:53:28 +08:00
parent 4c28eaf393
commit f658f120e6
5 changed files with 38 additions and 14 deletions

View File

@@ -118,12 +118,29 @@ public class WorkflowRunningParameterResolver {
private Map<String, Object> resolveStartFormMeta(JSONObject startNodeData) {
JSONObject rawMeta = startNodeData == null ? null : startNodeData.getJSONObject("startFormMeta");
Map<String, Object> meta = new LinkedHashMap<>();
meta.put("title", trimToDefault(rawMeta == null ? null : rawMeta.getString("title"), DEFAULT_START_FORM_TITLE));
meta.put("description", trimToDefault(rawMeta == null ? null : rawMeta.getString("description"), DEFAULT_START_FORM_DESCRIPTION));
// Missing values use defaults; an explicit empty string means the user cleared the field.
meta.put("title", resolveOptionalStartFormText(rawMeta, "title", DEFAULT_START_FORM_TITLE));
meta.put("description", resolveOptionalStartFormText(rawMeta, "description", DEFAULT_START_FORM_DESCRIPTION));
meta.put("submitText", trimToDefault(rawMeta == null ? null : rawMeta.getString("submitText"), DEFAULT_START_FORM_SUBMIT_TEXT));
return meta;
}
/**
* 解析允许用户主动清空的开始表单文案。
*
* @param meta 开始节点表单元数据
* @param key 文案字段名
* @param fallback 字段缺失时的默认文案
* @return 配置文案;字段缺失时返回默认文案,显式空字符串保持为空
*/
private String resolveOptionalStartFormText(JSONObject meta, String key, String fallback) {
if (meta == null || !meta.containsKey(key)) {
return fallback;
}
String value = meta.getString(key);
return value == null ? "" : value.trim();
}
private List<Map<String, Object>> resolveStartFormSchema(JSONObject startNodeData, List<Parameter> parameters) {
JSONArray rawSchema = startNodeData == null ? null : startNodeData.getJSONArray("startFormSchema");
List<Map<String, Object>> schema = new ArrayList<>();