var teamCode = '', tType = 0, startDate = "", endDate = "", dateType = 0, //时间状态,0-本周, 1-本月 默认0 qyType = 0; //签约状态 0-签约,1-续签 默认0 mui.init(); mui.plusReady(function(){ var self = plus.webview.currentWebview(); teamCode = self.teamCode; loadAllData(); bindEvent(); }); function initReqParams(){ startDate = getStartDate(); endDate = getEndDate(); return [{ //总体情况 url: "statistics/getStatTitleInfo", data: {startDate: startDate, endDate: endDate}, reqType: "GET" },{ //签约情况 url: "statistics/getSignCountLineByType", data: { startDate: startDate, endDate: endDate, signType: qyType, type: dateType }, reqType: 'GET' },{ //咨询统计 url: "statistics/getReyStatbyTeam", data: {startDate: startDate, endDate: endDate, isNow: 1}, reqType: 'GET' },{ //机构内服务排行 url: "statistics/getServiceRankingList", data: {startDate: startDate, endDate: endDate}, reqType: 'GET' },{ //长处方统计 url: "statistics/getPrescriptionTotalCount", data: {startDate: startDate, endDate: endDate, adminTeamId: teamCode}, reqType: 'GET' },{ //续签转签人数 url: 'statistics/getTeamRenewChangeLine', data: {teamCode: teamCode, startDate: startDate, endDate: endDate, type: dateType}, reqType: 'GET' },{ //医生评分 url: "statistics/getAvgLine", data: {startDate: startDate, endDate: endDate, type: dateType}, reqType: 'GET' }] } function loadAllData(){ var reqParams = initReqParams(); plus.nativeUI.showWaiting(); // getReqPromises(reqParams, true).then(function(ress){ //处理总体情况数据 sendGet(reqParams[0].url, reqParams[0].data, null, function(res){ plus.nativeUI.closeWaiting(); handleZTQK(res); }, true); //处理签约情况数据 sendGet(reqParams[1].url, reqParams[1].data, null, function(res){ handleQYQK(res); }, true); //处理咨询统计数据 sendGet(reqParams[2].url, reqParams[2].data, null, function(res){ handleZXTJ(res); }, true); //处理机构内服务排行 sendGet(reqParams[3].url, reqParams[3].data, null, function(res){ handleJGFW(res); }, true); //长处方统计 sendGet(reqParams[4].url, reqParams[4].data, null, function(res){ handleCCF(res); }, true); //处理续签转签 sendGet(reqParams[5].url, reqParams[5].data, null, function(res){ handleXQZQ(res); }, true); //处理医生评分 sendGet(reqParams[6].url, reqParams[6].data, null, function(res){ handleYSPF(res); }, true); // }); } //处理总体情况数据 function handleZTQK(res){ if(res.status == 200){ var d = res.data; $("#qyrs").text(d[0].signTotal); $("#fwrs").text(d[1].consultCount + d[2].reservationCount + d[3].articleCount + d[4].guidanceCount + d[5].followupCount); $("#pjmyd").text(d[6].avgScore || '暂无评分'); $(".jgph .mui-loading").remove(); var xData = ['咨询', '随访', '代预约', '指导', '教育'], yData = [d[1].consultCount, d[5].followupCount, d[2].reservationCount, d[4].guidanceCount, d[3].articleCount]; drawBar("jgChart", xData, yData, '数量', ["#fbba31"], null) }else{ mui.toast(res.msg); } } //处理签约情况数据 function handleQYQK(res){ $(".qyqk .mui-loading").remove(); if(res.status == 200){ var data = res.data, xData = [], yData = []; if(dateType == 0){ var dateArr = _.map(data, function(o){ return o.applyDate; }); var valArr = _.map(data, function(o){ return o.signCount; }); var datas = getDaysData(dateArr, valArr); xData = datas.xData; yData = datas.yData; }else if(dateType == 1){ var dateArr = _.map(data, function(o){ var ds = o.weekOfMonth; return ds; }); var valArr = _.map(data, function(o){ return o.signCount; }); var datas = getWeeksData(dateArr, valArr); xData = datas.xData; yData = datas.yData; } var name = qyType == 0 ? "签约量" : "续签量"; var yDatas = [{ name: name, data: yData }] drawLine("qyqkChart", xData, yDatas, ['#17b3ec']); }else{ mui.toast(res.msg); } } //处理咨询统计数据 function handleZXTJ(res){ $(".zxtj .mui-loading").remove(); if(res.status == 200){ var unreplay = res.data.onReyCount, //未回复数 total = res.data.totalCount, //总咨询数 replay = parseInt(total) - parseInt(unreplay); //已回复咨询数 $("#totalCount").text(total); var sData = [{ name: '未回复咨询', value: unreplay }, { name: '已回复咨询', value: replay<0 ? 0 : replay }]; var colors = ["#17b3ec", "#FF774F"] drawPie("zxtjChart", sData, '咨询数量', colors); }else{ mui.toast(res.msg); } } //处理机构内服务排行 function handleJGFW(res){ $(".jgph .mui-loading").remove(); if(res.status == 200){ var data = res.data; // var xData = ['咨询', '随访', '代预约', '指导', '教育'], // yData = [data[0].consultRK, data[1].followupRK, // data[2].reservationRK, data[3].guidanceRK, data[4].articleRK]; // // drawBar("jgChart", xData, yData, '机构内服务排行', ["#fbba31"], "第{c}名") var html = ''; html += '
  • ' + (data[0].consultRK ? ('第' + data[0].consultRK + '名') : '') + '
  • '; html += '
  • ' + (data[1].followupRK ? ('第' + data[1].followupRK + '名') : '') + '
  • '; html += '
  • ' + (data[2].reservationRK ? ('第' + data[2].reservationRK + '名') : '') + '
  • '; html += '
  • ' + (data[3].guidanceRK ? ('第' + data[3].guidanceRK + '名') : '') + '
  • '; html += '
  • ' + (data[4].articleRK ? ('第' + data[4].articleRK + '名') : '') + '
  • '; $(".jgnph").html(html); }else{ mui.toast(res.msg); } } //长处方统计 function handleCCF(res){ $(".ccf .mui-loading").remove(); if(res.status == 200){ var data = res.data; var xData = ['总量', '已完成', '进行中', '居民\n取消', '审核\n未通过', '其他\n原因\n取消'], yData = [data.total, data.finishCount, data.processingCount, data.patientCancelCount, data.noReviewedCount, data.payOuttimeCount]; drawBar("ccfChart", xData, yData, '长处方统计', ["#17B3EC"], "{c}") }else{ mui.toast(res.msg); } } //处理续签转签 function handleXQZQ(res){ $(".xqzq .mui-loading").remove(); if(res.status == 200){ var data = res.data, inDatas = [], outDatas = []; var valArr_in = _.map(data.inline, function(o){ return o.inCount; }); var valArr_out = _.map(data.outline, function(o){ return o.outCount; }); if(dateType == 0){ var dateArr_in = _.map(data.inline, function(o){ return o.dateNo; }); var dateArr_out = _.map(data.outline, function(o){ return o.dateNo; }); inDatas = getDaysData(dateArr_in, valArr_in); outDatas = getDaysData(dateArr_out, valArr_out); }else if(dateType == 1){ var dateArr_in = _.map(data.inline, function(o){ return o.weekOfMonth; }); var dateArr_out = _.map(data.outline, function(o){ return o.weekOfMonth; }); inDatas = getWeeksData(dateArr_in, valArr_in); outDatas = getWeeksData(dateArr_out, valArr_out); } var yDatas = [{ name: '签入人数', data: inDatas.yData },{ name: '签出人数', data: outDatas.yData }], legend = { data:['签入人数','签出人数'], top: 'top' }; drawLine("xqzqChart", inDatas.xData, yDatas, ['#17b3ec', '#FF774F'], legend); }else{ mui.toast(res.msg); } } //处理医生评分 function handleYSPF(res){ $(".yspf .mui-loading").remove(); if(res.status == 200){ var data = res.data, datas; if(dateType == 0){ var dateArr = _.map(data, function(o){ return o.dateNo; }); var valArr = _.map(data, function(o){ return o.avgCount; }); datas = getDaysData(dateArr, valArr); }else if(dateType == 1){ var dateArr = _.map(data, function(o){ var ds = o.weekNo; return ds; }); var valArr = _.map(data, function(o){ return o.avgCount; }); datas = getWeeksData(dateArr, valArr); } var name = "平均评分"; var yDatas = [{ name: name, data: datas.yData }] drawLine("mydChart", datas.xData, yDatas, ['#17b3ec']); }else{ mui.toast(res.msg); } } function bindEvent(){ $(".demo-comtop").on('click', "h1", function(){ var lCss = $(".lin-mask").css('display'); if (lCss == 'none') { $(".lin-mask").show(); $(".lin-sel-group").show(); } else { $(".lin-mask").hide(); $(".lin-sel-group").hide(); } }); $(".lin-mask").on('click', function(){ $(".lin-mask").hide(); $(".lin-sel-group").hide(); }); $(".lin-sel-group").on('click', "li", function(){ var $this = $(this); if($this.hasClass("checked")){ return false; } $(".lin-sel-group li").removeClass("checked"); $this.addClass("active"); dateType = parseInt($this.attr("data-type")); $(".lin-mask").hide(); $(".lin-sel-group").hide(); var label = $this.find("label").text(); $("#selTit").text(label); loadAllData(); }); $("#qiehuan").on('click', function(){ var type = $(this).attr('data-type'); if(type == '1') { $(".qy-lab").html('续约情况'); $(".qy-qh").html('切换签约情况'); qyType = parseInt(type); }else{ $(".qy-lab").html('签约情况'); $(".qy-qh").html('切换续约情况'); qyType = 0; } var reqParams = initReqParams(); //处理签约情况数据 sendGet(reqParams[1].url, reqParams[1].data, null, function(res){ handleQYQK(res); }, true); }); $("#zq_info").on('click', function(){ openWebview('../html/tuanduizhuanqianxiangqing.html', { teamCode: teamCode }) }) } function getStartDate(){ var now = new Date(), sd = new Date(); switch(dateType){ case 0: //获得本周的开始时间 sd.setDate(now.getDate() - now.getDay()); break; case 1: //获得本月的开始时间 sd.setDate(1); break; } return sd.format("yyyy-MM-dd"); } function getEndDate(){ var now = new Date(), ed = new Date(); switch(dateType){ case 0: //获得本周的结束时间 ed.setDate(now.getDate() + (6 - now.getDay())); break; case 1: //获得本月的结束时间 ed.setMonth(ed.getMonth() + 1); ed.setDate(1); ed.setDate(ed.getDate() - 1); break; } return ed.format("yyyy-MM-dd"); } //获取一个月有几周 function getWeeksNum(){ var day=new Date(), lastCurDay = new Date(day.getFullYear(), day.getMonth() + 1, 0),//获取当前月最后一天时间 a = lastCurDay.getFullYear(), b = lastCurDay.getMonth(), c = lastCurDay.getDate(); var date = new Date(a, b, c), w = date.getDay(), d = date.getDate(); return Math.ceil( (d + 6 - w) / 7 ); } //补全缺失的日期 function getDaysData(dateArr, valArr){ var xData = [], yData = []; for (var i = 0; i <= 6; i++) { var sd = new Date(startDate); sd.setDate(sd.getDate() + i); var index = dateArr.indexOf(sd.format("yyyy-MM-dd")); if(index > -1){ yData.push(valArr[index]); }else{ yData.push(0); } xData.push(sd.format("MM-dd")); } return {xData: xData, yData: yData}; } //补全缺失的周 function getWeeksData(dateArr, valArr){ var wn = getWeeksNum(), xData = [], yData = []; for (var i = 1; i <= wn; i++) { var index = dateArr.indexOf(i); if(index > -1){ yData.push(valArr[index]); }else{ yData.push(0); } xData.push("第"+i+"周"); } return {xData: xData, yData: yData}; }