var Request = GetRequest(); var mbglType = ""; mbglType = Request["type"];//当从慢病管理界面跳转到该页面的时候要返回上一个页面 $(function() { var $viewTabs = $('#viewTabs'), $swiperWrapper = $('.swiper-wrapper'), $duringList = $('#duringList'), $qushiView = $('#qushiView'), $liebiaoView = $('#liebiaoView'), $xtEdit = $('.xt-edit'), $btns = $('.btns'), $cancelBtn = $('.cancel-btn'), $okBtn = $('.ok-btn'), $xtAdd = $('.xt-add'), $popMain = $('.pop-main'), $popBtns = $('.pop-btns'), $popEditBtn = $('.pop-edit-btn'), $popDelBtn = $('.pop-del-btn'), $popCancelBtn = $('.pop-cancel-btn'), $selDate = $('#selDate'), swiper = null, d1 = [], d2 = [], d3 = [], d4 = [], page = 0, pagesize = 10, $zcNum = $('.zc-num'), $pgNum = $('.pg-num'), $pdNum = $('.pd-num'), dayNum = 6, $xyList = $('.xy-list-con'), $xyTmp = $('#xyTmp'), thatIndex = 1, isTrue = false, isLoad = false; var scroller1 = new IScrollPullUpDown('wrapper6', { probeType: 2, bounceTime: 250, bounceEasing: 'quadratic', mouseWheel: false, scrollbars: true, click: true, // preventDefault: false, fadeScrollbars: true, interactiveScrollbars: false }, null, pullUpAction); //上拉加载数据 function pullUpAction(theScrollerTemp) { $(".pullUp").show(); setTimeout(function() { loadListPromise(); }, 1000); } var norTime = '', begindate = '', enddate = '', sn = 0; var charts = []; //判断最后的日期 sendPost("patient/health_index/last", {}, "json", "get", function(){ dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'请求失败'}).show(); }, function(res){ if(res.status == 200){ var d0 = decodeURIComponent(Request["dateT"]); if(res.data.xy){ var d1 = (res.data.xy.recordDate).split(' ')[0]; var d2 = Date.parse(new Date(d0)) var d3 = Date.parse(new Date(d1)) if(d2 0 && data[v] < n2) { //偏低 vv.pd++; } if(data[v] > n1) { //偏高 vv.pg++; } if(data[v] >= n2 && data[v] <= n1) { vv.zc++; } } return vv; } bindEvents(); function queryListByTypeP(type, begindate, enddate, page, pagesize) { //拼请求内容 d.show(); var params = {}; params.type = type; params.page = page; params.pagesize = pagesize; params.start = begindate + " 00:00:00"; params.end = enddate + " 23:59:59"; return new Promise(function(resolve, reject) { //发送ajax请求 sendPost("patient/health_index/list", params, "json", "post", queryListFailed, function(res) { d.close(); if(res.status == 200) { resolve(res) } else { queryListFailed(res); } }); }) } function loadListPromise() { page++; Promise.all([ queryListByTypeP(2, getDateFromCurrentDate(norTime, -2000), norTime, page, pagesize) ]) .then(function(res) { $(".pullUp").hide(); var data = res[0]; if(data.list.length > 0) { console.log(data.list); $xyList.append(template('xyTmp', { data: data.list })); if($xtEdit.css('display') == "none") { $xyList.find('.l-edit-icon').addClass('active') } scroller1.myScroll.refresh() } else { if(!isLoad) { dialog({ contentType: 'tipsbox', bottom: true, skin: 'bk-popup', content: '暂无数据' }).show(); $xtEdit.unbind('click'); } else { dialog({ contentType: 'tipsbox', bottom: true, skin: 'bk-popup', content: '暂无更多数据' }).show(); } } isLoad = true; }) .catch(function(e) { console && console.error(e) }); } //初始化swiper function init() { Promise.all([(function() { $swiperWrapper .append($('
  • ')) .append($('
  • ')) .append($('
  • ')) .append($('
  • ')); })()]) .then(function(echarts) { swiper = new Swiper('.swiper-container', { paginationClickable: false, onSlideChangeStart: function(swiper) { //切换 var ind = swiper.activeIndex; if(ind < sn) { begindate = enddate; enddate = getDateFromCurrentDate(begindate, -dayNum); } else { enddate = begindate; begindate = getDateFromCurrentDate(begindate, dayNum); } sn = ind; loadPromise(sn, enddate, begindate); } }); }) .then(function() { $swiperWrapper.find('.swiper-slide'); swiper.slideTo(swiper.slides.length - 1, 0, false); //切换到最后一个slide sn = swiper.slides.length - 1; loadPromise(sn, enddate, begindate); }) .catch(function(e) { console && console.error(e) }) } function loadPromise(n, enddate, begindate) { Promise.all([ queryChatByTypePromise(2, enddate, begindate, 0) ]) .then(function(res) { d1 = res[0]; loadData(n); }) .catch(function(e) { console && console.error(e) }); } function getZcNum(d) { var vv = { zc: 0 }; for(var i = 0, len = d.length; i < len; i++) { if((d[i]['value1'] > 90 && d[i]['value1'] < 139) && (d[i]['value2'] > 60 && d[i]['value2'] < 89)) { vv.zc++; } } return vv.zc; } //初始化echart function loadData(n) { new Promise(function(resolve, reject) { var yAxisName = '单位(mmHg)'; var el = document.getElementById('chart' + n); if (typeof d1.list == 'undefined') { d1.list = []; } val1['value1'] = calNum(d1.list, 'value1', 139, 90); val1['value2'] = calNum(d1.list, 'value2', 89, 60); var zc = getZcNum(d1.list); $zcNum.html(zc); $pgNum.html(Math.max(val1['value1'].pg, val1['value2'].pg)), $pdNum.html(Math.max(val1['value1'].pd, val1['value2'].pd)); Promise.all([ createChartPromise(el, 2, yAxisName, getxAxisData(d1.list), initCD(d1.list)) ]) .then(function(echarts) { charts.push(echarts[0]); $(el).append('
    < ' + enddate + ' 至 ' + begindate + ' >
    '); }) .then(function() { }) .catch(function(e) { console && console.error(e) }) }); } function pushHistory() { var state = { title: "血压", url: "#" }; window.history.pushState(state, "血压", "#"); } pushHistory(); function bindEvents() { if(mbglType != 0){ setTimeout( function () { window.addEventListener("popstate", function(e) { location.href = 'health-record.html'; }, false); }, 300); } $viewTabs.on('click', 'li', function(e) { e.stopPropagation(); var index = $(this).index(); $(this).siblings().removeClass('curr'); $(this).addClass('curr'); if(index === 0) { $qushiView.show(); $liebiaoView.hide(); $xtEdit.hide(); } else { $qushiView.hide(); $liebiaoView.show(); var data = null; if(dayNum == 7) { data = d1.list; } if(dayNum == 30) { data = d2.list; } if(dayNum == 90) { data = d3.list; } if(dayNum == -1) { data = d4.list; } if(!isLoad) { // isLoad = true; loadListPromise(); } $xtEdit.show(); } }); $selDate.on('click', 'li', function(e) { var index = $(this).index(); $(this).siblings().removeClass('curr'); $(this).addClass('curr'); console.log(index); $swiperWrapper.find('.swiper-slide').html(''); swiper.slideTo(swiper.slides.length - 1, 0, false); //切换到最后一个slide sn = swiper.slides.length - 1; begindate = norTime; switch(index) { case 0: dayNum = 6; break; case 1: dayNum = 30; break; case 2: dayNum = 90; break; case 3: dayNum = 365 / 2; break; } enddate = getDateFromCurrentDate(begindate, -dayNum); loadPromise(sn, enddate, begindate); }); $xtEdit.on('click', function() { $(this).hide(); $btns.show(); $xtAdd.hide(); $liebiaoView.find('.l-edit-icon').addClass('active'); }); $cancelBtn.on('click', function() { $liebiaoView.find('.l-edit-icon').removeClass('active'); $xtEdit.show(); $xtAdd.show(); $btns.hide(); }); $okBtn.on('click', function() { $liebiaoView.find('.l-edit-icon').removeClass('active'); $xtEdit.show(); $xtAdd.show(); $btns.hide(); }); $xyList.on('click', '.l-item', function() { var lei = $(this).find('.l-edit-icon'), id = $(this).attr('data-id'), val2 = $(this).attr('data-val-two'), time = $(this).attr('data-time'), sn = $(this).attr('data-sn'), val1 = $(this).attr('data-val-one'); if(lei.hasClass('active')) { $popMain.addClass('active'); $popBtns.addClass('active'); if (sn != '') { $popEditBtn.hide(); } else { $popEditBtn.show(); } $popEditBtn.attr('data-id', id); $popEditBtn.attr('data-val-two', val2); $popEditBtn.attr('data-time', time); $popEditBtn.attr('data-val-one', val1); $popDelBtn.attr('data-id', id); } }); $popCancelBtn.on('click', function() { $popMain.removeClass('active'); $popBtns.removeClass('active'); }); // 修改 $popEditBtn.on('click', function() { var id = $(this).attr('data-id'), val2 = $(this).attr('data-val-two'), time = $(this).attr('data-time'), val1 = $(this).attr('data-val-one'); window.location.href = 'health-index-add-bloodpressure.html?id=' + id + '&val2=' + val2 + '&time=' + time + '&val1=' + val1; }); // 删除 $popDelBtn.on('click', function() { var id = $(this).attr('data-id'); sendPost("patient/health_index/modify?id=" + id, {}, "json", "post", queryListFailed, function(res) { d.close(); if(res.status == 200) { dialog({ contentType: 'tipsbox', bottom: true, skin: 'bk-popup', content: '删除成功' }).show(); setTimeout(function() { location.reload(); }, 2000); } else { dialog({ contentType: 'tipsbox', bottom: true, skin: 'bk-popup', content: '删除失败' }).show(); setTimeout(function() { location.reload(); }, 2000); } }); }); // $popMain.on('click', function() { $(this).removeClass('active'); $popBtns.removeClass('active'); }); } function changeTabCon() { var qsv = $qushiView.css('display'), lbv = $liebiaoView.css('display'); if(qsv === 'block') { lbv.hide(); } } function getxAxisData(data) { var a = [], b = []; b = _.chain(data).pluck('date').map(function(d) { return d.substr(5, 5) }).value(); for(var i = b.length - 1; i >= 0; i--) { a.push(b[i]); } return a; } function buildData1(value, max, min) { if((value > 0 && value < min) || value > max) { return { value: value, itemStyle: { normal: { color: '#f00' } } } } else { return value } } //初始化图表数据 function initCD(list, n) { var seriesArray = []; var data1 = new Array(); var data2 = new Array(); var allDatas = new Array(); var xynum = {}; for(var i = 0; i < list.length; i++) { var data = list[i]; if(!data) { continue; } data1.unshift(buildData1(data.value1, 139, 90)); data2.unshift(buildData1(data.value2, 89, 60)); } allDatas.unshift(data1); allDatas.unshift(data2); for(var i = 0; i < allDatas.length; i++) { var na = (i == 1 ? '收缩压' : '舒张压'); var series = { name: na, type: 'line', symbol: 'emptyCircle', layerPadding: 0, nodePadding: 0, itemStyle: { normal: { borderWidth: 8, color: '#0ad800', lineStyle: { // 系列级个性化折线样式,横向渐变描边 borderWidth: 2, color: i == 1 ? '#CC66FF' : '#5dd1d2', width: 4 }, nodeStyle: { borderWidth: 2, color: '#93DB70', borderColor: '#93DB70' } }, emphasis: { label: { show: true } } }, data: allDatas[i] }; seriesArray.unshift(series); } return seriesArray; } function getSeriesData(data) { var a = []; for(var i = 1; i <= 2; i++) { a.unshift((_.chain(data).pluck('value' + i).map(function(v) { if(i == 1) { return buildData1(v, 139, 90); } if(i == 2) { return buildData1(v, 89, 60); } }).value())); } return a; } }); //根据sd获取n天前的时间; function getDateFromCurrentDate(fromDate, dayInterval) { var curDate = new Date(Date.parse(fromDate.replace(/-/g, "/"))); curDate.setDate(curDate.getDate() + dayInterval); var year = curDate.getFullYear(); var month = (curDate.getMonth() + 1) < 10 ? "0" + (curDate.getMonth() + 1) : (curDate.getMonth() + 1); var day = curDate.getDate() < 10 ? "0" + curDate.getDate() : curDate.getDate(); return year + "-" + month + "-" + day; };