diff --git a/packages/core/client/src/flow/components/filter/VariableFilterItem.tsx b/packages/core/client/src/flow/components/filter/VariableFilterItem.tsx index 1cc1f4b201d..f812f0a567b 100644 --- a/packages/core/client/src/flow/components/filter/VariableFilterItem.tsx +++ b/packages/core/client/src/flow/components/filter/VariableFilterItem.tsx @@ -31,7 +31,7 @@ const { DateFilterDynamicComponent: DateFilterDynamicComponentLazy } = lazy( export interface VariableFilterItemValue { path: string; operator: string; - value: string; + value: string | boolean; } export interface VariableFilterItemProps { @@ -151,7 +151,7 @@ export const VariableFilterItem: React.FC = observer( value.operator = operatorValue; const cur = operatorMetaList.find((op) => op.value === operatorValue); if (cur?.noValue) { - value.value = ''; + value.value = true; } }, [operatorMetaList, value], diff --git a/packages/core/client/src/schema-component/antd/upload/shared.ts b/packages/core/client/src/schema-component/antd/upload/shared.ts index 69f05a7846f..a452b1c8d87 100644 --- a/packages/core/client/src/schema-component/antd/upload/shared.ts +++ b/packages/core/client/src/schema-component/antd/upload/shared.ts @@ -265,19 +265,29 @@ export function useBeforeUpload(rules) { const { t } = useTranslation(); return useCallback( - (file) => { - const error = validate(file, rules); - - if (error) { - file.status = 'error'; - file.response = t(error); - } else { - if (file.status === 'error') { - delete file.status; - delete file.response; + (file, fileList) => { + let proxiedFile = file; + if (!file.type) { + const extname = file.name?.match(/\.[^.]+$/)?.[0]; + if (extname) { + proxiedFile = new File([file], file.name, { + type: mime.getType(extname) || 'application/octet-stream', + lastModified: file.lastModified, + }); } } - return !error; + const error = validate(proxiedFile, rules); + + if (error) { + proxiedFile.status = 'error'; + proxiedFile.response = t(error); + } else { + if (proxiedFile.status === 'error') { + delete proxiedFile.status; + delete proxiedFile.response; + } + } + return error ? false : proxiedFile; }, [rules], );