fix: setting block cant search items (#814)

Reviewed-on: daoyoucloud/tachybase#814
This commit is contained in:
sealday 2024-04-23 17:54:31 +08:00
parent 5fdd8903e1
commit 5b8bd6e19c
2 changed files with 32 additions and 23 deletions

View File

@ -0,0 +1,5 @@
---
"@hera/plugin-core": patch
---
fix setting blocks

View File

@ -1,7 +1,7 @@
import { FormOutlined } from '@ant-design/icons'; import { FormOutlined } from '@ant-design/icons';
import { FormLayout } from '@formily/antd-v5'; import { FormLayout } from '@formily/antd-v5';
import { SchemaOptionsContext } from '@nocobase/schema'; import { SchemaOptionsContext } from '@nocobase/schema';
import { createFormBlockSchema, useAPIClient, useCollectionManager } from '@nocobase/client'; import { APIClientProvider, createFormBlockSchema, useAPIClient, useCollectionManager } from '@nocobase/client';
import { import {
DataBlockInitializer, DataBlockInitializer,
FormDialog, FormDialog,
@ -30,11 +30,11 @@ export const SettingBlockInitializer = () => {
onCreateBlockSchema={async ({ item }) => { onCreateBlockSchema={async ({ item }) => {
const collection = cm.getCollection(item.name); const collection = cm.getCollection(item.name);
const titleField = collection.titleField; const titleField = collection.titleField;
const result = await api.resource(collection.name).list();
const values = await FormDialog( const values = await FormDialog(
t('Pick a data entry for viewing and editing'), t('Pick a data entry for viewing and editing'),
() => { () => {
return ( return (
<APIClientProvider apiClient={api}>
<SchemaComponentOptions scope={options.scope} components={{ ...options.components }}> <SchemaComponentOptions scope={options.scope} components={{ ...options.components }}>
<FormLayout layout={'vertical'}> <FormLayout layout={'vertical'}>
<SchemaComponent <SchemaComponent
@ -42,14 +42,17 @@ export const SettingBlockInitializer = () => {
properties: { properties: {
id: { id: {
title: tval('Please select'), title: tval('Please select'),
enum: result.data.data.map((item) => {
return {
label: item[titleField].toString(),
value: item.id,
};
}),
required: true, required: true,
'x-component': 'Select', 'x-component': 'RemoteSelect',
'x-component-props': {
service: {
resource: item.name,
},
fieldNames: {
label: titleField,
value: 'id',
},
},
'x-decorator': 'FormItem', 'x-decorator': 'FormItem',
}, },
}, },
@ -57,6 +60,7 @@ export const SettingBlockInitializer = () => {
/> />
</FormLayout> </FormLayout>
</SchemaComponentOptions> </SchemaComponentOptions>
</APIClientProvider>
); );
}, },
theme, theme,