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:
Jack 2023-04-26 11:20:58 +08:00 committed by GitHub
parent 00b3c8c257
commit de5260bc2c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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) => {