UNPKG

vue3-free-layout

Version:

[vue3+ts]拖动布局,自由拖动,标尺,放大缩小,控件之间的标尺

62 lines (61 loc) 2.04 kB
import { Boundary, DesignWidget } from "@/types"; import DesignService from "@/services/design.service"; import { UpdateData, YWidget } from "@/services/synchronize.service"; export declare enum LineDirection { ROW = 0, COLUMN = 1 } export declare enum DistanceEnum { ADSORB = 0, SHOW_LINE = 1, REMOTE = 2 } interface Line { id: string; direction: LineDirection; x: number; y: number; show: boolean; } export interface BoundaryLine extends Line { width: number | string; height: number | string; } export interface AlignmentOption { showAlign: boolean; enableAdsorb: boolean; alignWeight: number; alignColor: string; showAlignSpan: number; adsorbSpan: number; pagePadding: [number, number, number, number]; } export default class AlignmentLineService { option: AlignmentOption; designService: DesignService; boundaryLine: Array<BoundaryLine>; constructor(option: AlignmentOption, designService: DesignService); setPaddingLine(): void; onNewWidgetMove(widgets: Array<DesignWidget>, designService: DesignService): void; onWidgetGroupMove(yWidgets: Array<YWidget>): void; handlerWidgetMove(boundary: Boundary, adsorbHandler: Function): void; adsorbNewWidge(designService: DesignService, place: string, line: BoundaryLine): void; adsorbWidgets(yWidgets: Array<YWidget>, place: string, line: BoundaryLine, boundary: Boundary): void; onBoundaryMove(selecteds: Array<YWidget>, direct: string[]): void; getDistance(span: number, line: number): { distance: number; tag: DistanceEnum; }; addBoundaryLine(widget: DesignWidget): void; delBoundaryLine(id: string): void; clearAllLine(): void; hideAllLine(): void; handlerAlignmentLine(updateData: UpdateData): void; leftJustify(): void; rightJustify(): void; topJustify(): void; bottomJustify(): void; rowBetween(): void; columnBetween(): void; } export {};