fix: 修复多对多筛选中间表无效 (#962)

Reviewed-on: daoyoucloud/tachybase#962
Reviewed-by: sealday <zhanglin@daoyoucloud.com>
Co-authored-by: wjh <wwwjh0710@163.com>
Co-committed-by: wjh <wwwjh0710@163.com>
This commit is contained in:
wjh 2024-05-10 11:49:12 +08:00 committed by sealday
parent 2b0e1fa573
commit 3723ad1486

View File

@ -303,6 +303,7 @@ export const ThroughCollection = observer(
const record = useRecord(); const record = useRecord();
const value = record[field.props.name]; const value = record[field.props.name];
const [initialValue, setInitialValue] = useState(value || field.initialValue); const [initialValue, setInitialValue] = useState(value || field.initialValue);
const [defOptions, setDefOptions] = useState([]);
const loadCollections = () => { const loadCollections = () => {
const filteredItems = getCollections().filter((item) => { const filteredItems = getCollections().filter((item) => {
@ -320,6 +321,7 @@ export const ThroughCollection = observer(
useEffect(() => { useEffect(() => {
const data = loadCollections(); const data = loadCollections();
setOptions(data); setOptions(data);
setDefOptions(data);
if (value) { if (value) {
const option = data.find((v) => v.value === value); const option = data.find((v) => v.value === value);
setInitialValue(option?.label || value); setInitialValue(option?.label || value);
@ -327,13 +329,13 @@ export const ThroughCollection = observer(
}, []); }, []);
const handleSearch = (value: string) => { const handleSearch = (value: string) => {
if (value) { if (value) {
const filteredOptions = options.filter((option) => { const filteredOptions = defOptions.filter((option) => {
return option.label.toLowerCase().includes(value.toLowerCase()); return option.label.toLowerCase().includes(value.toLowerCase());
}); });
setOptions(filteredOptions); setOptions(filteredOptions);
} else { } else {
const data = loadCollections(); setOptions(defOptions);
setOptions(data);
} }
}; };
return ( return (