'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: '' + '', footerFormat: '
{series.name}: {point.y}{series.className}
', 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: '' + '', footerFormat: '
{series.name}: {point.y}{series.className}
', 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) }) }])