Merge branch 'main' into next

This commit is contained in:
nocobase[bot] 2025-04-23 03:40:15 +00:00
commit ba89bcd4b4

View File

@ -7,7 +7,7 @@
* For more information, please refer to: https://www.nocobase.com/agreement.
*/
import React, { useState, useContext } from 'react';
import React, { useState, useContext, useEffect } from 'react';
import { RecordPickerProvider, RecordPickerContext } from '../../../schema-component/antd/record-picker';
import {
SchemaComponentOptions,
@ -41,9 +41,16 @@ const useTableSelectorProps = () => {
export const AssociateActionProvider = (props) => {
const [selectedRows, setSelectedRows] = useState([]);
const collection = useCollection();
const { resource, service, block, __parent } = useBlockRequestContext();
const { resource, block, __parent } = useBlockRequestContext();
const actionCtx = useActionContext();
const { isMobile } = useOpenModeContext() || {};
const [associationData, setAssociationData] = useState([]);
useEffect(() => {
resource?.list?.().then((res) => {
setAssociationData(res.data?.data || []);
});
}, [resource]);
const pickerProps = {
size: 'small',
onChange: props?.onChange,
@ -73,8 +80,8 @@ export const AssociateActionProvider = (props) => {
};
const getFilter = () => {
const targetKey = collection?.filterTargetKey || 'id';
if (service.data?.data) {
const list = service.data?.data.map((option) => option[targetKey]).filter(Boolean);
if (associationData) {
const list = associationData.map((option) => option[targetKey]).filter(Boolean);
const filter = list.length ? { $and: [{ [`${targetKey}.$ne`]: list }] } : {};
return filter;
}