From 301ae1e83aa43e2ac7b774af35fe9fdb72813b91 Mon Sep 17 00:00:00 2001 From: sealday Date: Mon, 25 Mar 2024 17:49:52 +0800 Subject: [PATCH] refactor: remove x-compoent-custom --- .../AssociationCascader.tsx | 7 ++--- .../auto-complete/AutoComplete.tsx | 7 +++-- .../schema-components/select/Select.tsx | 6 ++--- .../items/CustomFilterFormItemInitializer.tsx | 3 +-- .../src/client/schema-settings/index.tsx | 26 ++++++++----------- 5 files changed, 19 insertions(+), 30 deletions(-) diff --git a/packages/plugins/@hera/plugin-core/src/client/schema-components/association-cascader/AssociationCascader.tsx b/packages/plugins/@hera/plugin-core/src/client/schema-components/association-cascader/AssociationCascader.tsx index 38d272c7c..d7b0d135f 100644 --- a/packages/plugins/@hera/plugin-core/src/client/schema-components/association-cascader/AssociationCascader.tsx +++ b/packages/plugins/@hera/plugin-core/src/client/schema-components/association-cascader/AssociationCascader.tsx @@ -1,14 +1,11 @@ import React, { useMemo } from 'react'; import { Cascader } from 'antd'; -import { connect, useFieldSchema } from '@formily/react'; +import { connect } from '@formily/react'; import { useCollectionManager, useRequest } from '@nocobase/client'; import _ from 'lodash'; const AssociationCascader = connect((props) => { - const { fieldNames } = props; - const fieldSchema = useFieldSchema(); - const collection = fieldSchema['collectionName']; - const associationField = props.associationField; + const { fieldNames, collection, associationField } = props; const cm = useCollectionManager(); const titleField = cm.getCollection(collection).titleField; const joinTitleField = cm.getCollection(collection + '.' + associationField).titleField; diff --git a/packages/plugins/@hera/plugin-core/src/client/schema-components/auto-complete/AutoComplete.tsx b/packages/plugins/@hera/plugin-core/src/client/schema-components/auto-complete/AutoComplete.tsx index b51712569..de3fa1f19 100644 --- a/packages/plugins/@hera/plugin-core/src/client/schema-components/auto-complete/AutoComplete.tsx +++ b/packages/plugins/@hera/plugin-core/src/client/schema-components/auto-complete/AutoComplete.tsx @@ -1,14 +1,13 @@ import React, { useEffect, useState } from 'react'; import { AutoComplete as AntdAutoComplete } from 'antd'; -import { connect, useFieldSchema, useForm } from '@formily/react'; -import { useAPIClient, useDesigner, useRequest } from '@nocobase/client'; +import { connect, useFieldSchema } from '@formily/react'; +import { useAPIClient } from '@nocobase/client'; import { useAsyncEffect } from 'ahooks'; import { fuzzysearch } from '../../utils'; export const AutoComplete = connect((props) => { + const { fieldNames, params: fieldFilter } = props; const fieldSchema = useFieldSchema(); - const fieldNames = props.fieldNames || fieldSchema['x-component-props'].fieldNames; - const fieldFilter = props.params; const [defultValue, setDefultValue] = useState([]); const api = useAPIClient(); const [options, setOptions] = useState([]); diff --git a/packages/plugins/@hera/plugin-core/src/client/schema-components/select/Select.tsx b/packages/plugins/@hera/plugin-core/src/client/schema-components/select/Select.tsx index 66b146aac..132205679 100644 --- a/packages/plugins/@hera/plugin-core/src/client/schema-components/select/Select.tsx +++ b/packages/plugins/@hera/plugin-core/src/client/schema-components/select/Select.tsx @@ -143,9 +143,8 @@ const useLabelOptions = (others) => { const fieldSchema = useFieldSchema(); const { getField } = useCollection_deprecated(); const collectionField = useMemo(() => getField(fieldSchema.name), [fieldSchema.name]); - const collectionName = fieldSchema['x-compoent-custom'] ? fieldSchema['name'].toString().slice(7) : ''; const request = { - resource: collectionField ? collectionField?.target : collectionName, + resource: collectionField?.target, action: 'list', params: { pageSize: 99999, @@ -208,9 +207,8 @@ const InternalSelect = connect( if (mode && !['multiple', 'tags'].includes(mode)) { mode = undefined; } - const fieldSchema = useFieldSchema(); const modifiedProps = useLabelOptions(others); - if (objectValue || fieldSchema['x-compoent-custom']) { + if (objectValue) { return ( { {component === 'Select' || component === 'AutoComplete' ? : null} {component === 'Select' || component === 'AutoComplete' ? : null} {component === 'Select' || component === 'AutoComplete' ? : null} - {component === 'Select' || component === 'AutoComplete' ? : null} { const compile = useCompile(); const { getCollectionJoinField, getCollectionFields } = useCollectionManager_deprecated(); const { getField } = useCollection_deprecated(); const fieldSchema = useFieldSchema(); - const { t } = useTranslation(); - const { dn } = useDesignable(); const collectionManage = useCollectionManager_deprecated(); - const collectionManageField = fieldSchema['x-compoent-custom'] - ? collectionManage.collections.filter((value) => value.name === fieldSchema['x-decorator-props'])[0] - : {}; + const collectionManageField = collectionManage.collections.filter( + (value) => value.name === fieldSchema['x-decorator-props'], + )[0]; const collectionField = getField(fieldSchema['name']) || getCollectionJoinField(fieldSchema['x-collection-field']); let fields = []; if (collectionField) { @@ -82,10 +79,9 @@ export const useFormulaTitleVisible = () => { // FIXME 这里现在只有当设置为 select,默认为 select 的时候看不到 return ( options.length > 0 && - ((fieldSchema['x-component-props']?.mode === 'Select' && - fieldSchema['x-component-props']?.fieldNames?.value !== undefined && - fieldSchema['x-component'] === 'CollectionField') || - fieldSchema['x-compoent-custom']) + fieldSchema['x-component-props']?.mode === 'Select' && + fieldSchema['x-component-props']?.fieldNames?.value !== undefined && + fieldSchema['x-component'] === 'CollectionField' ); }; @@ -305,7 +301,8 @@ export const EditTitleField = () => { const { dn } = useDesignable(); const compile = useCompile(); const collectionManage = useCollectionManager_deprecated(); - const collectionManageField = fieldSchema['x-compoent-custom'] + const isCustomFilterItem = ((fieldSchema?.name as string) ?? '').startsWith('custom.'); + const collectionManageField = isCustomFilterItem ? collectionManage.collections.filter((value) => value.name === fieldSchema['x-decorator-props'])[0] : {}; const collectionField = getField(fieldSchema['name']) || getCollectionJoinField(fieldSchema['x-collection-field']); @@ -324,8 +321,7 @@ export const EditTitleField = () => { label: compile(field?.uiSchema?.title) || field?.name, })); - return options.length > 0 && - (fieldSchema['x-component'] === 'CollectionField' || fieldSchema['x-compoent-custom']) ? ( + return options.length > 0 && (fieldSchema['x-component'] === 'CollectionField' || isCustomFilterItem) ? (