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 { uid } from '@formily/shared';
 | 
			
		||||
import React, { useContext, useState } from 'react';
 | 
			
		||||
import React, { useContext, useMemo, useState } from 'react';
 | 
			
		||||
import { useTranslation } from 'react-i18next';
 | 
			
		||||
import { BlockRequestContext, SchemaInitializerItemOptions } from '../';
 | 
			
		||||
import { FieldOptions, useCollection, useCollectionManager } from '../collection-manager';
 | 
			
		||||
@ -560,7 +560,12 @@ export const useCustomFormItemInitializerFields = (options?: any) => {
 | 
			
		||||
  const remove = useRemoveGridFormItem();
 | 
			
		||||
  return currentFields
 | 
			
		||||
    ?.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) => {
 | 
			
		||||
      const interfaceConfig = getInterface(field.interface);
 | 
			
		||||
@ -597,37 +602,48 @@ export const useCustomBulkEditFormItemInitializerFields = (options?: any) => {
 | 
			
		||||
  const form = useForm();
 | 
			
		||||
  const { readPretty = form.readPretty, block = 'Form' } = options || {};
 | 
			
		||||
  const remove = useRemoveGridFormItem();
 | 
			
		||||
  return fields
 | 
			
		||||
    ?.filter((field) => {
 | 
			
		||||
      return field?.interface && !field?.uiSchema?.['x-read-pretty'] && field.interface !== 'snapshot';
 | 
			
		||||
    })
 | 
			
		||||
    ?.map((field) => {
 | 
			
		||||
      const interfaceConfig = getInterface(field.interface);
 | 
			
		||||
      const schema = {
 | 
			
		||||
        type: 'string',
 | 
			
		||||
        name: field.name,
 | 
			
		||||
        title: field?.uiSchema?.title || field.name,
 | 
			
		||||
        'x-designer': 'FormItem.Designer',
 | 
			
		||||
        'x-component': 'BulkEditField',
 | 
			
		||||
        'x-decorator': 'FormItem',
 | 
			
		||||
        'x-collection-field': `${name}.${field.name}`,
 | 
			
		||||
      };
 | 
			
		||||
      return {
 | 
			
		||||
        type: 'item',
 | 
			
		||||
        title: field?.uiSchema?.title || field.name,
 | 
			
		||||
        component: 'CollectionFieldInitializer',
 | 
			
		||||
        remove: remove,
 | 
			
		||||
        schemaInitialize: (s) => {
 | 
			
		||||
          interfaceConfig?.schemaInitialize?.(s, {
 | 
			
		||||
            field,
 | 
			
		||||
            block,
 | 
			
		||||
            readPretty,
 | 
			
		||||
            targetCollection: getCollection(field.target),
 | 
			
		||||
          });
 | 
			
		||||
        },
 | 
			
		||||
        schema,
 | 
			
		||||
      } as SchemaInitializerItemOptions;
 | 
			
		||||
    });
 | 
			
		||||
  const filterFields = useMemo(
 | 
			
		||||
    () =>
 | 
			
		||||
      fields
 | 
			
		||||
        ?.filter((field) => {
 | 
			
		||||
          return (
 | 
			
		||||
            field?.interface &&
 | 
			
		||||
            !field?.uiSchema?.['x-read-pretty'] &&
 | 
			
		||||
            field.interface !== 'snapshot' &&
 | 
			
		||||
            field.type !== 'sequence'
 | 
			
		||||
          );
 | 
			
		||||
        })
 | 
			
		||||
        .map((field) => {
 | 
			
		||||
          const interfaceConfig = getInterface(field.interface);
 | 
			
		||||
          const schema = {
 | 
			
		||||
            type: 'string',
 | 
			
		||||
            name: field.name,
 | 
			
		||||
            title: field?.uiSchema?.title || field.name,
 | 
			
		||||
            'x-designer': 'FormItem.Designer',
 | 
			
		||||
            'x-component': 'BulkEditField',
 | 
			
		||||
            'x-decorator': 'FormItem',
 | 
			
		||||
            'x-collection-field': `${name}.${field.name}`,
 | 
			
		||||
          };
 | 
			
		||||
          return {
 | 
			
		||||
            type: 'item',
 | 
			
		||||
            title: field?.uiSchema?.title || field.name,
 | 
			
		||||
            component: 'CollectionFieldInitializer',
 | 
			
		||||
            remove: remove,
 | 
			
		||||
            schemaInitialize: (s) => {
 | 
			
		||||
              interfaceConfig?.schemaInitialize?.(s, {
 | 
			
		||||
                field,
 | 
			
		||||
                block,
 | 
			
		||||
                readPretty,
 | 
			
		||||
                targetCollection: getCollection(field.target),
 | 
			
		||||
              });
 | 
			
		||||
            },
 | 
			
		||||
            schema,
 | 
			
		||||
          } as SchemaInitializerItemOptions;
 | 
			
		||||
        }),
 | 
			
		||||
    [fields],
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
  return filterFields;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const findSchema = (schema: Schema, key: string, action: string) => {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user