54 lines
1.6 KiB
JavaScript
54 lines
1.6 KiB
JavaScript
//@ts-nocheck
|
|
import { set } from 'rc-util/lib/Dom/css';
|
|
import { getTransforms } from "../utils";
|
|
export default {
|
|
//var
|
|
previewBox: null,
|
|
//method
|
|
initPreview: function initPreview() {
|
|
var _this$options = this.options,
|
|
showMask = _this$options.showMask,
|
|
img = _this$options.img,
|
|
viewer = _this$options.viewer;
|
|
if (!showMask) return;
|
|
if (viewer) {
|
|
//如果是传了一个viewer 进来
|
|
//整一个canvas 渲染
|
|
var canvas = document.createElement('canvas');
|
|
canvas.width = this.containerData.width;
|
|
canvas.height = this.containerData.height;
|
|
this.viewBox.appendChild(canvas);
|
|
this.previewBox = canvas;
|
|
//设置canvas 监听
|
|
} else {
|
|
//如果是传了图片 则渲染图片
|
|
var image = document.createElement('img');
|
|
image.src = img;
|
|
this.viewBox.appendChild(image);
|
|
this.previewBox = image;
|
|
}
|
|
},
|
|
renderPreview: function renderPreview() {
|
|
var _this$options2 = this.options,
|
|
showMask = _this$options2.showMask,
|
|
img = _this$options2.img,
|
|
viewer = _this$options2.viewer;
|
|
if (!showMask) return;
|
|
var containerData = this.containerData,
|
|
cropBoxData = this.cropBoxData;
|
|
var width = containerData.width,
|
|
height = containerData.height;
|
|
var left = cropBoxData.left;
|
|
var top = cropBoxData.top;
|
|
if (!this.cropped || this.disabled) {
|
|
return;
|
|
}
|
|
set(this.previewBox, Object.assign({
|
|
width: width,
|
|
height: height
|
|
}, getTransforms(Object.assign({
|
|
translateX: -left,
|
|
translateY: -top
|
|
}))));
|
|
}
|
|
}; |