diff --git a/my-nocobase-app b/my-nocobase-app new file mode 160000 index 0000000000..7070b7ea1c --- /dev/null +++ b/my-nocobase-app @@ -0,0 +1 @@ +Subproject commit 7070b7ea1c0a10197c17e93ab079476813c36616 diff --git a/packages/core/client/src/block-provider/hooks/index.ts b/packages/core/client/src/block-provider/hooks/index.ts index 4b4e420920..8bf68d83d5 100644 --- a/packages/core/client/src/block-provider/hooks/index.ts +++ b/packages/core/client/src/block-provider/hooks/index.ts @@ -105,19 +105,23 @@ function getFilteredFormValues(form) { allFields.push(field); } }); - const readonlyPaths = allFields - .filter((field) => field?.componentProps?.readOnlySubmit) - .map((field) => { - const segments = field.path?.segments || []; - if (segments.length <= 1) { - return segments.join('.'); - } - return segments.slice(0, -1).join('.'); - }); - for (const path of readonlyPaths) { - _.unset(values, path); - } - + const readonlyPaths = _.uniq( + allFields + .filter((field) => field?.componentProps?.readOnlySubmit) + .map((field) => { + const segments = field.path?.segments || []; + if (segments.length <= 1) { + return segments.join('.'); + } + return segments.slice(0, -1).join('.'); + }), + ); + readonlyPaths.forEach((path, index) => { + if (index !== 0 || path.includes('.')) { + // 清空值,但跳过第一层 + _.unset(values, path); + } + }); return values; }