123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581 |
- 'use strict';
- app.controller('reportefficiencyCtrl', ["$scope", "$rootScope", "$state", "$timeout", "$interval", "$http", "$cookieStore", "moment", "SweetAlert", "Restangular", "api_hkreport", "api_bpm_data", function($scope, $rootScope, $state, $timeout, $interval, $http, $cookieStore, moment, SweetAlert, Restangular, api_hkreport, api_bpm_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.rRows = [];
- $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() {
- $scope.try_async_load();
- 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.category && key.category.id) {
- fildata = { "start": moment(changedate.paramDateFrom).format("YYYY-MM-DD"), "end": moment(changedate.paramDateTo).format("YYYY-MM-DD"), "categoryId": key.category.id }
- } else {
- fildata = { "start": moment(changedate.paramDateFrom).format("YYYY-MM-DD"), "end": moment(changedate.paramDateTo).format("YYYY-MM-DD") }
- }
- getdata(fildata);
- getdatatwo(fildata);
- getdatathree(fildata);
- // getdatatop3(fildata);
- // getdatatop5(fildata);
- // getdataareaplace(fildata);
- // getlistdata(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 {
- }
- }
- }
- }
- //树形图
- // $scope.inspecttype = {};
- $scope.my_tree = {};
- $scope.try_async_load = function() {
- $scope.my_data = [];
- $scope.doing_async = true;
- api_bpm_data.fetchDataList('incidentcategory', { "idx": 0, "sum": 1000 }).then(function(response) {
- if (response.status == 200) {
- var data = response.list;
- var objects = [];
- for (var i = 0; i < data.length; i++) {
- var object = {};
- object.id = data[i].id;
- object.parent = data[i].parent;
- // if (data[i].parent && data[i].parent.id != 0) {
- // object.parent = data[i].parent.id;
- // }
- object.label = data[i].category;
- objects.push(object);
- }
- $scope.my_data = convertParentToChildList(objects);
- $scope.select_treedata = angular.copy($scope.my_data);
- if ($scope.my_data.length > 0) {
- $scope.doing_async = false;
- }
- } else {
- SweetAlert.swal({
- title: "系统错误!",
- text: "请刷新重试!",
- type: "error"
- });
- }
- });
- };
- $scope.my_data = [];
- function convertListToTree(data, treeMap) {
- var idToNodeMap = {}; //Keeps track of nodes using id as key, for fast lookup
- var root = null; //Initially set our loop to null
- var parentNode = null;
- //loop over data
- for (var i = 0; i < data.length; i++) {
- var datum = data[i];
- //each node will have children, so let's give it a "children" poperty
- datum.children = [];
- //add an entry for this node to the map so that any future children can
- //lookup the parent
- idToNodeMap[datum.id] = datum;
- //Does this node have a parent?
- if (typeof datum.parent === "undefined" || datum.parent == null) {
- //Doesn't look like it, so this node is the root of the tree
- root = datum;
- treeMap[datum.id] = root;
- } else {
- //This node has a parent, so let's look it up using the id
- parentNode = idToNodeMap[datum.parent.id];
- //We don't need this property, so let's delete it.
- delete datum.parent;
- //Let's add the current node as a child of the parent node.
- parentNode.children.push(datum);
- }
- }
- return root;
- console.log(root)
- }
- function convertParentToChildList(data) {
- var treeMap = {};
- var list = [];
- convertListToTree(data, treeMap);
- angular.forEach(treeMap, function(item) {
- list.push(item);
- });
- return list;
- }
- $scope.try_async_load();
- // $scope.select_treedata = [];
- $scope.propTypeOptions = [];
- $scope.deselectItem = function(item) {
- console.log(item)
- console.log($scope)
- }
- // 故障现象
- $scope.onFilterCallback = function(item) {
- if (item.children && item.children.length != 0) {
- $scope.searchkeys.category = item;
- } else if (item.item && item.item.id) {
- $scope.searchkeys.category = {};
- }
- }
- //折线图
- var axilist = [];
- var serieslist = [];
- // var headerlist = [];
- $scope.responsehead = [];
- $scope.responselist = [];
- var colorlist = ['#005395', '#49a9ee', '#ffcd62', '#87c966', '#1ea58f'];
- var domlleff = document.getElementById("liuliangeff");
- var myChartlleff = echarts.init(domlleff);
- myChartlleff.showLoading({
- text: '数据加载中...',
- color: '#c23531',
- textColor: '#fff',
- maskColor: 'rgba(255,255,255,0)',
- zlevel: 0
- });
- var optionlleff = null;
- optionlleff = {
- color: ['#D53A35'],
- tooltip: {
- trigger: 'axis',
- //formatter: "{b} <br> 合格率: {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',
- name: '',
- minInterval: 1,
- axisLine: {
- show: false,
- },
- axisTick: {
- show: false
- },
- axisLabel: {
- color: '#525252'
- },
- splitLine: {
- lineStyle: {
- type: 'dotted',
- color: '#F3F3F3' //F3F3F3
- }
- }
- },
- "legend": {
- "data": ['事件解决时长'],
- },
- series: {
- // name: '事件解决时长',
- type: 'line',
- symbol: 'none',
- itemStyle: {
- normal: {
- color: '#4facef'
- }
- },
- lineStyle: {
- normal: {
- width: 2
- }
- },
- data: serieslist
- }
- };
- function getdata(time) {
- api_hkreport.incidentreport(time, 'incident_ops_efficiency_response').then(function(data) {
- $scope.responsehead = data.averagelist;
- $scope.responselist = data.list;
- axilist = [];
- angular.forEach(data.graphlist, function(item, index) {
- axilist.push(item.accdate);
- serieslist.push(item.responsetime);
- })
- optionlleff.xAxis.data = axilist;
- myChartlleff.setOption(optionlleff, true);
- myChartlleff.hideLoading();
- })
- }
- getdata({ "end": $scope.parameters.paramDateTo, "start": $scope.parameters.paramDateFrom })
- //第二个图
- //折线图
- var axilisttwo = [];
- var serieslisttwo = [];
- // var headerlist = [];
- $scope.responsetwohead = [];
- $scope.responsetwolist = [];
- var colorlist = ['#005395', '#49a9ee', '#ffcd62', '#87c966', '#1ea58f'];
- var domtwoll = document.getElementById("liuliangtwo");
- var myCharttwoll = echarts.init(domtwoll);
- myCharttwoll.showLoading({
- text: '数据加载中...',
- color: '#c23531',
- textColor: '#fff',
- maskColor: 'rgba(255,255,255,0)',
- zlevel: 0
- });
- var optiontwoll = null;
- optiontwoll = {
- color: ['#D53A35'],
- tooltip: {
- trigger: 'axis',
- //formatter: "{b} <br> 合格率: {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: axilisttwo
- },
- yAxis: {
- type: 'value',
- name: '',
- minInterval: 1,
- axisLine: {
- show: false,
- },
- axisTick: {
- show: false
- },
- axisLabel: {
- color: '#525252'
- },
- splitLine: {
- lineStyle: {
- type: 'dotted',
- color: '#F3F3F3' //F3F3F3
- }
- }
- },
- "legend": {
- "data": ['事件解决时长'],
- },
- series: {
- // name: '事件解决时长',
- type: 'line',
- symbol: 'none',
- itemStyle: {
- normal: {
- color: '#4facef'
- }
- },
- lineStyle: {
- normal: {
- width: 2
- }
- },
- data: serieslisttwo
- }
- };
- function getdatatwo(time) {
- api_hkreport.incidentreport(time, 'incident_ops_efficiency_solve').then(function(data) {
- $scope.responsetwohead = data.averagelist;
- $scope.responsetwolist = data.list;
- axilisttwo = [];
- angular.forEach(data.graphlist, function(item, index) {
- axilisttwo.push(item.accdate);
- serieslisttwo.push(item.responsetime);
- })
- optiontwoll.xAxis.data = axilisttwo;
- myCharttwoll.setOption(optiontwoll, true);
- myCharttwoll.hideLoading();
- })
- }
- getdatatwo({ "end": $scope.parameters.paramDateTo, "start": $scope.parameters.paramDateFrom })
- //第二个图,逾期事件
- //折线图
- var axilistthree = [];
- var serieslistthree = [];
- // var headerlist = [];
- $scope.responsethreehead = [];
- $scope.responsethreelist = [];
- var colorlist = ['#005395', '#49a9ee', '#ffcd62', '#87c966', '#1ea58f'];
- var domthreell = document.getElementById("liuliangthree");
- var myChartthreell = echarts.init(domthreell);
- myChartthreell.showLoading({
- text: '数据加载中...',
- color: '#c23531',
- textColor: '#fff',
- maskColor: 'rgba(255,255,255,0)',
- zlevel: 0
- });
- var optionthreell = null;
- optionthreell = {
- color: ['#D53A35'],
- tooltip: {
- trigger: 'axis',
- //formatter: "{b} <br> 合格率: {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: axilisttwo
- },
- yAxis: {
- type: 'value',
- name: '',
- minInterval: 1,
- axisLine: {
- show: false,
- },
- axisTick: {
- show: false
- },
- axisLabel: {
- color: '#525252'
- },
- splitLine: {
- lineStyle: {
- type: 'dotted',
- color: '#F3F3F3' //F3F3F3
- }
- }
- },
- "legend": {
- "data": ['事件解决时长'],
- },
- series: {
- // name: '事件解决时长',
- type: 'line',
- symbol: 'none',
- itemStyle: {
- normal: {
- color: '#4facef'
- }
- },
- lineStyle: {
- normal: {
- width: 2
- }
- },
- data: serieslisttwo
- }
- };
- function getdatathree(time) {
- api_hkreport.incidentreport(time, 'incident_ops_efficiency_overdue').then(function(data) {
- $scope.responsethreehead = data.averagelist;
- $scope.responsethreelist = data.list;
- axilistthree = [];
- angular.forEach(data.graphlist, function(item, index) {
- axilistthree.push(item.accdate);
- serieslisttwo.push(item.responsetime);
- })
- optionthreell.xAxis.data = axilistthree;
- myChartthreell.setOption(optionthreell, true);
- myChartthreell.hideLoading();
- })
- }
- getdatathree({ "end": $scope.parameters.paramDateTo, "start": $scope.parameters.paramDateFrom })
- }]);
|