var api = require('../../../config/api.js'); import WeCropper from '../../../components/xz-cropper/xz-cropper.js' const device = wx.getSystemInfoSync() // 获取设备信息 const width = device.windowWidth // 示例为一个与屏幕等宽的正方形裁剪框 const height = width Page({ data: { cropperOpt: { id: 'cropper', // 用于手势操作的canvas组件标识符 targetId: 'targetCropper', // 用于用于生成截图的canvas组件标识符 pixelRatio: device.pixelRatio, // 传入设备像素比 width, // 画布宽度 height, // 画布高度 scale: 2.5, // 最大缩放倍数 zoom: 8, // 缩放系数 cut: { x: (width - 200) / 2, // 裁剪框x轴起点 y: (width - 200) / 2, // 裁剪框y轴期起点 width: 200, // 裁剪框宽度 height: 200 // 裁剪框高度 }, } }, /** * 生命周期函数--监听页面加载 */ onLoad: function(options) { let that = this; const { cropperOpt } = this.data; let _src = JSON.parse(options.data).path; if (_src) { cropperOpt.src = _src; console.log(cropperOpt.src) this.cropper = new WeCropper(cropperOpt) .on('ready', (rtx) => { console.log(`wecropper is ready for work!`) }).on('beforeImageLoad', (ctx) => { console.log(`before picture loaded, i can do something`) console.log(`current canvas context:`, ctx) wx.showToast({ title: '上传中', icon: 'loading', duration: 20000 }) }) .on('imageLoad', (ctx) => { console.log(`picture loaded`) console.log(`current canvas context:`, ctx) wx.hideToast() }) .on('beforeDraw', (ctx, instance) => { console.log(`before canvas draw,i can do something`) console.log(`current canvas context:`, ctx) }); } console.log(_src) }, /** * 点击完成的回调 * 完成截图,回传图片到上一页 */ complete() { let that = this; this.cropper.getCropperImage((avatar) => { let _tempData = { // ?id=${wx.getStorageSync("userId")}&openid=${wx.getStorageSync("openid")}&operFlag=上传头像 url: api.UploadPortrait, filePath: avatar, name: 'file', header: { 'Content-Type': 'multipart/form-data', 'X-Litemall-Token': wx.getStorageSync('token') } } that.uploadImg(_tempData); }) }, touchStart(e) { this.cropper.touchStart(e) }, touchMove(e) { this.cropper.touchMove(e) }, touchEnd(e) { this.cropper.touchEnd(e) }, /** * 取消截图 */ cancel(event) { wx.navigateBack() }, reset(event) { }, /** * 上传头像 */ uploadImg(data) { let _this = this; wx.showLoading({ title: '头像上传中!', //提示的内容, mask: true, //显示透明蒙层,防止触摸穿透, success: res => {} }); console.log(data.filePath) wx.uploadFile({ url: data.url, filePath: data.filePath, name: data.name, header: data.header, formData: { openid: wx.getStorageSync("openid"), operFlag: '上传头像' }, success(res) { let _data = JSON.parse(res.data).data; console.log(_data) wx.setStorage({ key: 'userData', data: JSON.stringify(_data) }) // 将图片回传到上一页 var pages = getCurrentPages(); if (pages.length > 1) { wx.hideLoading(); var prePage = pages[pages.length - 2]; console.log(_data.avatar); prePage.setData({ 'messages.avatar': _data.avatar }) } wx.navigateBack() }, file(err) { wx.showToast({ title: err.message, icon: 'none' }) } }) }, /** * 生命周期函数--监听页面显示 */ onShow: function() { // app.globalData.editorMessageStorage = true; }, /** * 生命周期函数--监听页面隐藏 */ onHide: function() { // app.globalData.editorMessageStorage = false; }, /** * 生命周期函数--监听页面卸载 */ onUnload: function() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function() { }, /** * 用户点击右上角分享 */ onShareAppMessage: function() { } })