-
-
- {/* {JSON.stringify(field.value, null, 2)}
*/}
-
+
+
+
+ {/* {JSON.stringify(field.value, null, 2)}
*/}
+
+
);
});
diff --git a/packages/core/client/src/schema-component/antd/filter/context.ts b/packages/core/client/src/schema-component/antd/filter/context.ts
index 00d061f849..cdde8f358a 100644
--- a/packages/core/client/src/schema-component/antd/filter/context.ts
+++ b/packages/core/client/src/schema-component/antd/filter/context.ts
@@ -7,7 +7,7 @@ export interface FilterContextProps {
fieldSchema?: Schema;
dynamicComponent?: any;
options?: any[];
- disabled?: boolean
+ disabled?: boolean;
}
export const RemoveConditionContext = createContext(null);
diff --git a/packages/core/client/src/schema-component/antd/filter/useValues.ts b/packages/core/client/src/schema-component/antd/filter/useValues.ts
index a6212a3bd5..44533a06f4 100644
--- a/packages/core/client/src/schema-component/antd/filter/useValues.ts
+++ b/packages/core/client/src/schema-component/antd/filter/useValues.ts
@@ -62,7 +62,7 @@ export const useValues = () => {
const s2 = cloneDeep(operator?.schema);
field.data.schema = merge(s1, s2);
field.data.dataIndex = dataIndex;
- field.data.value = operator.noValue ? operator.default || true : null;
+ field.data.value = operator?.noValue ? operator.default || true : null;
data2value();
},
setOperator(operatorValue) {
diff --git a/packages/core/client/src/schema-component/antd/form-v2/Form.Designer.tsx b/packages/core/client/src/schema-component/antd/form-v2/Form.Designer.tsx
index f06e53f547..56af180475 100644
--- a/packages/core/client/src/schema-component/antd/form-v2/Form.Designer.tsx
+++ b/packages/core/client/src/schema-component/antd/form-v2/Form.Designer.tsx
@@ -2,24 +2,19 @@ import { ArrayItems } from '@formily/antd';
import { ISchema, useField, useFieldSchema } from '@formily/react';
import React from 'react';
import { useTranslation } from 'react-i18next';
-import { useFormBlockContext } from '../../../block-provider';
import { useDetailsBlockContext } from '../../../block-provider/DetailsBlockProvider';
import { useCollection } from '../../../collection-manager';
import { useCollectionFilterOptions, useSortFields } from '../../../collection-manager/action-hooks';
import { GeneralSchemaDesigner, SchemaSettings } from '../../../schema-settings';
import { useSchemaTemplate } from '../../../schema-templates';
import { useDesignable } from '../../hooks';
-import { useActionContext } from '../action';
+import { removeNullCondition } from '../filter';
+import { FilterDynamicComponent } from '../table-v2/FilterDynamicComponent';
export const FormDesigner = () => {
const { name, title } = useCollection();
const template = useSchemaTemplate();
- const ctx = useFormBlockContext();
- const field = useField();
const fieldSchema = useFieldSchema();
- const { dn } = useDesignable();
- const { t } = useTranslation();
- const { visible } = useActionContext();
const defaultResource = fieldSchema?.['x-decorator-props']?.resource;
return (
@@ -108,12 +103,15 @@ export const DetailsDesigner = () => {
// title: '数据范围',
enum: dataSource,
'x-component': 'Filter',
- 'x-component-props': {},
+ 'x-component-props': {
+ dynamicComponent: (props) => FilterDynamicComponent({ ...props }),
+ },
},
},
} as ISchema
}
onSubmit={({ filter }) => {
+ filter = removeNullCondition(filter);
const params = field.decoratorProps.params || {};
params.filter = filter;
field.decoratorProps.params = params;
diff --git a/packages/core/client/src/schema-component/antd/kanban/Kanban.Designer.tsx b/packages/core/client/src/schema-component/antd/kanban/Kanban.Designer.tsx
index cdc3527993..f8b8524189 100644
--- a/packages/core/client/src/schema-component/antd/kanban/Kanban.Designer.tsx
+++ b/packages/core/client/src/schema-component/antd/kanban/Kanban.Designer.tsx
@@ -7,7 +7,9 @@ import { useCollectionFilterOptions } from '../../../collection-manager/action-h
import { GeneralSchemaDesigner, SchemaSettings } from '../../../schema-settings';
import { useSchemaTemplate } from '../../../schema-templates';
import { useDesignable } from '../../hooks';
+import { removeNullCondition } from '../filter';
import { FixedBlockDesignerItem } from '../page';
+import { FilterDynamicComponent } from '../table-v2/FilterDynamicComponent';
export const KanbanDesigner = () => {
const { name, title } = useCollection();
@@ -35,12 +37,15 @@ export const KanbanDesigner = () => {
default: defaultFilter,
enum: dataSource,
'x-component': 'Filter',
- 'x-component-props': {},
+ 'x-component-props': {
+ dynamicComponent: (props) => FilterDynamicComponent({ ...props }),
+ },
},
},
} as ISchema
}
onSubmit={({ filter }) => {
+ filter = removeNullCondition(filter);
const params = field.decoratorProps.params || {};
params.filter = filter;
field.decoratorProps.params = params;
diff --git a/packages/core/client/src/schema-component/antd/radio/Radio.tsx b/packages/core/client/src/schema-component/antd/radio/Radio.tsx
index 10a38ef520..bbcad25e37 100644
--- a/packages/core/client/src/schema-component/antd/radio/Radio.tsx
+++ b/packages/core/client/src/schema-component/antd/radio/Radio.tsx
@@ -31,7 +31,7 @@ Radio.Group = connect(
if (!isValid(props.value)) {
return