* feat: audit logs * feat: improve code * feat: improve code * feat: improve code * feat: improve code * feat: improve code * fix: field load
84 lines
2.9 KiB
TypeScript
84 lines
2.9 KiB
TypeScript
import { ISchema, useField, useFieldSchema } from '@formily/react';
|
|
import { GeneralSchemaDesigner, SchemaSettings, useCollection, useCollectionFilterOptions, useDesignable, useSortFields, useTableBlockContext } from '@nocobase/client';
|
|
import React from 'react';
|
|
import { useTranslation } from 'react-i18next';
|
|
|
|
export const AuditLogsDesigner = () => {
|
|
const { name, title, sortable } = useCollection();
|
|
const field = useField();
|
|
const fieldSchema = useFieldSchema();
|
|
const dataSource = useCollectionFilterOptions(name);
|
|
const sortFields = useSortFields(name);
|
|
const { service } = useTableBlockContext();
|
|
const { t } = useTranslation();
|
|
const { dn } = useDesignable();
|
|
const defaultFilter = fieldSchema?.['x-decorator-props']?.params?.filter || {};
|
|
const defaultSort = fieldSchema?.['x-decorator-props']?.params?.sort || [];
|
|
return (
|
|
<GeneralSchemaDesigner title={title || name}>
|
|
<SchemaSettings.ModalItem
|
|
title={t('Set the data scope')}
|
|
schema={
|
|
{
|
|
type: 'object',
|
|
title: t('Set the data scope'),
|
|
properties: {
|
|
filter: {
|
|
default: defaultFilter,
|
|
// title: '数据范围',
|
|
enum: dataSource,
|
|
'x-component': 'Filter',
|
|
'x-decorator-props': {},
|
|
},
|
|
},
|
|
} as ISchema
|
|
}
|
|
onSubmit={({ filter }) => {
|
|
const params = field.decoratorProps.params || {};
|
|
params.filter = filter;
|
|
field.decoratorProps.params = params;
|
|
fieldSchema['x-decorator-props']['params'] = params;
|
|
service.run({ ...service.params?.[0], filter, page: 1 });
|
|
dn.emit('patch', {
|
|
schema: {
|
|
['x-uid']: fieldSchema['x-uid'],
|
|
'x-decorator-props': fieldSchema['x-decorator-props'],
|
|
},
|
|
});
|
|
}}
|
|
/>
|
|
<SchemaSettings.SelectItem
|
|
title={t('Records per page')}
|
|
value={field.decoratorProps?.params?.pageSize || 20}
|
|
options={[
|
|
{ label: '10', value: 10 },
|
|
{ label: '20', value: 20 },
|
|
{ label: '50', value: 50 },
|
|
{ label: '100', value: 100 },
|
|
{ label: '200', value: 200 },
|
|
]}
|
|
onChange={(pageSize) => {
|
|
const params = field.decoratorProps.params || {};
|
|
params.pageSize = pageSize;
|
|
field.decoratorProps.params = params;
|
|
fieldSchema['x-decorator-props']['params'] = params;
|
|
service.run({ ...service.params?.[0], pageSize, page: 1 });
|
|
dn.emit('patch', {
|
|
schema: {
|
|
['x-uid']: fieldSchema['x-uid'],
|
|
'x-decorator-props': fieldSchema['x-decorator-props'],
|
|
},
|
|
});
|
|
}}
|
|
/>
|
|
<SchemaSettings.Divider />
|
|
<SchemaSettings.Remove
|
|
removeParentsIfNoChildren
|
|
breakRemoveOn={{
|
|
'x-component': 'Grid',
|
|
}}
|
|
/>
|
|
</GeneralSchemaDesigner>
|
|
);
|
|
};
|