app.controller('sysFeaturesCtrl', ['$scope', '$http', '$timeout', 'toaster', 'uiGridConstants', 'i18nService', function ($scope, $http, $timeout, toaster, uiGridConstants, i18nService) { i18nService.setCurrentLang("zh-cn");//中文环境,如表格分页 /**配置特性列表**/ $scope.gridOptions = { data: 'myData', showGridFooter: true, //是否显示grid footer //-------- 分页属性 ---------------- paginationPageSizes: [10, 20, 50, 100], //每页显示个数可选项 paginationCurrentPage: 1, //当前页码 paginationPageSize: 10, //每页显示个数 totalItems: 0,// 总数量 useExternalPagination: true,//是否使用分页按钮 //过滤 enableFiltering: true, columnDefs: [], //---------------api--------------------- onRegisterApi: function (gridApi) { $scope.gridApi = gridApi; gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) { if ($scope.setPagingData) { $scope.getPagedDataAsync(newPage, pageSize); } }); } }; //查询条件 var condition = $scope.condition = { searchKey: "" }; //枚举常量 $scope.enum = { role: [ {value: "dealer", label: "经销商"}, {value: "agent", label: "代理商"}, {value: "manager", label: "厂商"}, ] }; function setColumnDefs() { $scope.gridOptions.columnDefs = [ { field: 'role', displayName: '所属角色', filter: { term: '', type: uiGridConstants.filter.SELECT, selectOptions: $scope.enum.role }, cellTemplate: '
{{grid.appScope.formatterRole(row.entity.role)}}
' }, {field: 'name', displayName: '特性名称'}, {field: 'key', displayName: '特性关键字'}, { field: 'default', displayName: '特性默认值', cellTemplate: '
{{ grid.appScope.translateDefault(row.entity.default) }}
' }, { field: 'createdTime', displayName: '创建时间', cellTemplate: '
' }, {field: 'desc', displayName: '特性说明', minWidth: 420}, ]; var fields = $scope.gridOptions.columnDefs; for (var index in fields) { var item = fields[index]; if (item && item['minWidth'] == null) { item['minWidth'] = 100; } } } function initDataGrid() { //首次加载表格 $scope.getPagedDataAsync($scope.gridOptions.paginationCurrentPage, $scope.gridOptions.paginationPageSize); } $scope.setPagingData = function (data, curPage, pageSize) { var pagedData = data.data.dataList; $scope.myData = pagedData; $scope.gridOptions.totalItems = data.data.total; }; $scope.getPagedDataAsync = function (curPage, pageSize) { var params = { pageSize: pageSize, pageIndex: curPage }; if (condition.searchKey != "") { params.searchKey = condition.searchKey } $http.get('/superadmin/getFeatureList', { params: params }).then(function (data) { data = data.data $scope.setPagingData(data, curPage, pageSize); }).catch(function (data) { toaster.pop("error", "提示", "获取数据失败"); }); }; setColumnDefs(); initDataGrid(); $scope.translateDefault = function (flag) { return flag ? "true" : "false" }; //角色转换 $scope.formatterRole = function (role) { var list = $scope.enum.role; for (var index in list) { var item = list[index]; if (item.value == role) { return item.label; } } }; //事件 $scope.event = { search: function () { $scope.getPagedDataAsync(1, $scope.gridOptions.paginationPageSize); } }; //编辑弹窗需要的数据 $scope.dialogName = "编辑"; $scope.dialogData = {}; //添加 $scope.addFeature = function () { //重置表单状态 $scope.FeaturePanel.$setPristine(); $scope.FeaturePanel.$setUntouched(); $scope.dialogName = "添加"; $scope.dialogData = {}; $("#FeaturePanel").modal(); }; //编辑 $scope.editFeature = function () { //重置表单状态 $scope.FeaturePanel.$setPristine(); $scope.FeaturePanel.$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); $("#FeaturePanel").modal(); }; //提交表单保存 $scope.saveData = function () { //表单未校验通过不能提交 if ($scope.FeaturePanel.$invalid) { return; } var url = ""; if ($scope.dialogData.id == null) { url = "/superadmin/addFeature"; } else { url = "/superadmin/editFeature"; } //深度克隆 避免操作原对象 var data = $.extend(true, {}, $scope.dialogData); delete data.createdTime //创建时间后台修改 $http({ method: 'POST', url: url, data: data }).then(function (response) { $('#FeaturePanel').modal('hide');//弹窗消失 $scope.getPagedDataAsync($scope.gridOptions.paginationCurrentPage, $scope.gridOptions.paginationPageSize); }, function (response) { toaster.pop("error", "提示", "保存失败!"); }); }; //删除特性 $scope.deleteFeature = 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: '/superadmin/removeFeatures', data: {ids: ids} }).then(function (response) { initDataGrid(); }, function (response) { toaster.pop("error", "提示", "删除失败!"); }); } }, } }); }; }]);