var t = getApp(), r = t.globalData, a = t.request, o = t.globalData.setting, os = o, i = require("../../../utils/util.js"), ut = i, s = require("../../../utils/common.js"); Page({ /** * 页面的初始数据 */ data: { url: o.imghost, arrayDetailed: [],//明细数组 page: 1, pageSize: 20, isDetailed: 0, total: 0, ismore: 0,//数据是否加载完毕 screenWidth:0, head_pic:"",//会员头像 img_money:"",//缓存VIP的图片 img_Ancrown:"",//会员权益 img_Identification:"",//缓存标识的图片 img_square:"",//缓存方块的图片 privilege_o:"",//卡的勋章图 bas_ming:"", //卡的图片 big_card:null, //最大卡的信息 imagePath:"", //分享的生成图片 canvasHidden:true, isBind:true, isBinds:true, input_val:null, }, /** * 生命周期函数--监听页面加载 */ onLoad: function(options) { var ee=this; var img_money = this.data.url + "/miniapp/images/plus/share/money.png"; var img_Ancrown = this.data.url + "/miniapp/images/plus/share/Ancrown.png"; var img_Identification = this.data.url + "/miniapp/images/plus/share/Identification.png"; var img_square = this.data.url + "/miniapp/images/plus/share/square.png"; var privilege_o = this.data.url + "/miniapp/images/plus/share/privilege_o.png"; var user=getApp().globalData.userInfo; //--获取用户设备信息,屏幕宽度-- wx.getSystemInfo({ success: res => { ee.data.screenWidth=res.screenWidth; } }) //--------------------缓存vip价格的图片--------------- wx.getImageInfo({ src:img_money, success: function (res) { //回调写法 var img_money = res.path; ee.setData({ img_money: img_money}); } }) //--------------------缓存权益的图片--------------- wx.getImageInfo({ src: img_Ancrown, success: function (res) { //回调写法 var img_Ancrown = res.path; ee.setData({ img_Ancrown: img_Ancrown }); } }) //--------------------缓存标识的图片--------------- wx.getImageInfo({ src: img_Identification, success: function (res) { //回调写法 var img_Identification = res.path; ee.setData({ img_Identification: img_Identification }); } }) //--------------------卡的勋章--------------- wx.getImageInfo({ src: privilege_o, success: function (res) { //回调写法 var privilege_o = res.path; ee.setData({ privilege_o: privilege_o }); } }) //--------------------方块图--------------- wx.getImageInfo({ src: img_square, success: function (res) { //回调写法 var img_square = res.path; ee.setData({ img_square: img_square}); } }) //-----------获取最大值的卡-------------- ee.getPlusCardType(); }, selectDetailed: function() { var th = this, e = th; var r_data={ storeId: o.stoid, userId: r.user_id, page: th.data.page, pageSize: th.data.pageSize }; if(th.data.datet!="" && th.data.datet){ r_data.Sdate=th.data.datet; } if(th.data.dates!="" && th.data.dates){ r_data.Edate=th.data.dates; } if(th.data.input_val!="" && th.data.input_val){ r_data.MobileTel=th.data.input_val; } getApp().request.promiseGet("/api/weshop/plus/vip/mem/referee/page", { data:r_data }).then(res => { setTimeout(function () { th.setData({isDetailed: 1 }); },300) if(res.data.code==0 && res.data.data.pageData && res.data.data.pageData.length>0) { th.data.page++;//当前页数+1 var arr1 = th.data.arrayDetailed;//获取明细数组 var arr2 = res.data.data.pageData;//获取当前查询数据 if(!arr1) arr1=[]; var arr3 = [...arr1, ...arr2];//把当前查询数组拼接到原本数组后面 var ismore = 0; if (arr3.length == res.data.data.total) ismore = 1 //数据已加载完判断 th.setData({ arrayDetailed: arr3, total: res.data.data.total, ismore: ismore, }) } }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function() { }, /** * 生命周期函数--监听页面显示 */ onShow: function() { this.selectDetailed(); }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function() { if (this.data.total <= this.data.pageSize) return; if (this.data.ismore) { t.my_warnning("加载完啦!", 0, this); return }; this.selectDetailed(); }, saveImageToPhotosAlbum: function () { if (this.data.imagePath != "") { wx.previewImage({ urls: [this.data.imagePath], }) return; } this.data.is_loading=1; wx.showLoading({ title: '生成中...',}) var th = this; //设置画板显示,才能开始绘图 var card_ming=th.data.bas_ming;//卡的图片 var big_card= th.data.big_card;//获取最大的卡 var user_head = th.data.head_pic;//会员头像 var img_money = th.data.img_money;//缓存vip的价格 var img_Ancrown = th.data.img_Ancrown;//会员权益的图片 var img_Identification = th.data.img_Identification;//会员标识 var privilege_o = th.data.privilege_o;//勋章图片 var img_square=th.data.img_square; var app = getApp(); var user=app.globalData.userInfo; var unit = th.data.screenWidth / 750 * 1.35; var scene = getApp().globalData.user_id; var nickname = user.nickname; //---二微码--- var path3 = os.url + "/api/wx/open/app/user/getWeAppEwm/" + os.stoid + "?sceneValue=" + scene + "&pageValue=pages/user/index/index"; wx.getImageInfo({ src: path3, success: function (res) { th.get_head_temp(function(){ var vpath=res.path; th.setData({ canvasHidden: false }) //开启画布 const ctx = wx.createCanvasContext('myCanvas'); //先画背景 ctx.drawImage("../../../images/share/mackground.png", 0, 0, 554 * unit, 899 * unit); ctx.setFontSize(24 * unit); ctx.setFillStyle("rgb(0,0,0)"); ctx.fillText(nickname, 152 * unit, 76 * unit); var width = 24 * nickname.length * unit + 2 * unit; var tj_path = "../../../images/share/q_tj.png"; ctx.drawImage(tj_path, 152 * unit + width, 54 * unit, 95 * unit, 30 * unit); ctx.setFontSize(18 * unit); ctx.setLineJoin('round'); //交点设置成圆角 ctx.setFillStyle("rgb(255,255,255)"); // ctx.fillText("强烈推荐", 265 * unit, 72 * unit); ctx.fillText('强烈推荐', 149 * unit + width + 15 * unit, 76 * unit); ctx.setStrokeStyle("rgb(255,255,255)"); ctx.setLineDash([5 * unit, 5 * unit], 5 * unit); ctx.beginPath(); ctx.moveTo(0, 125 * unit); ctx.lineTo(554 * unit, 125 * unit); ctx.stroke(); var x = 55 * unit, y = 165 * unit,w = 444 * unit, h = 220 * unit,r = 14 * unit; ut.draw_randon_rect(ctx,x,y,r,w,h); ctx.clip(); //一旦剪切了某个区域,则所有之后的绘图都会被限制在被剪切的区域内 ctx.drawImage(card_ming, x, y, 444 * unit, 220 * unit); // 推进去图片 ctx.restore(); //恢复之前保存的绘图上下文 恢复之前保存的绘图上下午即状态 可以继续绘制 ctx.beginPath(); // 卡图片 // ctx.drawImage("../../../images/plus/share/one.jpg", 55 * unit, 165 * unit, 444 * unit, 220 * unit,); ctx.setFontSize(26 * unit); ctx.setFillStyle('rgb(218,194,169)'); ctx.fillText(big_card.CardName, 80 * unit, 215 * unit); ctx.setFontSize(18 * unit); ctx.setFillStyle('rgb(218,194,169)'); ctx.fillText("开通plus会员仅" + big_card.CardFee+"元", 80 * unit, 240 * unit); //zz ctx.drawImage(privilege_o, 80 * unit, 343 * unit, 20 * unit, 20 * unit); ctx.setFontSize(14 * unit); ctx.setFillStyle('rgb(218,194,169)'); ctx.fillText("按去年用户消费计算,开卡后一年预计省¥3031", 85 * unit, 360 * unit); ctx.rect(70 * unit, 425 * unit, 182 * unit, 1 * unit); ctx.setFillStyle('rgb(218,194,169)'); ctx.fill(); ctx.drawImage(img_square, 267 * unit, 420 * unit, 13 * unit, 13 * unit); ctx.beginPath(); ctx.rect(295 * unit, 425 * unit, 182 * unit, 1 * unit); ctx.setFillStyle('rgb(218,194,169)'); ctx.fill(); ctx.drawImage(img_square, 80 * unit, 470 * unit, 10 * unit, 10 * unit); ctx.setFontSize(24 * unit); ctx.setFillStyle("rgb(198,165,126)"); ctx.fillText("PLUS会员权益", 100 * unit, 475 * unit); ctx.setFontSize(20 * unit); ctx.setFillStyle("rgb(198,165,126)"); ctx.fillText("PLUS会员专属权益", 100 * unit, 505 * unit); ctx.drawImage(img_Ancrown, 355 * unit, 440 * unit, 65 * unit, 65 * unit); ctx.rect(85 * unit, 530 * unit, 375 * unit, 1 * unit) ctx.setFillStyle('rgb(218,194,169)') ctx.fill(); ctx.drawImage(img_square, 80 * unit, 575 * unit, 10 * unit, 10 * unit); ctx.setFontSize(24 * unit); ctx.setFillStyle("rgb(198,165,126)"); ctx.fillText("PLUS会员标识", 100 * unit, 580 * unit); ctx.setFontSize(20 * unit); ctx.setFillStyle("rgb(198,165,126)"); ctx.fillText("彰显尊贵身份的象征", 100 * unit, 610 * unit); ctx.drawImage(img_Identification, 355 * unit, 548 * unit, 65 * unit, 65 * unit); ctx.rect(85 * unit, 635 * unit, 375 * unit, 1 * unit); ctx.setFillStyle('rgb(218,194,169)'); ctx.fill(); ctx.drawImage(img_square, 80 * unit, 695 * unit, 10 * unit, 10 * unit); ctx.setFontSize(24 * unit); ctx.setFillStyle("rgb(198,165,126)"); ctx.fillText("PLUS会员价格", 100 * unit, 695 * unit); ctx.setFontSize(20 * unit); ctx.setFillStyle("rgb(198,165,126)"); ctx.fillText("享受专属会员超低价", 100 * unit, 725 * unit); ctx.drawImage(img_money, 355 * unit, 660 * unit, 65 * unit, 65 * unit); ctx.rect(85 * unit, 750 * unit, 375 * unit, 1 * unit) ctx.setFillStyle('rgb(218,194,169)') ctx.fill(); ctx.drawImage(vpath, 100 * unit, 780 * unit, 110 * unit, 110 * unit); ctx.setFontSize(20 * unit); ctx.setFillStyle("#000"); ctx.fillText("解锁新权益 精彩享不停", 230 * unit, 825 * unit); ctx.setFontSize(20 * unit); ctx.setFillStyle("#000"); ctx.fillText("长按识别二维码,立即开通!", 230 * unit, 865 * unit); //---绘制圆形要放在最后,头像---- ctx.save(); ctx.beginPath(); var h_x = 60 * unit; var h_y = 24 * unit; var h_r = 40 * unit; var cx = h_x + h_r; var cy = h_y + h_r; ctx.arc(cx, cy, h_r, 0, Math.PI * 2, false); ctx.closePath(); ctx.fill(); ctx.clip(); ctx.drawImage(th.data.head_pic, h_x, h_y, h_r * 2, h_r * 2); ctx.restore(); x = 345 * unit, y = 190 * unit, w = 105 * unit, h = 30 * unit, r = 14 * unit; ut.draw_randon_rect(ctx,x,y,r,w,h); ctx.setFontSize(18 * unit); ctx.setFillStyle("#000"); ctx.fillText("立即开通", 362 * unit, 212 * unit); //--绘制图片--- ctx.draw(false, function(){ setTimeout(function(){ wx.canvasToTempFilePath({ x: 0, y: 0, width: 750, height: 930, destWidth: 1.2 * 750 * 750 / th.data.screenWidth, destHeight: 1.2 * 1217 * 750 / th.data.screenWidth, canvasId: 'myCanvas', success: function (res) { wx.hideLoading();//关闭生成中的方法 th.data.is_loading = 0; console.log("生成的海报"); console.log(res.tempFilePath); var tempFilePath = res.tempFilePath; th.setData({ imagePath: tempFilePath, maskHidden: false, canvasHidden: true }); wx.previewImage({ urls: [res.tempFilePath], }) if (!res.tempFilePath) { wx.showModal({ title: '提示', content: '图片绘制中,请稍后重试', showCancel: false }) } } }) },300) }) }) } }) }, //--获取头像的本地缓存,回调写法-- get_head_temp: function (tt) { var ee = this; if (ee.data.head_pic) { tt();return false; } //---获取分享图片的本地地址,头像和商品图片---- var path2 = getApp().globalData.userInfo.head_pic; if (path2 == "") { ee.data.head_pic = "../../../images/share/hui_hear_pic.png";tt(); } else { path2 = path2.replace("http://thirdwx.qlogo.cn", "https://wx.qlogo.cn"); path2 = path2.replace("https://thirdwx.qlogo.cn", "https://wx.qlogo.cn"); wx.getImageInfo({ src: path2, success: function (res) { //res.path是网络图片的本地地址 ee.data.head_pic= res.path;tt(); }, fail: function (res) { ee.data.head_pic= "../../../images/share/hui_hear_pic.png"; //分享的图片不能用网络的 tt(); } }); } }, //--- 获取卡类列表 --- getPlusCardType: function (e) { var storid = o.stoid; var th = this; getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/list?" + "storeId=" + storid, {}).then(res => { var plusCard = res.data.data; var arr = [1219, 2089, 3031]; var new_arr = new Array(); for (var i = 0; i < plusCard.length; i++) { //plusCard[i].free=arr[i]; var item = {"fee": plusCard[i].CardFee, 'index': i} new_arr.push(item); } //根據距離遠近排序,越近在前面,升序 new_arr.sort(function (a, b) { if (a.fee < b.fee) { return -1; } else if (a.fee == b.fee) { return 0; } else { return 1;} }); var max_card=plusCard[new_arr[new_arr.length-1].index]; th.setData({big_card:max_card}) //缓存分享卡的图片 wx.getImageInfo({ src: max_card.CardImg, success: function (res) { var bas_ming = res.path; th.setData({ bas_ming: bas_ming}); } }) }) }, //起始时间 bindDateChenge: function(e) { var isBind = false; this.setData({ datet: e.detail.value, isBind: isBind }); }, // 结束时间 bindDateChenges: function(e) { var isBinds = false; this.setData({ dates: e.detail.value, isBinds: isBinds }); }, //catchtap阻止冒泡,点击清除开始时间的按钮 eliminate: function() { var isBind = true; var data = ""; this.setData({ datet: data, isBind: isBind }) }, //catchtap阻止冒泡,点击清除结束时间的按钮 eliminates: function() { var isBinds = true; var dates = ""; this.setData({ dates: dates, isBinds: isBinds }) }, get_input:function (e) { this.data.input_val=e.detail.value; }, //点击的搜索事件 get_search:function () { var th=this; if(th.data.datet && th.data.dates){ var oDate1 = new Date(th.data.datet); var oDate2 = new Date(th.data.dates); if(oDate2