fix: fixed the configuration field filter (#1742)
* fix: fixed the configuration field filter * fix: batch update filter automatic number field * refactor: optimize code --------- Co-authored-by: Rairn <958414905@qq.com>
This commit is contained in:
parent
00b3c8c257
commit
de5260bc2c
@ -1,6 +1,6 @@
|
|||||||
import { ISchema, Schema, useFieldSchema, useForm } from '@formily/react';
|
import { ISchema, Schema, useFieldSchema, useForm } from '@formily/react';
|
||||||
import { uid } from '@formily/shared';
|
import { uid } from '@formily/shared';
|
||||||
import React, { useContext, useState } from 'react';
|
import React, { useContext, useMemo, useState } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { BlockRequestContext, SchemaInitializerItemOptions } from '../';
|
import { BlockRequestContext, SchemaInitializerItemOptions } from '../';
|
||||||
import { FieldOptions, useCollection, useCollectionManager } from '../collection-manager';
|
import { FieldOptions, useCollection, useCollectionManager } from '../collection-manager';
|
||||||
@ -560,7 +560,12 @@ export const useCustomFormItemInitializerFields = (options?: any) => {
|
|||||||
const remove = useRemoveGridFormItem();
|
const remove = useRemoveGridFormItem();
|
||||||
return currentFields
|
return currentFields
|
||||||
?.filter((field) => {
|
?.filter((field) => {
|
||||||
return field?.interface && !field?.uiSchema?.['x-read-pretty'] && field.interface !== 'snapshot';
|
return (
|
||||||
|
field?.interface &&
|
||||||
|
!field?.uiSchema?.['x-read-pretty'] &&
|
||||||
|
field.interface !== 'snapshot' &&
|
||||||
|
field.type !== 'sequence'
|
||||||
|
);
|
||||||
})
|
})
|
||||||
?.map((field) => {
|
?.map((field) => {
|
||||||
const interfaceConfig = getInterface(field.interface);
|
const interfaceConfig = getInterface(field.interface);
|
||||||
@ -597,37 +602,48 @@ export const useCustomBulkEditFormItemInitializerFields = (options?: any) => {
|
|||||||
const form = useForm();
|
const form = useForm();
|
||||||
const { readPretty = form.readPretty, block = 'Form' } = options || {};
|
const { readPretty = form.readPretty, block = 'Form' } = options || {};
|
||||||
const remove = useRemoveGridFormItem();
|
const remove = useRemoveGridFormItem();
|
||||||
return fields
|
const filterFields = useMemo(
|
||||||
?.filter((field) => {
|
() =>
|
||||||
return field?.interface && !field?.uiSchema?.['x-read-pretty'] && field.interface !== 'snapshot';
|
fields
|
||||||
})
|
?.filter((field) => {
|
||||||
?.map((field) => {
|
return (
|
||||||
const interfaceConfig = getInterface(field.interface);
|
field?.interface &&
|
||||||
const schema = {
|
!field?.uiSchema?.['x-read-pretty'] &&
|
||||||
type: 'string',
|
field.interface !== 'snapshot' &&
|
||||||
name: field.name,
|
field.type !== 'sequence'
|
||||||
title: field?.uiSchema?.title || field.name,
|
);
|
||||||
'x-designer': 'FormItem.Designer',
|
})
|
||||||
'x-component': 'BulkEditField',
|
.map((field) => {
|
||||||
'x-decorator': 'FormItem',
|
const interfaceConfig = getInterface(field.interface);
|
||||||
'x-collection-field': `${name}.${field.name}`,
|
const schema = {
|
||||||
};
|
type: 'string',
|
||||||
return {
|
name: field.name,
|
||||||
type: 'item',
|
title: field?.uiSchema?.title || field.name,
|
||||||
title: field?.uiSchema?.title || field.name,
|
'x-designer': 'FormItem.Designer',
|
||||||
component: 'CollectionFieldInitializer',
|
'x-component': 'BulkEditField',
|
||||||
remove: remove,
|
'x-decorator': 'FormItem',
|
||||||
schemaInitialize: (s) => {
|
'x-collection-field': `${name}.${field.name}`,
|
||||||
interfaceConfig?.schemaInitialize?.(s, {
|
};
|
||||||
field,
|
return {
|
||||||
block,
|
type: 'item',
|
||||||
readPretty,
|
title: field?.uiSchema?.title || field.name,
|
||||||
targetCollection: getCollection(field.target),
|
component: 'CollectionFieldInitializer',
|
||||||
});
|
remove: remove,
|
||||||
},
|
schemaInitialize: (s) => {
|
||||||
schema,
|
interfaceConfig?.schemaInitialize?.(s, {
|
||||||
} as SchemaInitializerItemOptions;
|
field,
|
||||||
});
|
block,
|
||||||
|
readPretty,
|
||||||
|
targetCollection: getCollection(field.target),
|
||||||
|
});
|
||||||
|
},
|
||||||
|
schema,
|
||||||
|
} as SchemaInitializerItemOptions;
|
||||||
|
}),
|
||||||
|
[fields],
|
||||||
|
);
|
||||||
|
|
||||||
|
return filterFields;
|
||||||
};
|
};
|
||||||
|
|
||||||
const findSchema = (schema: Schema, key: string, action: string) => {
|
const findSchema = (schema: Schema, key: string, action: string) => {
|
||||||
|
Loading…
Reference in New Issue
Block a user