// canvas 全局配置 var util = require('../../../../utils/util.js'); var api = require('../../../../config/api.js'); var app = getApp(); var context = null;// 使用 wx.createContext 获取绘图上下文 context var isButtonDown = false; var arrx = []; var arry = []; var arrz = []; var canvasw = 0; var canvash = 0; //获取系统信息 wx.getSystemInfo({ success: function (res) { canvasw = res.windowWidth;//设备宽度 canvash = res.windowHeight; } }); //注册页面 Page({ /** * 页面的初始数据 */ data: { hasWrited:false }, canvasIdErrorCallback: function (e) { console.error(e.detail.errMsg) }, canvasStart: function (event){ isButtonDown = true; arrz.push(0); arrx.push(event.changedTouches[0].x); arry.push(event.changedTouches[0].y); //context.moveTo(event.changedTouches[0].x, event.changedTouches[0].y); }, canvasMove: function (event) { if (isButtonDown) { arrz.push(1); arrx.push(event.changedTouches[0].x); arry.push(event.changedTouches[0].y); // context.lineTo(event.changedTouches[0].x, event.changedTouches[0].y); // context.stroke(); // context.draw() }; for (var i = 0; i < arrx.length; i++) { if (arrz[i] == 0) { context.moveTo(arrx[i], arry[i]) } else { context.lineTo(arrx[i], arry[i]) }; }; context.clearRect(0, 0, canvasw, canvash); context.setStrokeStyle('#000000'); context.setLineWidth(4); context.setLineCap('round'); context.setLineJoin('round'); context.stroke(); context.draw(false); }, canvasEnd: function (event) { isButtonDown = false; }, cleardraw: function () { //清除画布 arrx = []; arry = []; arrz = []; context.clearRect(0, 0, canvasw, canvash); context.draw(true); }, getimg: function(){ if (arrx.length==0){ wx.showModal({ title: '提示', content: '签名内容不能为空!', showCancel: false }); return false; }; //生成图片 wx.canvasToTempFilePath({ canvasId: 'canvas', success: function (res) { console.log(res.tempFilePath); //存入服务器 const uploadTask =wx.uploadFile({ url: api.StorageUpload, //图片上传接口地址 filePath: res.tempFilePath, name: 'file', success: function (_res) { console.log(_res); var _res = JSON.parse(_res.data); if (_res.errno === 0) { //图片上传成功 执行数据更新 console.log( _res.data.url ); util.request(api.DisCommissionSign,{ picurl:_res.data.url }).then(res=>{ if(res.errno===0){ wx.showToast({ title: "签名成功", icon: 'success', duration: 2000, complete: function () { wx.navigateTo({ url: "/pages/ucenter/dis/index" }) } }) } else{ wx.showModal({ title: '错误', content: '签名失败 请重签', showCancel: false }) } }) } }, fail: function (res) { wx.showModal({ title: '错误', content: '上传失败', showCancel: false }) } }); uploadTask.onProgressUpdate((res) => { console.log('上传进度', res.progress) console.log('已经上传的数据长度', res.totalBytesSent) console.log('预期需要上传的数据总长度', res.totalBytesExpectedToSend) }) } }) }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { // 使用 wx.createContext 获取绘图上下文 context context = wx.createCanvasContext('canvas'); //context.drawImage("/static/images/bk.jpg",0,0,wx.getSystemInfoSync().windowWidth,wx.getSystemInfoSync().windowHeight-40) //context.draw(); context.beginPath() context.setStrokeStyle('#000000'); context.setLineWidth(4); context.setLineCap('round'); context.setLineJoin('round'); } })