var app = getApp() var that=null var sopenFrame=null var mCanvas Page( { data: { loadingHidden:false, ewmpic:"", width:300, height:400, sjylmoney: 0, smzemoney: 0, zsymoney: 0, jrmoney:0, zrmoney:0, IFDefault:false, savetitle:"保存商家收款码到相册" }, onLoad: function() { that = this that.rdata() }, // 下拉刷新 onPullDownRefresh: function () { that.rdata() },rdata: function() { var userId = wx.getStorageSync("userId") var LoginId = wx.getStorageSync("LoginId") var userInfodata = wx.getStorageSync("userInfo") var userInfo = JSON.parse(userInfodata) wx.request({ url: app.globalData.apiurl + "/xapiajax.ashx", data: { action:"getmybusinessdata", userId:(!userId?"":userId), LoginId:(!LoginId?"":LoginId) }, method:"GET", dataType:"json", success (res) { if(res.data.status==1){ that.setData({ sjylmoney: res.data.sjylmoney, smzemoney: res.data.smzemoney, zsymoney: res.data.zsymoney, jrmoney:res.data.jrmoney, zrmoney:res.data.zrmoney, IFDefault:(res.data.userInfo.Paypush==1?true:false), width:300, height:400, loadingHidden:true }) wx.createSelectorQuery().select('#myCanvas') .fields({ node: true, size: true }) .exec((res0) => { let textCanvas = res0[0].node; // 重点1 mCanvas=textCanvas let textCtx = textCanvas.getContext('2d'); // 重点2 const dpr = wx.getSystemInfoSync().pixelRatio var w=res0[0].width var h=res0[0].height textCanvas.width = w * dpr textCanvas.height = h * dpr textCtx.scale(dpr, dpr) textCtx.clearRect(0,0,textCanvas.width,textCanvas.height) textCtx.beginPath(); //绘制背景 textCtx.fillStyle = '#fff' textCtx.clearRect(0,0, textCanvas.width, textCanvas.height) textCtx.fillRect(0, 0, textCanvas.width, textCanvas.height) const bg = textCanvas.createImage(); bg.src = '../../images/skm.png'; bg.onload = () => { textCtx.drawImage(bg, 0, 0, w, h) let text1 = res.data.sjname let len=((w-text1.length*20)/2) textCtx.fillStyle = "#000"; textCtx.font = "22px Arial"; textCtx.fontWeight = 'bold' //textCtx.textAlign = 'center' that.getWarpText(textCtx, text1, len, 100, w, 52, 1) if(res.data.ewmpic!=""){ const bg0 = textCanvas.createImage(); bg0.src = res.data.ewmpic; bg0.onload = () => { textCtx.drawImage(bg0, ((w-145)/2), 130, 145, 145) } } } }) }else{ } } }) },onxz: function(e) { that.setData({ savetitle:"保存中,请稍候..." }) var userId = wx.getStorageSync("userId") var LoginId = wx.getStorageSync("LoginId") wx.canvasToTempFilePath({ canvasId: "myCanvas", destWidth: 520, destHeight: 720, canvas: mCanvas, success: function(res0) { // 获取图片路径 const tempFilePath = res0.tempFilePath; wx.saveImageToPhotosAlbum({ filePath: tempFilePath, success(res) { console.log(res); wx.showModal({ title: '图片保存成功', content: '图片成功保存到相册了,去发圈噻~', showCancel: false, confirmText: '好哒', confirmColor: '#72B9C3', success: function (res0) { if (res0.confirm) { } that.setData({ QRcodeHidden: true, savetitle:"保存商家收款码到相册" }) } }) } }) }, fail: function(err) { wx.showToast({ title: err, icon: "none", duration: 10000 }) } }) },onsmlog: function(e) { var userId = wx.getStorageSync("userId") var LoginId = wx.getStorageSync("LoginId") var userInfodata = wx.getStorageSync("userInfo") if(userId&&LoginId&&userInfodata){ var t = e.currentTarget.dataset.id wx.navigateTo({ url: "../mybusiness_smlog/index?t=" + t }) }else{ wx.navigateTo({ url: "../login/index" }) } },onzzlog:function(e) { var userId = wx.getStorageSync("userId") var LoginId = wx.getStorageSync("LoginId") if(!userId||!LoginId){ wx.navigateTo({ url: "../login/index" }) }else{ wx.navigateTo({ url: "../zzjf_log/index" }) } },changeisDefault:function(e) { var t = (e.detail.value==true?1:0) var userId = wx.getStorageSync("userId") var LoginId = wx.getStorageSync("LoginId") wx.request({ url: app.globalData.apiurl + "/xapiajax.ashx", data: { action:"updatePaypush", userId:(!userId?"":userId), LoginId:(!LoginId?"":LoginId), t:t }, method:"POST", dataType:"json", header: { "content-type": "application/x-www-form-urlencoded" // 默认值 }, success (res) { if(res.data.status==1){ wx.showToast({ title: res.data.msg, icon: "success", duration: 3000 }) wx.setStorageSync('userInfo', JSON.stringify(res.data.userInfo)) that.rdata() }else{ wx.showToast({ title: res.data.msg, icon: "none", duration: 3000 }) } } }) },onsjzl:function(e) { var userId = wx.getStorageSync("userId") var LoginId = wx.getStorageSync("LoginId") if(!userId||!LoginId){ wx.navigateTo({ url: "../login/index" }) }else{ wx.navigateTo({ url: "../mybusiness_info/index" }) } },onsylog: function(e) { var userId = wx.getStorageSync("userId") var LoginId = wx.getStorageSync("LoginId") var userInfodata = wx.getStorageSync("userInfo") if(userId&&LoginId&&userInfodata){ wx.navigateTo({ url: "../zzjf_sylog/index?t=5" }) }else{ wx.navigateTo({ url: "../login/index" }) } },getWarpTextMulti:function(canvas, arrText, y, gap = 10) { for (let index = 0; index < arrText.length; index++) { const text = arrText[index]; let lineArr = getWarpText(canvas, text, MARGIN_LEFT, y, MAX_WIDTH, LINE_HEIGHT) y += LINE_HEIGHT * lineArr.length + gap } },getWarpText:function(canvas, text, x, y, maxWidth, lineHeight, maxLine) { // 对入参的类型进行检测 if (typeof text != 'string' || typeof x != 'number' || typeof y != 'number' || typeof lineHeight != 'number') { throw new Error("参数传入出错") } //如果最大宽度未定义 默认为canvas宽度 if (typeof maxWidth == 'undefined') { maxWidth = (canvas && canvas.width); } if (typeof lineHeight == 'undefined') { lineHeight = (canvas.canvas && parseInt(window.getComputedStyle(canvas.canvas).lineHeight)) || parseInt(window.getComputedStyle(document.body).lineHeight) } let arrText = text.split(''); let line = ''; let lines = []; let lastLine = "" let ellipsis = canvas.measureText("..."); let ellipsisWidth = ellipsis.width; for (let n = 0; n < arrText.length; n++) { //每个循环累加字符 let testLine = line + arrText[n]; //检测累加字符 获取累加字符的高度和宽度 let metrics = canvas.measureText(testLine); let testWidth = metrics.width; let lineWidth = canvas.measureText(line).width; // 如果当前添加行是最后一行 则替换最后一个字符为"..." 判断长度是否需要删去最后一个字符 if (maxLine && maxLine - 1 === lines.length && ((lineWidth + ellipsisWidth) > maxWidth)) { line = line.slice(0, line.length - 1) + "..."; testWidth = lineWidth + ellipsisWidth; } //如果累加字符的宽度大于定义的绘制文本最大宽度 则绘制累加字符的文本 并且设置换行间距再次进行绘制 if (testWidth > maxWidth && n > 0) { lastLine = line; lines.push({ text: line, x: x, y: y }) if (maxLine && maxLine <= lines.length) { break } line = arrText[n]; y += lineHeight; } else { line = testLine; } } if (lastLine !== line) { lines.push({ text: line, x: x, y: y }) } for (let i = 0; i < lines.length; i++) { const item = lines[i]; canvas.fillText(item.text, item.x, item.y); } return lines; } })