mirror of
https://gitee.com/nocobase/nocobase.git
synced 2025-07-02 03:02:19 +08:00
fix: bug
This commit is contained in:
parent
8606d0bde7
commit
2e27ee90c0
@ -7,9 +7,9 @@
|
|||||||
* For more information, please refer to: https://www.nocobase.com/agreement.
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
||||||
*/
|
*/
|
||||||
import { connect, mapProps, mapReadPretty } from '@formily/react';
|
import { connect, mapProps, mapReadPretty } from '@formily/react';
|
||||||
import { isValid, toArr } from '@formily/shared';
|
|
||||||
import { Select } from 'antd';
|
import { Select } from 'antd';
|
||||||
import React, { useMemo } from 'react';
|
import React from 'react';
|
||||||
|
import { getUniqueKeyFromCollection } from '../../../../../../collection-manager/interfaces/utils';
|
||||||
import { FormFieldModel } from '../FormFieldModel';
|
import { FormFieldModel } from '../FormFieldModel';
|
||||||
|
|
||||||
function toValue(record: any | any[], fieldNames, multiple = false) {
|
function toValue(record: any | any[], fieldNames, multiple = false) {
|
||||||
@ -35,6 +35,7 @@ function toValue(record: any | any[], fieldNames, multiple = false) {
|
|||||||
|
|
||||||
function LazySelect(props) {
|
function LazySelect(props) {
|
||||||
const { fieldNames, value, multiple } = props;
|
const { fieldNames, value, multiple } = props;
|
||||||
|
console.log(fieldNames, props);
|
||||||
return (
|
return (
|
||||||
<Select
|
<Select
|
||||||
showSearch
|
showSearch
|
||||||
@ -71,7 +72,6 @@ const AssociationSelect = connect(
|
|||||||
export class AssociationSelectFieldModel extends FormFieldModel {
|
export class AssociationSelectFieldModel extends FormFieldModel {
|
||||||
static supportedFieldInterfaces = ['m2m', 'm2o', 'o2o', 'o2m', 'oho', 'obo', 'updatedBy', 'createdBy'];
|
static supportedFieldInterfaces = ['m2m', 'm2o', 'o2o', 'o2m', 'oho', 'obo', 'updatedBy', 'createdBy'];
|
||||||
dataSource;
|
dataSource;
|
||||||
fieldNames: { label: string; value: string; color?: string; icon?: any };
|
|
||||||
|
|
||||||
set onPopupScroll(fn) {
|
set onPopupScroll(fn) {
|
||||||
this.field.setComponentProps({ onPopupScroll: fn });
|
this.field.setComponentProps({ onPopupScroll: fn });
|
||||||
@ -88,9 +88,6 @@ export class AssociationSelectFieldModel extends FormFieldModel {
|
|||||||
getDataSource() {
|
getDataSource() {
|
||||||
return this.field.dataSource;
|
return this.field.dataSource;
|
||||||
}
|
}
|
||||||
setFieldNames(fieldNames) {
|
|
||||||
this.fieldNames = fieldNames;
|
|
||||||
}
|
|
||||||
get component() {
|
get component() {
|
||||||
return [AssociationSelect, {}];
|
return [AssociationSelect, {}];
|
||||||
}
|
}
|
||||||
@ -255,3 +252,42 @@ AssociationSelectFieldModel.registerFlow({
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
AssociationSelectFieldModel.registerFlow({
|
||||||
|
key: 'fieldNames',
|
||||||
|
auto: true,
|
||||||
|
sort: 200,
|
||||||
|
title: 'Specific properties',
|
||||||
|
steps: {
|
||||||
|
fieldNames: {
|
||||||
|
title: 'Title field',
|
||||||
|
uiSchema: {
|
||||||
|
label: {
|
||||||
|
'x-component': 'Select',
|
||||||
|
'x-decorator': 'FormItem',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
defaultParams: (ctx) => {
|
||||||
|
const { target } = ctx.model.collectionField.options;
|
||||||
|
const collectionManager = ctx.model.collectionField.collection.collectionManager;
|
||||||
|
const targetCollection = collectionManager.getCollection(target);
|
||||||
|
const filterKey = getUniqueKeyFromCollection(targetCollection.options as any);
|
||||||
|
return {
|
||||||
|
label: ctx.model.props.fieldNames?.label || targetCollection.options.titleField || filterKey,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
handler(ctx, params) {
|
||||||
|
const { target } = ctx.model.collectionField.options;
|
||||||
|
const collectionManager = ctx.model.collectionField.collection.collectionManager;
|
||||||
|
ctx.model.setStepParams;
|
||||||
|
const targetCollection = collectionManager.getCollection(target);
|
||||||
|
const filterKey = getUniqueKeyFromCollection(targetCollection.options as any);
|
||||||
|
const newFieldNames = {
|
||||||
|
value: filterKey,
|
||||||
|
label: params.label || targetCollection.options.titleField || filterKey,
|
||||||
|
};
|
||||||
|
ctx.model.setComponentProps({ fieldNames: newFieldNames });
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user