diff --git a/packages/core/client/src/schema-component/antd/variable/Input.tsx b/packages/core/client/src/schema-component/antd/variable/Input.tsx index 0d4e8cc185..cac62bbb4b 100644 --- a/packages/core/client/src/schema-component/antd/variable/Input.tsx +++ b/packages/core/client/src/schema-component/antd/variable/Input.tsx @@ -12,7 +12,7 @@ import { css, cx } from '@emotion/css'; import { useForm } from '@formily/react'; import { error } from '@nocobase/utils/client'; import { cloneDeep } from 'lodash'; -import { extractTemplateElements, composeTemplate } from '@nocobase/json-templates'; +import { extractTemplateElements, composeTemplate } from '@nocobase/json-template-parser'; import { Input as AntInput, Cascader, diff --git a/packages/core/client/src/schema-component/antd/variable/VariableFilters.tsx b/packages/core/client/src/schema-component/antd/variable/VariableFilters.tsx index 47ae34f44f..5187043590 100644 --- a/packages/core/client/src/schema-component/antd/variable/VariableFilters.tsx +++ b/packages/core/client/src/schema-component/antd/variable/VariableFilters.tsx @@ -13,25 +13,24 @@ import { createForm } from '@formily/core'; import { useForm, FormContext } from '@formily/react'; import { FilterOutlined } from '@ant-design/icons'; import { uid, tval } from '@nocobase/utils/client'; -import { variableFilters } from '@nocobase/json-templates'; +import { variableFilters } from '@nocobase/json-template-parser'; import type { MenuProps } from 'antd'; import { SchemaComponent } from '../../core/SchemaComponent'; -const categorys = [ - { key: 'date', type: 'group', label: 'Date' }, - { - key: 'array', - type: 'group', - label: 'Array', - }, -]; -const filterOptions = categorys.map((category) => ({ - ...category, - children: variableFilters - .filter((filter) => filter.category === category.key) - .map((filter) => ({ key: filter.name, label: filter.label })), -})) as MenuProps['items']; +import { useApp } from '../../../application'; +import { useCompile } from '../../hooks'; export function Addition({ variable, onFilterAdd }) { + const app = useApp(); + const compile = useCompile(); + const filterOptions = app.jsonTemplateParser.filterGroups + .sort((a, b) => a.sort - b.sort) + .map((group) => ({ + key: group.name, + label: compile(group.title), + children: group.filters + .sort((a, b) => a.sort - b.sort) + .map((filter) => ({ key: filter.name, label: compile(filter.title) })), + })) as MenuProps['items']; return ( <> | @@ -73,11 +72,11 @@ export function Filter({ config, filter, filterId }) { }; const form = useMemo(() => { - const argsMap = config.paramSchema - ? Object.fromEntries(config.paramSchema.map((param, index) => [param.name, filter.args[index]])) + const argsMap = config.uiSchema + ? Object.fromEntries(config.uiSchema.map((param, index) => [param.name, filter.args[index]])) : {}; return createForm({ initialValues: argsMap }); - }, [config.paramSchema, filter.args]); + }, [config.uiSchema, filter.args]); const useSaveActionProps = () => { const form = useForm(); @@ -87,7 +86,7 @@ export function Filter({ config, filter, filterId }) { onClick: async () => { await form.submit(); const values = form.values; - const params = config.paramSchema.map((param) => values[param.name]); + const params = config.uiSchema.map((param) => values[param.name]); updateFilterParams({ filterId, params }); setOpen(false); }, @@ -119,7 +118,7 @@ export function Filter({ config, filter, filterId }) { // 'x-use-component-props': 'useFormBlockProps', properties: { ...Object.fromEntries( - config.paramSchema.map((param) => [ + config.uiSchema.map((param) => [ param.name, { ...param, @@ -167,12 +166,12 @@ export function Filter({ config, filter, filterId }) { ); }; - const Label =