diff --git a/src/editor/core/event/CanvasEvent.ts b/src/editor/core/event/CanvasEvent.ts index 2618e7b..cda6425 100644 --- a/src/editor/core/event/CanvasEvent.ts +++ b/src/editor/core/event/CanvasEvent.ts @@ -1,9 +1,11 @@ +import { version } from "../../../../package.json" import { ElementType } from "../.." import { ZERO } from "../../dataset/constant/Common" import { EDITOR_ELEMENT_COPY_ATTR } from "../../dataset/constant/Element" import { ElementStyleKey } from "../../dataset/enum/ElementStyle" import { MouseEventButton } from "../../dataset/enum/Event" import { KeyMap } from "../../dataset/enum/Keymap" +import { IEditorResult } from "../../interface/Editor" import { IElement } from "../../interface/Element" import { ICurrentPosition } from "../../interface/Position" import { writeTextByElementList } from "../../utils/clipboard" @@ -455,10 +457,19 @@ export class CanvasEvent { this.isCompositing = false } - public save(): IElement[] { + public save(): IEditorResult { + // 配置 + const { width, height, margins } = this.draw.getOptions() + // 数据 const elementList = this.draw.getOriginalElementList() const data = zipElementList(elementList) - return data + return { + version, + width, + height, + margins, + data + } } } \ No newline at end of file diff --git a/src/editor/interface/Editor.ts b/src/editor/interface/Editor.ts index d698980..d63f49f 100644 --- a/src/editor/interface/Editor.ts +++ b/src/editor/interface/Editor.ts @@ -1,3 +1,5 @@ +import { IElement } from ".." + export interface IEditorOption { defaultType?: string; defaultFont?: string; @@ -27,4 +29,12 @@ export interface IEditorOption { tdPadding?: number; defaultTdHeight?: number; defaultHyperlinkColor?: string; +} + +export interface IEditorResult { + version: string; + width: number; + height: number; + margins: [top: number, right: number, bootom: number, left: number]; + data: IElement[]; } \ No newline at end of file diff --git a/src/editor/interface/Listener.ts b/src/editor/interface/Listener.ts index f3129a6..ec86f66 100644 --- a/src/editor/interface/Listener.ts +++ b/src/editor/interface/Listener.ts @@ -1,5 +1,5 @@ -import { IElement } from ".." import { RowFlex } from "../dataset/enum/Row" +import { IEditorResult } from "./Editor" export interface IRangeStype { undo: boolean; @@ -13,7 +13,7 @@ export interface IRangeStype { color: string | null; highlight: string | null; rowFlex: RowFlex | null; - rowMargin: number + rowMargin: number; } export type IRangeStyleChange = (payload: IRangeStype) => void @@ -26,4 +26,4 @@ export type IPageSizeChange = (payload: number) => void export type IPageScaleChange = (payload: number) => void -export type ISaved = (payload: IElement[]) => void +export type ISaved = (payload: IEditorResult) => void