diff --git a/packages/core/client/src/flow/models/data-blocks/form/QuickEditForm.tsx b/packages/core/client/src/flow/models/data-blocks/form/QuickEditForm.tsx index 5d53063f04..fd34a091bf 100644 --- a/packages/core/client/src/flow/models/data-blocks/form/QuickEditForm.tsx +++ b/packages/core/client/src/flow/models/data-blocks/form/QuickEditForm.tsx @@ -159,3 +159,7 @@ QuickEditForm.registerFlow({ }, }, }); + +QuickEditForm.define({ + hide: true, +}); diff --git a/packages/core/client/src/flow/models/data-blocks/table/TableModel.tsx b/packages/core/client/src/flow/models/data-blocks/table/TableModel.tsx index 9215c5a12e..63c0c9893d 100644 --- a/packages/core/client/src/flow/models/data-blocks/table/TableModel.tsx +++ b/packages/core/client/src/flow/models/data-blocks/table/TableModel.tsx @@ -212,13 +212,7 @@ export class TableModel extends DataBlockModel { return ( - { - if (active.id && over?.id && active.id !== over.id) { - this.flowEngine.moveModel(active.id as string, over.id as string); - } - }} - > +
{this.mapSubModels('actions', (action) => { @@ -235,6 +229,8 @@ export class TableModel extends DataBlockModel { return null; })} + {/* 占位 */} + {this.mapSubModels('actions', (action) => { diff --git a/packages/core/flow-engine/src/components/dnd/index.tsx b/packages/core/flow-engine/src/components/dnd/index.tsx index d9ff8e06c5..397629b52a 100644 --- a/packages/core/flow-engine/src/components/dnd/index.tsx +++ b/packages/core/flow-engine/src/components/dnd/index.tsx @@ -11,6 +11,7 @@ import { DragOutlined } from '@ant-design/icons'; import { DndContext, DndContextProps, DragOverlay, useDraggable, useDroppable } from '@dnd-kit/core'; import React, { FC, useState } from 'react'; import { FlowModel } from '../../models'; +import { useFlowEngine } from '../../provider'; // 可拖拽图标组件 export const DragHandler: FC<{ model: FlowModel }> = ({ model, children = }) => { @@ -58,9 +59,9 @@ export const Droppable: FC<{ model: FlowModel; children: React.ReactNode }> = ({ }; // 提供一个封装了 DragOverlay 的 DndProvider 组件,继承 DndContext 的所有 props -export const DndProvider: FC = ({ children, ...restProps }) => { +export const DndProvider: FC = ({ children, onDragEnd, ...restProps }) => { const [activeId, setActiveId] = useState(null); - + const flowEngine = useFlowEngine(); return ( { @@ -69,7 +70,15 @@ export const DndProvider: FC = ({ children, ...restProps }) => }} onDragEnd={(event) => { setActiveId(null); - restProps.onDragEnd?.(event); + // 如果没有 onDragEnd 回调,则默认调用 flowEngine 的 moveModel 方法 + if (!onDragEnd) { + if (event.over) { + flowEngine.moveModel(event.active.id, event.over.id); + } + } else { + // 如果有 onDragEnd 回调,则调用它 + onDragEnd(event); + } }} {...restProps} > diff --git a/packages/core/flow-engine/src/types.ts b/packages/core/flow-engine/src/types.ts index b49299ea0b..eb91868d56 100644 --- a/packages/core/flow-engine/src/types.ts +++ b/packages/core/flow-engine/src/types.ts @@ -8,10 +8,10 @@ */ import { ISchema } from '@formily/json-schema'; +import { APIClient } from '@nocobase/sdk'; import type { FlowEngine } from './flowEngine'; import type { FlowModel } from './models'; import { ReactView } from './ReactView'; -import { APIClient } from '@nocobase/sdk'; /** * 工具类型:如果 T 是数组类型,则提取数组元素类型;否则返回 T 本身 @@ -326,7 +326,7 @@ export interface FlowModelOptions;