Merge branch 'next' into develop

This commit is contained in:
nocobase[bot] 2024-12-08 04:59:09 +00:00
commit 6031d1fa35

View File

@ -15,6 +15,8 @@ import {
useCollectionManager_deprecated, useCollectionManager_deprecated,
useCompile, useCompile,
useCurrentAppInfo, useCurrentAppInfo,
useDataBlockRequest,
useDataBlockResource,
} from '@nocobase/client'; } from '@nocobase/client';
import lodash from 'lodash'; import lodash from 'lodash';
import { saveAs } from 'file-saver'; import { saveAs } from 'file-saver';
@ -24,6 +26,8 @@ import { useMemo } from 'react';
export const useExportAction = () => { export const useExportAction = () => {
const { service, resource, props } = useBlockRequestContext(); const { service, resource, props } = useBlockRequestContext();
const newResource = useDataBlockResource();
const appInfo = useCurrentAppInfo(); const appInfo = useCurrentAppInfo();
const defaultFilter = props?.params.filter; const defaultFilter = props?.params.filter;
const actionSchema = useFieldSchema(); const actionSchema = useFieldSchema();
@ -68,21 +72,22 @@ export const useExportAction = () => {
} }
es.defaultTitle = uiSchema?.title; es.defaultTitle = uiSchema?.title;
}); });
const { data } = await resource.export(
const { data } = await (newResource as any).export(
{ {
title: compile(title), title: compile(title),
appends: service.params[0]?.appends?.join(), appends: service.params[0]?.appends?.join(),
filter: mergeFilter([...Object.values(filters), defaultFilter]), filter: mergeFilter([...Object.values(filters), defaultFilter]),
sort: service.params[0]?.sort, sort: service.params[0]?.sort,
}, values: {
{
method: 'post',
data: {
columns: compile(exportSettings), columns: compile(exportSettings),
}, },
},
{
responseType: 'blob', responseType: 'blob',
}, },
); );
const blob = new Blob([data], { type: 'application/x-xls' }); const blob = new Blob([data], { type: 'application/x-xls' });
field.data.loading = false; field.data.loading = false;
saveAs(blob, `${compile(title)}.xlsx`); saveAs(blob, `${compile(title)}.xlsx`);