'use strict';
app.controller('reportsuorceCtrl', ["$scope", "$rootScope", "$state", "$timeout", "$interval", "$http", "$cookieStore", "moment", "SweetAlert", "Restangular", "api_hkreport", function($scope, $rootScope, $state, $timeout, $interval, $http, $cookieStore, moment, SweetAlert, Restangular, api_hkreport) {
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.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;
};
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)
getdata({ "startTime": moment(changedate.paramDateFrom).format("YYYY-MM-DD"), "endTime": moment(changedate.paramDateTo).format("YYYY-MM-DD") })
getlistdata({ "startTime": moment(changedate.paramDateFrom).format("YYYY-MM-DD"), "endTime": moment(changedate.paramDateTo).format("YYYY-MM-DD") })
getpiedata({ "startTime": moment(changedate.paramDateFrom).format("YYYY-MM-DD"), "endTime": moment(changedate.paramDateTo).format("YYYY-MM-DD") })
}
$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.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 domsuorce = document.getElementById("reportsuorce");
var myChartsuorce = echarts.init(domsuorce);
var app = {};
var optionsuorce = null;
myChartsuorce.showLoading({
text: '数据加载中...',
color: '#c23531',
textColor: '#fff',
maskColor: 'rgba(255,255,255,0)',
zlevel: 0
});
myChartsuorce.hideLoading();
optionsuorce = {
title: {
subtext: 0,
text: "事件总数",
itemGap: 3,
"x": '24%',
"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: "{a}
{b}: {c} ({d}%)"
},
legend: {
orient: 'vertical',
icon: "circle",
x: '50%',
y: 'center',
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].count + ' ' + $scope.piebodydata[i].percentage;
}
}
},
textStyle: {
rich: {
white: {
color: "#fff",
fontSize: 12,
padding: [6, 0, 0, 0]
}
}
}
},
series: [{
// name: $scope.startlist.title,
type: 'pie',
radius: ['70%', '85%'],
center: ['25%', '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
}]
};
if (optionsuorce && typeof optionsuorce === "object") {
myChartsuorce.setOption(optionsuorce, true);
myChartsuorce.hideLoading();
}
function getpiedata(time) {
api_hkreport.incidentreport(time, 'incident_source_pie').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.pielenddata = data.data[0];
$scope.piebodydata = data.data[1];
optionsuorce.series[0].data = $scope.piebodydata;
optionsuorce.legend.data = $scope.pielenddata;
optionsuorce.title.subtext = sum;
myChartsuorce.setOption(optionsuorce, true);
myChartsuorce.hideLoading();
})
}
getpiedata({ "endTime": $scope.parameters.paramDateTo, "startTime": $scope.parameters.paramDateFrom })
//end 工单解决率
//折线图
$scope.headerslist = [];
var axilist = [];
var serieslist = [];
var headerlist = [];
var datas = [];
var colorlist = ['#005395', '#49a9ee', '#ffcd62', '#87c966', '#1ea58f'];
var domllsuorce = document.getElementById("liuliangsuorce");
var myChartllsuorce = echarts.init(domllsuorce);
myChartllsuorce.showLoading({
text: '数据加载中...',
color: '#c23531',
textColor: '#fff',
maskColor: 'rgba(255,255,255,0)',
zlevel: 0
});
var app = {};
var optionllsuorce = null;
app.title = '流量';
$scope.llmyData = [];
var zhengliudata = 0;
var huliudata = 0;
$scope.zhengliu = 0;
$scope.huliu = 0;
// var zwmyData = [];
// var hlmyData = [];
var xhuzwmyData = [];
$scope.zhengliu = 0;
$scope.huliu = 0;
optionllsuorce = {
color: ['#D53A35'],
tooltip: {
trigger: 'axis',
//formatter: "{b}
合格率: {c}%"
},
grid: {
top: '10%',
bottom: '15%',
left: '3%',
right: '8%',
containLabel: true
},
xAxis: {
type: 'category',
name: '',
boundaryGap: false,
axisLine: {
show: false,
lineStyle: {
color: '#525252'
}
},
axisTick: {
show: false
},
axisLabel: {
color: '#525252'
},
data: axilist
},
yAxis: {
type: 'value',
minInterval: 1,
name: '',
axisLine: {
show: false,
},
axisTick: {
show: false
},
axisLabel: {
color: '#525252'
},
splitLine: {
lineStyle: {
type: 'dotted',
color: '#AAA' //F3F3F3
}
}
},
"legend": {
"bottom": 0,
// "textStyle": {
// "color": "#e6e9ed"
// },
// "inactiveColor": "#5a626d",
// "data": [
// "全部机型"
// ],
data: headerlist,
"itemGap": 5,
"itemWidth": 16,
"itemHeight": 12,
"pageTextStyle": {
"color": "#e6e9ed"
},
"pageIconSize": 14
},
series: serieslist
};
function getdata(time) {
api_hkreport.incidentreport(time, 'incident_source_trend').then(function(data) {
headerlist = data.data[0]
axilist = data.data[1][0][0];
angular.forEach(data.data[1], function(item, index) {
// titledata.push(item.category);
// datas[index] = [];
datas = item[1];
// angular.forEach(item[1], function(itemtwo, indextwo) {
// datas = itemtwo;
// })
serieslist[index] = {
name: headerlist[index],
type: 'line',
symbol: 'none',
itemStyle: {
normal: {
color: colorlist[index]
}
},
lineStyle: {
normal: {
width: 2
}
},
data: datas
}
})
optionllsuorce.xAxis.data = axilist;
optionllsuorce.legend.data = headerlist;
myChartllsuorce.setOption(optionllsuorce, true);
myChartllsuorce.hideLoading();
})
}
getdata({ "endTime": $scope.parameters.paramDateTo, "startTime": $scope.parameters.paramDateFrom })
//表格
$scope.rRowssuorce = [];
function getlistdata(time) {
api_hkreport.incidentreport(time, 'incident_source').then(function(data) {
$scope.rRowssuorce = data.data;
})
}
getlistdata({ "endTime": $scope.parameters.paramDateTo, "startTime": $scope.parameters.paramDateFrom })
}]);