diff --git a/packages/app/src/components/form.fields/registry.ts b/packages/app/src/components/form.fields/registry.ts index b430ff266..a48d44dc2 100644 --- a/packages/app/src/components/form.fields/registry.ts +++ b/packages/app/src/components/form.fields/registry.ts @@ -14,7 +14,7 @@ import { Range } from './range' import { Rating } from './rating' import { Upload } from './upload' import { Filter } from './filter' -import { DrawerSelect } from './drawer-select' +import { RemoteSelect } from './remote-select' import { SubTable } from './sub-table' export const setup = () => { @@ -45,7 +45,8 @@ export const setup = () => { rating: Rating, upload: Upload, filter: Filter, - drawerSelect: DrawerSelect, + remoteSelect: RemoteSelect, + drawerSelect: RemoteSelect, subTable: SubTable, }) } diff --git a/packages/app/src/components/form.fields/remote-select/index.tsx b/packages/app/src/components/form.fields/remote-select/index.tsx new file mode 100644 index 000000000..3b0efc13b --- /dev/null +++ b/packages/app/src/components/form.fields/remote-select/index.tsx @@ -0,0 +1,36 @@ +import React from 'react' +import { connect } from '@formily/react-schema-renderer' +import moment from 'moment' +import { Select } from 'antd' +import { + mapStyledProps, + mapTextComponent, + compose, + isStr, + isArr +} from '../shared' +import { useRequest } from 'umi'; +import api from '@/api-client'; + +function RemoteSelectComponent(props) { + const { value, onChange, resourceName, associatedKey, labelField, valueField } = props; + const { data = [], loading } = useRequest(() => api.resource(resourceName).list({ + associatedKey, + }), { + refreshDeps: [resourceName, associatedKey] + }); + return ( + <> + + > + ); +} + +export const RemoteSelect = connect({ + getProps: mapStyledProps, + getComponent: mapTextComponent, +})(RemoteSelectComponent) + +export default RemoteSelect diff --git a/packages/app/src/components/views/Field/index.tsx b/packages/app/src/components/views/Field/index.tsx index 53ecb1d9b..bca3d6904 100644 --- a/packages/app/src/components/views/Field/index.tsx +++ b/packages/app/src/components/views/Field/index.tsx @@ -172,7 +172,7 @@ export function SubTableField(props: any) { } return (