fix(filter): fix $in operatror (#3235)

This commit is contained in:
Zeke Zhang 2023-12-19 14:23:09 +08:00 committed by GitHub
parent a6c23d58a1
commit c2f3cfd6ce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 10 deletions

View File

@ -83,8 +83,8 @@ export const transformToFilter = (
values = flatten(values, {
breakOn({ value, path }) {
// 日期字段的 `$dateBetween` 操作符的值是一个数组,需要特殊处理
if (operators[path] === '$dateBetween') {
// 下面操作符的值是一个数组,需要特殊处理
if (['$dateBetween', '$in'].includes(operators[path])) {
return true;
}

View File

@ -525,34 +525,40 @@ export const EditOperator = () => {
['x-uid']: uid,
['x-filter-operators']: storedOperators,
};
let componentProps = {};
// 根据操作符的配置,设置组件的属性
if (operator?.schema?.['x-component']) {
_.set(fieldSchema, 'x-component-props.component', operator.schema['x-component']);
_.set(field, 'componentProps.component', operator.schema['x-component']);
field.reset();
componentProps = {
component: operator.schema['x-component'],
...operator.schema['x-component-props'],
};
dn.emit('patch', {
schema: {
['x-uid']: fieldSchema['x-uid'],
['x-component-props']: {
component: operator.schema['x-component'],
},
['x-component-props']: componentProps,
},
});
} else if (fieldSchema['x-component-props']?.component) {
_.set(fieldSchema, 'x-component-props.component', null);
_.set(field, 'componentProps.component', null);
field.reset();
componentProps = {
component: null,
...operator.schema['x-component-props'],
};
dn.emit('patch', {
schema: {
['x-uid']: fieldSchema['x-uid'],
['x-component-props']: {
component: null,
},
['x-component-props']: componentProps,
},
});
}
field.componentProps = componentProps;
dn.emit('patch', {
schema,
});

View File

@ -6,11 +6,11 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react';
import { useTranslation } from 'react-i18next';
import { useAPIClient } from '../../../api-client';
import { findFormBlock } from '../../../block-provider';
import { useFormBlockContext } from '../../../block-provider/FormBlockProvider';
import { useCollectionManager } from '../../../collection-manager';
import { compatibleDataId } from '../../../schema-settings/DataTemplates/FormDataTemplates';
import { useToken } from '../__builtins__';
import { RemoteSelect } from '../remote-select';
import { useFormBlockContext } from '../../../block-provider/FormBlockProvider';
export interface ITemplate {
config?: {
@ -40,7 +40,6 @@ const useDataTemplates = () => {
const { t } = useTranslation();
const { duplicateData } = useFormBlockContext();
const { getCollectionJoinField } = useCollectionManager();
console.log(useFormBlockContext());
if (duplicateData) {
return duplicateData;
}