mirror of
https://github.com/nocobase/nocobase
synced 2024-11-15 08:55:33 +00:00
refactor: default value for field configuration in sub-table (#2425)
* refactor: field default value config in sub-table * refactor: richtext default value * refactor: richtext default value * refactor: isShowDefaultValue
This commit is contained in:
parent
2f6bfa65f7
commit
274d53988a
@ -10,19 +10,20 @@ export const Editable = observer((props) => {
|
||||
const field: any = useField();
|
||||
const containerRef = useRef(null);
|
||||
const fieldSchema = useFieldSchema();
|
||||
const value = typeof field.value === 'object' ? field.value?.default : field.value;
|
||||
const schema: any = {
|
||||
name: fieldSchema.name,
|
||||
'x-collection-field': fieldSchema['x-collection-field'],
|
||||
'x-component': 'CollectionField',
|
||||
'x-read-pretty': true,
|
||||
default: field.value,
|
||||
default: value,
|
||||
'x-component-props': fieldSchema['x-component-props'],
|
||||
};
|
||||
const form = useMemo(
|
||||
() =>
|
||||
createForm({
|
||||
values: {
|
||||
[fieldSchema.name]: field.value,
|
||||
[fieldSchema.name]: value,
|
||||
},
|
||||
}),
|
||||
[field.value, fieldSchema['x-component-props']],
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { connect, mapReadPretty } from '@formily/react';
|
||||
import { connect, mapReadPretty, mapProps } from '@formily/react';
|
||||
import React from 'react';
|
||||
import ReactQuill from 'react-quill';
|
||||
import { ReadPretty as InputReadPretty } from '../input';
|
||||
@ -35,6 +35,13 @@ export const RichText = connect(
|
||||
/>,
|
||||
);
|
||||
},
|
||||
mapProps((props) => {
|
||||
const { value } = props;
|
||||
return {
|
||||
...props,
|
||||
value: typeof value === 'object' ? value?.default : value,
|
||||
};
|
||||
}),
|
||||
mapReadPretty((props) => {
|
||||
return <InputReadPretty.Html {...props} />;
|
||||
}),
|
||||
|
@ -1516,14 +1516,14 @@ SchemaSettings.DefaultValue = function DefaultValueConfigure(props) {
|
||||
|
||||
s['x-read-pretty'] = false;
|
||||
s['x-disabled'] = false;
|
||||
|
||||
const schema = {
|
||||
...(s || {}),
|
||||
'x-decorator': 'FormItem',
|
||||
'x-component-props': {
|
||||
...s['x-component-props'],
|
||||
collectionName: collectionField?.collectionName,
|
||||
targetField,
|
||||
onChange: props.onChange,
|
||||
onChange: collectionField?.interface !== 'richText' ? props.onChange : null,
|
||||
defaultValue: getFieldDefaultValue(s, collectionField),
|
||||
style: {
|
||||
width: '100%',
|
||||
@ -1532,7 +1532,6 @@ SchemaSettings.DefaultValue = function DefaultValueConfigure(props) {
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
return <SchemaComponent schema={schema} />;
|
||||
},
|
||||
},
|
||||
@ -1679,8 +1678,9 @@ SchemaSettings.SortingRule = function SortRuleConfigure(props) {
|
||||
// 是否显示默认值配置项
|
||||
export const isShowDefaultValue = (collectionField: CollectionFieldOptions, getInterface) => {
|
||||
return (
|
||||
!['o2o', 'oho', 'obo', 'o2m', 'attachment', 'expression'].includes(collectionField?.interface) &&
|
||||
!isSystemField(collectionField, getInterface)
|
||||
!['o2o', 'oho', 'obo', 'o2m', 'attachment', 'expression', 'point', 'lineString', 'circle', 'polygon'].includes(
|
||||
collectionField?.interface,
|
||||
) && !isSystemField(collectionField, getInterface)
|
||||
);
|
||||
};
|
||||
|
||||
|
@ -8,7 +8,6 @@ import { FieldOption, Option } from '../type';
|
||||
export const useIsSameOrChildCollection = () => {
|
||||
const { getChildrenCollections } = useCollectionManager();
|
||||
return (contextCollection, targetCollection) => {
|
||||
console.log(contextCollection, targetCollection);
|
||||
if (contextCollection === targetCollection) {
|
||||
return true;
|
||||
}
|
||||
@ -32,35 +31,33 @@ const getChildren = (
|
||||
getIsSameOrChildCollection,
|
||||
): Option[] => {
|
||||
const result = options
|
||||
.map(
|
||||
(option): Option => {
|
||||
const disabled = !getIsSameOrChildCollection(option.target, collectionField?.target);
|
||||
if (!option.target) {
|
||||
return {
|
||||
key: option.name,
|
||||
value: option.name,
|
||||
label: compile(option.title),
|
||||
disabled: disabled,
|
||||
isLeaf: true,
|
||||
depth,
|
||||
};
|
||||
}
|
||||
|
||||
if (depth >= maxDepth) {
|
||||
return null;
|
||||
}
|
||||
.map((option): Option => {
|
||||
const disabled = !getIsSameOrChildCollection(option.target, collectionField?.target);
|
||||
if (!option.target) {
|
||||
return {
|
||||
key: option.name,
|
||||
value: option.name,
|
||||
label: compile(option.title),
|
||||
disabled: disabled,
|
||||
isLeaf: true,
|
||||
field: option,
|
||||
depth,
|
||||
loadChildren,
|
||||
};
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
if (depth >= maxDepth) {
|
||||
return null;
|
||||
}
|
||||
return {
|
||||
key: option.name,
|
||||
value: option.name,
|
||||
label: compile(option.title),
|
||||
disabled: disabled,
|
||||
isLeaf: true,
|
||||
field: option,
|
||||
depth,
|
||||
loadChildren,
|
||||
};
|
||||
})
|
||||
.filter(Boolean);
|
||||
return result;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user