feat:add getValue interface

pr675
黄云飞 4 years ago
parent 58849f763b
commit ba30023842

@ -2,6 +2,7 @@ import { IElement } from '../..'
import { EditorMode } from '../../dataset/enum/Editor' import { EditorMode } from '../../dataset/enum/Editor'
import { RowFlex } from '../../dataset/enum/Row' import { RowFlex } from '../../dataset/enum/Row'
import { IDrawImagePayload } from '../../interface/Draw' import { IDrawImagePayload } from '../../interface/Draw'
import { IEditorResult } from '../../interface/Editor'
import { IWatermark } from '../../interface/Watermark' import { IWatermark } from '../../interface/Watermark'
import { CommandAdapt } from './CommandAdapt' import { CommandAdapt } from './CommandAdapt'
@ -55,6 +56,7 @@ export class Command {
private static replace: Function private static replace: Function
private static print: Function private static print: Function
private static getImage: Function private static getImage: Function
private static getValue: Function
private static pageScaleRecovery: Function private static pageScaleRecovery: Function
private static pageScaleMinus: Function private static pageScaleMinus: Function
private static pageScaleAdd: Function private static pageScaleAdd: Function
@ -108,6 +110,7 @@ export class Command {
Command.replace = adapt.replace.bind(adapt) Command.replace = adapt.replace.bind(adapt)
Command.print = adapt.print.bind(adapt) Command.print = adapt.print.bind(adapt)
Command.getImage = adapt.getImage.bind(adapt) Command.getImage = adapt.getImage.bind(adapt)
Command.getValue = adapt.getValue.bind(adapt)
Command.pageScaleRecovery = adapt.pageScaleRecovery.bind(adapt) Command.pageScaleRecovery = adapt.pageScaleRecovery.bind(adapt)
Command.pageScaleMinus = adapt.pageScaleMinus.bind(adapt) Command.pageScaleMinus = adapt.pageScaleMinus.bind(adapt)
Command.pageScaleAdd = adapt.pageScaleAdd.bind(adapt) Command.pageScaleAdd = adapt.pageScaleAdd.bind(adapt)
@ -306,6 +309,10 @@ export class Command {
return Command.getImage() return Command.getImage()
} }
public getValue(): IEditorResult {
return Command.getValue()
}
// 页面缩放 // 页面缩放
public executePageScaleRecovery() { public executePageScaleRecovery() {
return Command.pageScaleRecovery() return Command.pageScaleRecovery()

@ -7,7 +7,7 @@ import { ElementType } from '../../dataset/enum/Element'
import { ElementStyleKey } from '../../dataset/enum/ElementStyle' import { ElementStyleKey } from '../../dataset/enum/ElementStyle'
import { RowFlex } from '../../dataset/enum/Row' import { RowFlex } from '../../dataset/enum/Row'
import { IDrawImagePayload } from '../../interface/Draw' import { IDrawImagePayload } from '../../interface/Draw'
import { IEditorOption } from '../../interface/Editor' import { IEditorOption, IEditorResult } from '../../interface/Editor'
import { IElement, IElementStyle } from '../../interface/Element' import { IElement, IElementStyle } from '../../interface/Element'
import { IColgroup } from '../../interface/table/Colgroup' import { IColgroup } from '../../interface/table/Colgroup'
import { ITd } from '../../interface/table/Td' import { ITd } from '../../interface/table/Td'
@ -1239,6 +1239,10 @@ export class CommandAdapt {
return this.draw.getDataURL() return this.draw.getDataURL()
} }
public getValue(): IEditorResult {
return this.draw.getValue()
}
public pageScaleRecovery() { public pageScaleRecovery() {
const { scale } = this.options const { scale } = this.options
if (scale !== 1) { if (scale !== 1) {

@ -1,7 +1,8 @@
import { version } from '../../../../package.json'
import { ZERO } from '../../dataset/constant/Common' import { ZERO } from '../../dataset/constant/Common'
import { RowFlex } from '../../dataset/enum/Row' import { RowFlex } from '../../dataset/enum/Row'
import { IDrawOption, IDrawRowPayload, IDrawRowResult } from '../../interface/Draw' import { IDrawOption, IDrawRowPayload, IDrawRowResult } from '../../interface/Draw'
import { IEditorOption } from '../../interface/Editor' import { IEditorOption, IEditorResult } from '../../interface/Editor'
import { IElement, IElementMetrics, IElementPosition, IElementFillRect, IElementStyle } from '../../interface/Element' import { IElement, IElementMetrics, IElementPosition, IElementFillRect, IElementStyle } from '../../interface/Element'
import { IRow, IRowElement } from '../../interface/Row' import { IRow, IRowElement } from '../../interface/Row'
import { deepClone, getUUID } from '../../utils' import { deepClone, getUUID } from '../../utils'
@ -35,6 +36,7 @@ import { PageBreakParticle } from './particle/PageBreak'
import { Watermark } from './frame/Watermark' import { Watermark } from './frame/Watermark'
import { EditorMode } from '../../dataset/enum/Editor' import { EditorMode } from '../../dataset/enum/Editor'
import { Control } from './control/Control' import { Control } from './control/Control'
import { zipElementList } from '../../utils/element'
export class Draw { export class Draw {
@ -362,6 +364,21 @@ export class Draw {
} }
} }
public getValue(): IEditorResult {
// 配置
const { width, height, margins, watermark } = this.options
// 数据
const data = zipElementList(this.elementList)
return {
version,
width,
height,
margins,
watermark: watermark.data ? watermark : undefined,
data
}
}
private _createPageContainer(): HTMLDivElement { private _createPageContainer(): HTMLDivElement {
// 容器宽度需跟随纸张宽度 // 容器宽度需跟随纸张宽度
this.container.style.width = `${this.getWidth()}px` this.container.style.width = `${this.getWidth()}px`

@ -1,15 +1,12 @@
import { version } from '../../../../package.json'
import { ElementType } from '../..' import { ElementType } from '../..'
import { ZERO } from '../../dataset/constant/Common' import { ZERO } from '../../dataset/constant/Common'
import { EDITOR_ELEMENT_COPY_ATTR } from '../../dataset/constant/Element' import { EDITOR_ELEMENT_COPY_ATTR } from '../../dataset/constant/Element'
import { ElementStyleKey } from '../../dataset/enum/ElementStyle' import { ElementStyleKey } from '../../dataset/enum/ElementStyle'
import { MouseEventButton } from '../../dataset/enum/Event' import { MouseEventButton } from '../../dataset/enum/Event'
import { KeyMap } from '../../dataset/enum/Keymap' import { KeyMap } from '../../dataset/enum/Keymap'
import { IEditorResult } from '../../interface/Editor'
import { IElement } from '../../interface/Element' import { IElement } from '../../interface/Element'
import { ICurrentPosition } from '../../interface/Position' import { ICurrentPosition } from '../../interface/Position'
import { writeTextByElementList } from '../../utils/clipboard' import { writeTextByElementList } from '../../utils/clipboard'
import { zipElementList } from '../../utils/element'
import { Cursor } from '../cursor/Cursor' import { Cursor } from '../cursor/Cursor'
import { Draw } from '../draw/Draw' import { Draw } from '../draw/Draw'
import { HyperlinkParticle } from '../draw/particle/HyperlinkParticle' import { HyperlinkParticle } from '../draw/particle/HyperlinkParticle'
@ -419,9 +416,8 @@ export class CanvasEvent {
this.selectAll() this.selectAll()
} else if (evt.ctrlKey && evt.key === KeyMap.S) { } else if (evt.ctrlKey && evt.key === KeyMap.S) {
if (isReadonly) return if (isReadonly) return
const saved = this.listener.saved if (this.listener.saved) {
if (saved) { this.listener.saved(this.draw.getValue())
saved(this.save())
} }
evt.preventDefault() evt.preventDefault()
} }
@ -589,20 +585,4 @@ export class CanvasEvent {
this.isCompositing = false this.isCompositing = false
} }
public save(): IEditorResult {
// 配置
const { width, height, margins, watermark } = this.draw.getOptions()
// 数据
const elementList = this.draw.getOriginalElementList()
const data = zipElementList(elementList)
return {
version,
width,
height,
margins,
watermark: watermark.data ? watermark : undefined,
data
}
}
} }
Loading…
Cancel
Save