app.controller('perCtrl', function ($scope) { }); app.controller('alarmGridCtrl', ['$scope','$log', '$http', '$timeout', '$interval', 'uiGridConstants', 'uiGridGroupingConstants', function ($scope,$log, $http, $timeout, $interval) { $scope.selectedRows = new Array(); var mydefalutData = [ {name: "shebei1", Id: "22", State: '1', Cpu: "40%", Memory: "60,0", Disk: "60,000", Network: "60,000"}, {name: "shebei1", Id: "226", State: '2', Cpu: "40%", Memory: "60", Disk: "60,", Network: "60,000"}, { name: "shebei1", Id: "225", State: '2', Cpu: "40%", Memory: "60,000", Disk: "60,000", Network: "60,000" }, {name: "shebei1", Id: "224", State: '3', Cpu: "40%", Memory: "600", Disk: "60,000", Network: "60,000"}, { name: "shebei1", Id: "223", State: '2', Cpu: "40%", Memory: "60,000", Disk: "60,000", Network: "60,000" }, { name: "shebei1", Id: "221", State: '3', Cpu: "40%", Memory: "60,000", Disk: "60,000", Network: "60,000" } ]; $scope.items = [ 'The first choice!', 'And another choice for you.', 'but wait! A third!' ]; $scope.toggled = function(open) { $log.log('Dropdown is now: ', open); }; $scope.status = { isopen: false }; $scope.toggleDropdown = function($event) { $event.preventDefault(); $event.stopPropagation(); $scope.status.isopen = !$scope.status.isopen; }; $scope.appendToEl = angular.element(document.querySelector('#dropdown-long-content')); $scope.gridOptions = { data: 'myData', columnDefs: [{ field: 'name', displayName: 'name', width: '8%', enableColumnMenu: false,// 是否显示列头部菜单按钮 enableHiding: false, suppressRemoveSort: true, enableCellEdit: false // 是否可编辑 }, {field: "Id"}, {field: "State",cellFilter:'mapGender'}, {field: "Cpu"}, {field: "Memory"}, {field: "Disk"}, {field: "Network"}, {field: "Action", cellTemplate : '
' , enableCellEdit:false}, ], enableSorting: true, //是否排序 useExternalSorting: false, //是否使用自定义排序规则 enableGridMenu: true, //是否显示grid 菜单 showGridFooter: true, //是否显示grid footer enableHorizontalScrollbar: 1, //grid水平滚动条是否显示, 0-不显示 1-显示 enableVerticalScrollbar: 0, //grid垂直滚动条是否显示, 0-不显示 1-显示 enableFiltering: true, //-------- 分页属性 ---------------- enablePagination: true, //是否分页,默认为true enablePaginationControls: true, //使用默认的底部分页 paginationPageSizes: [10, 15, 20], //每页显示个数可选项 paginationCurrentPage: 1, //当前页码 paginationPageSize: 10, //每页显示个数 //paginationTemplate:"
", //自定义底部分页代码 totalItems: 0, // 总数量 useExternalPagination: true,//是否使用分页按钮 //----------- 选中 ---------------------- enableFooterTotalSelected: true, // 是否显示选中的总数,默认为true, 如果显示,showGridFooter 必须为true enableFullRowSelection: true, //是否点击行任意位置后选中,默认为false,当为true时,checkbox可以显示但是不可选中 enableRowHeaderSelection: true, //是否显示选中checkbox框 ,默认为true enableRowSelection: false, // 行选择是否可用,默认为true; enableSelectAll: true, // 选择所有checkbox是否可用,默认为true; enableSelectionBatchEvent: true, //默认true isRowSelectable: function (row) { //GridRow /* if(row.entity.age > 45){ row.grid.api.selection.selectRow(row.entity); // 选中行 }*/ }, modifierKeysToMultiSelect: false,//默认false,为true时只能 按ctrl或shift键进行多选, multiSelect 必须为true; multiSelect: true,// 是否可以选择多个,默认为true; noUnselect: false,//默认false,选中后是否可以取消选中 selectionRowHeaderWidth: 20,//默认30 ,设置选择列的宽度; //---------------api--------------------- onRegisterApi: function (gridApi) { $scope.gridApi = gridApi; //分页按钮事件 gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) { if (getPage) { getPage(newPage, pageSize); } }); //行选中事件 $scope.gridApi.selection.on.rowSelectionChanged($scope, function (row, event) { if (row) { var num = $.inArray(row.entity.Id, $scope.selectedRows); if (num == -1) { $scope.selectedRows.push(row.entity.Id); } else { $scope.selectedRows.splice(num, 1); } } }); $scope.gridApi.grid.registerRowsProcessor( $scope.singleFilter, 200 ); } }; var getPage = function (curPage, pageSize) { var firstRow = (curPage - 1) * pageSize; $scope.gridOptions.totalItems = mydefalutData.length; $scope.gridOptions.data = mydefalutData.slice(firstRow, firstRow + pageSize); //或者像下面这种写法 //$scope.myData = mydefalutData.slice(firstRow, firstRow + pageSize); }; getPage(1, $scope.gridOptions.paginationPageSize); $scope.trashcan = function () { alert('delete ' + $scope.selectedRows); }; $scope.status = [ {id: 1, name: 'danger', count: 10}, {id: 2, name: 'alarm', count: 8}, {id: 3, name: 'normal', count: 7}, {id: undefined, name: 'All', count: 7} ]; $scope.selectStatus = function (v) { $scope.selectedStatus = v; $scope.gridApi.grid.refresh(); }; $scope.activeStatus = function (status_id) { return status_id == $scope.selectedStatus; }; $scope.singleFilter = function (renderableRows) { var matcher = new RegExp($scope.selectedStatus); renderableRows.forEach(function (row) { var match = false; ['State'].forEach(function (field) { if (row.entity[field].match(matcher)) { match = true; } }); if (!match) { row.visible = false; } }); return renderableRows; }; //input框 $scope.menuState={show: false} $scope.toggleMenu=function() { $scope.menuState.show=!$scope.menuState.show; } //切换框 $scope.singleModel = 1; $scope.radioModel = 'Middle'; $scope.checkModel = { open: false, close: true, }; $scope.checkResults = []; $scope.$watchCollection('checkModel', function () { $scope.checkResults = []; angular.forEach($scope.checkModel, function (value, key) { if (value) { $scope.checkResults.push(key); } }); }); }]).filter('mapGender', function () { var genderHash = { 1: 'danger', 2: 'alarm' , 3: 'normal' }; return function (input) { if (!input) { return ''; } else { return genderHash[input]; } } });