diff --git a/packages/core/client/src/schema-component/common/utils/uitls.tsx b/packages/core/client/src/schema-component/common/utils/uitls.tsx index f9bf00a9d..df7b5f0d0 100644 --- a/packages/core/client/src/schema-component/common/utils/uitls.tsx +++ b/packages/core/client/src/schema-component/common/utils/uitls.tsx @@ -13,11 +13,23 @@ type VariablesCtx = { $form?: Record; }; +function flattenDeep(data, result = []) { + for (let i = 0; i < data?.length; i++) { + const { children, ...rest } = data[i]; + result.push(rest); + if (children) { + flattenDeep(children, result); + } + } + return result; +} + export const useVariablesCtx = (): VariablesCtx => { const currentUser = useCurrentUserContext(); const { field, service, rowKey } = useTableBlockContext(); - const contextData = service?.data?.data?.filter((v) => (field?.data?.selectedRowKeys || [])?.includes(v[rowKey])); + const tableData = flattenDeep(service?.data?.data); return useMemo(() => { + const contextData = tableData?.filter((v) => (field?.data?.selectedRowKeys || [])?.includes(v[rowKey])); return { $user: currentUser?.data?.data || {}, $date: {