var switchery = null; var date = new Date(); var year = date.getFullYear(); var begindate; var enddate; var page = 1; var pagesize = 10; var pagetype = 5; var patientCode = ""; var charType = 1; var scroller1 = null; var self = null; var type = null; var charts = []; 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 = $('.ss-zc-num'), $pgNum = $('.ss-pg-num'), $pdNum = $('.ss-pd-num'), dayNum = 6, $xyList = $('.xy-list-con'), $xyTmp = $('#xyTmp'), thatIndex = 1, isTrue = false, isLoad = false; var norTime = '', enddate = '', sn = 0; mui.plusReady(function() { self = plus.webview.currentWebview(); patientCode = self.code; begindate = self.dateT; norTime = self.dateT; enddate = getDateFromCurrentDate(begindate, -dayNum); type = self.type; bindEvents(); scroller1 = new IScrollPullUpDown('wrapper6', { probeType: 2, bounceTime: 250, bounceEasing: 'quadratic', mouseWheel: false, scrollbars: true, fadeScrollbars: true, interactiveScrollbars: false, click: true, }, null, pullUpAction); // checkLoad(thatIndex); init(); }); 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 queryListByTypeP(type, begindate, enddate, page, pagesize, code) { plus.nativeUI.showWaiting(); //拼请求内容 var params = {}; params.type = type; params.page = page; params.pagesize = pagesize; params.begin = begindate + " 00:00:00"; params.end = enddate + " 23:59:59"; params.patient = code; return new Promise(function(resolve, reject) { sendPost("doctor/health_index/list", params, function(res) { resolve(res) console.log(res); }, function(res) { if(res.status == 200) { plus.nativeUI.closeWaiting(); resolve(res) } else { queryListFailed(res); } }); }) } 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; } var val1 = [], val2 = [], val3 = [], val4 = []; function calNum(d, v, n1, n2) { var vv = { zc: 0, pg: 0, pd: 0 }; for(var i = 0, len = d.length; i < len; i++) { var data = d[i]; if(data[v] > 0 && data[v] < n2) { //偏低 vv.pd++; } else if(data[v] > n1) { //偏高 vv.pg++; } else { vv.zc++; } } return vv; } //上拉加载数据 function pullUpAction(theScrollerTemp) { $(".pullUp").show(); setTimeout(function() { loadListPromise(); }, 1000); } function loadListPromise() { page++; Promise.all([ queryListByTypeP(2, getDateFromCurrentDate(norTime, -2000), norTime, page, pagesize, patientCode) ]) .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 })); scroller1.refresh(); } else { if(!isLoad) { mui.toast("暂无数据!"); } else { mui.toast("暂无更多数据!"); } } 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) { plus.nativeUI.showWaiting(); Promise.all([ queryChatByTypePromise(2, enddate, begindate, 0, patientCode) ]) .then(function(res) { d1 = res[0]; loadData(n); }) .catch(function(e) { console && console.error(e) }); } function getZcNum (d) { var vv = {"ss_zc":0, "sz_zc": 0}; for (var i = 0,len = d.length; i < len; i++) { if (d[i]['value1'] >= 90 && d[i]['value1'] <= 139) { vv.ss_zc ++; }else if(d[i]['value2'] >= 60 && d[i]['value2'] <= 89){ vv.sz_zc ++; } } return vv; } //初始化echart function loadData(n) { new Promise(function(resolve, reject) { var yAxisName = '单位(mmHg)'; if (typeof d1.list == 'undefined') { d1.list = []; } var el = document.getElementById('chart' + n); val1['value1'] = calNum(d1.list, 'value1', 139, 90); val1['value2'] = calNum(d1.list, 'value2', 89, 60); var zc = getZcNum(d1.list); $zcNum.html(zc.ss_zc); $('.sz-zc-num').html(zc.sz_zc); // $pgNum.html(Math.max(val1['value1'].pg, val1['value2'].pg)), // $pdNum.html(Math.max(val1['value1'].pd, val1['value2'].pd)); $pgNum.html(val1['value1'].pg); $pdNum.html(val1['value1'].pd); $(".sz-pg-num").html(val1['value2'].pg); $(".sz-pd-num").html(val1['value2'].pd); Promise.all([ createChartPromise(el, 2, yAxisName, getxAxisData(d1.list), initCD(d1.list)) ]) .then(function(echarts) { plus.nativeUI.closeWaiting(); charts.push(echarts[0]); $(el).append('
    < ' + enddate + ' 至 ' + begindate + ' >
    '); }) .then(function() { }) .catch(function(e) { console && console.error(e) }) }); } //function loadPromise(t, cb) { // Promise.all([ // queryChatByTypePromise(2, getBeforeDate(begindate, 7), begindate, 0, patientCode), // queryChatByTypePromise(2, getBeforeDate(begindate, 30), begindate, 0, patientCode), // queryChatByTypePromise(2, getBeforeDate(begindate, 90), begindate, 0, patientCode), // queryChatByTypePromise(2, getBeforeDate(begindate, 365 / 2), begindate, 0, patientCode) // ]) // .then(function(res) { // plus.nativeUI.closeWaiting(); // d1 = res[0]; // d2 = res[1]; // d3 = res[2]; // d4 = res[3]; // // cb && cb.call(this); // }) // .catch(function(e) { // console && console.error(e) // }); //} // //function loadData() { // new Promise(function(resolve, reject) { // var yAxisName = '单位(mmHg)'; // $swiperWrapper // .append('
  • ') // .append('
  • ') // .append('
  • ') // .append('
  • '); // // var el1 = document.getElementById('chart0'), // el2 = document.getElementById('chart1'), // el3 = document.getElementById('chart2'), // el4 = document.getElementById('chart3') // Promise.all([ // createChartPromise(el1, 2, yAxisName, getxAxisData(d1.list), initCD(d1.list)), // createChartPromise(el2, 2, yAxisName, getxAxisData(d2.list), initCD(d2.list)), // createChartPromise(el3, 2, yAxisName, getxAxisData(d3.list), initCD(d3.list)), // createChartPromise(el4, 2, yAxisName, getxAxisData(d4.list), initCD(d4.list)) // ]) // .then(function(echarts) { // charts.push(echarts[0]); // charts.push(echarts[1]); // charts.push(echarts[2]); // $(el1).append('
    < ' + getBeforeDate(begindate, 7) + ' 至 ' + begindate + ' >
    '); // $(el2).append('
    < ' + getBeforeDate(begindate, 30) + ' 至 ' + begindate + ' >
    '); // $(el3).append('
    < ' + getBeforeDate(begindate, 90) + ' 至 ' + begindate + ' >
    '); // $(el4).append('
    < ' + getBeforeDate(begindate, 365 / 2) + ' 至 ' + begindate + ' >
    '); // // val1['value1'] = calNum(d1.list, 'value1', 139, 90); // val1['value2'] = calNum(d1.list, 'value2', 89, 60); // val2['value1'] = calNum(d2.list, 'value1', 139, 90); // val2['value2'] = calNum(d2.list, 'value2', 89, 60); // val3['value1'] = calNum(d3.list, 'value1', 139, 90); // val3['value2'] = calNum(d3.list, 'value2', 89, 60); // val4['value1'] = calNum(d4.list, 'value1', 139, 90); // val4['value2'] = calNum(d4.list, 'value2', 89, 60); // // $zcNum.html(Math.max(val1['value1'].zc, val1['value2'].zc)); // $pgNum.html(Math.max(val1['value1'].pg, val1['value2'].pg)), // $pdNum.html(Math.max(val1['value1'].pd, val1['value2'].pd)); // // }) // .then(function(res) { // swiper = new Swiper('.swiper-container', { // paginationClickable: false, // normalizeSlideIndex: false, // onSlideChangeStart: function(swiper) { // var ind = swiper.activeIndex; // console.log(ind); // switch(ind) { // case 0: // $zcNum.html(Math.max(val4['value1'].zc, val4['value2'].zc)); // $pgNum.html(Math.max(val4['value1'].pg, val4['value2'].pg)), // $pdNum.html(Math.max(val4['value1'].pd, val4['value2'].pd)); // $selDate.find('li').removeClass('curr').eq(3).addClass('curr'); // dayNum = -1; // break; // case 1: // $zcNum.html(Math.max(val3['value1'].zc, val3['value2'].zc)); // $pgNum.html(Math.max(val3['value1'].pg, val3['value2'].pg)), // $pdNum.html(Math.max(val3['value1'].pd, val3['value2'].pd)); // $selDate.find('li').removeClass('curr').eq(2).addClass('curr'); // dayNum = 90; // break; // case 2: // $zcNum.html(Math.max(val2['value1'].zc, val2['value2'].zc)); // $pgNum.html(Math.max(val2['value1'].pg, val2['value2'].pg)), // $pdNum.html(Math.max(val2['value1'].pd, val2['value2'].pd)); // $selDate.find('li').removeClass('curr').eq(1).addClass('curr'); // dayNum = 30; // break; // case 3: // $zcNum.html(Math.max(val1['value1'].zc, val1['value2'].zc)); // $pgNum.html(Math.max(val1['value1'].pg, val1['value2'].pg)), // $pdNum.html(Math.max(val1['value1'].pd, val1['value2'].pd)); // $selDate.find('li').removeClass('curr').eq(0).addClass('curr'); // dayNum = 7; // break; // } // } // }); // $swiperWrapper.find('.swiper-slide') // swiper.slideTo(swiper.slides.length - 1, 0, false); //切换到最后一个slide // }) // .then(function() {}) // .catch(function(e) { // console && console.error(e) // }) // }); //} // //function checkLoad(d) { // if(!isTrue) { // loadPromise(d, loadData); // } else { // loadData(); // } //} function bindEvents() { $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 == 6) { 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); }); } //根据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; };