123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460 |
- 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 += '<li>' + (data[0].consultRK ? ('第' + data[0].consultRK + '名') : '') + '</li>';
- html += '<li>' + (data[1].followupRK ? ('第' + data[1].followupRK + '名') : '') + '</li>';
- html += '<li>' + (data[2].reservationRK ? ('第' + data[2].reservationRK + '名') : '') + '</li>';
- html += '<li>' + (data[3].guidanceRK ? ('第' + data[3].guidanceRK + '名') : '') + '</li>';
- html += '<li>' + (data[4].articleRK ? ('第' + data[4].articleRK + '名') : '') + '</li>';
- $(".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};
- }
|