vue3-free-layout
Version:
[vue3+ts]拖动布局,自由拖动,标尺,放大缩小,控件之间的标尺
38 lines (37 loc) • 942 B
TypeScript
import DesignService from "@/services/design.service";
export interface Point {
x: number;
y: number;
}
export interface Widget extends Point {
id: string;
tag: string;
width: number;
height: number;
margin: [number, number, number, number];
padding: [number, number, number, number];
enableResize: boolean;
enableDragable: boolean;
enableOverlap: boolean;
levels: number;
components?: Array<Omit<Widget, 'components'>>;
}
export interface DesignWidget extends Widget {
state: number;
moveing: boolean;
resizing: boolean;
baseX: number;
baseY: number;
isOverlapping: boolean;
}
export interface DesignPanelRef {
service: DesignService;
createWidget(widget: Widget): void;
getPageWidgets(): Array<DesignWidget>;
}
export interface Boundary {
top: number;
bottom: number;
left: number;
right: number;
}