123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- angular.module('app', ['app.util','angular-multi-check'])
- .config(function($interpolateProvider) {
- $interpolateProvider.startSymbol('[[');
- $interpolateProvider.endSymbol(']]');
- })
- .controller('BigCtrl', BigCtrl)
- function BigCtrl(FlotServ, $scope, $interval, $timeout, $filter) {
- var vm = this;
- var urlH = '/chart/h';
- var defaultParam = FlotServ.getParam();
- var graph_type = defaultParam.graph_type;
- if (graph_type === 'k') {
- urlH = '/chart/k';
- } else if (graph_type === 'a') {
- urlH = '/chart/a';
- }
- vm.chart = {}; // 前端的图, 对应后端的返回
- vm.config = []; // 绘图的数据, 会变化
- vm.data = []; // 缓存的绘图数据, 不会改变
- vm.param = angular.copy(defaultParam);
- vm.all = true; // 是否全选
- vm.reverse = false; // 是否反选
- vm.checkAll = checkAll;
- vm.checkReverse = checkReverse;
- vm.checkSearch = checkSearch;
- vm.reset = reset;
- vm.checkFilter = checkFilter;
- // watch
- $scope.$watch('vm.param', function(newVal, oldVal) {
- if (!angular.equals(newVal, oldVal)) {
- active(newVal);
- }
- }, true);
- active(vm.param);
- // interval
- $interval(function() {
- var rand = Math.round(Math.random() * 1000 * 120); // 0s ~ 120s
- $timeout(function() {
- var p = FlotServ.getParam2();
- p['-'] = Math.random();
- FlotServ.getData(urlH, p).success(function(ret) {
- var d = FlotServ.parseData(ret);
- if (d.length > 0) {
- vm.newdata = FlotServ.parseData(ret);
- }
- // vm.chart = ret;
- // TODO 这里也要重新计算?
- // vm.summary = FlotServ.summary(ret.series[0]);
- });
- }, rand);
- }, 60000);
- // reset
- function reset() {
- vm.param = angular.copy(defaultParam);
- }
- // active
- function active(param) {
- FlotServ.getData(urlH, param).success(function(ret) {
- vm.config = FlotServ.parseData(ret);
- vm.data = FlotServ.parseData(ret);
- vm.chart = ret;
- vm.summary = FlotServ.summary(ret.series[0]);
- });
- }
- function checkFilter() {
- _.each(vm.data, function(d) {
- d.check = false;
- });
- var query = vm.query;
- var checks = $filter('filter')(vm.data, {label:query});
- angular.forEach(checks, function(i) {
- i.check = true;
- });
- }
- // 全选
- function checkAll() {
- if (vm.all) {
- _.each(vm.data, function(d) {
- d.check = true;
- });
- } else {
- _.each(vm.data, function(d) {
- d.check = false;
- });
- }
- }
- // 反选
- function checkReverse () {
- if (vm.reverse) {
- vm.all = false;
- _.each(vm.data, function(d) {
- d.check = !d.check;
- });
- }
- }
- // 刷新
- function checkSearch() {
- var data2 = [];
- _.each(vm.data, function(d) {
- if (d.check) {
- data2.push(d);
- }
- });
- vm.config = data2;
- }
- }
|