diff --git a/packages/plugins/workflow/src/client/components/CollectionFieldSelect.tsx b/packages/plugins/workflow/src/client/components/CollectionFieldSelect.tsx index 835bde95d..7c799b139 100644 --- a/packages/plugins/workflow/src/client/components/CollectionFieldSelect.tsx +++ b/packages/plugins/workflow/src/client/components/CollectionFieldSelect.tsx @@ -1,12 +1,45 @@ import React from "react"; -import { Cascader } from 'antd'; +import { Select, Cascader } from 'antd'; import { useTranslation } from 'react-i18next'; -import { useCollectionFilterOptions, useCompile } from "@nocobase/client"; +import { useCollectionManager, useCollectionFilterOptions, useCompile } from "@nocobase/client"; export default function (props) { + const { collection, value, onChange } = props; + const { t } = useTranslation(); + const compile = useCompile(); + const { getCollectionFields } = useCollectionManager(); + const fields = getCollectionFields(collection) + .filter(field => field.interface && (!field.target || field.type === 'belongsTo')) + .map(field => field.type === 'belongsTo' + ? { + title: `${compile(field.uiSchema?.title || field.name)} ID`, + name: field.foreignKey + } + : { + title: compile(field.uiSchema?.title || field.name), + name: field.name + }); + + return ( + + ); +} + + +function SelectWithAssociations(props) { const { collection, value, onChange } = props; const { t } = useTranslation(); const compile = useCompile();