UNPKG

zyy-free-layout

Version:

[vue3+ts]自由拖动布局

38 lines (37 loc) 1.85 kB
import { DesignWidget, LayoutOptions, PageRect, Point, SelectArea, WidgetOption } from "@/types"; import { Widget } from "./widget"; import { VNode, InjectionKey, Ref } from "vue"; import { DragService } from "./dragService"; export interface Model { pageRect: PageRect; newWidget: Widget | null; widgets: Widget[]; selectedArea: SelectArea | null; } export declare class FreeLayoutService { container: Ref<HTMLElement | null>; $emit: (event: "createWidget" | "attached" | "drag-start" | "moving" | "moved" | "delete" | "widgetClick", ...args: any[]) => void; renderWidget?: ((widget: Widget) => VNode) | undefined; static token: InjectionKey<FreeLayoutService>; static inject: () => FreeLayoutService | undefined; dragService?: DragService; options: Required<LayoutOptions>; model: Model; constructor(options: LayoutOptions, container: Ref<HTMLElement | null>, $emit: (event: "createWidget" | "attached" | "drag-start" | "moving" | "moved" | "delete" | "widgetClick", ...args: any[]) => void, renderWidget?: ((widget: Widget) => VNode) | undefined, dragService?: DragService); setDragService(dragService?: DragService): void; getRect(): PageRect; setPosition(x?: number, y?: number): void; setSize(width?: number, height?: number): void; createNewWidget(option: WidgetOption, startEvent: MouseEvent): void; deleteNewWidget(): void; addWidget(options: DesignWidget): Widget; getWidgets(): Widget[]; getWidget(id: string): Widget | undefined; deleteWidget(id: string): void; clearWidget(): void; createSelectedArea(): void; setSelectedWidgets(selectedArea: SelectArea): void; getSelectedWidgets(): Widget[]; clearSelectedWidgets(): void; mousePToPageP(mouseX: number, mouseY: number): Point; }