// packageE/questionnaire/surveyResult/surveyResult.js var setInter_Week = ''; var app = getApp(); var int = (app.globalData.statusBarHeight * 2) + 20; Page({ /** * 页面的初始数据 */ data: { statusBarHeight: int, plugin_point_name:'' }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { if(options.plugin_point_name){ this.setData({ plugin_point_name:options.plugin_point_name }); } if (options.allNum) { this.setData({ allNum: options.allNum }); } if (options.tag) { this.setData({ tag: options.tag }); } if (options.questionnaire_id) { this.setData({ questionnaire_id: options.questionnaire_id }); } if (options.score) { this.setData({ score: options.score }); } if (options.cons) { this.setData({ cons: options.cons }); } if (options.goods_id) { this.setData({ goods_id: options.goods_id }); } if (options.rewardPoint) { this.setData({ rewardPoint: options.rewardPoint }); } this.getData(); }, backone(e){ wx.navigateBack({ delta: 1, }); }, back(e) { // 返回时取消弹窗 let pages = getCurrentPages(); //获取当前页面js里面的pages里的所有信息。 let prevPage = pages[pages.length - 3]; // if(prevPage.route == 'packageA/detail_v2/detail_v2'){ // wx.navigateTo({ // url: '/packageA/detail_v2/detail_v2?id='+this.data.goods_id+'&open=false', // }) // }else{ prevPage.setData({ // 将我们想要传递的参数在这里直接setData。上个页面就会执行这里的操作。 questionnaire_is_open:false, is_open:'close' }); wx.setStorageSync('closeOpen', 'close'); wx.navigateBack({ delta: 2, }); // } console.log(prevPage); }, continue () { wx.navigateTo({ url: '/packageE/questionnaire/questionnaireIndex/questionnaireIndex', }); }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { }, getData() { let that = this; let urlStr = app.getNetAddresss("plugin.questionnaire.api.index.indexInfo"); app._getNetWork({ url: urlStr, data: { getAnswerScore: 'getAnswerScore', score: this.data.score, questionnaire_id: this.data.questionnaire_id }, success: function (resdata) { var res = resdata.data; console.log(res); if (res.result == 1) { that.setData({ info: res.data.getAnswerScore.recommendation }); } else { wx.showToast({ icon: 'none', title: res.msg, duration: 1500 }); } }, fail: function (res) { console.log(res); } }); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { const that = this; var line_w = 10; if (that.data.systemWidth <= 360) { //根据手机大小改变线条粗细 line_w = 14; } else if (that.data.systemWidth >= 430) { line_w = 18; } drawGraycir(that, '.cirWeek_gray', 100, line_w); // 画周跑量灰圆 setTimeout(() => { drawColorcir(that, '.cirWeek_run', parseInt((that.data.score / that.data.allNum) * 100), line_w); // 画周跑量动态圆 }, 500); }, }); //画布 /** * 画灰圆方法 */ function drawGraycir(that, canvasID, progress, line_w) { wx.createSelectorQuery().select(canvasID).boundingClientRect(function (res) { if (res != null || res != undefined) { if (progress > 100) progress = 100; var x0 = res.width / 2, y0 = res.height / 2; canvasID = canvasID.split('.')[1]; // 截取 '.'号 var ctx = wx.createCanvasContext(canvasID); ctx.beginPath(); ctx.lineWidth = line_w; ctx.strokeStyle = '#eee'; ctx.lineCap = 'round'; ctx.shadowOffsetX = 0; ctx.shadowOffsetY = 0; ctx.shadowBlur = 15; ctx.shadowColor = '#7bbfff'; ctx.arc(x0, y0, (x0 - line_w / 2) - 5, 0.75 * Math.PI, 2.25 * Math.PI, false); ctx.translate(0, 0); ctx.stroke(); ctx.draw(); } }).exec(); } /** * 画动态彩圆方法 */ function drawColorcir(that, canvasID, progress, line_w) { wx.createSelectorQuery().select(canvasID).boundingClientRect(function (res) { if (res != null || res != undefined) { // console.log(res) var x0 = res.width / 2, y0 = res.height / 2; canvasID = canvasID.split('.')[1]; // 截取 '.'号 var ctx = wx.createCanvasContext(canvasID); if (canvasID == 'cirWeek_run') { var step3 = 0; clearInterval(setInter_Week); setInter_Week = setInterval(function () { if (step3 >= progress) { clearInterval(setInter_Week); step3 = progress; } step3++; ctx.beginPath(); ctx.setLineWidth(line_w); ctx.setLineCap('round'); ctx.setStrokeStyle('#ffdf70'); ctx.arc(x0, y0, (x0 - line_w / 2) - 5, 0.75 * Math.PI, (0.75 + step3 / 100 * 1.5) * Math.PI); ctx.translate(0, 0); ctx.stroke(); ctx.draw(); ctx.closePath(); }, 18); } } }).exec(); }