'use strict';
var app = angular.module('app', [
'angularUtils.directives.dirPagination'
]);
app.controller("listCtrl", ["$scope", "$http", "$timeout", function ($scope, $http, $timeout) {
var self = this;
var s4 = new SM4Util();
self.userId = $.cookie("GlWorkPlatform-userid");
self.userName = $.cookie("GlWorkPlatform-chineseName");
self.get_AccessToken = localStorage.getItem("GlWorkPlatform-AccessToken");
self.get_lastReturnPageno = sp.getUrlName("lastReturnPageno");
self.get_type = sp.getUrlName("type");
var postCfg = {
headers: {
'Content-Type': 'application/json',
'Authorization': "Bearer " + self.get_AccessToken
}
}
//self.search = {
// TYPE: 1,
// KSSJ: sp.monthfirst(sp.getLocalDate()),
// JSSJ: sp.formatMonthLast(sp.getLocalDate())
//}
self.search = {
TYPE: 3,
KSSJ: sp.currentYear() + "-01-01",
JSSJ: sp.currentYear() + "-12-31"
}
self.changeType = function () {
switch (self.search.TYPE) {
case "1": self.search.KSSJ = sp.monthfirst(sp.getLocalDate()); self.search.JSSJ = sp.formatMonthLast(sp.getLocalDate()); break;
case "2": self.search.KSSJ = sp.quarter(sp.getLocalDate(), 1); self.search.JSSJ = sp.quarter(sp.getLocalDate(), 2); break;
case "3": self.search.KSSJ = sp.currentYear() + "-01-01"; self.search.JSSJ = sp.currentYear() + "-12-31"; break;
case "4": self.search.KSSJ = sp.format(sp.getLocalDate()); self.search.JSSJ = sp.format(sp.getLocalDate()); break;
}
}
self.noDataTip = 1;//没有数据时赋变量为0,先默认为1
self.getData = function () {
self.list1 = [];
self.list2 = [];
var data = {
begindate: self.search.KSSJ,
enddate: self.search.JSSJ
}
//console.log(data);
$http.post(apiurljs.login + "g2app/richang/xfAndzmStatistics", { data: s4.encryptData_CBC(JSON.stringify(data)) }, postCfg)
.success(function (obj) {
var res = strToJson(s4.decryptData_CBC(obj.data));
//console.log(JSON.stringify(res.data));
self.canExportExcel = true;
if (res.data == null || res.data == undefined || res.data == "") {
self.noDataTip = 0;
} else {
self.noDataTip = 1;
self.list1 = res.data.xf_data;
self.list2 = res.data.zm_data;
self.getPie()
self.getColumn()
self.getBar()
}
})
}
self.getData()
self.getColumn = function () {
var title = [], data = [];
self.list1.forEach(function (item) {
title.push(item.dpname);
data.push(item.wlqdjc + item.wlqdrc);
})
var chart = new Highcharts.Chart({
chart: {
renderTo: "column",
type: 'column'
},
title: {
text: '', //图表的标题
//margin: 80
},
tooltip: {
headerFormat: '{point.key}
',
pointFormat: '{series.name}: | ' +
'{point.y}{series.className} |
',
footerFormat: '
',
shared: true,
useHTML: true
},
xAxis: {
categories: title
},
yAxis: {
title: {
text: ''
},
lineWidth: 1,
gridLineWidth: 1
},
legend: {
enabled: false
},
plotOptions: {
series: {
turboThreshold: 0,
cursor: 'pointer',
dataLabels: {
enabled: true,
}
}
},
series: [{
name: "数量",
data: data
}],
credits: {
enabled: false//隐藏右下角网址
},
exporting: {
enabled: false//隐藏右上角打印
}
})
chart.setSize(null, 400)
}
self.getPie = function () {
var data1 = [{ name: "办理", y: 0 }, { name: "完结", y: 0 }, { name: "超期", y: 0 }, { name: "延期", y: 0 }]
var data2 = [{ name: "来信渠道", y: 0 }, { name: "来电渠道", y: 0 }, { name: "来访渠道", y: 0 }, { name: "网络渠道", y: 0 }]
self.list1.forEach(function (item) {
data1[0].y = data1[0].y + item.blz;
data1[1].y = data1[1].y + item.wj;
data1[2].y = data1[2].y + item.cq;
data1[3].y = data1[3].y + item.yq;
data2[0].y = data2[0].y + item.lxqdjc + item.lxqdrc;
data2[1].y = data2[1].y + item.ldqdjc + item.ldqdrc;
data2[2].y = data2[2].y + item.lfqdjc + item.lfqdrc;
data2[3].y = data2[3].y + item.wlqdjc + item.wlqdrc;
})
var chart1 = new Highcharts.Chart({
chart: {
renderTo: "pie1",
type: 'pie',
style: {
"position": "relative",
"left": "50%",
"transform": "translateX(-50%)"
}
},
title: {
text: '', //图表的标题
},
tooltip: {
pointFormat: '{series.name}: {point.y}'
},
legend: {
floating: true,
align: 'left',
verticalAlign: 'middle',
layout: 'vertical',
backgroundColor: '#FFF',
itemMarginTop: 5,
itemMarginBottom: 5,
itemStyle: {
fontSize: 16
},
enabled: false,
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
distance: -50,
formatter: function () {
return this.point.name + ":" + this.point.percentage.toFixed(2) + "%";
}
},
showInLegend: true
}
},
series: [{
name: '',
data: data1
}],
credits: {
enabled: false//隐藏右下角网址
},
exporting: {
enabled: false//隐藏右上角打印
}
})
chart1.setSize(400, 400);
var chart2 = new Highcharts.Chart({
chart: {
renderTo: "pie2",
type: 'pie',
style: {
"position": "relative",
"left": "50%",
"transform": "translateX(-50%)"
}
},
title: {
text: '', //图表的标题
},
tooltip: {
pointFormat: '{series.name}: {point.y}'
},
legend: {
floating: true,
align: 'left',
verticalAlign: 'middle',
layout: 'vertical',
backgroundColor: '#FFF',
itemMarginTop: 5,
itemMarginBottom: 5,
itemStyle: {
fontSize: 16
},
enabled: false,
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: true,
distance: -50,
formatter: function () {
return this.point.name + ":" + this.point.percentage.toFixed(2) + "%";
}
},
showInLegend: true
}
},
series: [{
name: '',
data: data2
}],
credits: {
enabled: false//隐藏右下角网址
},
exporting: {
enabled: false//隐藏右上角打印
}
})
chart2.setSize(400, 400);
}
self.getBar = function () {
var title = [], data = [{ name: "办理", data: [] }, { name: "完结", data: [] }, { name: "超期", data: [] }, { name: "延期", data: [] }];
self.list2.forEach(function (item) {
title.push(item.dpname);
data[0].data.push(item.blz);
data[1].data.push(item.wj);
data[2].data.push(item.cq);
data[3].data.push(item.yq);
})
var chart = new Highcharts.Chart({
chart: {
renderTo: "bar",
type: 'bar'
},
title: {
text: '', //图表的标题
//margin: 80
},
tooltip: {
headerFormat: '{point.key}',
pointFormat: '{series.name}: | ' +
'{point.y}{series.className} |
',
footerFormat: '
',
shared: true,
useHTML: true
},
xAxis: {
categories: title
},
yAxis: {
title: {
text: ''
},
lineWidth: 1,
gridLineWidth: 1
},
legend: {
enabled: true
},
plotOptions: {
series: {
turboThreshold: 0,
cursor: 'pointer',
dataLabels: {
enabled: true,
}
}
},
series: data,
credits: {
enabled: false//隐藏右下角网址
},
exporting: {
enabled: false//隐藏右上角打印
}
})
chart.setSize(null, 400)
}
self.btnPrint1 = function () {
if (self.canExportExcel) {
$('#printOut1 td').attr('t', 's')
var defaultCellStyle = {
font: {
name: 'Times New Roman',
sz: 12,
color: {
rgb: "000000"
},
bold: false, italic: false,
underline: false
},
alignment: {
vertical: "center",
horizontal: "center", indent: 0, wrapText: true
},
border: {
top: {
style: "thin",
color: {
rgb: "000000"
}
},
right: {
style: "thin",
color: {
rgb: "000000"
}
},
bottom: {
style: "thin",
color: {
rgb: "000000"
}
},
left: {
style: "thin",
color: {
rgb: "000000"
}
}
}
};
var cell = { defaultCellStyle: defaultCellStyle };
var wb = XLSX.utils.table_to_book_addtitle(document.querySelector('#printOut1'), cell, "信访统计")
//设置表格的样式
var wbout = XLSX.write(wb, {
bookType: 'xlsx',
bookSST: false,
type: 'binary',
cellStyles: true,
defaultCellStyle: defaultCellStyle,
showGridLines: false
});
var s2ab = function (s) {
var buf = new ArrayBuffer(s.length);
var view = new Uint8Array(buf);
for (var i = 0; i !== s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
return buf;
};
try {
saveAs(new Blob([s2ab(wbout)], { type: 'application/octet-stream' }), '信访统计.xlsx')
} catch (e) { if (typeof console !== 'undefined') console.log(e, wbout) }
return wbout
} else {
sp.dialog('数据还未加载完成,请稍等...')
}
}
self.btnPrint2 = function () {
if (self.canExportExcel) {
$('#printOut2 td').attr('t', 's')
var defaultCellStyle = {
font: {
name: 'Times New Roman',
sz: 12,
color: {
rgb: "000000"
},
bold: false, italic: false,
underline: false
},
alignment: {
vertical: "center",
horizontal: "center", indent: 0, wrapText: true
},
border: {
top: {
style: "thin",
color: {
rgb: "000000"
}
},
right: {
style: "thin",
color: {
rgb: "000000"
}
},
bottom: {
style: "thin",
color: {
rgb: "000000"
}
},
left: {
style: "thin",
color: {
rgb: "000000"
}
}
}
};
var cell = { defaultCellStyle: defaultCellStyle };
var wb = XLSX.utils.table_to_book_addtitle(document.querySelector('#printOut2'), cell, "政民零距离")
//设置表格的样式
var wbout = XLSX.write(wb, {
bookType: 'xlsx',
bookSST: false,
type: 'binary',
cellStyles: true,
defaultCellStyle: defaultCellStyle,
showGridLines: false
});
var s2ab = function (s) {
var buf = new ArrayBuffer(s.length);
var view = new Uint8Array(buf);
for (var i = 0; i !== s.length; ++i) view[i] = s.charCodeAt(i) & 0xFF;
return buf;
};
try {
saveAs(new Blob([s2ab(wbout)], { type: 'application/octet-stream' }), '政民零距离.xlsx')
} catch (e) { if (typeof console !== 'undefined') console.log(e, wbout) }
return wbout
} else {
sp.dialog('数据还未加载完成,请稍等...')
}
}
//头部下滚冻结
$(function () {
//页面高度撑满
setTimeout(function () {
if ($(".ibox-content").height() < $(window).height() - 31) {
$(".ibox-content").css("height", $(window).height() - 31)
}
}, 1)
})
}])