/** * @desc 拖拽处理器组件 - 用于包装用户内容,提供拖拽功能 * @author 智慧能源事业部 */ import React, { ReactNode } from 'react'; import type { DraggableData, DraggableEvent } from 'react-draggable'; export interface IDragHandlerRef { /** 重置拖拽位置 */ resetPosition: () => void; /** 获取当前位置 */ getPosition: () => { x: number; y: number; }; /** 设置位置 */ setPosition: (position: { x: number; y: number; }) => void; } export interface IDragHandlerProps { /** 子组件 */ children: ReactNode; /** 是否启用拖拽 */ disabled?: boolean; /** 拖拽边界 */ bounds?: 'parent' | { left?: number; top?: number; right?: number; bottom?: number; }; /** 拖拽句柄选择器 */ handle?: string; /** 拖拽模式 */ dragMode?: 'reset' | 'stay'; /** 初始位置 */ defaultPosition?: { x: number; y: number; }; /** 拖拽开始回调 */ onDragStart?: (event: DraggableEvent, data: DraggableData) => void; /** 拖拽中回调 */ onDrag?: (event: DraggableEvent, data: DraggableData) => void; /** 拖拽结束回调 */ onDragStop?: (event: DraggableEvent, data: DraggableData) => void; /** 自定义类名 */ className?: string; /** 自定义样式 */ style?: React.CSSProperties; } declare const DragHandler: React.ForwardRefExoticComponent>; export default DragHandler;