|  | @ -0,0 +1,487 @@
 | 
												
													
														
															|  | 
 |  | var reqList = []; //记录请求的参数和url,用于后退时使用
 | 
												
													
														
															|  | 
 |  | var pieChart1,
 | 
												
													
														
															|  | 
 |  |     pieChart2; //全局设置饼图的对象,window.resize时,触发chart的resize方法
 | 
												
													
														
															|  | 
 |  | Vue.use(Vuedals.default);
 | 
												
													
														
															|  | 
 |  | new Vue({
 | 
												
													
														
															|  | 
 |  |     el: "#main",
 | 
												
													
														
															|  | 
 |  |     data: {
 | 
												
													
														
															|  | 
 |  |         appname: "健康管理分析",
 | 
												
													
														
															|  | 
 |  |         isback: true,
 | 
												
													
														
															|  | 
 |  |         isrefresh: true,
 | 
												
													
														
															|  | 
 |  |         isfilter: true,
 | 
												
													
														
															|  | 
 |  |         isopen: true,
 | 
												
													
														
															|  | 
 |  |         //请求页面所需参数
 | 
												
													
														
															|  | 
 |  |         level: '',
 | 
												
													
														
															|  | 
 |  |         area: '',
 | 
												
													
														
															|  | 
 |  |         areaTitle: '',
 | 
												
													
														
															|  | 
 |  |         index: '21',
 | 
												
													
														
															|  | 
 |  |         selectedDateType: 1,
 | 
												
													
														
															|  | 
 |  |         endDate: '',
 | 
												
													
														
															|  | 
 |  |         startDate: '',
 | 
												
													
														
															|  | 
 |  |         lowLevel: '',
 | 
												
													
														
															|  | 
 |  |         chooseYear: '',
 | 
												
													
														
															|  | 
 |  |         userRole: '',
 | 
												
													
														
															|  | 
 |  |         //数据结果
 | 
												
													
														
															|  | 
 |  |         topDatas: {
 | 
												
													
														
															|  | 
 |  |             index_149: 0,
 | 
												
													
														
															|  | 
 |  |             index_21: 0,
 | 
												
													
														
															|  | 
 |  |         },
 | 
												
													
														
															|  | 
 |  |         //微信绑定统计数据
 | 
												
													
														
															|  | 
 |  |         wxTotal:{
 | 
												
													
														
															|  | 
 |  |             label: '',
 | 
												
													
														
															|  | 
 |  |             amount1: '', //已缴费人数
 | 
												
													
														
															|  | 
 |  |             amount2: '', //未缴费人数
 | 
												
													
														
															|  | 
 |  |             rate: ''//绑定率
 | 
												
													
														
															|  | 
 |  |         },
 | 
												
													
														
															|  | 
 |  |         isloading:false,  //加载中
 | 
												
													
														
															|  | 
 |  |     },
 | 
												
													
														
															|  | 
 |  |     components: {
 | 
												
													
														
															|  | 
 |  |         vuedals: Vuedals.Component
 | 
												
													
														
															|  | 
 |  |     },
 | 
												
													
														
															|  | 
 |  |     methods: {
 | 
												
													
														
															|  | 
 |  |         changeTag: function(val){
 | 
												
													
														
															|  | 
 |  |             this.index = val;
 | 
												
													
														
															|  | 
 |  |             loadData([1,2], this);
 | 
												
													
														
															|  | 
 |  |             //存储请求所带的参数
 | 
												
													
														
															|  | 
 |  |             reqList.push({
 | 
												
													
														
															|  | 
 |  |                 level: this.level,
 | 
												
													
														
															|  | 
 |  |                 area: this.area,
 | 
												
													
														
															|  | 
 |  |                 areaTitle: this.areaTitle,
 | 
												
													
														
															|  | 
 |  |                 index: this.index,
 | 
												
													
														
															|  | 
 |  |                 endDate: this.endDate,
 | 
												
													
														
															|  | 
 |  |                 startDate: this.startDate,
 | 
												
													
														
															|  | 
 |  |                 lowLevel: this.lowLevel
 | 
												
													
														
															|  | 
 |  |             })
 | 
												
													
														
															|  | 
 |  |         },
 | 
												
													
														
															|  | 
 |  |         getNewLineData: function(arg){
 | 
												
													
														
															|  | 
 |  |             this.selectedDateType = arg.dateType;
 | 
												
													
														
															|  | 
 |  |             loadData([1], this);
 | 
												
													
														
															|  | 
 |  |         },
 | 
												
													
														
															|  | 
 |  |         getAreaData: function(arg){
 | 
												
													
														
															|  | 
 |  |             //如果level改变,则需要重新加载整个页面的数据,否则只需加载底部区域数据
 | 
												
													
														
															|  | 
 |  |             if(arg.level == this.level){
 | 
												
													
														
															|  | 
 |  |                 this.lowLevel = arg.lowLevel;
 | 
												
													
														
															|  | 
 |  |                 loadData([2], this);
 | 
												
													
														
															|  | 
 |  |             }else{
 | 
												
													
														
															|  | 
 |  |                 this.level = arg.level;
 | 
												
													
														
															|  | 
 |  |                 this.lowLevel = arg.lowLevel;
 | 
												
													
														
															|  | 
 |  |                 this.area = arg.area;
 | 
												
													
														
															|  | 
 |  |                 this.areaTitle = arg.areaTitle;
 | 
												
													
														
															|  | 
 |  |                 loadData([0,1,2], this);
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |             EventBus.$emit('update-area-name', {areaName: this.areaTitle});
 | 
												
													
														
															|  | 
 |  |             //存储请求所带的参数
 | 
												
													
														
															|  | 
 |  |             reqList.push({
 | 
												
													
														
															|  | 
 |  |                 level: this.level,
 | 
												
													
														
															|  | 
 |  |                 area: this.area,
 | 
												
													
														
															|  | 
 |  |                 areaTitle: this.areaTitle,
 | 
												
													
														
															|  | 
 |  |                 index: this.index,
 | 
												
													
														
															|  | 
 |  |                 endDate: this.endDate,
 | 
												
													
														
															|  | 
 |  |                 startDate: this.startDate,
 | 
												
													
														
															|  | 
 |  |                 lowLevel: this.lowLevel,
 | 
												
													
														
															|  | 
 |  |                 selectedDateType: this.selectedDateType
 | 
												
													
														
															|  | 
 |  |             })
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |     },
 | 
												
													
														
															|  | 
 |  |     mounted: function(){      
 | 
												
													
														
															|  | 
 |  |     	//初始化数据
 | 
												
													
														
															|  | 
 |  |         initData(this);
 | 
												
													
														
															|  | 
 |  |         
 | 
												
													
														
															|  | 
 |  |         //获得顶部各tab的值
 | 
												
													
														
															|  | 
 |  |         loadData([0,1,2], this); //参数组数表示请求的区域为上中下
 | 
												
													
														
															|  | 
 |  |         
 | 
												
													
														
															|  | 
 |  |         //存储请求所带的参数
 | 
												
													
														
															|  | 
 |  |         reqList.push({
 | 
												
													
														
															|  | 
 |  |             level: this.level,
 | 
												
													
														
															|  | 
 |  |             area: this.area,
 | 
												
													
														
															|  | 
 |  |             areaTitle: this.areaTitle,
 | 
												
													
														
															|  | 
 |  |             index: this.index,
 | 
												
													
														
															|  | 
 |  |             endDate: this.endDate,
 | 
												
													
														
															|  | 
 |  |             startDate: this.startDate,
 | 
												
													
														
															|  | 
 |  |             lowLevel: this.lowLevel,
 | 
												
													
														
															|  | 
 |  |             selectedDateType: this.selectedDateType
 | 
												
													
														
															|  | 
 |  |         });
 | 
												
													
														
															|  | 
 |  |         
 | 
												
													
														
															|  | 
 |  |         //设置监听器, 监听折线图日期变化
 | 
												
													
														
															|  | 
 |  |         var vm = this;
 | 
												
													
														
															|  | 
 |  |         //监听后退按钮的操作
 | 
												
													
														
															|  | 
 |  |         EventBus.$on("back-click", function(arg){
 | 
												
													
														
															|  | 
 |  |             EventBus.$emit('update-statistics-time', {}); //更新统计时间
 | 
												
													
														
															|  | 
 |  |             if(reqList.length == 1){
 | 
												
													
														
															|  | 
 |  |                 history.go(-1);
 | 
												
													
														
															|  | 
 |  |             } 
 | 
												
													
														
															|  | 
 |  |             else{
 | 
												
													
														
															|  | 
 |  |                 var preInfo = reqList.pop();
 | 
												
													
														
															|  | 
 |  |                 var info = reqList[reqList.length - 1];
 | 
												
													
														
															|  | 
 |  |                 vm.level = info.level;
 | 
												
													
														
															|  | 
 |  |                 vm.area = info.area;
 | 
												
													
														
															|  | 
 |  |                 vm.areaTitle = info.areaTitle;
 | 
												
													
														
															|  | 
 |  |                 vm.lowLevel = info.lowLevel;
 | 
												
													
														
															|  | 
 |  |                 vm.index = info.index;
 | 
												
													
														
															|  | 
 |  |                 
 | 
												
													
														
															|  | 
 |  |                 loadData([0,1,2], vm);
 | 
												
													
														
															|  | 
 |  |                 EventBus.$emit('update-area-name', {areaName: vm.areaTitle});
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         });
 | 
												
													
														
															|  | 
 |  |         //监听页面刷新
 | 
												
													
														
															|  | 
 |  |         EventBus.$on("refresh-click", function(arg){
 | 
												
													
														
															|  | 
 |  |             loadData([0,1,2], vm);
 | 
												
													
														
															|  | 
 |  |         });
 | 
												
													
														
															|  | 
 |  |         //弹出筛选框
 | 
												
													
														
															|  | 
 |  |         EventBus.$on('filter-click', function(arg) {
 | 
												
													
														
															|  | 
 |  |             //弹框显示筛选条件
 | 
												
													
														
															|  | 
 |  |             Vuedals.Bus.$emit('new', {
 | 
												
													
														
															|  | 
 |  |                 title: '条件筛选',
 | 
												
													
														
															|  | 
 |  |                 onClose:function(data){
 | 
												
													
														
															|  | 
 |  |                     vm.chooseYear = data.chooseYear;
 | 
												
													
														
															|  | 
 |  |                     vm.startDate = getStartDate(vm.chooseYear);
 | 
												
													
														
															|  | 
 |  |                     vm.endDate = getEndDate(vm.chooseYear);
 | 
												
													
														
															|  | 
 |  |                     
 | 
												
													
														
															|  | 
 |  |                     //请求参数重置,页面类型重新开始
 | 
												
													
														
															|  | 
 |  |                     vm.level = vm.userRole.code == '350200' ? 4 : vm.userRole.code.length == 6 ? 3 : 2;
 | 
												
													
														
															|  | 
 |  |                     vm.area = vm.userRole.code;
 | 
												
													
														
															|  | 
 |  |                     vm.areaTitle = vm.userRole.name;
 | 
												
													
														
															|  | 
 |  |                     EventBus.$emit('update-area-name', {areaName: vm.areaTitle});
 | 
												
													
														
															|  | 
 |  |                     vm.selectedDateType = 1;
 | 
												
													
														
															|  | 
 |  |                     
 | 
												
													
														
															|  | 
 |  |                     //然后清空请求列表数组
 | 
												
													
														
															|  | 
 |  |                     reqList.splice(0, reqList.length);
 | 
												
													
														
															|  | 
 |  |                     
 | 
												
													
														
															|  | 
 |  |                     loadData([0, 1, 2], vm);//刷新数据
 | 
												
													
														
															|  | 
 |  |                     
 | 
												
													
														
															|  | 
 |  |                     //存储请求所带的参数
 | 
												
													
														
															|  | 
 |  |                     reqList.push({
 | 
												
													
														
															|  | 
 |  |                         level: vm.level,
 | 
												
													
														
															|  | 
 |  |                         area: vm.area,
 | 
												
													
														
															|  | 
 |  |                         areaTitle: vm.areaTitle,
 | 
												
													
														
															|  | 
 |  |                         index: vm.index,
 | 
												
													
														
															|  | 
 |  |                         endDate: vm.endDate,
 | 
												
													
														
															|  | 
 |  |                         startDate: vm.startDate,
 | 
												
													
														
															|  | 
 |  |                         lowLevel: vm.lowLevel,
 | 
												
													
														
															|  | 
 |  |                         selectedDateType: vm.selectedDateType
 | 
												
													
														
															|  | 
 |  |                     });
 | 
												
													
														
															|  | 
 |  |                     
 | 
												
													
														
															|  | 
 |  |                     EventBus.$emit('update-statistics-year', {selectDate: vm.chooseYear + "年"});//更新年份
 | 
												
													
														
															|  | 
 |  |                     EventBus.$emit('update-statistics-time', {});//更新统计时间
 | 
												
													
														
															|  | 
 |  |                 },
 | 
												
													
														
															|  | 
 |  |                 component: 'year-filter',
 | 
												
													
														
															|  | 
 |  |                 props: {
 | 
												
													
														
															|  | 
 |  |                     selectedYear: vm.chooseYear
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |             });
 | 
												
													
														
															|  | 
 |  |         });
 | 
												
													
														
															|  | 
 |  |         $("#main").removeClass("c-hide");
 | 
												
													
														
															|  | 
 |  |         window.onresize = function() {
 | 
												
													
														
															|  | 
 |  |             if(pieChart1){
 | 
												
													
														
															|  | 
 |  |                 pieChart1.resize();
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |             if(pieChart2){
 | 
												
													
														
															|  | 
 |  |                 pieChart2.resize();
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |             window.lineCharts.resize(); //日周月折线图
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | })
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | function initData(vm){
 | 
												
													
														
															|  | 
 |  |     //获得缓存中缓存的角色权限
 | 
												
													
														
															|  | 
 |  |     var userRole = window.sessionStorage.getItem("selectedRole");
 | 
												
													
														
															|  | 
 |  |     if(!userRole){
 | 
												
													
														
															|  | 
 |  |         return false;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  |     vm.userRole = JSON.parse(userRole);
 | 
												
													
														
															|  | 
 |  |     vm.level = vm.userRole.code == '350200' ? 4 : vm.userRole.code.length == 6 ? 3 : 2;
 | 
												
													
														
															|  | 
 |  |     vm.area = vm.userRole.code;
 | 
												
													
														
															|  | 
 |  |     vm.areaTitle = vm.userRole.name;
 | 
												
													
														
															|  | 
 |  |     EventBus.$emit('update-area-name', {areaName: vm.areaTitle});
 | 
												
													
														
															|  | 
 |  |     
 | 
												
													
														
															|  | 
 |  |     var now = new Date();
 | 
												
													
														
															|  | 
 |  |     if(now.getMonth() >= 6){
 | 
												
													
														
															|  | 
 |  |         vm.chooseYear = now.getFullYear();
 | 
												
													
														
															|  | 
 |  |     }else{
 | 
												
													
														
															|  | 
 |  |         vm.chooseYear = now.getFullYear() - 1;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  |     
 | 
												
													
														
															|  | 
 |  |     vm.startDate = getStartDate(vm.chooseYear);
 | 
												
													
														
															|  | 
 |  |     vm.endDate = getEndDate(vm.chooseYear);
 | 
												
													
														
															|  | 
 |  |     EventBus.$emit('update-statistics-year', {selectDate: vm.chooseYear + "年"});
 | 
												
													
														
															|  | 
 |  | }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | function initReqParams(vm){
 | 
												
													
														
															|  | 
 |  |     //增量(咨询量3、随访量4、健康教育5、代预约量27),到达量(绑定微信21、绑定设备20)
 | 
												
													
														
															|  | 
 |  |     if(vm.index == '149' || vm.index == '21'){
 | 
												
													
														
															|  | 
 |  |         url2 = "statistics/interval_total";
 | 
												
													
														
															|  | 
 |  |         url3 = "statistics/lowlevel_all";
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  |     reqParam = [{
 | 
												
													
														
															|  | 
 |  |         url: url2,
 | 
												
													
														
															|  | 
 |  |         data:{
 | 
												
													
														
															|  | 
 |  |             index: vm.index,
 | 
												
													
														
															|  | 
 |  |             level: vm.level, 
 | 
												
													
														
															|  | 
 |  |             area: vm.area, 
 | 
												
													
														
															|  | 
 |  |             startDate: vm.startDate, 
 | 
												
													
														
															|  | 
 |  |             endDate: vm.endDate,
 | 
												
													
														
															|  | 
 |  |             interval: vm.selectedDateType
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |     },{
 | 
												
													
														
															|  | 
 |  |         url: url3,
 | 
												
													
														
															|  | 
 |  |         data: {
 | 
												
													
														
															|  | 
 |  |             index: vm.index,
 | 
												
													
														
															|  | 
 |  |             level: vm.level,
 | 
												
													
														
															|  | 
 |  |             area: vm.area, 
 | 
												
													
														
															|  | 
 |  |             sort: 1, 
 | 
												
													
														
															|  | 
 |  |             year: vm.chooseYear
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |     },{
 | 
												
													
														
															|  | 
 |  |         //如果是微信绑定,则增加置顶展示当面层级的总绑定率及已缴费 未缴费居民数.只针对微信绑定时使用
 | 
												
													
														
															|  | 
 |  |         url: '/statistics/getLevelTotalSingle',
 | 
												
													
														
															|  | 
 |  |         data: {
 | 
												
													
														
															|  | 
 |  |             date: vm.endDate, 
 | 
												
													
														
															|  | 
 |  |             level: vm.level, 
 | 
												
													
														
															|  | 
 |  |             area: vm.area
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |     }];
 | 
												
													
														
															|  | 
 |  |     
 | 
												
													
														
															|  | 
 |  |     if(vm.index == '149' || vm.index == '21' ){
 | 
												
													
														
															|  | 
 |  |         reqParam[1].data.date = vm.endDate;
 | 
												
													
														
															|  | 
 |  |     }else{
 | 
												
													
														
															|  | 
 |  |         reqParam[1].data.endDate = vm.endDate;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  |     
 | 
												
													
														
															|  | 
 |  |     if(vm.lowLevel){
 | 
												
													
														
															|  | 
 |  |         reqParam[1].data.lowLevel = vm.lowLevel;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  |     return reqParam;
 | 
												
													
														
															|  | 
 |  | }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | function getTopReqParams(index1, vm){
 | 
												
													
														
															|  | 
 |  |     var url = "statistics/total",
 | 
												
													
														
															|  | 
 |  |         data = {
 | 
												
													
														
															|  | 
 |  |             index:  index1,
 | 
												
													
														
															|  | 
 |  |             level: vm.level, 
 | 
												
													
														
															|  | 
 |  |             area: vm.area, 
 | 
												
													
														
															|  | 
 |  |             year: vm.chooseYear,
 | 
												
													
														
															|  | 
 |  |             endDate: vm.endDate, 
 | 
												
													
														
															|  | 
 |  |             startDate: vm.startDate
 | 
												
													
														
															|  | 
 |  |         };
 | 
												
													
														
															|  | 
 |  |     if(index1 == '149' || index1 == '21'){
 | 
												
													
														
															|  | 
 |  |         url = "statistics/index_all";
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  |     return {
 | 
												
													
														
															|  | 
 |  |         url: url,
 | 
												
													
														
															|  | 
 |  |         data: data
 | 
												
													
														
															|  | 
 |  |     };
 | 
												
													
														
															|  | 
 |  | }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | function getTopTagDatas(vm){
 | 
												
													
														
															|  | 
 |  |     var reqs = [],
 | 
												
													
														
															|  | 
 |  |         indexs = ['21', '149'];
 | 
												
													
														
															|  | 
 |  |     for(i=0; i<indexs.length; i++){
 | 
												
													
														
															|  | 
 |  |         var item = getTopReqParams(indexs[i], vm);
 | 
												
													
														
															|  | 
 |  |         reqs.push(httpRequest.get(item.url, {data: item.data}));
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  |     Promise.all(reqs).then(function(ress){
 | 
												
													
														
															|  | 
 |  |         for(i=0; i<ress.length; i++){
 | 
												
													
														
															|  | 
 |  |             var res = ress[i];
 | 
												
													
														
															|  | 
 |  |             if(res.status == 200){
 | 
												
													
														
															|  | 
 |  |                 for(key in res.data){
 | 
												
													
														
															|  | 
 |  |                     vm.topDatas[key] = res.data[key];
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |             }else{
 | 
												
													
														
															|  | 
 |  |                 console.log(res.msg);
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |     })
 | 
												
													
														
															|  | 
 |  | }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | function loadData(loadArr, vm){
 | 
												
													
														
															|  | 
 |  |     if(loadArr.indexOf(0) > -1){
 | 
												
													
														
															|  | 
 |  |         getTopTagDatas(vm);
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  |     
 | 
												
													
														
															|  | 
 |  |     vm.isloading=true
 | 
												
													
														
															|  | 
 |  |     //获取其他请求的参数
 | 
												
													
														
															|  | 
 |  |     var reqParams = initReqParams(vm),
 | 
												
													
														
															|  | 
 |  |         reqPromise = [],
 | 
												
													
														
															|  | 
 |  |         newArr = []; //记录非顶部请求的请求数组
 | 
												
													
														
															|  | 
 |  |     for(i=0; i<loadArr.length; i++){
 | 
												
													
														
															|  | 
 |  |         if(loadArr[i] == 0){
 | 
												
													
														
															|  | 
 |  |             // do nothing
 | 
												
													
														
															|  | 
 |  |         }else{
 | 
												
													
														
															|  | 
 |  |             var j = loadArr[i] - 1;
 | 
												
													
														
															|  | 
 |  |             var param = reqParams[j];
 | 
												
													
														
															|  | 
 |  |             reqPromise.push(httpRequest.get(param.url, {data: param.data}));
 | 
												
													
														
															|  | 
 |  |             newArr.push(loadArr[i]);
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  |     
 | 
												
													
														
															|  | 
 |  |     if(vm.index == 21){ //微信绑定的数据需要再请求一个数据
 | 
												
													
														
															|  | 
 |  |         reqPromise.push(httpRequest.get(reqParams[2].url, {data: reqParams[2].data}))
 | 
												
													
														
															|  | 
 |  |         newArr.push(3);
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  |     if(reqPromise.length > 0){
 | 
												
													
														
															|  | 
 |  |         Promise.all(reqPromise).then(function(ress){        	
 | 
												
													
														
															|  | 
 |  |        		vm.isloading=false
 | 
												
													
														
															|  | 
 |  |             var res2, res3, res4;
 | 
												
													
														
															|  | 
 |  |             for(var i=0; i<newArr.length; i++){
 | 
												
													
														
															|  | 
 |  |                 var j = newArr[i] + 1;
 | 
												
													
														
															|  | 
 |  |                 if(j == 2){
 | 
												
													
														
															|  | 
 |  |                     res2 = ress[i];
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |                 if(j == 3){
 | 
												
													
														
															|  | 
 |  |                     res3 = ress[i];
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |                 //微信绑定时,多获取一个请求数据
 | 
												
													
														
															|  | 
 |  |                 if(j == 4){
 | 
												
													
														
															|  | 
 |  |                     res4 = ress[i];
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |             if(res2){
 | 
												
													
														
															|  | 
 |  |                 if(res2.status == 200){
 | 
												
													
														
															|  | 
 |  |                     handleSecondPanelData(res2.data, vm);
 | 
												
													
														
															|  | 
 |  |                 }else{
 | 
												
													
														
															|  | 
 |  |                    console.log(res2.msg);
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |                 
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |             if(res3){
 | 
												
													
														
															|  | 
 |  |                 if(res3.status == 200){
 | 
												
													
														
															|  | 
 |  |                     listHandle(res3.data, vm);
 | 
												
													
														
															|  | 
 |  |                 }else{
 | 
												
													
														
															|  | 
 |  |                     console.log(res3.msg);
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |             if(res4){
 | 
												
													
														
															|  | 
 |  |                 if(res4.status == 200){
 | 
												
													
														
															|  | 
 |  |                     handleWXBindData(res4.data, vm);
 | 
												
													
														
															|  | 
 |  |                 }else{
 | 
												
													
														
															|  | 
 |  |                     console.log(res4.msg);
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         })
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | function handleSecondPanelData(data, vm){
 | 
												
													
														
															|  | 
 |  |     var xDatas = [],
 | 
												
													
														
															|  | 
 |  |         yDatas = [],
 | 
												
													
														
															|  | 
 |  |         names = [],
 | 
												
													
														
															|  | 
 |  |         colors = ['#12b7f5', '#cd67fd','#FF9526'],
 | 
												
													
														
															|  | 
 |  |         labels =  {'149': '健康管理人数新增趋势', '21': '绑定微信新增趋势'},
 | 
												
													
														
															|  | 
 |  |         index_names = {'index_21': '绑定微信','index_149': '管理人数'};
 | 
												
													
														
															|  | 
 |  |     for(var p in data){
 | 
												
													
														
															|  | 
 |  |         names.push(index_names[p]);
 | 
												
													
														
															|  | 
 |  |         if(p == 'index_21' || p == 'index_149' ){
 | 
												
													
														
															|  | 
 |  |             xData = _.map(data[p].data, function(o){
 | 
												
													
														
															|  | 
 |  |                 return o.range;
 | 
												
													
														
															|  | 
 |  |             });
 | 
												
													
														
															|  | 
 |  |             yData = _.map(data[p].data, function(o){
 | 
												
													
														
															|  | 
 |  |                 return o.amount;
 | 
												
													
														
															|  | 
 |  |             });
 | 
												
													
														
															|  | 
 |  |         }else{
 | 
												
													
														
															|  | 
 |  |         	if(data[p][0].range){
 | 
												
													
														
															|  | 
 |  | 	            xData = _.map(data[p], function(o){
 | 
												
													
														
															|  | 
 |  | 	                return o.range;
 | 
												
													
														
															|  | 
 |  | 	            });
 | 
												
													
														
															|  | 
 |  | 	            yData = _.map(data[p], function(o){
 | 
												
													
														
															|  | 
 |  | 	                return o.amount;
 | 
												
													
														
															|  | 
 |  | 	            });
 | 
												
													
														
															|  | 
 |  |         	}
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         xDatas.push(xData);
 | 
												
													
														
															|  | 
 |  |         yDatas.push(yData);
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  |     EventBus.$emit("draw-line-chart", {
 | 
												
													
														
															|  | 
 |  |         panelName : labels[vm.index],
 | 
												
													
														
															|  | 
 |  |         quotaNames : names,
 | 
												
													
														
															|  | 
 |  |         xData : xDatas[0],
 | 
												
													
														
															|  | 
 |  |         yDatas : yDatas,
 | 
												
													
														
															|  | 
 |  |         colors : colors,
 | 
												
													
														
															|  | 
 |  |         selectedDateType: vm.selectedDateType,
 | 
												
													
														
															|  | 
 |  |         nowlineid : "lineChart"
 | 
												
													
														
															|  | 
 |  |     });
 | 
												
													
														
															|  | 
 |  | }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | function listHandle(data, vm){
 | 
												
													
														
															|  | 
 |  |     for(i in data){
 | 
												
													
														
															|  | 
 |  |         var list = data[i];
 | 
												
													
														
															|  | 
 |  |         var topArr = [];
 | 
												
													
														
															|  | 
 |  |         if(vm.index == "21"){
 | 
												
													
														
															|  | 
 |  |             topArr = soreRank(getKeyValueArr(list, 'bindRate'));
 | 
												
													
														
															|  | 
 |  |         }else if(vm.index == "149"){
 | 
												
													
														
															|  | 
 |  |             topArr = soreRank(getKeyValueArr(list, 'manageRate'));
 | 
												
													
														
															|  | 
 |  |         }else{
 | 
												
													
														
															|  | 
 |  |             topArr = soreRank(getKeyValueArr(list, 'amount'));
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         var arr = _.map(list, function(o, index){
 | 
												
													
														
															|  | 
 |  |             var cols = [o.name];
 | 
												
													
														
															|  | 
 |  |             if(vm.index == '21'){
 | 
												
													
														
															|  | 
 |  |                 cols.push(o.bindRate + '%');
 | 
												
													
														
															|  | 
 |  |                 cols.push(o.weChatAmount1);
 | 
												
													
														
															|  | 
 |  |                 cols.push(o.weChatAmount0);
 | 
												
													
														
															|  | 
 |  |             }else if(vm.index == '149'){
 | 
												
													
														
															|  | 
 |  |                 cols.push(o.manageTotal1Amount);
 | 
												
													
														
															|  | 
 |  |                 cols.push(o.manageRate + '%');
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |             return {
 | 
												
													
														
															|  | 
 |  |                 rank: topArr[index],
 | 
												
													
														
															|  | 
 |  |                 code: o.code,
 | 
												
													
														
															|  | 
 |  |                 name: o.name,
 | 
												
													
														
															|  | 
 |  |                 cols: cols
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |         });
 | 
												
													
														
															|  | 
 |  |         var headers = {
 | 
												
													
														
															|  | 
 |  |             '149': ["排名", "管理人数","管理率"],
 | 
												
													
														
															|  | 
 |  |             '21': ["排名", "绑定率", "已缴费", "未缴费"],
 | 
												
													
														
															|  | 
 |  |         };
 | 
												
													
														
															|  | 
 |  |         
 | 
												
													
														
															|  | 
 |  |         EventBus.$emit("render-area-data",{
 | 
												
													
														
															|  | 
 |  |         	index: vm.index,
 | 
												
													
														
															|  | 
 |  |             level: vm.level,
 | 
												
													
														
															|  | 
 |  |             area: vm.area,
 | 
												
													
														
															|  | 
 |  |             lowLevel: vm.lowLevel,
 | 
												
													
														
															|  | 
 |  |             headers: headers[vm.index],
 | 
												
													
														
															|  | 
 |  |             year:vm.chooseYear,
 | 
												
													
														
															|  | 
 |  |             rows: arr
 | 
												
													
														
															|  | 
 |  |         });
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | function handleWXBindData(data, vm){
 | 
												
													
														
															|  | 
 |  |     switch(vm.level){
 | 
												
													
														
															|  | 
 |  |         case 4:
 | 
												
													
														
															|  | 
 |  |             vm.wxTotal.label = "全市概况";
 | 
												
													
														
															|  | 
 |  |             break;
 | 
												
													
														
															|  | 
 |  |         case 3: 
 | 
												
													
														
															|  | 
 |  |             vm.wxTotal.label = "全区概况";
 | 
												
													
														
															|  | 
 |  |             break;
 | 
												
													
														
															|  | 
 |  |         case 2: 
 | 
												
													
														
															|  | 
 |  |             vm.wxTotal.label = "全社区概况";
 | 
												
													
														
															|  | 
 |  |             break;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  |     vm.wxTotal.rate = (data.bindRate || 0) + "%";
 | 
												
													
														
															|  | 
 |  |     vm.wxTotal.amount1 = data.weChatAmount1;
 | 
												
													
														
															|  | 
 |  |     vm.wxTotal.amount2 = data.weChatAmount0;
 | 
												
													
														
															|  | 
 |  |     var arr = [{
 | 
												
													
														
															|  | 
 |  |         name: '已缴费人数',
 | 
												
													
														
															|  | 
 |  |         value: data.weChatAmount1
 | 
												
													
														
															|  | 
 |  |     },{
 | 
												
													
														
															|  | 
 |  |         name: '未缴费人数',
 | 
												
													
														
															|  | 
 |  |         value: data.weChatAmount0
 | 
												
													
														
															|  | 
 |  |     }];
 | 
												
													
														
															|  | 
 |  |     pieChart1 = drawPieChart('pieChart2', arr, ['#17b3ec', '#909090']);
 | 
												
													
														
															|  | 
 |  | }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | /*
 | 
												
													
														
															|  | 
 |  |  * 获取用来排序的字段值,返回数组
 | 
												
													
														
															|  | 
 |  |  * 参数: list - 列表, key - 字段的名称 
 | 
												
													
														
															|  | 
 |  |  */
 | 
												
													
														
															|  | 
 |  | function getKeyValueArr2(list, key){
 | 
												
													
														
															|  | 
 |  |     var arr = [];
 | 
												
													
														
															|  | 
 |  |     for(var k in list){
 | 
												
													
														
															|  | 
 |  |         var item = list[k][key].split(",");
 | 
												
													
														
															|  | 
 |  |         arr.push(item[0]);
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  |     
 | 
												
													
														
															|  | 
 |  |     return arr;
 | 
												
													
														
															|  | 
 |  | }
 |