app.controller('advertiserCtrl', ['$scope', '$http', '$timeout', 'uiGridConstants', 'i18nService', 'toaster', 'md5', function ($scope, $http, $timeout, uiGridConstants, i18nService, toaster, MD5) { i18nService.setCurrentLang("zh-cn"); $scope.gridOptions = { data: 'myData', showGridFooter: true, //是否显示grid footer // rowHeight: 80, //-------- 分页属性 ---------------- 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: "", //状态 true false 默认激活 activited: {value: true, label: "激活"}, }; //枚举常量 $scope.enum = { activited: [ {value: null, label: "-全部状态-"}, {value: true, label: "激活"}, {value: false, label: "禁用"} ], }; //事件 $scope.event = { conditionChange: function (key, item) { condition[key].value = item.value; condition[key].label = item.label; $scope.getPagedDataAsync(1, $scope.gridOptions.paginationPageSize); }, search: function () { $scope.getPagedDataAsync(1, $scope.gridOptions.paginationPageSize); } }; function setColumnDefs() { $scope.gridOptions.columnDefs = [ {field: 'nickname', displayName: '姓名'}, {field: 'username', displayName: '联系方式'}, {field: 'quota', displayName: '额度'}, { field: 'dateTimeAdded', displayName: '注册时间', cellTemplate: '
' }, // { // field: 'status', displayName: '状态', // cellTemplate: '
{{row.entity.status==false?"停用":"激活"}}
' // }, { field: 'oper', displayName: '操作', enableFiltering: false, enableSorting: false, enableHiding: false,//禁止在列选择器中隐藏 enableColumnMenu: false,// 是否显示列头部菜单按钮 width: 200, cellTemplate: '
' + '' + '' + '
' } ]; var fields = $scope.gridOptions.columnDefs; for (var index in fields) { var item = fields[index]; if (item && item['minWidth'] == null) { item['minWidth'] = 100; } } } //打开或关闭 $scope.openOrClose = function (entity, activited) { $http({ method: 'POST', url: '/manager/toggleAdvertiserActivation', data: {id: entity.id, activited: activited} }).then(function (response) { initDataGrid(); }, function (response) { toaster.pop("error", "提示", "操作失败!"); }); }; $scope.setPagingData = function (data, curPage, pageSize) { var firstRow = (curPage - 1) * pageSize; var pagedData = data.data.dataList; $scope.myData = pagedData; $scope.gridOptions.totalItems = data.data.total; }; $scope.getPagedDataAsync = function (curPage, pageSize, searchText) { var params = { pageSize: pageSize, pageIndex: curPage }; if (condition.searchKey != "") { params.searchKey = condition.searchKey } if (condition.activited.value != null) { params.activited = condition.activited.value } $http.get('/manager/getAdvertiserList', { params: params }).then(function (data) { $scope.setPagingData(data.data, curPage, pageSize); }).catch(function (data) { toaster.pop("error", "提示", "获取数据列表失败"); }); }; function initDataGrid() { //首次加载表格 $scope.getPagedDataAsync($scope.gridOptions.paginationCurrentPage, $scope.gridOptions.paginationPageSize); } setColumnDefs(); initDataGrid(); //添加 $scope.add = function () { //重置表单状态 $scope.modelForm.$setPristine(); $scope.modelForm.$setUntouched(); $scope.dialogName = "开户"; $scope.dialogData = {activited: true, isNew: true}; $("#modelPanel").modal(); }; //编辑密码 默认123456 $scope.editPassword = function () { //重置表单状态 $scope.passwordForm.$setPristine(); $scope.passwordForm.$setUntouched(); 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.passwordData = $.extend({password: 123456}, item); $("#passwordPanel").modal(); }; $scope.setAdvertiserQuota = function () { //重置表单状态 $scope.quotaForm.$setPristine(); $scope.quotaForm.$setUntouched(); 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.quotaData = $.extend({}, item); $("#quotaPanel").modal(); }; //提交表单保存 $scope.saveData = function () { //表单未校验通过不能提交 if ($scope.modelForm.$invalid) { return; } var url = ""; if ($scope.dialogData.id == null) { url = "/manager/addAdvertiser"; } else { url = "/manager/editAdvertiser"; } //深度克隆 避免操作原对象 var data = $.extend(true, {}, $scope.dialogData); if ($scope.dialogData.isNew) { var password = MD5.createHash($scope.dialogData.password + ''); data.password = password; } // 删除多余的字段 delete data.isNew $http({ method: 'POST', url: url, data: data }).then(function (response) { $('#modelPanel').modal('hide');//弹窗消失 $scope.getPagedDataAsync($scope.gridOptions.paginationCurrentPage, $scope.gridOptions.paginationPageSize); toaster.pop("success", "提示", "开户成功!"); }, function (response) { toaster.pop("error", "提示", "开户失败!"); }); }; //编辑 $scope.edit = function () { //重置表单状态 $scope.editForm.$setPristine(); $scope.editForm.$setUntouched(); 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); var devConditionSrc = $.extend(true, [], item.devCondition); // 数据适配 $scope.dialogData.devCondition = $scope.conditionFun.getRenderingCondition(devConditionSrc); //标记这是编辑框在加载 $scope.conditionFun.noClearSelect = true; $("#editForm").modal(); }; //提交表单保存 $scope.saveEditData = function () { //表单未校验通过不能提交 if ($scope.editForm.$invalid) { return; } var url = "/manager/editAdvertiser"; //深度克隆 避免操作原对象 var dialogData = $.extend(true, {}, $scope.dialogData); //精简保存的数据 dialogData.devCondition = $scope.conditionFun.getCondition(dialogData); $http({ method: 'POST', url: url, data: { id: dialogData.id, devCondition: dialogData.devCondition, } }).then(function (response) { $('#editForm').modal('hide');//弹窗消失 $scope.getPagedDataAsync($scope.gridOptions.paginationCurrentPage, $scope.gridOptions.paginationPageSize); toaster.pop("success", "提示", "操作成功!"); }, function (response) { toaster.pop("error", "提示", "操作失败!"); }); }; //修改密码提交 $scope.savePassword = function () { //表单未校验通过不能提交 if ($scope.passwordForm.$invalid) { return; } var url = "/manager/editAdvertiserPassword"; var password = MD5.createHash($scope.passwordData.password + ''); $http({ method: 'POST', url: url, data: { id: $scope.passwordData.id, password: password } }).then(function (response) { $('#passwordPanel').modal('hide');//弹窗消失 $scope.getPagedDataAsync($scope.gridOptions.paginationCurrentPage, $scope.gridOptions.paginationPageSize); }, function (response) { toaster.pop("error", "提示", "修改密码失败!"); }); }; $scope.saveQuota = function () { //表单未校验通过不能提交 if ($scope.quotaForm.$invalid) { return; } var url = "/manager/setAdvertiserQuota "; $http({ method: 'POST', url: url, data: { id: $scope.quotaData.id, quota: $scope.quotaData.quota } }).then(function (response) { $('#quotaPanel').modal('hide');//弹窗消失 $scope.getPagedDataAsync($scope.gridOptions.paginationCurrentPage, $scope.gridOptions.paginationPageSize); }, function (response) { toaster.pop("error", "提示", "修改失败!"); }); }; }]);