diff --git a/packages/app/src/components/form.fields/draggable-table/index.tsx b/packages/app/src/components/form.fields/draggable-table/index.tsx index d9957256a..62c3378f9 100644 --- a/packages/app/src/components/form.fields/draggable-table/index.tsx +++ b/packages/app/src/components/form.fields/draggable-table/index.tsx @@ -16,11 +16,12 @@ import { Spin } from '@nocobase/client' import { fields2columns, components } from '@/components/views/SortableTable' function DraggableTableComponent(props) { - const { value, onChange, disabled, rowKey = 'id', fields = [], resourceName, associatedKey, filter, labelField, valueField = 'id', objectValue, placeholder } = props; + const { mode = 'showInDetail', value, onChange, disabled, rowKey = 'id', fields = [], resourceName, associatedKey, filter, labelField, valueField = 'id', objectValue, placeholder } = props; const { data = [], loading = true, mutate } = useRequest(() => { return api.resource(resourceName).list({ associatedKey, filter, + perPage: -1, }); }, { refreshDeps: [resourceName, associatedKey] @@ -34,7 +35,9 @@ function DraggableTableComponent(props) { selectedRowKeys: Array.isArray(value) ? value : data.map(item => item[rowKey]), onChange: onTableChange, } - const dataSource = data.filter(item => get(item, ['component', 'showInDetail'])); + const dataSource = data.filter(item => { + return get(item, ['component', mode]) + }); // const sortIds = get(value, 'sort')||[]; // let values = []; // sortIds.forEach(id => { diff --git a/packages/app/src/components/views/Form/DrawerForm.tsx b/packages/app/src/components/views/Form/DrawerForm.tsx index 672d1f60a..c8eee0f80 100644 --- a/packages/app/src/components/views/Form/DrawerForm.tsx +++ b/packages/app/src/components/views/Form/DrawerForm.tsx @@ -42,7 +42,7 @@ export const DrawerForm = forwardRef((props: any, ref) => { const [form, setForm] = useState({}); const [changed, setChanged] = useState(false); console.log(associatedKey); - const { title, actionDefaultParams = {}, fields: properties ={} } = props.schema||{}; + const { title, actionDefaultParams = {}, fields = {} } = props.schema||{}; const [resourceKey, setResourceKey] = useState(props.resourceKey); const [visible, setVisible] = useState(false); const name = associatedName ? `${associatedName}.${resourceName}` : resourceName; @@ -60,7 +60,17 @@ export const DrawerForm = forwardRef((props: any, ref) => { setVisible, getData: run, })); - + const { displayFormFields = [] } = activeTab; + const properties: any ={}; + for (const key in fields) { + if (Object.prototype.hasOwnProperty.call(fields, key)) { + const field = fields[key]; + if (Array.isArray(displayFormFields) && displayFormFields.length && displayFormFields.indexOf(field.id) === -1) { + continue; + } + properties[key] = field; + } + } return (