watchCtrl.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434
  1. 'use strict';
  2. angular.module('watchListCtrl', [ 'ui.bootstrap'])
  3. app.controller('watchCtrl', ['$rootScope','i18nService','$scope','$http' ,'$state','$modal','$templateCache','$compile', 'Restangular', 'api_monitor', function ($rootScope,i18nService,$scope,$http,$state,$modal,$templateCache,$compile, Restangular, api_monitor) {
  4. $scope.langs=i18nService.getAllLangs();
  5. $scope.lang = 'zh-cn';
  6. var loginUser = $rootScope.user;
  7. console.log(' loginUser='+JSON.stringify( loginUser));
  8. //列表start
  9. $scope.apList = [];
  10. api_monitor.list().then(function(response){
  11. var myData = Restangular.stripRestangular(response);
  12. $scope.data=myData.list;
  13. var newList = [];
  14. for (var i = 0; i<$scope.data.length; i++) {
  15. var color = "";
  16. if($scope.data[i][3]="警告"){
  17. color = 'red';
  18. }
  19. newList.push({
  20. 'id': $scope.data[i][0],
  21. 'time':$scope.data[i][1],
  22. 'jing': $scope.data[i][2],
  23. 'statu': $scope.data[i][3],
  24. 'text':$scope.data[i][4],
  25. 'lei': $scope.data[i][5],
  26. 'ji': $scope.data[i][6],
  27. 'from': $scope.data[i][7],
  28. 'color':color
  29. })
  30. $scope.apList = newList;
  31. $scope.details = function (id,type) {
  32. var url = '';
  33. if(type == '北塔'){
  34. url = 'assets/views/watch/tpl/beitawatch.html';
  35. }else if(type == '应用'){
  36. url = 'assets/views/watch/tpl/detailwatch.html';
  37. }else if(type == '共济'){
  38. url = 'assets/views/watch/tpl/gongjiwatch.html';
  39. }
  40. if(url != ''){
  41. var modalInstance = $modal.open({
  42. templateUrl: url ,
  43. controller: function($scope, $modalInstance ){
  44. var data
  45. if(type == '北塔'){
  46. api_monitor.beita(id).then(function(response){
  47. $scope.data = response.data;
  48. console.log($scope.data);
  49. $scope.alarmTime=moment($scope.data.alarmTime).format('YYYY-MM-DD HH:mm:ss');
  50. $scope.createTime=moment($scope.data.createTime).format('YYYY-MM-DD HH:mm:ss');
  51. // console.log("currentTime="+$scope.currentTime + $scope.createTime);
  52. });
  53. $scope.cancel = function() {
  54. $modalInstance.dismiss('cancel');
  55. };
  56. }else if(type == '应用'){
  57. api_monitor.app(id).then(function(response){
  58. $scope.data = response.data;
  59. console.log($scope.data);
  60. $scope.alarmTime=moment($scope.data.alarmTime).format('YYYY-MM-DD HH:mm:ss');
  61. $scope.createTime=moment($scope.data.createTime).format('YYYY-MM-DD HH:mm:ss');
  62. $scope.triggerTime=moment($scope.data.triggerTime).format('YYYY-MM-DD HH:mm:ss');
  63. $scope.alontime=$scope.data.age+"s" ;
  64. // $scope.
  65. console.log("$scope.data.alarmTime="+$scope.alontime);
  66. });
  67. $scope.cancel = function() {
  68. $modalInstance.dismiss('cancel');
  69. };
  70. }else if(type == '共济'){
  71. api_monitor.gongji(id).then(function(response){
  72. $scope.data = response.data;
  73. console.log($scope.data);
  74. $scope.alarmTime=moment($scope.data.alarmTime).format('YYYY-MM-DD HH:mm:ss');
  75. $scope.createTime=moment($scope.data.createTime).format('YYYY-MM-DD HH:mm:ss');
  76. console.log($scope.data);
  77. });
  78. $scope.cancel = function() {
  79. $modalInstance.dismiss('cancel');
  80. };
  81. }
  82. //创建事件start
  83. $scope.selectRowFunction = function(data){
  84. console.log('data='+JSON.stringify(data));
  85. var datamodel= {model:{'incident':{'title':type+'故障','source':{'id':3,'code':'monitor','source':'监控系统'},'description':data.description,'alarmId':data.alarmId},'alarmType':{'id':data.alarmId,'type':'告警'}},cancelUrl:'app.watch.list'};
  86. //var datamodel= {'incident':{'title':type+'故障','source':{'id':3,'code':'monitor','source':'监控系统'},'description':data.description}};
  87. $state.go('app.incident.watch',{'model':JSON.stringify(datamodel)});
  88. $modalInstance.dismiss('cancel');
  89. };
  90. //创建事件end
  91. // 'title':'type','requester':'loginUser','source':'data.source','description':'data.description'}},'type':{'id':告警id,'type':'告警'}
  92. },
  93. size:'lg',
  94. resolve: {
  95. items: function() {
  96. return newList;
  97. },
  98. }
  99. });
  100. }
  101. };
  102. }
  103. });
  104. //列表end
  105. //柱形图start
  106. $scope.apcpu = [];
  107. api_monitor.cpuList().then(function(response){
  108. var myData = Restangular.stripRestangular(response);
  109. $scope.data=myData.list;
  110. var newnum = [];
  111. for (var i = 0; i <$scope.data.length; i++) {
  112. var load=$scope.data[i][1];
  113. // console.log($scope.load);
  114. var color = "";
  115. if (load < 60) {
  116. color = 'rgba(24, 220, 24, 1)';
  117. } else if (load >= 60 && load < 80) {
  118. color = 'yellow';
  119. } else if (load >= 80) {
  120. color = 'red';
  121. }
  122. // console.log(color);
  123. newnum.push({
  124. 'id': $scope.data[i][0],
  125. 'per':$scope.data[i][1],
  126. 'color': color
  127. })
  128. $scope.apcpu = newnum;
  129. }
  130. // console.log($scope.apnum);
  131. })
  132. $scope.apnei = [];
  133. api_monitor.memList().then(function(response){
  134. var myData = Restangular.stripRestangular(response);
  135. $scope.data=myData.list;
  136. var newnei = [];
  137. for (var i = 0; i <$scope.data.length; i++) {
  138. var load=$scope.data[i][1];
  139. // console.log($scope.load);
  140. var color = "";
  141. if (load < 60) {
  142. color = 'rgba(24, 220, 24, 1)';
  143. } else if (load >= 60 && load < 80) {
  144. color = 'yellow';
  145. } else if (load >= 80) {
  146. color = 'red';
  147. }
  148. newnei.push({
  149. 'id': $scope.data[i][0],
  150. 'per':$scope.data[i][1],
  151. 'color': color
  152. })
  153. $scope.apnei = newnei;
  154. }
  155. // console.log($scope.apnei);
  156. })
  157. $scope.apchu = [];
  158. api_monitor.storageList().then(function(response){
  159. var myData = Restangular.stripRestangular(response);
  160. $scope.data=myData.list;
  161. var newchu = [];
  162. for (var i = 0; i <$scope.data.length; i++) {
  163. var load=$scope.data[i][1];
  164. // console.log($scope.load);
  165. var color = "";
  166. if (load < 60) {
  167. color = 'rgba(24, 220, 24, 1)';
  168. } else if (load >= 60 && load < 80) {
  169. color = 'yellow';
  170. } else if (load >= 80) {
  171. color = 'red';
  172. }
  173. // console.log(color);
  174. newchu.push({
  175. 'id': $scope.data[i][0],
  176. 'per':$scope.data[i][1],
  177. 'color': color
  178. })
  179. $scope.apchu = newchu;
  180. }
  181. // console.log(newchu);
  182. // console.log($scope.apchu);
  183. })
  184. //柱形图end
  185. //百分图start
  186. api_monitor.transData().then(function(response){
  187. var myData = Restangular.stripRestangular(response);
  188. $scope.data=myData.list;
  189. if ($scope.data && $scope.data.length == 1) {
  190. var dataArr = $scope.data[0];//交易信息数据:依次为交易量(transCount),交易成功量(succCount),交易失败量(failCount),响应时间(respTime),响应率(succRate)
  191. // console.log(dataArr);
  192. var transCount = (dataArr[0] == null ? 0 : dataArr[0]), succCount = (dataArr[1] == null ? 0 : dataArr[1]),
  193. failCount = (dataArr[2] == null ? 0 : dataArr[2]), respTime = (dataArr[3] == null ? 0 : dataArr[3]),
  194. succRate = (dataArr[4] == null ? 0 : dataArr[4]);
  195. // changeTime(respTime);//设置响应时间
  196. // changePercent(succRate);//设置响应率
  197. $("#transCount").empty();
  198. $("#transCount").html(transCount);//设置交易量提示信息
  199. $("#succCount").empty();
  200. $("#succCount").html(succCount);//设置交易量提示信息
  201. $("#failCount").empty();
  202. $("#failCount").html(failCount);
  203. var newjiao = [];
  204. for (var i = 0; i <$scope.data.length; i++) {
  205. var time=$scope.data[i][3]*1000;
  206. time=parseFloat(time).toFixed(0);
  207. var lv=$scope.data[i][4]*100;
  208. lv=parseFloat(lv).toFixed(2);
  209. // console.log(time);
  210. console.log(lv);
  211. newjiao.push({
  212. 'all': $scope.data[i][0],
  213. 'success':$scope.data[i][1],
  214. 'fail':$scope.data[i][2],
  215. 'time':time,
  216. 'lv':lv
  217. })
  218. $scope.apjiao = newjiao;
  219. }
  220. $('#tradeNum').highcharts({
  221. chart: {
  222. type: 'pie',
  223. options3d: {
  224. enabled: true,
  225. alpha: 45,
  226. beta: 0
  227. },
  228. width: 125,
  229. height: 100
  230. },
  231. exporting: {
  232. enabled: false
  233. },
  234. title: {
  235. text: ''
  236. },
  237. subtitle: {
  238. text: ''
  239. },
  240. tooltip: {
  241. pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
  242. },
  243. plotOptions: {
  244. pie: {
  245. allowPointSelect: true,
  246. cursor: 'pointer',
  247. depth: 35,
  248. size: '100%',//圆饼相对容器的直径
  249. dataLabels: {
  250. enabled: true,
  251. format: '{point.percentage:.1f} %',
  252. distance:-2
  253. }
  254. }
  255. },
  256. credits: {
  257. enabled: false
  258. },
  259. series: [{
  260. type: 'pie',
  261. name: '占用百分比',
  262. data: [
  263. {
  264. name: '失败交易数',
  265. y: failCount,
  266. color:'#59A4D8'
  267. },
  268. {
  269. name: '成功交易数',
  270. y: succCount,
  271. sliced: true,
  272. selected: true,
  273. color:'#18DC18'
  274. }
  275. ]
  276. }]
  277. });
  278. }
  279. });
  280. //百分图end
  281. $scope.aphover={};
  282. $scope.loadhover = function(id,shortname,x,y) {
  283. api_monitor.bankTip(id).then(function(response){
  284. var myData = Restangular.stripRestangular(response);
  285. var newhover = {};
  286. // console.log("y="+y);
  287. newhover={
  288. 'shortname':shortname,
  289. 'all':myData.total,
  290. 'normal': myData.normalTotal,
  291. 'worn': myData.warnTotal,
  292. }
  293. $scope.aphover = newhover;
  294. $scope.newDiv.innerHTML =
  295. "<div>"+$scope.aphover.shortname +
  296. "总台数"+$scope.aphover.all+
  297. "正常"+$scope.aphover.normal +
  298. "警告"+$scope.aphover.worn +
  299. '</div>';
  300. });
  301. // console.log($scope.aphover);
  302. $scope.newDiv = document.createElement("div");
  303. $scope.newDiv.id = id;
  304. $scope.newDiv.style.position = "absolute";
  305. $scope.newDiv.style.zIndex = "3";
  306. var newDivWidth = 180;
  307. var newDivHeight = 80;
  308. $scope.newDiv.style.width = newDivWidth + "px";
  309. $scope.newDiv.style.height = newDivHeight + "px";
  310. $scope.newDiv.style.top = y-10+"px";
  311. $scope.newDiv.style.left = x+280 + "px";
  312. $scope.newDiv.style.background = "#EFEFEF";
  313. $scope.newDiv.style.border = "1px solid #860001";
  314. $scope.newDiv.style.padding = "5px";
  315. document.body.appendChild( $scope.newDiv);
  316. }
  317. $scope.loadout = function() {
  318. document.body.removeChild($scope.newDiv);
  319. }
  320. $scope.apClient=[];
  321. $scope.loadClient = function(id,size,shortname,x,y) {
  322. // $http({
  323. // url: "http://127.0.0.1:9004/services/ftpFile/monitor/devList/"+ id,
  324. // method: "GET"
  325. // }).success(function(data, status, header, config){
  326. api_monitor.devList(id).then(function(response){
  327. var myData = Restangular.stripRestangular(response);
  328. $scope.data=myData.list;
  329. // console.log("$scope.data.length="+$scope.data.length);
  330. var newClient =[];
  331. for (var i = 0; i <$scope.data.length; i++) {
  332. newClient.push({
  333. 'id':$scope.data[i][0],
  334. 'name':$scope.data[i][1],
  335. 'statu': $scope.data[i][2],
  336. 'shortname': shortname
  337. })
  338. }
  339. $scope.apClient = newClient;
  340. var modalInstance = $modal.open({
  341. templateUrl: 'assets/views/watch/tpl/coordwatch.html',
  342. controller: 'ModalInstanceCtrl',//'CustomformCtrl',//
  343. size: size,
  344. resolve: {
  345. items: function() {
  346. return newClient;
  347. },
  348. }
  349. });
  350. // console.log('$scope.apClient='+JSON.stringify($scope.apClient));
  351. });
  352. }
  353. function setcolor(id,shortname) {
  354. api_monitor.bankTip(id).then(function(response){
  355. var myData = Restangular.stripRestangular(response);
  356. var color = "";
  357. if (myData.warnTotal==0) {
  358. color = 'green';
  359. }else if (myData.warnTotal!==0) {
  360. color = 'red';
  361. }
  362. for ( var aptu_id in $scope.aptu)
  363. {
  364. // console.log("loadhover() item.id="+$scope.aptu[aptu_id].id)
  365. if($scope.aptu[aptu_id].id==id)
  366. {
  367. // console.log("item.id="+id+",item.shortname="+$scope.aptu[aptu_id].shortname)
  368. $scope.aptu[aptu_id].color=color
  369. }
  370. }
  371. });
  372. }
  373. api_monitor.banklist().then(function(response){
  374. var myData = Restangular.stripRestangular(response);
  375. $scope.data=myData.list;
  376. var newtu = [];
  377. for (var i = 0; i <$scope.data.length; i++) {
  378. newtu.push({
  379. 'shortname': $scope.data[i][0],
  380. 'x':$scope.data[i][1],
  381. 'y': $scope.data[i][2],
  382. 'id': $scope.data[i][3],
  383. 'color': 'green',
  384. })
  385. setcolor($scope.data[i][3],$scope.data[i][0])
  386. $scope.aptu = newtu;
  387. }
  388. console.log('$scope.aptu='+JSON.stringify($scope.aptu));
  389. })
  390. }]);