app.controller('devConfigCtrl', ['$scope', '$http', '$timeout', 'toaster', 'FileUploader', 'i18nService', function ($scope, $http, $timeout, toaster, FileUploader, i18nService) { i18nService.setCurrentLang("zh-cn"); $scope.devTypeGridOptions = { data: 'myData', showGridFooter: true, //是否显示grid footer //-------- 分页属性 ---------------- paginationPageSizes: [10, 20, 50, 100], //每页显示个数可选项 paginationCurrentPage: 1, //当前页码 paginationPageSize: 20, //每页显示个数 totalItems: 0,// 总数量 columnDefs: [], //---------------api--------------------- onRegisterApi: function (gridApi) { $scope.gridApi = gridApi; gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) { if ($scope.setPagingData) { $scope.getPagedDataAsync(newPage, pageSize); } }); } }; function setColumnDefs() { $scope.devTypeGridOptions.columnDefs = [ {field: 'code', displayName: '驱动编码', minWidth: 120}, {field: 'name', displayName: '驱动名称', minWidth: 120}, {field: 'description', displayName: '驱动描述', minWidth: 180}, {field: 'adapterFile', displayName: '设备适配器', minWidth: 180}, {field: 'eventerFile', displayName: '事件处理器', minWidth: 180} ]; var fields = $scope.devTypeGridOptions.columnDefs; for (var index in fields) { var item = fields[index]; if (item && item['minWidth'] == null) { item['minWidth'] = 80; } } } $scope.setPagingData = function (data, curPage, pageSize) { var pagedData = data.data.dataList; $scope.myData = pagedData; $scope.devTypeGridOptions.totalItems = data.data.total; }; $scope.getPagedDataAsync = function (curPage, pageSize) { var params = { pageSize: pageSize, pageIndex: curPage }; $http.get('/device/driver/code/list', { params: params }).then(function (data) { data = data.data $scope.setPagingData(data, curPage, pageSize); }).catch(function (data) { toaster.pop("error", "提示", "获取列表失败"); }); }; function initDataGrid() { //首次加载表格 $scope.getPagedDataAsync($scope.devTypeGridOptions.paginationCurrentPage, $scope.devTypeGridOptions.paginationPageSize); } setColumnDefs(); initDataGrid(); //编辑弹窗需要的数据 $scope.dialogName = "编辑设备驱动编码"; $scope.dialogData = {}; //事件 $scope.ngEvent = { }; //默认充值优惠信息 $scope.config = { }; //添加Code $scope.addDevCode = function () { //重置表单状态 $scope.devCodeForm.$setPristine(); $scope.devCodeForm.$setUntouched(); $scope.dialogName = "添加设备驱动类型"; $scope.dialogData = {}; $("#devCodePanel").modal(); }; //编辑设备类型 $scope.editDevCode = function () { //重置表单状态 $scope.devCodeForm.$setPristine(); $scope.devCodeForm.$setUntouched(); $scope.dialogName = "编辑设备驱动类型"; var rows = $scope.gridApi.selection.getSelectedRows(); if (rows.length == 0) { toaster.pop("info", "提示", "请选择数据!"); return; } if (rows.length > 1) { toaster.pop("info", "提示", "只能选中编辑一条数据"); return; } //选中的第一条为准 var item = rows[0]; $scope.dialogData = $.extend(true, {}, item);//需要深度克隆 $("#devCodePanel").modal(); }; //删除编码 $scope.deleteDevCode = function () { var rows = $scope.gridApi.selection.getSelectedRows(); if (rows.length == 0) { toaster.pop("info", "提示", "请选择数据!"); return; } var ids = []; for (var i = 0; i < rows.length; i++) { ids.push(rows[i].id); } $.confirm({ content: '确定删除?', buttons: { ok: { btnClass: 'btn-red', action: function () { $http({ method: 'POST', url: '/device/driver/code/delete', data: {ids: ids} }).then(function (response) { initDataGrid(); }, function (response) { toaster.pop("error", "提示", "删除失败!"); }); } }, } }); }; //提交表单保存 $scope.saveDevTypeData = function () { if ($scope.devCodeForm.$invalid) { return } var url = ""; if ($scope.dialogData.id == null) { url = "/device/driver/code/add"; } else { url = "/device/driver/code/edit"; } $http({ method: 'POST', url: url, data: $scope.dialogData }).then(function (response) { //保存成功 弹窗消失 $('#devCodePanel').modal('hide'); $scope.getPagedDataAsync($scope.devTypeGridOptions.paginationCurrentPage, $scope.devTypeGridOptions.paginationPageSize); }, function (response) { toaster.pop("error", "提示", "保存失败!"); }); }; }]);