var auth = require("../../../utils/auth.js"), rq = require("../../../utils/request.js"); var e = getApp(), app = e, i = require("../../../utils/util.js"), ut = i, s = e.globalData.setting, os = s, app_d = e.globalData; var regeneratorRuntime = require('../../../utils/runtime.js'); Page({ /** * 页面的初始数据 */ data: { sw_index: 0, //轮播的下标控制 url: s.url, //接口网址 iurl: s.imghost, endDate:"",//活动结束时间 activity_data: "25:20:59", //活动剩余时间 task_number:0, //任务数 is_task: 0, //历史记录与任务 aitem: "", //活动的轮播图 switch_head: 0, //0:我的任务,1:记录 help_id: "", //活动的id canvasHidden: 0, //分享图片是否已经生成 is_share: 0, //是否显示画布 shareImgPath: [], //生成的图片 screenWidth: "", //用户的屏幕宽度 gid: "", timer: null,//全局的定时器 user_task_list:null,//会员列表 taskid:"",//任务id usercount:0,//参与的人数 }, /** * 生命周期函数--监听页面加载 */ onLoad: function(options) { var help_id = options.help_id; var th = this; th.setData({ help_id: help_id }); if (options.gid != undefined) { th.setData({ gid: options.gid }) } th.close(); th.syinfo(); // th.imageinfo(); }, //选中任务保存 add_onlicke:function(e){ var th=this; var taskid=e.target.dataset.taskid; var help_id = th.data.help_id; var user_id = getApp().globalData.user_id; var stoid=os.stoid getApp().request.json_post("/api/weshop/marketing/help/help/task/insert" ,{ helpId:help_id, userId:user_id, storeId:stoid, taskId: taskid }, function(res) { if(res.data.code==0){ console.log(res.data.data); getApp().my_warnning("任务领取成功", 1, th); }else{ getApp().my_warnning(res.data.msg, 0, th); } } ) }, //帮拆记录的 dismantle_record: function(e) { console.log(); var th = this; var index =1; //获取当前选择的是任务还是活动说明 var is_task= th.data.is_task; //0任务,1活动说明 console.log(e, "这是标签的", is_task, "这是"); th.setData({ is_task:1, switch_head:1 }); rq.get("/api/weshop/marketing/help/help/task/involve/page", { data: { userId: user_id, storeId: os.stoid }, success: function (res) {} }) }, //划动的时候监听 onSli: function(e) { var th= this; var ind = e.detail.current; var aitem = this.data.aitem; var task_number = aitem[ind].giftQty - aitem[ind].useGiftQty; th.setData({ sw_index: ind, task_number: task_number }) console.log(th.data.sw_index,"滑动监听", ind); }, //导航球 close: function() { var th = this; var nav_b = th.selectComponent("#nav_b"); //组件的id nav_b.close_box(); nav_b.set_name("助力", ""); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function() { }, /** * 生命周期函数--监听页面显示 */ onShow: function() { this.data.is_timer = 1; var th = this; var help_id = th.data.help_id; var user_id = getApp().globalData.user_id; /*-----助力活动(判断)-----*/ rq.get("/api/weshop/marketing/help/act/judge", { data: { userId: user_id, storeId: os.stoid }, success: function (res) { if (res.data.code == 0) { var help_data = res.data.data; console.log( '助力活动(判断)', res.data.data); th.setData({ endDate:help_data.endDate, }); } } }); /*-----获取助力活动的任务-----*/ rq.get("/api/weshop/marketing/help/help/task/page", { data: { helpId: help_id, storeId: os.stoid }, success: function(su) { var data = su.data; if (data.code != 0) { getApp().my_warnning(data.msg, 0, th); return false; } if (data.code == 0) { //轮播图的数据 var data_aissa = data.data.pageData; //当前时间戳 var nt = ut.gettimestamp(); data_aissa.forEach(function(val, ind) { //已开始 if (val.start_time < nt && val.end_time > nt) data_aissa[ind].status = 0; //未开始 else if (val.start_time > nt && val.end_time > nt) data_aissa[ind].status = 1; //已结束 else if (val.start_time < nt && val.end_time < nt) data_aissa[ind].status = 2; }); var task_number=data_aissa[0].giftQty - data_aissa[0].useGiftQty; var taskid = data_aissa[0].id; th.setData({ aitem: data_aissa, task_number: task_number, taskid:taskid }); } } }) // 分享的 // setTimeout(function() { // th.shareFrends(); // }, 1000) //任务时间 设置全局定时器 th.data.timer = setInterval(function () { th.countDown(); },1000); //会员任务列表 this.user_task_list(); // 获取会员的参与的任务列表 我的任务 this.get_user_task_num(); }, // 获取会员的参与的任务列表 我的任务 user_task_list:function(e){ var th=this; // var index = e.target.dataset.index; //获取当前选择的是任务还是活动说明 var index =0; var is_task = th.data.is_task; //0任务,1活动说明 var help_id = th.data.help_id; var user_id = getApp().globalData.user_id; rq.get("/api/weshop/marketing/help/help/user/page", { data: { helpId: help_id, storeId: os.stoid, userId: user_id }, success: function (su) { th.setData({ is_task: index, switch_head: index }); if (su.data.code == 0) { var user_list=su.data.data.pageData; console.log("会员列表",user_list); th.setData({ user_task_list: user_list }); }else{ th.setData({ user_task_list:null }); } } }) }, //获取助力活动参与的人数 get_user_task_num(){ var th=this; var help_id=th.data.help_id; rq.get("/api/weshop/marketing/help/involve/help/act/people/count", { data: { helpId: help_id, storeId: os.stoid, }, success: function (su) { console.log(su.data.code, "获取助力活动参与的人数",su.data) if (su.data.code == 0) { var usercount=su.data.data.countAll; th.setData({ usercount: usercount}); } else { } } }) }, // 轮播图点击左边 click_pre: function () { var index = this.data.sw_index; index--; if (index < 0) return; var aitem = this.data.aitem; var task_number = aitem[index].giftQty - aitem[index].useGiftQty; this.setData({ sw_index: index, task_number: task_number }) }, //轮播图点击右边 click_next: function () { var index = this.data.sw_index; index++; if (index >= this.data.aitem.length) return; var aitem = this.data.aitem; var task_number = aitem[index].giftQty - aitem[index].useGiftQty; this.setData({ sw_index: index, task_number: task_number }) }, /** * 生命周期函数--监听页面隐藏 */ onHide: function() { //--清理定时器-- console.log("清理定时器"); clearInterval(this.timer); }, /** * 生命周期函数--监听页面卸载 */ onUnload: function() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function() { }, //----助力任务的时间----- countDown() { if (!this.data.is_timer) return false; var th = this; // 获取当前时间,同时得到活动结束时间数组 var newTime = ut.gettimestamp(); var List = this.data.aitem; for (var j = 0; j < List.length; j++) { var o = List[j]; // 对结束时间进行处理渲染到页面 // var o = endTimeList[i]; var endTime = o.endDate // if (o.status == 0) endTime = o.start_time var obj = null; // 如果活动未结束,对时间进行处理 if (endTime - newTime > 0) { var time = (endTime - newTime); // 获取天、时、分、秒 var day = parseInt(time / (60 * 60 * 24)); var hou = parseInt(time % (60 * 60 * 24) / 3600); var min = parseInt(time % (60 * 60 * 24) % 3600 / 60); var sec = parseInt(time % (60 * 60 * 24) % 3600 % 60); obj = { day: this.timeFormat(day), hou: this.timeFormat(hou), min: this.timeFormat(min), sec: this.timeFormat(sec) } } else { //活动已结束,全部设置为'00' obj = { day: '00', hou: '00', min: '00', sec: '00' } } var txt = "aitem[" + j + "]djs"; th.setData({ [txt]: obj }); } setTimeout(th.countDown, 1000); }, //---小于10的格式化函数---- timeFormat(param) { return param < 10 ? '0' + param : param; }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function() { }, /** * 用户点击右上角分享 */ onShareAppMessage: function() { }, shareFrends: function(e) { var th = this; var scene = th.data.gid; ///二微码 // var path3 = os.url + "/api/wx/open/app/user/getWeAppEwm/" + // a.stoid + "?sceneValue=" + scene + "&pageValue=pages/goods/goodsInfo/goodsInfo"; var iurl = th.data.iurl; //图片地址前缀 const ctx = wx.createCanvasContext('share_id'); //绘图上下文 var unit = th.data.screenWidth / 750 * 1.35; var numsize = 20 * unit; //几人助力字体大小 var size = 15 * unit; var num = 10; var q_num = 6; var already = num.toString().length + 1; //已有几位好友助力 var lack = q_num.toString().length + 1; //还差几位好友助力 var imagesize = 40 * unit; //助力人的图片大小 var left = 74 * unit; //助力人头像跟左边的距离 var spacing = 12 * unit; //助力人图片间距 var images = th.data.images; ctx.drawImage(images[0], 0, 0, 445 * unit, 700 * unit); //分享的背景图片 ctx.drawImage(images[1], 37 * unit, 185 * unit, 370 * unit, 377 * unit); //分享的背景图片 ctx.drawImage(images[2], 90 * unit, 231 * unit, 266 * unit, 160 * unit); //分享的背景图片 ctx.setFillStyle("rgb(221,153,116)"); ctx.setFontSize(size) ctx.fillText("已有", 77 * unit, 430 * unit); ctx.setFillStyle("#FF4746"); ctx.setFontSize(numsize) ctx.fillText(num + "位", 108 * unit, 430 * unit); ctx.setFillStyle("rgb(221,153,116)"); ctx.setFontSize(size) ctx.fillText("好友助力,还差", 114 * unit + already * numsize * unit, 430 * unit); ctx.setFillStyle("#FF4746"); ctx.setFontSize(numsize); ctx.fillText(q_num + "位", 220 * unit + already * numsize * unit, 430 * unit); ctx.setFillStyle("rgb(221,153,116)"); ctx.setFontSize(size); ctx.fillText("达成助力", 248 * unit + lack * numsize * unit + already * numsize - numsize * 2, 430 * unit); var c = q_num / num; ctx.drawImage(images[3], 65 * unit, 445 * unit, 320 * unit, 12 * unit); ctx.drawImage(images[4], 65 * unit, 445 * unit, 320 * unit * c, 12 * unit); for (var i = 0; i < 6; i++) { if (i == 0) { ctx.save(); ctx.beginPath(); //开始绘制 ctx.arc(left + imagesize / 2, 505 * unit, imagesize/2, 0, 2 * Math.PI); ctx.setLineWidth(4 * unit); ctx.setStrokeStyle('red'); ctx.setFillStyle("white"); ctx.fill(); ctx.clip(); ctx.drawImage(images[6], left, 505 * unit - imagesize/2, imagesize, imagesize); ctx.restore(); //恢复之前保存的绘图上下文 恢复之前保存的绘图上下午即状态 还可以继续绘制 } else { // 助力人的头像 ctx.drawImage(images[6], left, 505 * unit - imagesize / 2, imagesize, imagesize); //分享的背景图片 } left += imagesize + spacing; } ctx.setFillStyle("rgb(255,255,255)"); ctx.setFontSize(size); ctx.fillText("优惠乐翻天,精彩就在你身边!", 37 * unit, 595 * unit); ctx.setFillStyle("rgb(255,255,255)"); ctx.setFontSize(size); ctx.fillText("2019.06.26 - 2019.07.02!", 37 * unit, 620 * unit); ctx.setFillStyle("rgb(255,255,255)"); ctx.setFontSize(size); ctx.fillText("长按识别二维码,可帮我助力!", 37 * unit, 660 * unit); ctx.drawImage(images[7], 325 * unit, 595 * unit, 77 * unit, 77 * unit); //分享的背景图片 ctx.save(); //读取文件成功则OK-- // wx.getImageInfo({ // src: path3, // success: function (res) { //把画板内容绘制成图片,并回调 画板图片路径 ctx.draw(false, function() { setTimeout(function() { wx.canvasToTempFilePath({ x: 0, y: 0, width: 300, height: 500, destWidth: 400 * 2, destHeight: 720 * 2, canvasId: 'share_id', success: function(res) { wx.hideLoading(); var shareImgPath = th.data.shareImgPath; shareImgPath[0] = res.tempFilePath; th.setData({ shareImgPath: shareImgPath, canvasHidden: 1, is_share: 1 }) if (!res.tempFilePath) { wx.showModal({ title: '提示', content: '图片绘制中,请稍后重试', showCancel: false }) return false; } }, fail(r) { } }, 500) }) }) // } // }) }, preview: function() { var th = this; var shareImgPath = th.data.shareImgPath; wx.previewImage({ url: shareImgPath[0], urls: shareImgPath }) }, //关闭分享显示 close_share: function() { var th = this; th.setData({ is_share: 0 }) }, syinfo: function() { var th = this; //获取用户设备信息,屏幕宽度 wx.getSystemInfo({ success: res => { th.setData({ screenWidth: res.screenWidth }) } }) }, //分享图 // imageinfo: function() { // var th = this; // var images = th.data.images; // var iurl = th.data.iurl; // wx.getImageInfo({ // src: iurl + images[0], // success: function(res) { // console.log(res + i); // //res.path是网络图片的本地地址 // images[0] = res.path; // }, // fail: function(res) { // console.log(res.toString() + "" + i); // } // }); // wx.getImageInfo({ // src: iurl + images[1], // success: function(res) { // console.log(res + i); // //res.path是网络图片的本地地址 // images[1] = res.path; // }, // fail: function(res) { // console.log(res.toString() + "" + i); // } // }); // wx.getImageInfo({ // src: iurl + images[2], // success: function(res) { // console.log(res + i); // //res.path是网络图片的本地地址 // images[2] = res.path; // }, // fail: function(res) { // console.log(res.toString() + "" + i); // } // }); // wx.getImageInfo({ // src: iurl + images[3], // success: function(res) { // console.log(res + i); // //res.path是网络图片的本地地址 // images[3] = res.path; // }, // fail: function(res) { // console.log(res.toString() + "" + i); // } // }); // wx.getImageInfo({ // src: iurl + images[4], // success: function(res) { // console.log(res + i); // //res.path是网络图片的本地地址 // images[4] = res.path; // }, // fail: function(res) { // console.log(res.toString() + "" + i); // } // }); // wx.getImageInfo({ // src: iurl + images[5], // success: function(res) { // console.log(res + i); // //res.path是网络图片的本地地址 // images[5] = res.path; // }, // fail: function(res) { // console.log(res.toString() + "" + i); // } // }); // wx.getImageInfo({ // src: iurl + images[6], // success: function(res) { // console.log(res + i); // //res.path是网络图片的本地地址 // images[6] = res.path; // }, // fail: function(res) { // console.log(res.toString() + "" + i); // } // }); // wx.getImageInfo({ // src: iurl + images[7], // success: function(res) { // console.log(res + i); // //res.path是网络图片的本地地址 // images[7] = res.path; // }, // fail: function(res) { // console.log(res.toString() + "" + i); // } // }) // th.setData({ // images: images // }) // } })