123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464 |
- '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: '<span style="font-size:10px">{point.key}</span><table>',
- pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
- '<td style="padding:0"><b>{point.y}</b>{series.className}</td></tr>',
- footerFormat: '</table>',
- 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}: <b>{point.y}</b>'
- },
- 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}: <b>{point.y}</b>'
- },
- 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: '<span style="font-size:10px">{point.key}</span><table>',
- pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
- '<td style="padding:0"><b>{point.y}</b>{series.className}</td></tr>',
- footerFormat: '</table>',
- 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)
- })
- }])
|