success: function(rspData) { if (rspData.errorcode) { util.toast("获取数据失败,请刷新界面"); } else { var list = rspData.result; var html = ""; for(var i = 0; i < list.length; i++) { var actobj = list[i]; var seperator = "";//(i == (list.length -1))? "" : '<div style="border-bottom:#888 1px solid"></div>'; var timestr = getTimeStr(actobj.starttime, actobj.endtime); html += '<li><a id="acturl" href="' + actobj.externalurl + '" data-transition="slide" style="padding:5px 10px;"><h2 id="actname">' + actobj.name + '</h2><p id="actdesc" style="margin: 10px 0px; font-size: 14px;width:100%;word-wrap:break-word;">' + actobj.desc + '</p><div style="font-size:12px;">时间:<span id="acttime">' + timestr + '</span> 地点:<span id="actloc">' + actobj.location + '</span></div></a>' + seperator + '</li>'; } $('#listwraper').empty(); $('#listwraper').html(html); $('#listwraper').listview("refresh"); $("#activitycover").css("display", "none"); } },
$('#halfmonbtn').on('click', function() { $('#halfmonbtn').addClass('ui-btn-active'); $('#sevendaybtn').removeClass('ui-btn-active'); $('#monbtn').removeClass('ui-btn-active'); timeInterval = 15; doRequestBpData(15); });
exports.bindEvent = function() { $(document).off("pageshow", "#confighome"); $(document).on("pageshow", "#confighome", function() { $("#configcover").css("display", "none"); }); };
exports.render = function() { function getTimeStr(start, end) { var str = ""; str += new Date(start).getMonth() + '月' + new Date(start).getDate() + '日 - ' + new Date(end).getMonth() + '月' + new Date(end).getDate() + '日'; return str; } $(document).off("pageshow", "#activitylist"); $(document).on("pageshow", "#activitylist", function() { $.ajax({ url: activityUrl, type: "GET", dataType: "json", async: true, success: function(rspData) { if (rspData.errorcode) { util.toast("获取数据失败,请刷新界面"); } else { var list = rspData.result; var html = ""; for(var i = 0; i < list.length; i++) { var actobj = list[i]; var seperator = "";//(i == (list.length -1))? "" : '<div style="border-bottom:#888 1px solid"></div>'; var timestr = getTimeStr(actobj.starttime, actobj.endtime); html += '<li><a id="acturl" href="' + actobj.externalurl + '" data-transition="slide" style="padding:5px 10px;"><h2 id="actname">' + actobj.name + '</h2><p id="actdesc" style="margin: 10px 0px; font-size: 14px;width:100%;word-wrap:break-word;">' + actobj.desc + '</p><div style="font-size:12px;">时间:<span id="acttime">' + timestr + '</span> 地点:<span id="actloc">' + actobj.location + '</span></div></a>' + seperator + '</li>'; } $('#listwraper').empty(); $('#listwraper').html(html); $('#listwraper').listview("refresh"); $("#activitycover").css("display", "none"); } }, error: function(xhr, errormsg) { util.toast("获取数据失败,请刷新界面"); } }); }); };
success: function(rspData) { if (rspData.errorcode) { if(rspData.errorcode !== 3) { util.toast("获取数据失败,请刷新界面"); } } else { util.toast("删除成功"); $(that).parent().remove(); $('#mylistwraper').listview("refresh"); } },
$('#nav-toggle').on('click', function() { if ($('#ulistwraper').css('display') == 'none') { $('.triangle-border').css('display', 'inline-block'); $('.triangle-bg').css('display', 'inline-block'); $('#ulistwraper').slideDown('fast', function() {}); } else { $('#ulistwraper').slideUp('fast', function() { $('.triangle-bg').css('display', 'none'); $('.triangle-border').css('display', 'none'); }); } });
error: function() { $("#buypagecover").css("display", "none"); $.mobile.loading('hide'); util.toast("获取商品信息失败"); }
$('#mylistwraper').on('click', '.delitem', function() { var guardiannumber = $(this).attr('phone'); var that = this; $.ajax({ url: delguardianApi, type: "POST", dataType: "json", data: { loginid: username, token: token, guardiannumber: guardiannumber }, async: true, success: function(rspData) { if (rspData.errorcode) { if(rspData.errorcode !== 3) { util.toast("获取数据失败,请刷新界面"); } } else { util.toast("删除成功"); $(that).parent().remove(); $('#mylistwraper').listview("refresh"); } }, error: function(xhr, errormsg) { util.toast("获取数据失败,请刷新界面"); } }); });
success: function(rsp) { if (!rsp.errorcode) { $('#goodsname').text(rsp.result.name); $('#goodsdetail').html(rsp.result.detail); $('#goodsfee').text(parseInt(rsp.result.fee/100)); //通过code获取openid var tm = parseInt((new Date()).getTime() / 1000); $.ajax({ url: getWxConfigUrl, type: 'GET', dataType: 'json', data: { loginid: username, token: token, timestamp: tm, url: window.location.href }, success: function(rsp) { if (rsp.errcode) { util.toast("获取商品信息失败"); return; } wx.config({ debug: false, appId: rsp.result.appid, timestamp: tm, nonceStr: rsp.result.nonceStr, signature: rsp.result.signature, jsApiList: ["chooseWXPay"] }); }, error: function() { util.toast("获取商品信息失败"); } }); } else { $("#buypagecover").css("display", "none"); $.mobile.loading('hide'); util.toast("获取商品信息失败"); } },
$("#config_delete").on('click', function(event) { var status_update=$("#status_update").val(); if(status_update==1){ $("#status_update").val(0); var medicineid=util.getParams("medicineid"); $.ajax({ url: delMedicineConfigUrl, type: "POST", dataType: "json", async: true, data: { loginid: username, token: token, medicineid: medicineid }, success: function(rspData) { if (rspData.errorcode) { if (rspData.errorcode === 1) { util.toast("请重新登录"); setTimeout(function() { $.mobile.changePage("/lehealth/login.html", "slide"); }, 1000); return; } util.toast("提交数据失败,请重新提交"); $("#status_update").val(1); } else { util.toast("删除成功"); //两秒后隐藏 setTimeout(function() { $.mobile.changePage("/lehealth/medicationconfig.html", "slide"); }, 1000); } }, error: function(xhr, errormsg) { util.toast("提交数据失败,请重新提交"); $("#status_update").val(1); } }); } });
success: function(rspData) { if (rspData.errorcode) { util.toast("获取数据失败,请刷新界面"); } else { var results = rspData.result; var html = "", attentionhtml = ""; for (var i = 0; i < results.length; i++) { var doctor = results[i]; var seperator = "";//(i == (results.length - 1)) ? "" : '<div style="border-bottom:#888 1px solid"></div>'; var thumbnail = doctor.thumbnail ? doctor.thumbnail : "images/person.jpg"; if(doctor.attention == 0) { html += '<li><a href="/lehealth/expertdetail.html?a=1&status=' + status + '&id=' + doctor.id + '" id="' + doctor.id + '" ><img src="' + thumbnail + '" style="height:80px"><h2>' + doctor.name + '</h2><p>' + doctor.desc + '</p></a>' + seperator + '</li>'; } if(doctor.attention == 1) { attentionhtml += '<li><a href="/lehealth/expertdetail.html?a=1&status=' + status + '&id=' + doctor.id + '" id="' + doctor.id + '" ><img src="' + thumbnail + '" style="height:80px"><h2>' + doctor.name + '</h2><p>' + doctor.desc + '</p></a>' + seperator + '</li>'; } } $('#listwraper').empty(); $('#listwraper').html(html); $('#listwraper').listview("refresh"); $('#mylistwraper').empty(); $('#mylistwraper').html(attentionhtml); $('#mylistwraper').listview("refresh"); } },
success: function(rspData) { if (rspData.errorcode) { if(rspData.errorcode !== 3) { util.toast("获取数据失败,请刷新界面"); } } else { var ids = {}; var results = rspData.result; var html = ""; for (var i = 0; i < results.length; i++) { var guardian = results[i]; var seperator = "";//(i == (results.length -1))? "" : '<div style="border-bottom:#888 1px solid"></div>'; html += '<li data-icon="delete"><a href="#" ><span>' + guardian.guardianname + '</span> <span>手机:' + guardian.guardiannumber +'</span> </a><a href="#" class="delitem" phone="'+guardian.guardiannumber +'" ></a></li>'; } $('#mylistwraper').empty(); $('#mylistwraper').html(html); $('#mylistwraper').listview("refresh"); } },
$('#ulistwraper').on('click', '.uitem', function() { var curuser = $('#curuser').text(); if ($(this).text() !== curuser) { $.mobile.loading('show', { text: '页面加载中...', textVisible: true, theme: 'c', html: '' }); doRequestBpData($(this).attr('userid'), $(this).text()); } $('#ulistwraper').css('display', 'none'); $('.triangle-bg').css('display', 'none'); $('.triangle-border').css('display', 'none'); });
success: function(rspData) { if (rspData.errorcode) { if (rspData.errorcode === 1) { util.toast("请重新登录"); setTimeout(function() { $.mobile.changePage("/lehealth/login.html", "slide"); }, 1000); return; } util.toast("提交数据失败,请重新提交"); $("#status_update").val(1); } else { util.toast("删除成功"); //两秒后隐藏 setTimeout(function() { $.mobile.changePage("/lehealth/medicationconfig.html", "slide"); }, 1000); } },
$("#bplist").on("click", ".delitem", function(evt) { var that = $(this); var username = util.getCookieByKey("loginid"), token = util.getCookieByKey("tk"); $.ajax({ url: delBpRecordUrl, dataType: "json", type: "GET", data: { id: that.parent().attr("rid"), loginid: username, token: token }, success: function(rsp) { if(!rsp.errorcode) { that.parent().remove(); $("#bplistul").listview("refresh"); } } }); });
function showList(bpDataArr) { $('#bplist').show(); $('#trend').hide(); $('#bplistul').empty(); for(var i = bpDataArr.length - 1; i >= 0; i--) { var dt = bpDataArr[i]; var tmplobj = $('#list-tmpl').clone(); tmplobj.attr('data-icon', 'delete'); tmplobj.attr("rid", dt.id); tmplobj.find(".bptime").text(new Date(dt.date).format("MM月dd日 hh:mm")); tmplobj.find(".dbpnum").text(dt.dbp); tmplobj.find(".sbpnum").text(dt.sbp); tmplobj.find(".hratenum").text(dt.heartrate); $('#bplistul').append(tmplobj); } if(bpDataArr.length == 0) { var tmplobj = $('#list-tmpl').clone(); tmplobj.find(".nodata").css("display", "block"); tmplobj.find("a").remove(); $('#bplistul').append(tmplobj); } $('#bplistul').listview("refresh"); }
$(document).on("pageshow","#medicationdelsetting", function() { $('#medicationdelsettingcover').css("display", "none"); var username = util.getCookieByKey("loginid"); var token = util.getCookieByKey("tk"); var medicinename=util.getParams("medicinename"); $("#medicinename").text(medicinename); var configs=JSON.parse(decodeURIComponent(util.getParams("configs"))); var plan='<ul>'; for(var i=0;i<configs.length;i++){ plan+='<li>' +'每天于'+configs[i].time +'服用'+configs[i].dosage +'毫克' +'</li>'; } plan+="</ul>"; $("#plan").append(plan); var datefrom=util.getParams("datefrom"); $("#datefrom").text(datefrom); $("#config_delete").off('click'); $("#config_delete").on('click', function(event) { var status_update=$("#status_update").val(); if(status_update==1){ $("#status_update").val(0); var medicineid=util.getParams("medicineid"); $.ajax({ url: delMedicineConfigUrl, type: "POST", dataType: "json", async: true, data: { loginid: username, token: token, medicineid: medicineid }, success: function(rspData) { if (rspData.errorcode) { if (rspData.errorcode === 1) { util.toast("请重新登录"); setTimeout(function() { $.mobile.changePage("/lehealth/login.html", "slide"); }, 1000); return; } util.toast("提交数据失败,请重新提交"); $("#status_update").val(1); } else { util.toast("删除成功"); //两秒后隐藏 setTimeout(function() { $.mobile.changePage("/lehealth/medicationconfig.html", "slide"); }, 1000); } }, error: function(xhr, errormsg) { util.toast("提交数据失败,请重新提交"); $("#status_update").val(1); } }); } }); });
success: function(rspData) { //隐藏loading界面 $.mobile.loading('hide'); if (rspData.errorcode) { if (rspData.errorcode == 1) { //用户校验失败 util.setCookie("jump", "/lehealth/bpmonitor.html"); $.mobile.changePage("/lehealth/login.html", "slide"); return; } util.toast("获取数据失败,请刷新界面"); } else { userid = userid || ""; if (!userid) { $('#ulistwraper').empty(); //更新用户列表 guardedList = rspData.result.guardeds || []; guardedList.unshift({ username: "******", userid: "" }); for (var i = 0; i < guardedList.length; i++) { var div_obj = $('<div class="uitem"></div>'); div_obj.attr('userid', guardedList[i].userid); div_obj.text(guardedList[i].username); if (i == (guardedList.length - 1)) { div_obj.css('border-bottom', 'none'); } div_obj.appendTo('#ulistwraper'); } //更新top bar 用户名 $('#curuser').text('我'); } else { //更新top bar 用户名 $('#curuser').text(showname); } //更新评价文案 var judge = rspData.result.status; var latestData = rspData.result.records ? rspData.result.records[rspData.result.records.length - 1] : undefined; if (latestData) { showJudgePannel(judge, latestData.heartrate, latestData.sbp, latestData.dbp); } var dayInms = 3600 * 1000 * 24; //更新趋势图 var bpDataArr = rspData.result.records || [], medicalhistory = rspData.result.history || [], newDataArr = []; var now = new Date(); console.info(now.getTime()); now.setHours(0); now.setMinutes(0); now.setSeconds(0); now.setMilliseconds(0); console.info(now.getTime()); var beginBaseline = now.getTime() - (dayInms * dayTotal); //循环筛选数据 for (var i = 1; i <= dayTotal; i++) { var found = false; for (var j = 0; j < bpDataArr.length; j++) { var bpdate = bpDataArr[j].date; var tmpDate = new Date(bpdate); tmpDate.setHours(0); tmpDate.setMinutes(0); tmpDate.setSeconds(0); tmpDate.setMilliseconds(0); bpDataArr[j].date = bpdate = tmpDate.getTime(); if (bpdate >= (beginBaseline + i * dayInms) && bpdate < (beginBaseline + (i + 1) * dayInms)) { newDataArr.push(bpDataArr[j]); console.info('bpdate: ' + bpdate); found = true; break; } } if (!found) { newDataArr.push({ date: beginBaseline + i * dayInms, dbp: null, sbp: null, heartrate: null }); } } var xAxisArr = [], dbpArr = [], sbpArr = [], rateArr = [], medicalByDate = {}; for (var i = 0; i < newDataArr.length; i++) { var bpobj = newDataArr[i]; xAxisArr.push((new Date(bpobj.date)).getDate() + '日'); console.info("date day:" + bpobj.date + ", day: " + (new Date(bpobj.date)).getDate()); var daynum = (new Date(bpobj.date)).getDate(); if (!medicalByDate[bpobj.date]) { medicalByDate[bpobj.date] = {}; } dbpArr.push(bpobj.dbp); sbpArr.push(bpobj.sbp); rateArr.push(bpobj.heartrate); } console.info(medicalByDate); //计算背景区段 for (var item in medicalhistory) { var mname = medicalhistory[item]['medicinename']; var date = new Date(medicalhistory[item]['date']); date.setHours(0); date.setMinutes(0); date.setSeconds(0); date.setMilliseconds(0); var dayMap = medicalByDate[date.getTime()]; if (dayMap) { dayMap[mname] = true; } } console.info(medicalByDate); var tmpArr = []; for (var tm in medicalByDate) { var tmpItems = medicalByDate[tm]; // var fname = ""; var namearr = []; for (var _mname in tmpItems) { namearr.push(_mname); } tmpArr.push({ tm: parseInt(tm), name: namearr, day: new Date(parseInt(tm)).getDate() }); } tmpArr.sort(function(o1, o2) { return o1.tm - o2.tm; }); console.info('tmpArr: '); console.info(tmpArr); var finalObj = [], tips = []; var from, to; //合并相邻位置 for (var i = 0; i < tmpArr.length; i++) { var tmpobj = tmpArr[i]; var nextobj = tmpArr[i + 1]; if (i == 0) { var minDay = tmpArr[i].day; } if (!from) { from = tmpobj.day - minDay - 0.5; } if (!nextobj) { to = tmpobj.day + 0.5 - minDay; //? finalObj.push({ from: from, to: to, label: { text: tmpobj.name.join('+') }, color: 'blue' }); tips.push({ name: tmpobj.name.join('+'), color: '#87CEFF' }); from = 0; to = 0; continue; } if (nextobj && util.arrayEqual(nextobj.name, tmpobj.name)) { continue; } else { to = tmpobj.day + 0.5 - minDay; finalObj.push({ from: from, to: to, label: { text: tmpobj.name.join('+') }, color: '#87CEFF' }); tips.push({ name: tmpobj.name.join('+'), color: '#87CEFF' }); from = 0; to = 0; continue; } } console.info(finalObj); var color = [ "#A4D3EE", "#B4CDCD", "#90EE90", "#B4EEB4", "#D1D1D1", "#CDAA7D", "#BCEE68", "#EEEE00" ]; console.info(tips); var colorIdx = 0, colorByName = {}; $('#medicationtips').empty(); var hasMedicalHistory = false; trendchart.xAxis[0].update({ plotBands: [] }); for (var i = 0; i < finalObj.length; i++) { if (colorByName[finalObj[i].label.text]) { finalObj[i]['color'] = color[i]; tips[i].color = color[i]; } finalObj[i]['color'] = color[i]; tips[i].color = color[i]; if (!finalObj[i].label.text) { continue; } else { hasMedicalHistory = true; delete finalObj[i].label; $('#medicationtips').append('<div style="height: 20px; line-height: 20px; width: 100%; overflow: auto"><div style="width: 12px; height: 12px; margin: 4px;float:left; background-color: ' + tips[i].color + '"></div> <div style="float:left; margin-left: 8px; font-size: 12px; width: 80%; overflow: auto">' + tips[i].name + '</div><div style="clear:both"></div></div>'); } trendchart.xAxis[0].addPlotBand(finalObj[i]); } if (!hasMedicalHistory) { $('#medicationtips').append('<div style="height: 20px; line-height: 20px; width: 100%; overflow: auto"><div style="float:left; margin-left: 8px; font-size: 12px; width: 80%; overflow: auto">没有您的用药数据</div><div style="clear:both"></div></div>'); } trendchart.xAxis[0].setCategories(xAxisArr); trendchart.yAxis[0].update({ min: 0, max: 200 }); trendchart.yAxis[1].update({ min: 0, max: 200 }); trendchart.series[0].setData(dbpArr); trendchart.series[1].setData(sbpArr); trendchart.series[2].setData(rateArr); } },
$('#ulistwraper').slideUp('fast', function() { $('.triangle-bg').css('display', 'none'); $('.triangle-border').css('display', 'none'); });
$('#listmode').on('click', function() { $('#chartmode').removeClass('ui-btn-active'); $('#listmode').addClass('ui-btn-active'); isChartMode = false; doRequestBpData(timeInterval); });
exports.bindEvent = function() { $.mobile.loading('show', { text: '页面加载中...', textVisible: true, theme: 'c', html: '' }); $(document).off("pageshow", "#buypage"); $(document).on("pageshow", "#buypage", function() { var openId, queryRsTimeoutHandler, queryRsIntervalHandler; var goodsId = util.parseUri(window.location.href).getQueryParameter('id'); var code = util.parseUri(window.location.href).getQueryParameter('code'); var username = util.getCookieByKey("loginid"), token = util.getCookieByKey("tk"); if (!code) { util.toast("页面加载失败"); return; } //获取 $.ajax({ url: getGoodInfoUrl, type: 'GET', dataType: 'json', data: { "goodsid": goodsId }, success: function(rsp) { if (!rsp.errorcode) { $('#goodsname').text(rsp.result.name); $('#goodsdetail').html(rsp.result.detail); $('#goodsfee').text(parseInt(rsp.result.fee/100)); //通过code获取openid var tm = parseInt((new Date()).getTime() / 1000); $.ajax({ url: getWxConfigUrl, type: 'GET', dataType: 'json', data: { loginid: username, token: token, timestamp: tm, url: window.location.href }, success: function(rsp) { if (rsp.errcode) { util.toast("获取商品信息失败"); return; } wx.config({ debug: false, appId: rsp.result.appid, timestamp: tm, nonceStr: rsp.result.nonceStr, signature: rsp.result.signature, jsApiList: ["chooseWXPay"] }); }, error: function() { util.toast("获取商品信息失败"); } }); } else { $("#buypagecover").css("display", "none"); $.mobile.loading('hide'); util.toast("获取商品信息失败"); } }, error: function() { $("#buypagecover").css("display", "none"); $.mobile.loading('hide'); util.toast("获取商品信息失败"); } }); wx.ready(function(res) { $("#buypagecover").css("display", "none"); $.mobile.loading('hide'); //绑定点击购买事件 $('#dobuy').off("click"); $('#dobuy').on("click", function() { var weixinCallbackSuccess = false, serverCbSuccess = false; $.ajax({ url: generateOrderUrl, type: "GET", dataType: 'json', data: { loginid: username, token: token, goodsid: goodsId, code: code }, success: function(rsp) { if (rsp.errorcode) { $.mobile.loading('hide'); util.toast("创建订单失败,请重新支付"); } else { var data = rsp.result; var orderId = data.orderid; wx.chooseWXPay({ timestamp: data.timestamp, nonceStr: data.noncestr, package: data.package, signType: data.signtype, paySign: data.paysign.toUpperCase(), success: function(res) { weixinCallbackSuccess = true; if (weixinCallbackSuccess && serverCbSuccess) { $.mobile.loading('hide'); window.location.href = "/lehealth/myorder.html"; } }, fail: function(res) { $.mobile.loading('hide'); //go to 支付完成页面 window.location.href = "/lehealth/myorder.html"; }, cancel: function() { $.mobile.loading('hide'); if (queryRsTimeoutHandler) { clearTimeout(queryRsTimeoutHandler); } if (queryRsIntervalHandler) { clearInterval(queryRsIntervalHandler); } window.location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxe4b3e1f50a76f240&redirect_uri=http%3A%2F%2Flehealth.net.cn%2Flehealth%2Fbuypage.html%3Fid%3D1&response_type=code&scope=snsapi_base&state=123#wechat_redirect"; } }); queryRsTimeoutHandler = setTimeout(function() { $.mobile.loading('hide'); //go to 支付完成页面 // $.mobile.changePage("myorder.html", "slide"); window.location.href = "/lehealth/myorder.html"; }, 30000); queryRsIntervalHandler = setInterval(function() { //query bill lastest info $.ajax({ url: getOrderRsUrl, type: "get", dataType: "json", data: { orderid: orderId, loginid: username, token: token }, success: function(res) { if (!res.errorcode) { var orderDetail = res.result; if (orderDetail.status == 2) { serverCbSuccess = true; if (serverCbSuccess && weixinCallbackSuccess) { $.mobile.loading('hide'); window.location.href = "/lehealth/myorder.html"; } } else if (orderDetail.status == 3) { $.mobile.loading('hide'); window.location.href = "/lehealth/myorder.html"; } else if (orderDetail.status == 4) { $.mobile.loading('hide'); window.location.href = "/lehealth/myorder.html"; } } } }); }, 1000); } }, error: function(e) { $.mobile.loading('hide'); util.toast("创建订单失败,请重新支付"); } }) }); }); wx.error(function(res) { //出错了,可以更新签名 $("#buypagecover").css("display", "none"); $.mobile.loading('hide'); util.toast("微信验证失败"); }); }); $(document).off("pagehide", "#buypage"); $(document).on("pagehide", "#buypage", function() { if (queryRsTimeoutHandler) { clearTimeout(queryRsTimeoutHandler); } if (queryRsIntervalHandler) { clearInterval(queryRsIntervalHandler); } }); };
function showCharts(ranges, isEmpty) { $('#bplist').hide(); $('#trend').show(); $('#trendchart').empty(); //渲染血压趋势图 var gridTheme = require('highcharts_theme').getGridThemeOption(); highcharts.setOptions(gridTheme); if (isEmpty) { var yopts = [{ title: { text: 'mmHg', margin: 0 }, lineWidth: 1, opposite: false, min: 0, max: 200 }]; } else { var yopts = [{ title: { text: 'mmHg', margin: 0 }, lineWidth: 1, opposite: false }]; } $('#trendchart').highcharts({ chart: { type: 'line', backgroundColor: '#f9f9f9' }, title: { text: '' }, subtitle: { text: '' }, xAxis: { type: 'datetime', dateTimeLabelFormats: { day: '%m.%e' } }, yAxis: yopts, legend: {}, tooltip: { dateTimeLabelFormats: { minute: '%m月%e日 %H:%M', second: '%m月%e日 %H:%M:%S' } }, series: [{ name: '血压', data: ranges, type: 'arearange', lineWidth: 0, linkedTo: ':previous', color: Highcharts.getOptions().colors[0], fillOpacity: 0.3, zIndex: 0, yAxis: 0, }], credits: { enabled: false } }); }
success: function(rspData) { if (rspData.errorcode) { if (rspData.errorcode == 1) { //用户校验失败 util.setCookie("jump", "/lehealth/bpmonitor.html"); $.mobile.changePage("/lehealth/login.html", "slide"); return; } util.toast("获取数据失败,请刷新界面"); } else { //更新评价分数 var score = rspData.result.score; // var point = judgechart.series[0].points[0]; // point.update(score); //更新评价文案 var judge = rspData.result.status; if (!judge) { $("#judge_text").html("暂无您的血压状况评估"); } else { switch (judge) { case 1: $("#judge_text").html("您的血压状况偏低"); break; case 2: $("#judge_text").html("您的血压状况正常"); break; case 3: $("#judge_text").html("您的血压状况偏高"); break; default: } } var bpDataArr = rspData.result.records || []; if (isChartMode) { //更新趋势图 var hasMedicate = false; if (bpDataArr != null && bpDataArr.length > 0) { var lastestBpDate = new Date(bpDataArr[bpDataArr.length - 1].date); var now = new Date(); if (now.getFullYear() == lastestBpDate.getFullYear() && now.getMonth() == lastestBpDate.getMonth() && now.getDate() == lastestBpDate.getDate()) { hasMedicate = true; } } if (!hasMedicate) { $('#hasmedicate').html('还未'); } else { $('#hasmedicate').html('已经'); } if (bpDataArr.length == 1) { var bpData = bpDataArr[0]; var tmp = {}; for (var i in bpData) { tmp[i] = bpData[i]; } tmp.date += 1000 * 3600; bpDataArr.push(tmp); } console.info(bpDataArr); var isEmpty = (bpDataArr.length == 0 ? true : false); var now = new Date().getTime(); for (var i = 0; i < days; i++) { bpDataArr.push({ date: now - (i * 24 * 3600 * 1000), dbp: null, sbp: null }); } var ranges = []; for (var i = 0; i < bpDataArr.length; i++) { var bpobj = bpDataArr[i]; ranges.push([bpobj.date, bpobj.dbp, bpobj.sbp]); } console.info(ranges); var chartwidth = bpDataArr.length * 45 > screen.width ? bpDataArr.length * 45 : screen.width; $('#trendchart').css('width', chartwidth + 'px'); showCharts(ranges, isEmpty); } else { showList(bpDataArr); } } },
success: function(rsp) { if(!rsp.errorcode) { that.parent().remove(); $("#bplistul").listview("refresh"); } }
wx.ready(function(res) { $("#buypagecover").css("display", "none"); $.mobile.loading('hide'); //绑定点击购买事件 $('#dobuy').off("click"); $('#dobuy').on("click", function() { var weixinCallbackSuccess = false, serverCbSuccess = false; $.ajax({ url: generateOrderUrl, type: "GET", dataType: 'json', data: { loginid: username, token: token, goodsid: goodsId, code: code }, success: function(rsp) { if (rsp.errorcode) { $.mobile.loading('hide'); util.toast("创建订单失败,请重新支付"); } else { var data = rsp.result; var orderId = data.orderid; wx.chooseWXPay({ timestamp: data.timestamp, nonceStr: data.noncestr, package: data.package, signType: data.signtype, paySign: data.paysign.toUpperCase(), success: function(res) { weixinCallbackSuccess = true; if (weixinCallbackSuccess && serverCbSuccess) { $.mobile.loading('hide'); window.location.href = "/lehealth/myorder.html"; } }, fail: function(res) { $.mobile.loading('hide'); //go to 支付完成页面 window.location.href = "/lehealth/myorder.html"; }, cancel: function() { $.mobile.loading('hide'); if (queryRsTimeoutHandler) { clearTimeout(queryRsTimeoutHandler); } if (queryRsIntervalHandler) { clearInterval(queryRsIntervalHandler); } window.location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxe4b3e1f50a76f240&redirect_uri=http%3A%2F%2Flehealth.net.cn%2Flehealth%2Fbuypage.html%3Fid%3D1&response_type=code&scope=snsapi_base&state=123#wechat_redirect"; } }); queryRsTimeoutHandler = setTimeout(function() { $.mobile.loading('hide'); //go to 支付完成页面 // $.mobile.changePage("myorder.html", "slide"); window.location.href = "/lehealth/myorder.html"; }, 30000); queryRsIntervalHandler = setInterval(function() { //query bill lastest info $.ajax({ url: getOrderRsUrl, type: "get", dataType: "json", data: { orderid: orderId, loginid: username, token: token }, success: function(res) { if (!res.errorcode) { var orderDetail = res.result; if (orderDetail.status == 2) { serverCbSuccess = true; if (serverCbSuccess && weixinCallbackSuccess) { $.mobile.loading('hide'); window.location.href = "/lehealth/myorder.html"; } } else if (orderDetail.status == 3) { $.mobile.loading('hide'); window.location.href = "/lehealth/myorder.html"; } else if (orderDetail.status == 4) { $.mobile.loading('hide'); window.location.href = "/lehealth/myorder.html"; } } } }); }, 1000); } }, error: function(e) { $.mobile.loading('hide'); util.toast("创建订单失败,请重新支付"); } }) }); });
exports.render = function() { $(document).off("pageshow", "#doctorlist"); $(document).on("pageshow", "#doctorlist", function() { var username = util.getCookieByKey("loginid"), token = util.getCookieByKey("tk"); $("#doctorlistcover").css("display", "none"); var username = util.getCookieByKey("loginid"), token = util.getCookieByKey("tk"); $.ajax({ url: getDoctorListUrl, type: "GET", dataType: "json", data: { loginid: username, token: token, }, async: true, success: function(rspData) { if (rspData.errorcode) { util.toast("获取数据失败,请刷新界面"); } else { var results = rspData.result; var html = "", attentionhtml = ""; for (var i = 0; i < results.length; i++) { var doctor = results[i]; var seperator = "";//(i == (results.length - 1)) ? "" : '<div style="border-bottom:#888 1px solid"></div>'; var thumbnail = doctor.thumbnail ? doctor.thumbnail : "images/person.jpg"; if(doctor.attention == 0) { html += '<li><a href="/lehealth/expertdetail.html?a=1&status=' + status + '&id=' + doctor.id + '" id="' + doctor.id + '" ><img src="' + thumbnail + '" style="height:80px"><h2>' + doctor.name + '</h2><p>' + doctor.desc + '</p></a>' + seperator + '</li>'; } if(doctor.attention == 1) { attentionhtml += '<li><a href="/lehealth/expertdetail.html?a=1&status=' + status + '&id=' + doctor.id + '" id="' + doctor.id + '" ><img src="' + thumbnail + '" style="height:80px"><h2>' + doctor.name + '</h2><p>' + doctor.desc + '</p></a>' + seperator + '</li>'; } } $('#listwraper').empty(); $('#listwraper').html(html); $('#listwraper').listview("refresh"); $('#mylistwraper').empty(); $('#mylistwraper').html(attentionhtml); $('#mylistwraper').listview("refresh"); } }, error: function(xhr, errormsg) { util.toast("获取数据失败,请刷新界面"); } }); }); };
wx.error(function(res) { //出错了,可以更新签名 $("#buypagecover").css("display", "none"); $.mobile.loading('hide'); util.toast("微信验证失败"); });
$(document).on("pageshow", "#homepage", function() { console.info('home init'); guardedList = []; $("#homepagecover").css("display", "none"); $.mobile.loading('hide'); $('#nav-toggle').off('click'); $('#nav-toggle').on('click', function() { if ($('#ulistwraper').css('display') == 'none') { $('.triangle-border').css('display', 'inline-block'); $('.triangle-bg').css('display', 'inline-block'); $('#ulistwraper').slideDown('fast', function() {}); } else { $('#ulistwraper').slideUp('fast', function() { $('.triangle-bg').css('display', 'none'); $('.triangle-border').css('display', 'none'); }); } }); $('#ulistwraper').on('click', '.uitem', function() { var curuser = $('#curuser').text(); if ($(this).text() !== curuser) { $.mobile.loading('show', { text: '页面加载中...', textVisible: true, theme: 'c', html: '' }); doRequestBpData($(this).attr('userid'), $(this).text()); } $('#ulistwraper').css('display', 'none'); $('.triangle-bg').css('display', 'none'); $('.triangle-border').css('display', 'none'); }); $('#todayDate').empty(); var today = new Date(); today = today.getFullYear() + '-' + (today.getMonth() + 1) + "-" + today.getDate(); $('#todayDate').html(today); var trendchart, // judgechart, chartcount = 1; showJudgePannel(1, 0, 0, 0); //渲染图表原始界面,先填充默认数据,然后再通过网络请求填充真实数据 var highcharts = require('highcharts'); //渲染血压趋势图 var gridTheme = require('highcharts_theme').getGridThemeOption(); highcharts.setOptions(gridTheme); $('#medicationInfo').highcharts({ chart: { type: 'line', backgroundColor: '#f9f9f9' }, title: { text: '' }, subtitle: { text: '' }, xAxis: { categories: ['1日', '2日', '3日', '4日', '5日', '6日', '7日'] }, yAxis: [{ title: { text: 'mmHg', margin: 0 }, lineWidth: 1 }, { title: { text: '次', margin: 0 }, lineWidth: 1, opposite: true }], tooltip: { enabled: true, formatter: function() { return '<b>' + this.series.name + '</b><br>' + this.x + ': ' + this.y; } }, plotOptions: { line: { dataLabels: { enabled: true }, enableMouseTracking: false } }, //default data series: [{ name: '舒张压', data: [90, 90, 90, 90, 90, 90, 90], yAxis: 0 }, { name: '收缩压', data: [120, 120, 120, 120, 120, 120, 120], yAxis: 0 }, { name: '心率', data: [80, 80, 80, 80, 80, 80, 80], yAxis: 1 }], credits: { enabled: false } }, function(chart) { trendchart = chart; chartcount--; if (chartcount == 0) { doRequestBpData(); } }); function doRequestBpData(userid, showname) { var username = util.getCookieByKey("loginid"), token = util.getCookieByKey("tk"); var dayTotal = 15; $.ajax({ url: getBpRecordUrl, type: "GET", dataType: "json", async: true, data: { loginid: username, token: token, days: dayTotal, user: userid }, success: function(rspData) { //隐藏loading界面 $.mobile.loading('hide'); if (rspData.errorcode) { if (rspData.errorcode == 1) { //用户校验失败 util.setCookie("jump", "/lehealth/bpmonitor.html"); $.mobile.changePage("/lehealth/login.html", "slide"); return; } util.toast("获取数据失败,请刷新界面"); } else { userid = userid || ""; if (!userid) { $('#ulistwraper').empty(); //更新用户列表 guardedList = rspData.result.guardeds || []; guardedList.unshift({ username: "******", userid: "" }); for (var i = 0; i < guardedList.length; i++) { var div_obj = $('<div class="uitem"></div>'); div_obj.attr('userid', guardedList[i].userid); div_obj.text(guardedList[i].username); if (i == (guardedList.length - 1)) { div_obj.css('border-bottom', 'none'); } div_obj.appendTo('#ulistwraper'); } //更新top bar 用户名 $('#curuser').text('我'); } else { //更新top bar 用户名 $('#curuser').text(showname); } //更新评价文案 var judge = rspData.result.status; var latestData = rspData.result.records ? rspData.result.records[rspData.result.records.length - 1] : undefined; if (latestData) { showJudgePannel(judge, latestData.heartrate, latestData.sbp, latestData.dbp); } var dayInms = 3600 * 1000 * 24; //更新趋势图 var bpDataArr = rspData.result.records || [], medicalhistory = rspData.result.history || [], newDataArr = []; var now = new Date(); console.info(now.getTime()); now.setHours(0); now.setMinutes(0); now.setSeconds(0); now.setMilliseconds(0); console.info(now.getTime()); var beginBaseline = now.getTime() - (dayInms * dayTotal); //循环筛选数据 for (var i = 1; i <= dayTotal; i++) { var found = false; for (var j = 0; j < bpDataArr.length; j++) { var bpdate = bpDataArr[j].date; var tmpDate = new Date(bpdate); tmpDate.setHours(0); tmpDate.setMinutes(0); tmpDate.setSeconds(0); tmpDate.setMilliseconds(0); bpDataArr[j].date = bpdate = tmpDate.getTime(); if (bpdate >= (beginBaseline + i * dayInms) && bpdate < (beginBaseline + (i + 1) * dayInms)) { newDataArr.push(bpDataArr[j]); console.info('bpdate: ' + bpdate); found = true; break; } } if (!found) { newDataArr.push({ date: beginBaseline + i * dayInms, dbp: null, sbp: null, heartrate: null }); } } var xAxisArr = [], dbpArr = [], sbpArr = [], rateArr = [], medicalByDate = {}; for (var i = 0; i < newDataArr.length; i++) { var bpobj = newDataArr[i]; xAxisArr.push((new Date(bpobj.date)).getDate() + '日'); console.info("date day:" + bpobj.date + ", day: " + (new Date(bpobj.date)).getDate()); var daynum = (new Date(bpobj.date)).getDate(); if (!medicalByDate[bpobj.date]) { medicalByDate[bpobj.date] = {}; } dbpArr.push(bpobj.dbp); sbpArr.push(bpobj.sbp); rateArr.push(bpobj.heartrate); } console.info(medicalByDate); //计算背景区段 for (var item in medicalhistory) { var mname = medicalhistory[item]['medicinename']; var date = new Date(medicalhistory[item]['date']); date.setHours(0); date.setMinutes(0); date.setSeconds(0); date.setMilliseconds(0); var dayMap = medicalByDate[date.getTime()]; if (dayMap) { dayMap[mname] = true; } } console.info(medicalByDate); var tmpArr = []; for (var tm in medicalByDate) { var tmpItems = medicalByDate[tm]; // var fname = ""; var namearr = []; for (var _mname in tmpItems) { namearr.push(_mname); } tmpArr.push({ tm: parseInt(tm), name: namearr, day: new Date(parseInt(tm)).getDate() }); } tmpArr.sort(function(o1, o2) { return o1.tm - o2.tm; }); console.info('tmpArr: '); console.info(tmpArr); var finalObj = [], tips = []; var from, to; //合并相邻位置 for (var i = 0; i < tmpArr.length; i++) { var tmpobj = tmpArr[i]; var nextobj = tmpArr[i + 1]; if (i == 0) { var minDay = tmpArr[i].day; } if (!from) { from = tmpobj.day - minDay - 0.5; } if (!nextobj) { to = tmpobj.day + 0.5 - minDay; //? finalObj.push({ from: from, to: to, label: { text: tmpobj.name.join('+') }, color: 'blue' }); tips.push({ name: tmpobj.name.join('+'), color: '#87CEFF' }); from = 0; to = 0; continue; } if (nextobj && util.arrayEqual(nextobj.name, tmpobj.name)) { continue; } else { to = tmpobj.day + 0.5 - minDay; finalObj.push({ from: from, to: to, label: { text: tmpobj.name.join('+') }, color: '#87CEFF' }); tips.push({ name: tmpobj.name.join('+'), color: '#87CEFF' }); from = 0; to = 0; continue; } } console.info(finalObj); var color = [ "#A4D3EE", "#B4CDCD", "#90EE90", "#B4EEB4", "#D1D1D1", "#CDAA7D", "#BCEE68", "#EEEE00" ]; console.info(tips); var colorIdx = 0, colorByName = {}; $('#medicationtips').empty(); var hasMedicalHistory = false; trendchart.xAxis[0].update({ plotBands: [] }); for (var i = 0; i < finalObj.length; i++) { if (colorByName[finalObj[i].label.text]) { finalObj[i]['color'] = color[i]; tips[i].color = color[i]; } finalObj[i]['color'] = color[i]; tips[i].color = color[i]; if (!finalObj[i].label.text) { continue; } else { hasMedicalHistory = true; delete finalObj[i].label; $('#medicationtips').append('<div style="height: 20px; line-height: 20px; width: 100%; overflow: auto"><div style="width: 12px; height: 12px; margin: 4px;float:left; background-color: ' + tips[i].color + '"></div> <div style="float:left; margin-left: 8px; font-size: 12px; width: 80%; overflow: auto">' + tips[i].name + '</div><div style="clear:both"></div></div>'); } trendchart.xAxis[0].addPlotBand(finalObj[i]); } if (!hasMedicalHistory) { $('#medicationtips').append('<div style="height: 20px; line-height: 20px; width: 100%; overflow: auto"><div style="float:left; margin-left: 8px; font-size: 12px; width: 80%; overflow: auto">没有您的用药数据</div><div style="clear:both"></div></div>'); } trendchart.xAxis[0].setCategories(xAxisArr); trendchart.yAxis[0].update({ min: 0, max: 200 }); trendchart.yAxis[1].update({ min: 0, max: 200 }); trendchart.series[0].setData(dbpArr); trendchart.series[1].setData(sbpArr); trendchart.series[2].setData(rateArr); } }, error: function(xhr, errormsg) { $.mobile.loading('hide'); util.toast("获取数据失败,请刷新界面"); } }); } });
exports.render = function() { $(document).off("pageshow", "#guardianlist"); $(document).on("pageshow", "#guardianlist", function() { var username = util.getCookieByKey("loginid"), token = util.getCookieByKey("tk"); $("#guardianlistcover").css("display", "none"); var username = util.getCookieByKey("loginid"), token = util.getCookieByKey("tk"); $.ajax({ url: getguardianApi, type: "GET", dataType: "json", data: { loginid: username, token: token }, async: true, success: function(rspData) { if (rspData.errorcode) { if(rspData.errorcode !== 3) { util.toast("获取数据失败,请刷新界面"); } } else { var ids = {}; var results = rspData.result; var html = ""; for (var i = 0; i < results.length; i++) { var guardian = results[i]; var seperator = "";//(i == (results.length -1))? "" : '<div style="border-bottom:#888 1px solid"></div>'; html += '<li data-icon="delete"><a href="#" ><span>' + guardian.guardianname + '</span> <span>手机:' + guardian.guardiannumber +'</span> </a><a href="#" class="delitem" phone="'+guardian.guardiannumber +'" ></a></li>'; } $('#mylistwraper').empty(); $('#mylistwraper').html(html); $('#mylistwraper').listview("refresh"); } }, error: function(xhr, errormsg) { util.toast("获取数据失败,请刷新界面"); } }); $('#mylistwraper').off('click', '.delitem'); $('#mylistwraper').on('click', '.delitem', function() { var guardiannumber = $(this).attr('phone'); var that = this; $.ajax({ url: delguardianApi, type: "POST", dataType: "json", data: { loginid: username, token: token, guardiannumber: guardiannumber }, async: true, success: function(rspData) { if (rspData.errorcode) { if(rspData.errorcode !== 3) { util.toast("获取数据失败,请刷新界面"); } } else { util.toast("删除成功"); $(that).parent().remove(); $('#mylistwraper').listview("refresh"); } }, error: function(xhr, errormsg) { util.toast("获取数据失败,请刷新界面"); } }); }); }); };
$(document).on("pageshow", "#bpmonitor", function() { console.info('bpmonitor init'); $("#bpmonitorcover").css("display", "none"); $.mobile.loading('hide'); $('#sevendaybtn').off("click"); $('#sevendaybtn').on('click', function() { $('#halfmonbtn').removeClass('ui-btn-active'); $('#sevendaybtn').addClass('ui-btn-active'); $('#monbtn').removeClass('ui-btn-active'); timeInterval = 7; doRequestBpData(7); }); $('#monbtn').off("click"); $('#monbtn').on('click', function() { $('#halfmonbtn').removeClass('ui-btn-active'); $('#sevendaybtn').removeClass('ui-btn-active'); $('#monbtn').addClass('ui-btn-active'); timeInterval = 30; doRequestBpData(30); }); $('#halfmonbtn').off("click"); $('#halfmonbtn').on('click', function() { $('#halfmonbtn').addClass('ui-btn-active'); $('#sevendaybtn').removeClass('ui-btn-active'); $('#monbtn').removeClass('ui-btn-active'); timeInterval = 15; doRequestBpData(15); }); $('#sevendaybtn').addClass('ui-btn-active'); $('#sevendaybtn').click(); $('#chartmode').off('click'); $('#chartmode').on('click', function() { $('#chartmode').addClass('ui-btn-active'); $('#listmode').removeClass('ui-btn-active'); isChartMode = true; doRequestBpData(timeInterval); }); $('#listmode').off('click'); $('#listmode').on('click', function() { $('#chartmode').removeClass('ui-btn-active'); $('#listmode').addClass('ui-btn-active'); isChartMode = false; doRequestBpData(timeInterval); }); $('#chartmode').addClass('ui-btn-active'); isChartMode = true; timeInterval = 7; $('#chartmode').click(); $("#bplist").off("click"); $("#bplist").on("click", ".delitem", function(evt) { var that = $(this); var username = util.getCookieByKey("loginid"), token = util.getCookieByKey("tk"); $.ajax({ url: delBpRecordUrl, dataType: "json", type: "GET", data: { id: that.parent().attr("rid"), loginid: username, token: token }, success: function(rsp) { if(!rsp.errorcode) { that.parent().remove(); $("#bplistul").listview("refresh"); } } }); }); });