123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459 |
- 'use strict';
- app.controller('reporthandlepeopleCtrl', ["$scope", "$rootScope", "$state", "$timeout", "$interval", "$http", "$cookieStore", "moment", "SweetAlert", "Restangular", "api_hkreport", "api_user_data", function($scope, $rootScope, $state, $timeout, $interval, $http, $cookieStore, moment, SweetAlert, Restangular, api_hkreport, api_user_data) {
- var ROWS = "ROWS";
- var COLUMNS = "COLUMNS";
- $scope.treeshow = true;
- $scope.searchstate = "";
- $scope.headers = "请选择事件树形列表!";
- var workspace = {};
- $scope.parameters = {};
- $scope.starttimes = {};
- $scope.endtimes = {};
- $scope.category = {};
- $scope.reportName = "报表";
- $scope.allheight = 100;
- $scope.isMaskground = false;
- $scope.group = [];
- //表格
- $scope.rRowspeople = [];
- $scope.quikly = [{ name: '自定义', value: 0 }, { name: '近7天', value: 1 }, { name: '近30天', value: 2 }, { name: '近90天', value: 3 }, { name: '近半年', value: 4 }, { name: '近一年', value: 5 }];
- // var starttime, endtime
- // $scope.starttimes = moment().startOf('month').format('YYYYMMDD');
- // $scope.endtimes = moment().format('YYYYMMDD');
- function startdata() {
- $scope.searchkeys = { 'group': {}, 'quikly': { name: '近7天', value: 1 } };
- $scope.starttimes = moment(new Date().getTime() - 86400000 * 7).format('YYYYMMDD');
- $scope.endtimes = moment(new Date().getTime() - 86400000).format('YYYYMMDD');
- $scope.parameters.paramDateFrom = moment($scope.starttimes, "YYYYMMDD").format("YYYY-MM-DD");
- $scope.parameters.paramDateTo = moment($scope.endtimes, "YYYYMMDD").format("YYYY-MM-DD");
- }
- startdata();
- $scope.changeForm = function(paramDateFrom) {
- $scope.searchkeys.quikly = { name: '自定义', value: 0 };
- $scope.starttimes = moment(paramDateFrom).format('YYYYMMDD');
- }
- $scope.changeTo = function(paramDateTo) {
- $scope.searchkeys.quikly = { name: '自定义', value: 0 };
- $scope.endtimes = moment(paramDateTo).format('YYYYMMDD');
- }
- $scope.open = function($event) {
- $event.preventDefault();
- $event.stopPropagation();
- $scope.opened = !$scope.opened;
- };
- $scope.endOpen = function($event) {
- $event.preventDefault();
- $event.stopPropagation();
- $scope.startOpened = false;
- $scope.endOpened = !$scope.endOpened;
- };
- $scope.startOpen = function($event) {
- $event.preventDefault();
- $event.stopPropagation();
- $scope.endOpened = false;
- $scope.startOpened = !$scope.startOpened;
- };
- //处理组
- api_user_data.fetchDataList('group', { "idx": 0, "sum": 1000, "group": { "selectType": "nouser" } }).then(function(data) {
- if (data.status == 200) {
- $scope.group = data.list;
- }
- })
- function ConvertDateParameter(parameters) {
- var result = undefined;
- if (angular.isArray(parameters)) {
- //
- } else {
- result = {};
- for (var k in parameters) {
- if (k.indexOf("Date") > 0) {
- if (angular.isDate(parameters[k])) {
- result[k] = moment(parameters[k]).format("YYYY-MM-DD");
- } else if (angular.isString(parameters[k])) {
- result[k] = parameters[k];
- }
- }
- }
- }
- return result;
- }
- $scope.restData = function() {
- startdata();
- $scope.mdxquery();
- }
- $scope.mdxquery = function(key) {
- var changedate = ConvertDateParameter($scope.parameters)
- var fildata = { "start": moment(changedate.paramDateFrom).format("YYYY-MM-DD"), "end": moment(changedate.paramDateTo).format("YYYY-MM-DD") }
- if (key && key.group && key.group.id) {
- fildata = { "start": moment(changedate.paramDateFrom).format("YYYY-MM-DD"), "end": moment(changedate.paramDateTo).format("YYYY-MM-DD"), "groupId": key.group.id }
- } else {
- fildata = { "start": moment(changedate.paramDateFrom).format("YYYY-MM-DD"), "end": moment(changedate.paramDateTo).format("YYYY-MM-DD") }
- }
- getdata(fildata)
- // getlistdata({ "start": moment(changedate.paramDateFrom).format("YYYY-MM-DD"), "end": moment(changedate.paramDateTo).format("YYYY-MM-DD") })
- // getpiedata({ "start": moment(changedate.paramDateFrom).format("YYYY-MM-DD"), "end": moment(changedate.paramDateTo).format("YYYY-MM-DD") })
- // getpiedata({ "end": $scope.parameters.paramDateFrom, "start": $scope.parameters.paramDateTo })
- }
- $scope.onChangetime = function(key) {
- if (key.value == 1) {
- $scope.starttimes = moment(new Date().getTime() - 86400000 * 7).format('YYYY-MM-DD');
- $scope.endtimes = moment(new Date().getTime() - 86400000).format('YYYY-MM-DD');
- $scope.parameters.paramDateFrom = moment($scope.starttimes, "YYYY-MM-DD").format("YYYY-MM-DD");
- $scope.parameters.paramDateTo = moment($scope.endtimes, "YYYY-MM-DD").format("YYYY-MM-DD");
- } else if (key.value == 2) {
- $scope.starttimes = moment(new Date().getTime() - 86400000 * 30).format('YYYY-MM-DD');
- $scope.endtimes = moment(new Date().getTime() - 86400000).format('YYYY-MM-DD');
- $scope.parameters.paramDateFrom = $scope.starttimes;
- $scope.parameters.paramDateTo = $scope.endtimes;
- } else if (key.value == 3) {
- $scope.starttimes = moment(new Date().getTime() - 86400000 * 90).format('YYYY-MM-DD');
- $scope.endtimes = moment(new Date().getTime() - 86400000).format('YYYY-MM-DD');
- $scope.parameters.paramDateFrom = $scope.starttimes;
- $scope.parameters.paramDateTo = $scope.endtimes;
- } else if (key.value == 4) {
- $scope.searchstate = "month";
- $scope.starttimes = moment((new Date()).setMonth((new Date()).getMonth() - 6)).format('YYYY-MM-DD');
- $scope.endtimes = moment(new Date().getTime() - 86400000).format('YYYY-MM-DD');
- $scope.parameters.paramDateFrom = $scope.starttimes;
- $scope.parameters.paramDateTo = $scope.endtimes;
- } else if (key.value == 5) {
- $scope.searchstate = "month";
- $scope.starttimes = moment((new Date()).setMonth((new Date()).getMonth() - 12)).format('YYYY-MM-DD');
- $scope.endtimes = moment(new Date().getTime() - 86400000).format('YYYY-MM-DD');
- $scope.parameters.paramDateFrom = $scope.starttimes;
- $scope.parameters.paramDateTo = $scope.endtimes;
- }
- // $scope.starttimes = moment(new Date().getTime() - 86400000 * 7).format('YYYYMMDD');
- // $scope.endtimes = moment(new Date().getTime() - 86400000).format('YYYYMMDD');
- // $scope.parameters.paramDateFrom = moment($scope.starttimes, "YYYYMMDD").format("YYYY-MM-DD");
- // $scope.parameters.paramDateTo = moment($scope.endtimes, "YYYYMMDD").format("YYYY-MM-DD");
- // $scope.mdxquery();
- }
- // $scope.onChangegroup = function(key) {
- // }
- // $scope.execute = function() {
- // api_report.list($scope.token).then(function(response) {
- // $scope.select_treedata = $scope.my_data = response;
- // });
- // }
- $scope.searchOptions = function() {
- if (angular.isDefined(workspace.query)) {
- var queryParameters = workspace.query.parameters;
- for (var parm in queryParameters) {
- if (parm == 'Week') {
- } else {
- }
- }
- }
- }
- //pie 工单解决率
- // $scope.pielenddata = ["处理人", "处理人1", "处理人2"];
- // $scope.piebodydata = [{ "value": 1, "name": "处理人", "proportion": "25%" }, { "value": 1, "name": "处理人1", "proportion": "25%" }, { "value": 2, "name": "处理人2", "proportion": "50%" }];
- $scope.pielenddata = [];
- $scope.piebodydata = [];
- var dompeople = document.getElementById("reportpeople");
- var myChartpeople = echarts.init(dompeople);
- var app = {};
- var optionpeople = null;
- myChartpeople.showLoading({
- text: '数据加载中...',
- color: '#c23531',
- textColor: '#fff',
- maskColor: 'rgba(255,255,255,0)',
- zlevel: 0
- });
- myChartpeople.hideLoading();
- optionpeople = {
- title: {
- subtext: 0,
- text: "事件总数(件)",
- itemGap: 3,
- "x": '15%',
- "y": '40%',
- textAlign: "center",
- "textStyle": {
- "fontWeight": 'normal',
- "fontSize": 12,
- "color": '#333',
- },
- "subtextStyle": {
- "fontWeight": 'normal',
- "fontSize": 18,
- "color": '#005395',
- "lineHeight": 14
- },
- },
- tooltip: {
- "backgroundColor": "rgba(0,0,0,9)",
- "textStyle": {
- "fontSize": 12,
- "color": '#f9f9f9',
- },
- trigger: 'item',
- formatter: "{b} : {c} ({d}%)"
- },
- legend: {
- orient: 'vertical',
- icon: "circle",
- x: '30%',
- y: 'center',
- // type: 'scroll',
- pageFormatter: {
- current: 1,
- total: 2
- },
- pagemode: true,
- itemGap: 10,
- itemWidth: 8,
- itemHeight: 8,
- borderRadius: 4,
- textStyle: {
- color: ['#49a9ee', '#ffcd61', '#87c966', '#61829d', '#8496A5', '#e6eef4', '#15598F', '#61829d', '#5F9FD1', '#7EAFD6'],
- },
- data: $scope.pielenddata,
- formatter: function(param) {
- for (var i = 0; i < $scope.pielenddata.length; i++) {
- if ($scope.piebodydata[i].name == param) {
- return ' ' + $scope.piebodydata[i].name + '/' + $scope.piebodydata[i].groupname + ' | ' + $scope.piebodydata[i].value + ' ' + $scope.piebodydata[i].proportion + '%';
- }
- }
- },
- textStyle: {
- rich: {
- white: {
- color: "#fff",
- fontSize: 12,
- padding: [6, 0, 0, 0]
- }
- }
- }
- },
- series: [{
- // name: $scope.startlist.title,
- type: 'pie',
- radius: ['60%', '80%'],
- center: ['15%', '50%'],
- color: ['#49a9ee', '#ffcd61', '#87c966', '#61829d', '#8496A5', '#e6eef4', '#15598F', '#61829d', '#5F9FD1', '#7EAFD6'],
- hoverAnimation: true,
- label: {
- normal: {
- show: false,
- position: 'center'
- },
- formatter: [
- '{a|这段文本采用样式a}',
- '{b|这段文本采用样式b}这段用默认样式{x|这段用样式x}'
- ].join('\n'),
- rich: {
- a: {
- color: 'red',
- lineHeight: 10
- },
- b: {
- backgroundColor: {
- image: 'xxx/xxx.jpg'
- },
- height: 40
- },
- x: {
- fontSize: 18,
- fontFamily: 'Microsoft YaHei',
- borderColor: '#449933',
- borderRadius: 4
- },
- }
- },
- labelLine: {
- normal: {
- show: false
- }
- },
- data: $scope.piebodydata
- }]
- };
- //bar 存储容量
- //start事件月统计图
- var domfaultpeople = document.getElementById("faultpeople");
- var myChartfaultpeople = echarts.init(domfaultpeople);
- var app = {};
- var optionfaultpeople = null;
- app.title = '当月事件工单处理TOP5';
- var XData = [];
- var yData = [];
- // XData.map(function() {
- // yData.push((Math.random() * 1000 + 100).toFixed(0))
- // })
- // var dataMin=parseInt(Math.min.apply(null, yData)/2);
- myChartfaultpeople.showLoading({
- text: '数据加载中...',
- color: '#c23531',
- textColor: '#fff',
- maskColor: 'rgba(255,255,255,0)',
- zlevel: 0
- });
- myChartfaultpeople.hideLoading();
- optionfaultpeople = {
- title: {
- // text: '(件)故障数量',
- x: '10',
- y: '0',
- textStyle: {
- fontWeight: 'normal',
- fontSize: 12,
- color: "#56c9ff",
- }
- },
- xAxis: {
- type: 'value',
- axisTick: {
- show: false
- },
- splitLine: {
- show: true,
- lineStyle: {
- type: 'dashed',
- color: '#eee'
- }
- },
- splitArea: {
- show: false
- },
- // data: XData,
- axisLine: {
- show: false,
- lineStyle: {
- color: '#ddd'
- }
- },
- axisLabel: {
- textStyle: {
- color: '#999999',
- fontSize: 12,
- }
- },
- },
- yAxis: {
- type: 'category',
- data: [],
- axisTick: {
- show: false
- },
- splitLine: {
- show: false
- },
- splitArea: {
- show: false
- },
- axisLabel: {
- show: true,
- textStyle: {
- color: '#999999',
- fontSize: 12,
- }
- },
- axisLine: {
- show: true,
- lineStyle: {
- color: '#cecece'
- }
- }
- },
- grid: {
- left: 10,
- top: 25,
- bottom: 0,
- right: 20,
- containLabel: true
- },
- "tooltip": {
- "trigger": "item",
- "textStyle": {
- "fontSize": 12
- },
- "formatter": "{b0}:{c0}"
- },
- series: {
- type: "bar",
- itemStyle: {
- normal: {
- color: "#005395",
- }
- },
- label: {
- normal: {
- show: true,
- position: 'right',
- textStyle: {
- // color: '# 56 c9ff '
- }
- }
- },
- barWidth: 18,
- // barWidth: '30%',
- // data: yData
- data: [0, 0, 0, 0, 0]
- }
- };
- function getdata(time) {
- api_hkreport.incidentreport(time, 'incident_handler').then(function(data) {
- // var sum = 0
- // angular.forEach(data.data[1], function(item, index) {
- // data.data[1][index].value = data.data[1][index].count;
- // sum += Number(data.data[1][index].value);
- // })
- $scope.rRowspeople = data.list; //表格
- //饼图
- // $scope.pielenddata = data.pieChart;
- $scope.piebodydata = data.pieChart;
- $scope.pielenddata = [];
- angular.forEach($scope.piebodydata, function(item, index) {
- $scope.piebodydata[index].name = item.account;
- $scope.pielenddata.push(item.account);
- })
- optionpeople.series[0].data = $scope.piebodydata;
- optionpeople.legend.data = $scope.pielenddata;
- optionpeople.title.subtext = data.pieChartSum;
- myChartpeople.setOption(optionpeople, true);
- myChartpeople.hideLoading();
- //柱状图
- var barGraph = [];
- var baryx = [];
- angular.forEach(data.barGraph, function(item) {
- barGraph.push(item.sum);
- baryx.push(item.account + '/' + item.groupname);
- })
- optionfaultpeople.yAxis.data = baryx.reverse();
- optionfaultpeople.series.data = barGraph.reverse();
- myChartfaultpeople.setOption(optionfaultpeople, true);
- myChartfaultpeople.hideLoading();
- })
- }
- getdata({ "end": $scope.parameters.paramDateTo, "start": $scope.parameters.paramDateFrom })
- //表格
- // $scope.rRows = [];
- // function getlistdata(time) {
- // api_hkreport.incidentreport(time, 'incident_source').then(function(data) {
- // $scope.rRows = data.data;
- // })
- // }
- // getlistdata({ "end": $scope.parameters.paramDateTo, "start": $scope.parameters.paramDateFrom })
- }]);
|