Merge branch 'main' into next

This commit is contained in:
nocobase[bot] 2025-01-07 02:05:32 +00:00
commit 6a21af710b
3 changed files with 15 additions and 2 deletions

View File

@ -149,6 +149,7 @@ export const SourceKey = observer(
defaultValue={sourceKey || options?.[0]?.value} defaultValue={sourceKey || options?.[0]?.value}
onChange={props?.onChange} onChange={props?.onChange}
showSearch showSearch
filterOption={(input, option) => option?.label.toLowerCase().includes(input.toLowerCase())}
/> />
</div> </div>
); );
@ -216,6 +217,7 @@ export const TargetKey = observer(
}} }}
value={initialValue} value={initialValue}
disabled={disabled} disabled={disabled}
filterOption={(input, option) => option?.label.toLowerCase().includes(input.toLowerCase())}
/> />
</div> </div>
); );
@ -235,6 +237,7 @@ export const ForeignKey = observer(
const compile = useCompile(); const compile = useCompile();
const form = useForm(); const form = useForm();
const [initialValue, setInitialValue] = useState(value || (template === 'view' ? null : field.initialValue)); const [initialValue, setInitialValue] = useState(value || (template === 'view' ? null : field.initialValue));
const [initialOptions, setInitialOptions] = useState([]);
useEffect(() => { useEffect(() => {
const effectField = ['belongsTo'].includes(type) const effectField = ['belongsTo'].includes(type)
? collectionName ? collectionName
@ -254,6 +257,7 @@ export const ForeignKey = observer(
}; };
}); });
setOptions(sourceOptions); setOptions(sourceOptions);
setInitialOptions(sourceOptions);
if (value) { if (value) {
const option = sourceOptions.find((v) => v.value === value); const option = sourceOptions.find((v) => v.value === value);
setInitialValue(option?.label || value); setInitialValue(option?.label || value);
@ -295,6 +299,15 @@ export const ForeignKey = observer(
props?.onChange?.(value); props?.onChange?.(value);
setInitialValue(option.label || value); setInitialValue(option.label || value);
}} }}
onSearch={(value) => {
if (value) {
const targetValue = value.toLocaleLowerCase();
const result = options.filter((v) => v.label.toLocaleLowerCase().includes(targetValue));
setOptions(result);
} else {
setOptions(initialOptions);
}
}}
/> />
</div> </div>
); );

View File

@ -60,7 +60,7 @@ export const TableColumnActionBar = observer(
<SortableItem <SortableItem
className={designerCss({ className={designerCss({
margin: isInSubTable ? '-12px -8px' : '-18px -16px', margin: isInSubTable ? '-12px -8px' : '-18px -16px',
padding: isInSubTable ? '12px 8px' : '18px 16px', padding: isInSubTable ? '12px 8px' : '12px 16px',
})} })}
> >
<Designer /> <Designer />

View File

@ -88,7 +88,7 @@ export const TableColumnDecorator = (props) => {
<SortableItem <SortableItem
className={designerCss({ className={designerCss({
margin: isInSubTable ? '-12px -8px' : '-18px -16px', margin: isInSubTable ? '-12px -8px' : '-18px -16px',
padding: isInSubTable ? '12px 8px' : '18px 16px', padding: isInSubTable ? '12px 8px' : '12px 16px',
})} })}
> >
<CollectionFieldContext.Provider value={collectionField}> <CollectionFieldContext.Provider value={collectionField}>