123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872 |
- let cropperUtil = require('./welCropperUtil.js')
- var init = function (W, H) {
- let that = this
- that.setData({
- cropperData: {
- drawSign: 0,
- hidden: true,
- left: 0,
- top: 0,
- width: W,
- height: H,
- W: W,
- H: H,
- itemLength: 50,
- imageInfo: {
- path: '',
- width: 0,
- height: 0
- },
- scaleInfo: {
- x: 1,
- y: 1
- },
- cropCallback: null,
- sizeType: ['original', 'compressed'], //'original'(default) | 'compressed'
- original: false, // 默认压缩,压缩比例为截图的0.4
- mode: 'rectangle', //默认矩形
- },
- cropperMovableItems: {
- topleft: {
- x: 50,
- y: 50
- },
- topright: {
- x: W - 50,
- y: 50
- },
- bottomleft: {
- x: 50,
- y: H - 50
- },
- bottomright: {
- x: W - 50,
- y: H - 50
- }
- },
- cropperMainItem:{
- x:110,
- y:110,
- w:50,
- h:50
- },
- cropperChangableData: {
- canCrop: true,
- rotateDegree: 0,
- originalSize: {
- width: 0,
- height: 0
- },
- scaleSize: {
- width: 0,
- height: 0
- },
- shape: {
- },
- previewImageInfo: {
- x: 0,
- y: 0,
- w: 0,
- h: 0
- }
- }
- })
- // 显示cropper,如果有图片则载入
- that.showCropper = (options) => {
- console.log(options)
- let z = this
- let cropperData = z.data.cropperData
- let src = options.src
- let callback = options.callback
- let sizeType = options.sizeType
- let mode = options.mode
- let filterType = []
- if (sizeType.indexOf('original') > -1) {
- filterType.push('original')
- }
- if (sizeType.indexOf('compressed') > -1) {
- filterType.push('compressed')
- }
- if (filterType.length == 1 && filterType.indexOf('original') > -1) {
- cropperData.original = true
- }
- if (mode) {
- cropperData.mode = mode
- }
- cropperData.hidden = false
- cropperData.hash = Math.random()
- cropperData.cropCallback = callback
- cropperData.sizeType = filterType
- // z.setData({
- // cropperData: cropperData,
- // })
- if (src) {
- console.log(src)
- wx.getImageInfo({
- src: src,
- success: function (res) {
- var w = res.width, h = res.height
- // let cropperData = z.data.cropperData
- cropperData.imageInfo = {
- path: src,
- width: w,
- height: h
- }
- z.setData({
- cropperData: cropperData,
- // cropperMainItem: {
- // x: 210,
- // y: 110,
- // w: 50,
- // h: 50
- // }
- })
- console.log('cropperData1')
- z.loadImage(src, w, h, false)
- }
- })
- }
- }
- // 隐藏cropper
- that.hideCropper = () => {
- let that = this
- that.data.cropperData.hidden = true
- that.data.cropperData.cropCallback = null
- that.setData({
- cropperData: that.data.cropperData,
- cropperMovableItems: {
- topleft: {
- x: -1,
- y: -1
- },
- topright: {
- x: -1,
- y: -1
- },
- bottomleft: {
- x: -1,
- y: -1
- },
- bottomright: {
- x: -1,
- y: -1
- }
- },
- cropperChangableData: {
- canCrop: true,
- rotateDegree: 0,
- previewImageInfo: {
- x: 0,
- y: 0,
- w: 0,
- h: 0,
- }
- }
- })
- that.clearCanvas(that.data.cropperData.imageInfo)
- }
- // 原图按钮被点击
- that.originalChange = () => {
- let that = this
- let imageInfo = that.data.cropperData.imageInfo
- let originalSize = that.data.cropperChangableData.originalSize
- let width = originalSize.width
- let height = originalSize.height
- let original = !that.data.cropperData.original
- let compressedScale = original ? 1.0 : 0.4
- let size = cropperUtil.getAdjustSize(W, H, width, height)
- console.log("change original=" + original)
- that.data.cropperData.original = original
- that.data.cropperData.scaleInfo = {
- x: width * compressedScale / size.width,
- y: height * compressedScale / size.height
- }
- // 之所以要设置cropperMovableItems,然后延时在设置一次,是因为改变cropperData后,movable-view会莫名其妙移动到左上角
- let cropperMovableItemsCopy = that.data.cropperMovableItems
- let cropperMovableItems = {
- topleft: {
- x: 0,
- y: 0
- },
- topright: {
- x: 0,
- y: 0
- },
- bottomleft: {
- x: 0,
- y: 0
- },
- bottomright: {
- x: 0,
- y: 0
- }
- }
- that.setData({
- cropperData: that.data.cropperData,
- cropperMovableItems: cropperMovableItems
- })
- setTimeout(() => {
- that.setData({
- cropperMovableItems: cropperMovableItemsCopy
- })
- }, 100)
- that.drawOriginalImage()
- }
- // 截取选中图片,如果有回调,则调用
- that.cropImage = () => {
- let that = this
- let cropperData = that.data.cropperData
- let mode = cropperData.mode
- let scaleInfo = cropperData.scaleInfo
- let width = cropperData.width
- let height = cropperData.height
-
- let cropperMovableItems = that.data.cropperMovableItems
- if (mode == 'rectangle') {
- let maxX = 0, maxY = 0
- for (let key in cropperMovableItems) {
- let item = cropperMovableItems[key]
- maxX = item.x > maxX ? item.x : maxX
- maxY = item.y > maxY ? item.y : maxY
- }
- let minX = maxX, minY = maxY
- for (let key in cropperMovableItems) {
- let item = cropperMovableItems[key]
- minX = item.x < minX ? item.x : minX
- minY = item.y < minY ? item.y : minY
- }
- let w = maxX - minX, h = maxY - minY
- w *= scaleInfo.x
- h *= scaleInfo.y
- let x = minX * scaleInfo.x, y = minY * scaleInfo.y
- console.log('crop rect: x=' + x + ',y=' + y + ',w=' + w + ',h=' + h)
- let ctx = wx.createCanvasContext("originalCanvas")
- wx.showLoading({
- title: '正在截取...',
- })
- wx.canvasToTempFilePath({
- x: x,
- y: y,
- width: w,
- height: h,
- destWidth: w,
- destHeight: h,
- canvasId: 'originalCanvas',
- success: (res) => {
- let tempFilePath = res.tempFilePath
- wx.hideLoading()
- // wx.saveImageToPhotosAlbum({
- // filePath: tempFilePath,
- // success(res) {
- // }
- // })
- //console.log('截取成功', res);
-
- if (that.data.cropperData.cropCallback) {
-
- that.data.cropperData.cropCallback(tempFilePath)
- }
- },
- fail(res) {
- wx.hideLoading()
- wx.showModal({
- title: '截取失败',
- content: res.errMsg
- })
- console.log("fail res:")
- console.log(res)
- }
- })
- }
- else {
- let res = [[0, 0], [0, 0], [0, 0], [0, 0]]
- let points = []
- for (let key in cropperMovableItems) {
- let x = Math.ceil(cropperMovableItems[key].x * scaleInfo.x)
- let y = Math.ceil(cropperMovableItems[key].y * scaleInfo.y)
- let index = 0
- if (key == 'topleft') {
- index = 0
- }
- else if (key == 'bottomleft') {
- index = 1
- }
- else if (key == 'bottomright') {
- index = 2
- }
- else if (key == 'topright') {
- index = 3
- }
- res[index] = [x, y]
- points.push({ x, y })
- }
- cropperUtil.convexHull(points, points.length)
- if (that.data.cropperData.cropCallback) {
- that.data.cropperData.cropCallback(res)
- }
- }
- }
- // 测试
- // 截取形状
- // that.changeCropShapeHandler = () => {
- // const map = [
- // 'no',
- // 'square'
- // ]
- // wx.showActionSheet({
- // itemList: ['不定形状', '正方形'],
- // success: function (res) {
- // console.log(res.tapIndex)
- // },
- // fail: function (res) {
- // console.log(res.errMsg)
- // }
- // })
- // }
- // 旋转图片
- that.rotateImage = () => {
- console.log("rotate image")
- let that = this
- let imageInfo = that.data.cropperData.imageInfo
- let width = imageInfo.width
- let height = imageInfo.height
- let rotateDegree = that.data.cropperChangableData.rotateDegree
- rotateDegree = rotateDegree == 360 ? 90 : rotateDegree + 90
- // 判断是否为垂直方向
- let isVertical = rotateDegree % 180 > 0
- let rotateWidth = isVertical ? height : width
- let rotateHeight = isVertical ? width : height
- let size = cropperUtil.getAdjustSize(W, H, rotateWidth, rotateHeight)
- // 适应屏幕的位置
- let left = (W - size.width) / 2
- let top = (H - size.height) / 2
- let cropperData = that.data.cropperData
- cropperData.left = left
- cropperData.top = top
- let cropperChangableData = that.data.cropperChangableData
- cropperChangableData.originalSize = {
- width: rotateWidth,
- height: rotateHeight
- }
- cropperChangableData.scaleSize = {
- width: size.width,
- height: size.height
- }
- cropperChangableData.rotateDegree = rotateDegree
- that.setData({
- cropperChangableData: cropperChangableData,
- cropperData: cropperData
- })
- console.log(cropperChangableData)
- let cropperMovableItemsCopy = that.data.cropperMovableItems
- let cropperMovableItems = {
- topleft: {
- x: 0,
- y: 0
- },
- topright: {
- x: 0,
- y: 0
- },
- bottomleft: {
- x: 0,
- y: 0
- },
- bottomright: {
- x: 0,
- y: 0
- }
- }
- that.setData({
- cropperMovableItems: cropperMovableItems
- })
- setTimeout(() => {
- that.loadImage(imageInfo.path, rotateWidth, rotateHeight, true)
- // that.setData({
- // cropperMovableItems: cropperMovableItemsCopy
- // })
- }, 100)
- }
- // 根据图片大小设置canvas大小,并绘制图片
- that.loadImage = (src, width, height, isRotate) => {
- let z = this
- let size = cropperUtil.getAdjustSize(W, H, width, height)
- // 适应屏幕的位置
- let left = (W - size.width) / 2
- let top = (H - size.height) / 2
- // set data
- let updateData = {}
- let cropperData = z.data.cropperData
- cropperData.drawSign = !cropperData.drawSign
- if (!isRotate) {
- cropperData.imageInfo = {
- path: src,
- width: width,
- height: height
- }
- }
- cropperData.left = left
- cropperData.top = top
- cropperData.width = size.width
- cropperData.height = size.height
- let compressedScale = z.data.cropperData.original ? 1.0 : 0.4
- // let scaleSize = cropperUtil.getAdjustSize(W, H, width, height)
- cropperData.scaleInfo = {
- x: width * compressedScale / size.width,
- y: height * compressedScale / size.height
- }
- updateData.cropperData = cropperData
- updateData.cropperMovableItems = {
- topleft: {
- x: 50,
- y: 50
- },
- topright: {
- x: size.width - 50,
- y: 50
- },
- bottomleft: {
- x: 50,
- y: size.height - 50
- },
- bottomright: {
- x: size.width - 50,
- y: size.height - 50
- }
- }
- // updateData.cropperMainItem = {
- // x: 100,
- // y: 100,
- // w: 100,
- // h: 100
- // }
- // setTimeout(()=>{
- // console.log('main item')
- // z.setData({
- // cropperMainItem: {
- // x: 100,
- // y: 100,
- // w: 100,
- // h: 100
- // }
- // })
- // }, 2000)
- let cropperChangableData = z.data.cropperChangableData
- let rotateDegree = cropperChangableData.rotateDegree
- // 判断是否为垂直方向
- let isVertical = rotateDegree % 180 > 0
- let rotateWidth = isVertical ? size.height : size.width
- let rotateHeight = isVertical ? size.width : size.height
- console.log(size)
- console.log('rotateDegree:' + rotateDegree)
- console.log('rotateWidth:' + rotateWidth + ', rotateHeight:' + rotateHeight)
- cropperChangableData.previewImageInfo.x = (W - rotateWidth) / 2
- cropperChangableData.previewImageInfo.y = (H - rotateHeight) / 2
- cropperChangableData.previewImageInfo.w = rotateWidth
- cropperChangableData.previewImageInfo.h = rotateHeight
- cropperChangableData.originalSize = {
- width: width,
- height: height
- }
- cropperChangableData.scaleSize = {
- width: size.width,
- height: size.height
- }
- updateData.cropperChangableData = cropperChangableData
- z.setData(updateData)
- console.log('cropperData2')
- // console.log("loadImage size:" + width + "*" + height)
- z.drawImage({
- path: z.data.cropperData.imageInfo.path,
- width: width,
- height: height
- })
- // that.drawImage(that.data.cropperData.imageInfo)
- z.drawLines(z.data.cropperMovableItems, z.data.cropperData.imageInfo)
- }
- // 清空canvas上的数据
- that.clearCanvas = (imageInfo) => {
- let cropperData = that.data.cropperData
- let size = cropperUtil.getAdjustSize(W, H, imageInfo.width, imageInfo.height)
- if (imageInfo.path != '') {
- let compressedScale = that.data.cropperData.original ? 1.0 : 0.4
- //清空原图
- let ctx = wx.createCanvasContext("originalCanvas")
- ctx.clearRect(0, 0, imageInfo.width * compressedScale, imageInfo.height * compressedScale)
- ctx.draw()
- //清空选择区图片
- let canvas = wx.createCanvasContext("canvas")
- canvas.clearRect(0, 0, size.width, size.height)
- canvas.draw()
- // 清空白线框
- let moveCanvas = wx.createCanvasContext("moveCanvas")
- moveCanvas.clearRect(0, 0, size.width, size.height)
- moveCanvas.draw()
- }
- }
- //绘制图片
- that.drawImage = (imageInfo) => {
- let z = this
- let cropperData = z.data.cropperData
- let size = cropperUtil.getAdjustSize(W, H, imageInfo.width, imageInfo.height)
- if (imageInfo.path != '') {
- let path = imageInfo.path
- let compressedScale = z.data.cropperData.original ? 1.0 : 0.4
- let rotateDegree = z.data.cropperChangableData.rotateDegree
- let canvasCtx = wx.createCanvasContext('canvas', z)
- let originalCanvasCtx = wx.createCanvasContext('originalCanvas', z)
- //绘制原图
- cropperUtil.drawImageWithDegree(
- originalCanvasCtx,
- path,
- imageInfo.width * compressedScale,
- imageInfo.height * compressedScale,
- rotateDegree
- )
- // let originalCanvas = wx.createCanvasContext("originalCanvas")
- // originalCanvas.drawImage(path, 0, 0, imageInfo.width * compressedScale, imageInfo.height * compressedScale)
- // originalCanvas.draw()
- //绘制选择区图片
- cropperUtil.drawImageWithDegree(canvasCtx, path, size.width, size.height, rotateDegree)
- // let canvas = wx.createCanvasContext("canvas")
- // canvas.drawImage(path, 0, 0, size.width, size.height)
- // canvas.draw()
- console.log("draw=" + path)
- }
- }
- // 单独绘制原图,当切换原图与非原图时使用
- that.drawOriginalImage = () => {
- let z = this
- let cropperData = z.data.cropperData
- let imageInfo = cropperData.imageInfo
- let originalSize = z.data.cropperChangableData.originalSize
- if (imageInfo.path != '') {
- let path = imageInfo.path
- let compressedScale = z.data.cropperData.original ? 1.0 : 0.4
- let rotateDegree = z.data.cropperChangableData.rotateDegree
- let originalCanvasCtx = wx.createCanvasContext('originalCanvas', z)
- //绘制原图
- cropperUtil.drawImageWithDegree(
- originalCanvasCtx,
- path,
- originalSize.width * compressedScale,
- originalSize.height * compressedScale,
- rotateDegree
- )
- // let originalCanvas = wx.createCanvasContext("originalCanvas")
- // originalCanvas.drawImage(path, 0, 0, imageInfo.width * compressedScale, imageInfo.height * compressedScale)
- // originalCanvas.draw()
- }
- }
- //绘制选框
- that.drawLines = function (cropperMovableItems, imageInfo, callback) {
- // console.log((new Date()).getTime())
- let that = this
- let cropperData = that.data.cropperData
- let mode = cropperData.mode
- let rotateDegree = that.data.cropperChangableData.rotateDegree
- let size
- if (rotateDegree % 180 > 0) {
- size = cropperUtil.getAdjustSize(W, H, imageInfo.height, imageInfo.width)
- }
- else {
- size = cropperUtil.getAdjustSize(W, H, imageInfo.width, imageInfo.height)
- }
- let convexDots = []
- let orderedDots = []
- orderedDots.push(cropperMovableItems['topleft'])
- orderedDots.push(cropperMovableItems['topright'])
- orderedDots.push(cropperMovableItems['bottomright'])
- orderedDots.push(cropperMovableItems['bottomleft'])
- // 获取凸边形的点
- convexDots = cropperUtil.convexHull(orderedDots, orderedDots.length)
- // 四个点组成的四边形是不是凸四边形
- let canCrop = convexDots.length == 4
- if (callback) {
- callback(canCrop)
- }
- let ctx = wx.createCanvasContext("moveCanvas")
- //绘制高亮选中区域
- let rect = cropperUtil.getCropRect(convexDots)
- if (mode == 'rectangle') {
- // 绘制半透明遮罩
- ctx.setFillStyle('rgba(0,0,0,0.5)')
- ctx.fillRect(0, 0, size.width, size.height)
- // 清除选中区域的半透明遮罩,使选中区域高亮
- ctx.setFillStyle('rgba(0,0,0,0)')
- ctx.clearRect(rect.x, rect.y, rect.w, rect.h)
- //绘制选中边框
- ctx.setStrokeStyle('white')
- ctx.setLineWidth(2)
- ctx.beginPath()
- ctx.moveTo(rect.x, rect.y)
- ctx.lineTo(rect.x + rect.w, rect.y)
- ctx.lineTo(rect.x + rect.w, rect.y + rect.h)
- ctx.lineTo(rect.x, rect.y + rect.h)
- ctx.lineTo(rect.x, rect.y)
- ctx.stroke()
- ctx.closePath()
- }
- else {
- //绘制选中边框
- // 如果四个点组成的四边形不是凸四边形,则显示红色,表示不可取
- let color = canCrop ? 'white' : 'red'
- ctx.setStrokeStyle(color)
- ctx.setLineWidth(2)
- ctx.beginPath()
- for (let i = 0, len = convexDots.length; i < len; i++) {
- let dot = convexDots[i]
- if (i == 0) {
- ctx.moveTo(dot.x, dot.y)
- }
- else {
- ctx.lineTo(dot.x, dot.y)
- }
- }
- let dot = convexDots[0]
- ctx.lineTo(dot.x, dot.y)
- ctx.stroke()
- ctx.closePath()
- }
- //绘制四个角
- let cornerType = mode == 'rectangle' ? 'rect' : 'circle'
- ctx.setFillStyle('white')
- ctx.setStrokeStyle('white')
- // 绘制不同样式的角
- if (cornerType == 'circle') {
- for (let i = 0, len = orderedDots.length; i < len; i++) {
- let dot = orderedDots[i]
- ctx.beginPath()
- ctx.arc(dot.x, dot.y, 10, 0, 2 * Math.PI, true)
- ctx.fill()
- ctx.closePath()
- }
- }
- else if (cornerType == 'rect') {
- let len = 20, w = 3.0, offset = w / 2.0
- ctx.setLineWidth(w)
- ctx.beginPath()
- ctx.moveTo(rect.x - offset, rect.y - offset + len)
- ctx.lineTo(rect.x - offset, rect.y - offset)
- ctx.lineTo(rect.x - offset + len, rect.y - offset)
- ctx.moveTo(rect.x + offset + rect.w - len, rect.y - offset)
- ctx.lineTo(rect.x + offset + rect.w, rect.y - offset)
- ctx.lineTo(rect.x + offset + rect.w, rect.y - offset + len)
- ctx.moveTo(rect.x + offset + rect.w, rect.y + offset + rect.h - len)
- ctx.lineTo(rect.x + offset + rect.w, rect.y + offset + rect.h)
- ctx.lineTo(rect.x + offset + rect.w - len, rect.y + offset + rect.h)
- ctx.moveTo(rect.x - offset, rect.y + offset + rect.h - len)
- ctx.lineTo(rect.x - offset, rect.y + offset + rect.h)
- ctx.lineTo(rect.x - offset + len, rect.y + offset + rect.h)
- ctx.stroke()
- ctx.closePath()
- }
- ctx.draw()
- }
- // move events
- that.setupMoveItem = (key, changedTouches, imageInfo, callback) => {
- let that = this
- let cropperData = that.data.cropperData
- let cropperMovableItems = that.data.cropperMovableItems
- let left = cropperData.left
- let top = cropperData.top
- let mode = cropperData.mode
- let size = cropperUtil.getAdjustSize(W, H, imageInfo.width, imageInfo.height)
- if (changedTouches.length == 1) {
- let touch = changedTouches[0]
- let x = touch.clientX
- let y = touch.clientY
- // 相对画布的点
- x = x - left
- y = y - top
- cropperMovableItems[key].x = x
- cropperMovableItems[key].y = y
- // 边界检测,使截图不超出截图区域
- x = x < 0 ? 0 : (x > size.width ? size.width : x)
- y = y < 0 ? 0 : (y > size.height ? size.height : y)
- cropperMovableItems[key].x = x
- cropperMovableItems[key].y = y
- // 如果是在矩形模式下
- if (mode == 'rectangle') {
- // 同时设置相连两个点的位置,是相邻的两个点跟随着移动点动,保证选框为矩形
- if (key == 'topleft') {
- cropperMovableItems['bottomleft'].x = x
- cropperMovableItems['topright'].y = y
- }
- else if (key == 'topright') {
- cropperMovableItems['bottomright'].x = x
- cropperMovableItems['topleft'].y = y
- }
- else if (key == 'bottomleft') {
- cropperMovableItems['topleft'].x = x
- cropperMovableItems['bottomright'].y = y
- }
- else if (key == 'bottomright') {
- cropperMovableItems['topright'].x = x
- cropperMovableItems['bottomleft'].y = y
- }
- }
- that.drawLines(cropperMovableItems, imageInfo, function (canCrop) {
- if (callback) {
- callback(cropperMovableItems, canCrop)
- }
- })
- }
- }
- // moveable-view touchmove
- that.moveEvent = (e) => {
- let that = this
- let key = e.currentTarget.dataset.key
- let originalSize = that.data.cropperChangableData.originalSize
- that.setupMoveItem(key, e.changedTouches, {
- path: that.data.cropperData.imageInfo.path,
- width: originalSize.width,
- height: originalSize.height
- })
- }
- // moveable-view touchend,end的时候设置movable-view的位置,如果在move阶段设置位置,选中会不流畅
- that.endEvent = (e) => {
- console.log("end")
- let that = this
- let cropperData = that.data.cropperData
- let cropperMovableItems = that.data.cropperMovableItems
- let cropperChangableData = that.data.cropperChangableData
- let originalSize = cropperChangableData.originalSize
- let key = e.currentTarget.dataset.key
- that.setupMoveItem(key, e.changedTouches, {
- path: that.data.cropperData.imageInfo.path,
- width: originalSize.width,
- height: originalSize.height
- }, (cropperMovableItems, canCrop) => {
- cropperChangableData.canCrop = canCrop
- that.setData({
- cropperChangableData: cropperChangableData,
- cropperMovableItems: cropperMovableItems
- })
- })
- }
- }
- module.exports = {
- init
- }
|