From a7316674e45502c733a4907795ec8fb73a7c971a Mon Sep 17 00:00:00 2001 From: hjlarry Date: Mon, 29 Dec 2025 09:45:48 +0800 Subject: [PATCH] fix: Workflow Start node optional enum parameter is treated as required --- .../configuration/config-var/config-modal/index.tsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/web/app/components/app/configuration/config-var/config-modal/index.tsx b/web/app/components/app/configuration/config-var/config-modal/index.tsx index b1d8e8cd19..380a96fd3a 100644 --- a/web/app/components/app/configuration/config-var/config-modal/index.tsx +++ b/web/app/components/app/configuration/config-var/config-modal/index.tsx @@ -47,6 +47,12 @@ const getCheckboxDefaultSelectValue = (value: InputVar['default']) => { const parseCheckboxSelectValue = (value: string) => value === CHECKBOX_DEFAULT_TRUE_VALUE +const normalizeSelectDefaultValue = (inputVar: InputVar) => { + if (inputVar.type === InputVarType.select && inputVar.default === '') + return { ...inputVar, default: undefined } + return inputVar +} + export type IConfigModalProps = { isCreate?: boolean payload?: InputVar @@ -67,7 +73,7 @@ const ConfigModal: FC = ({ }) => { const { modelConfig } = useContext(ConfigContext) const { t } = useTranslation() - const [tempPayload, setTempPayload] = useState(() => payload || getNewVarInWorkflow('') as any) + const [tempPayload, setTempPayload] = useState(() => normalizeSelectDefaultValue(payload || getNewVarInWorkflow('') as any)) const { type, label, variable, options, max_length } = tempPayload const modalRef = useRef(null) const appDetail = useAppStore(state => state.appDetail) @@ -182,6 +188,8 @@ const ConfigModal: FC = ({ const newPayload = produce(tempPayload, (draft) => { draft.type = type + if (type === InputVarType.select) + draft.default = undefined if ([InputVarType.singleFile, InputVarType.multiFiles].includes(type)) { (Object.keys(DEFAULT_FILE_UPLOAD_SETTING)).forEach((key) => { if (key !== 'max_length')