var self,
initLevel,
type,
level,
area,
title,
startDate = '',
endDate = '',
lowLevel,
dateType = 1, //折线图坐标值1-日,2-周,3-月
analysisType = "1", // 筛选维度的id, 1-按任务,2-按人口,3-高血压,4-糖尿病,5-65岁以上人群
areaType; //标记底部区域选中的tab的值, 4 - 各区, 3 - 社区, 2 - 团队
var userRole;
var reqParam = []; //请求参数
var reqList = []; //请求的链接数据,根据这些信息后退的时候使用
//定义年份
var chooseYear;
var now = new Date();
if(now.getMonth() >= 6){
chooseYear = now.getFullYear();
}else{
chooseYear = now.getFullYear() - 1;
}
mui.plusReady(function(){
var self = plus.webview.currentWebview();
// userRole = plus!=null ? JSON.parse(plus.storage.getItem("selectedRole")) : {};
// initLevel = userRole.code == CITY_CODE ? 4 : userRole.code.length==6 ? 3 : 2;
initLevel = self.level;
level = initLevel;
area = self.code;
title = self.title;
if(self.year){
chooseYear = self.year;
}
startDate = getStartDate();
endDate = getEndDate();
//初始默认选中的时间和类型
$(".choose-label").text(chooseYear);
$("#areaTitle").text(title);
//控制底部各区等tab的显示
showTabs();
initReqParams(); //现获得页面请求的接口参数
//记录返回链接信息
reqList.push({
level: level,
lowLevel: lowLevel,
area: area,
title: title,
analysisType: analysisType,
req: reqParam
});
loadData([0,1,2]); //现获得页面请求的接口参数
initScroller();
shaixuanInit(self);
bindEvents();
});
//获得页面请求的接口参数
function initReqParams(){
var mIndex = 82, //折线图指标index
bIndexs = {"4": "75", "3": "76", "2": "77"};
var bIndex = 82; //bIndexs[level];
reqParam = [{
url: "/statistics/signPayOnline",
reqType: 'get',
data: {level:level, area:area, year: chooseYear}
},{
url: "/statistics/interval_total",
reqType: 'get',
data: {level: level, area: area, startDate: startDate, endDate: endDate, interval: dateType, index: mIndex}
},{
url: "/statistics/lowlevel_all_sign_pay_online",
reqType: 'post',
data: {sort: 1, date: endDate, level: level, index: bIndex, area: area}
}];
if(lowLevel){
reqParam[2].data.lowLevel = lowLevel;
}
}
/*
* 加载页面数据
* @param loadArr array 记录需要请求的区域0-顶部,1-中间,2-底部
*/
function loadData(loadArr){
plus.nativeUI.showWaiting();
getJieZhiTime();
var reqPromise = [];
for(var i=0; i {c} ({d}%)"
},
series: [
{
type:'pie',
radius: ['80%', '70%'],
color:['#ffc800', '#17b3ec'],
avoidLabelOverlap: false,
label: {
normal: {
show: false,
position: 'center'
},
// emphasis: {
// show: true,
// textStyle: {
// fontSize: '16',
// fontWeight: 'bold'
// }
// }
},
labelLine: {
normal: {
show: false
}
},
data:[
{value:res.signPayOnlineNum, name:'线上缴费人数'},
{value:res.signPayUnderNum, name:'线下缴费人数'}
]
}
]
};
pieChart.setOption(options);
}
/*
* 处理中间折线图数据
*/
function handleSecondPanelData(data){
for(var p in data){
var xData = _.map(data[p].data, function(o){
return o.range;
});
var yData = _.map(data[p].data, function(o){
return o.amount;
});
var lastIndex = yData.length % 10;
if(yData.length >10 ){
var dataZoom_end = 100-(9/yData.length)*100;
}else{
var dataZoom_end = 0;
}
//初始给定第一版页面中时间区间
if(dateType == 3){
var d1 = xData[yData.length - lastIndex],
d2 = xData[yData.length -1];
$("#startValue").text(d1.substr(0,4)+"年"+d1.substr(5,2)+"月");
$("#endValue").text(d2.substr(0,4)+"年"+d2.substr(5,2)+"月");
}else{
$("#startValue").text(xData[yData.length - lastIndex]);
$("#endValue").text(xData[yData.length -1]);
}
var lineCharts = echarts.init(document.getElementById('lineChart'));
var options = {
tooltip: {
trigger: 'axis'
},
legend: {
top: 'bottom',
data:['线上缴费量']
},
grid: {
left: '10px',
right: '10px',
bottom: '30px',
top: '10px',
containLabel: true
},
xAxis: {
type: 'category',
boundaryGap: false,
data: xData,
axisLabel: {
interval:0,//横轴信息全部显示
formatter: function (value, index) {
if(dateType == 1 || dateType == 2){
if(index == 0){
$("#startValue").text(value);
return value.substr(5,2)+"月"+value.substr(8,2);
}else{
if(index == 10){
$("#endValue").text(value);
}
return value.substr(8,2);
}
}else if(dateType == 3){
var val = value.substr(5,2)+"月"
if(index == 0){
$("#startValue").text(value.substr(0,4)+"年"+val);
}else{
if(index == 9){
$("#endValue").text(value.substr(0,4)+"年"+val);
}
}
return val;
}
}
}
},
yAxis: {
type: 'value',
axisPointer: {
snap: true
},
scale: true,
minInterval: 1,
boundaryGap: ['10%', '30%']
},
dataZoom: [{//给x轴设置滚动条
show: false,
start: dataZoom_end,
end: 100,
type: 'slider',
zoomLock: true,
},{ //下面这个属性是内容区域配置
start: dataZoom_end,
end: 100,
type: 'inside',
zoomLock: true,
}],
series: [{
name: '线上缴费量',
type: 'line',
smooth: true,
data: yData,
lineStyle:{
normal: {
color: '#12b7f5'
}
},
itemStyle:{
normal: {
color: '#12b7f5'
}
}
}]
};
lineCharts.setOption(options);
}
}
/*
* 处理底部区域数据
*/
function listHandle(res){
for(var k in res){
var list = res[k];
var topArr = soreRank(amountArr(list));
list = _.map(list, function(o, index){
o.top = topArr[index];
o.rate = parseFloat(o.rate).toFixed(2);
o.targetRate = parseFloat(o.targetRate).toFixed(2);
return o;
})
var html = template("data-list", {list: list, level: level, lowLevel: lowLevel, analysisType: analysisType});
$("#listTable").empty().append(html);
}
}
/*
* 控制底部各区等tab的显示,根据level来控制
*/
function showTabs(){
$(".area-tab").removeClass("active");
switch(parseInt(level)){
case 4:
$(".area-tab").show();
$(".area-tab").eq(0).addClass("active");
areaType = "4";
break;
case 3:
$(".area-tab").eq(0).hide();
$(".area-tab").eq(1).show();
$(".area-tab").eq(1).addClass("active");
areaType = "3";
break;
case 2:
$(".area-tab").eq(0).hide();
$(".area-tab").eq(1).hide();
$(".area-tab").eq(2).addClass("active");
areaType = "2";
break;
case 1: //团队
$(".area-tab-panel").parent().remove();
break;
}
}
/*
* 初始化scroller
*/
function initScroller(){
//阻尼系数
var deceleration = mui.os.ios?0.003:0.0009;
mui('.mui-scroll-wrapper').scroll({
bounce: false,
indicators: true, //是否显示滚动条
deceleration:deceleration
});
mui('.mui-scroll-wrapper').pullRefresh({
down: {
callback: function() {
var self = this;
setTimeout(function() {
initReqParams();
loadData([0,1,2]);
self.endPulldownToRefresh();
}, 1000);
}
}
});
}
/**
* 初始化筛选事件
*/
function shaixuanInit(main){
var shaixuan = plus.webview.getWebviewById('shaixuan2.html');
if(!shaixuan){
shaixuan = mui.createWindow({
id: 'shaixuan2.html',
url: 'shaixuan2.html',
styles: {
top: 0,
bottom: 0,
left: '20%',
width: '80%',
scorllIndicator: "none"
},
show:{
aniShow: "slide-in-right",
duration: "400"
},
extras:{
noYear: '2016',
chooseYear: chooseYear
}
});
}
window.addEventListener("hideShaiXuan",function(){
console.log("hideShaiXuan");
main.setStyle({mask:"none"});
shaixuan.hide();
}, false);
window.addEventListener("showShaiXuan", function() {
shaixuan.show();
main.setStyle({mask:"rgba(0,0,0,0.5)"});
main.addEventListener("maskClick",function(){
main.setStyle({mask:"none"});
shaixuan.hide();
}, false);
});
}
function bindEvents(){
//说明信息相关事件
$("#closeBtn").on("tap", function(){
$(".information").hide();
});
$(".info-icon").on("tap", function(){
$(".information").show();
});
//左滑筛选区域的数据
$('.header-link').on("tap", function(){
var self = plus.webview.currentWebview();
mui.fire(self, "showShaiXuan");
});
//日、周、月按钮切换
$(".date-tag").on("tap",function(){
dateType = $(this).attr("data-type");
$(".date-tag").removeClass("active");
$(this).addClass("active");
initReqParams();
loadData([1]); //只加载中间区域的数据
});
//底部各区等区域的tab切换
$(".area-tab").on('tap', function(){
var $this = $(this),
type = $this.attr("data-val"); //4 - 各区, 3 - 社区, 2 - 团队
areaType = type;
if($this.hasClass("active")){
return false;
}
$(".area-tab").removeClass("active");
$this.addClass("active");
if(type == "4"){
lowLevel = 0;
}else if(type == "3"){
lowLevel = 2;
}else{
lowLevel = 1;
}
initReqParams();
loadData([2]);
});
//底部每条记录的点击事件
$("#listTable").on('tap', ".data-row", function(){
var $this = $(this),
name = $this.attr("data-name"),
code = $this.attr("data-code"),
$selectTab = $(".area-tab.active");
if($selectTab.attr("data-val") == "2"){ //获得团队信息,弹框显示数据
showTeamInfo(code);
return false;
}
title = name;
area = code;
var newlevel = level - 1;
//如果是市级管理员,先点击“社区”tab后再往下看下一级的数据,需要将level再-1
if(newlevel == 3 && lowLevel == 2){
newlevel -- ;
}
lowLevel = '';
level = newlevel;
$("#areaTitle").text(title);
showTabs();
initReqParams();
//记录返回链接信息
reqList.push({
level: level,
lowLevel: lowLevel,
area: area,
title: title,
analysisType: analysisType,
req: reqParam
});
loadData([0,1,2]);
});
//弹出遮罩
$(".icon-remark").on("click", function(e) {
$(".modal-overlay").addClass("modal-overlay-visible");
setTimeout(function(){
$(".modal-content").show();
},50)
});
$(".div-close,.modal-overlay").on("click",function(){
$(".modal-overlay").removeClass("modal-overlay-visible");
$(".modal-content").hide();
});
//添加页面监听
window.addEventListener("refresh", function(e){
var year = e.detail.year;
chooseYear = year;
//重置变量值
level = initLevel;
area = userRole.code;
title = userRole.name;
lowLevel = "";
startDate = getStartDate();
endDate = getEndDate();
$("#areaTitle").text(title);
$(".choose-label").text(chooseYear);
showTabs();
initReqParams();
//清空请求数组
reqList.splice(0, reqList.length);
//记录返回链接信息
reqList.push({
level: level,
lowLevel: lowLevel,
area: area,
title: title,
analysisType: analysisType,
req: reqParam
});
loadData([0,1,2]);
});
}
/*
* 获得团队信息
*/
function showTeamInfo(teamId){
var url = "/doctor/admin-teams/teams/info",
params = {
teamId: teamId
};
plus.nativeUI.showWaiting();
sendGet(url, params, null, function(res){
if(res.status == 200){
var data = res.data;
data.memberLength = data.members.length;
var html = template("teamInfo", data);
$("#teamInfoBox").empty().append(html);
$(".modal-overlay").addClass("modal-overlay-visible");
setTimeout(function(){
$(".modal-content").show();
},50)
}else{
mui.toast(res.msg);
}
plus.nativeUI.closeWaiting();
}, true);
}
function getStartDate(){
return chooseYear+'-07-01';
}
//获取结束时间
function getEndDate(){
var nowdate = new Date();
var year = nowdate.getFullYear();
var month = nowdate.getMonth() + 1;
var day = nowdate.getDate();
var endDate = new Date((parseInt(chooseYear)+1) + '-06-30');
var now = new Date();
if(now <= endDate){
return now.format("yyyy-MM-dd");
}else{
return (parseInt(chooseYear)+1) + '-06-30';
}
}
//续签量数据集合
function amountArr(list){
var amountArr = [];
for(var k in list){
amountArr.push(list[k].signPayOnlineNum);
}
return amountArr;
}
//排名方法
function soreRank(arr){
var temp = [];
var lis = [];
for(var i=0;i