/// /// /// /// /// /// /// module System{ export var SystemSQLManagement = controller('SystemSQLManagement', ['$scope', '$location', '$http', '$element', '$templateCache', 'NgTableParams', 'ngDialog', 'SystemModel', ($scope, $location, $http, $element, $templateCache, NgTableParams, ngDialog, SystemModel) => { shareInit($scope); $scope.cities = classifyCity(SystemModel.regionalismInfo); $scope.status = [{id: 0, label: "有缺失"}, {id: 1, label: "正常"}, {id: 2, label:"待归档"}, {id: 3, label: "待审核"}]; $scope.cityFilter = $scope.model = SystemModel.sqlInfo; $scope.checkboxes = { checked: false, items: {} }; $scope.tableParams = new NgTableParams({count: 25}, { counts: [25, 50, 100], dataset: $scope.model }); $scope.citySelect = (x) => { if($scope.z != 'all'){ $scope.statusFilter = []; angular.forEach($scope.model, (item) => { if($scope.status[item.sysStatus].label == $scope.z) $scope.statusFilter.push(item) }); }else $scope.statusFilter = $scope.model; if(x != 'all'){ $scope.countries = classifyCountry(SystemModel.regionalismInfo, x); //获取当前市下所有区县 $scope.cityFilter = []; angular.forEach($scope.statusFilter, (item) => { if(x == item.cityName) $scope.cityFilter.push(item); }); }else{ $scope.countries=[]; $scope.y = 'all'; $scope.cityFilter = $scope.statusFilter; } $scope.countryFilter = $scope.cityFilter; $scope.tableParams.settings({ dataset: $scope.cityFilter }); } $scope.countrySelect = (y) => { if(y != 'all'){ $scope.countryFilter = []; angular.forEach($scope.cityFilter, (item) => { if(item.districtName == y) $scope.countryFilter.push(item); }); }else $scope.countryFilter = $scope.cityFilter $scope.tableParams.settings({ dataset: $scope.countryFilter }); } $scope.statusSelect = (z) => { var tmp = []; if($scope.x == 'all') tmp = $scope.model; else tmp = $scope.countryFilter ; var result = []; if(z != 'all'){ angular.forEach(tmp, (item) => { if($scope.status[item.sysStatus].label == z) result.push(item); }); $scope.tableParams.settings({ dataset: result }); }else{ $scope.tableParams.settings({ dataset: tmp }); } } $scope.quickCheck = () => { updateSqlStatus("/java/console/api/filePackage/totalVerifySqlFile"); } $scope.quitFile = () => { updateSqlStatus("/java/console/api/filePackage/totalOnholeSqlFile"); } $scope.help = () => { ngDialog.open({ template: 'statusHelp.html', width: 900, height: 600, closeByDocument: false, className: 'ngdialog-theme-default' }); } // watch for check all checkbox $scope.$watch(function() { return $scope.checkboxes.checked; }, function(value) { angular.forEach($scope.model, function(item) { $scope.checkboxes.items[item.id] = value; }); }); // watch for data checkboxes $scope.$watch(function() { return $scope.checkboxes.items; }, function(values) { $scope.checkable = false; for(var index in values){ if(values[index] == true){ $scope.checkable = true; break; } } var checked = 0, unchecked = 0, total = $scope.model.length; angular.forEach($scope.model, function(item) { checked += ($scope.checkboxes.items[item.id]) || 0; unchecked += Number((!$scope.checkboxes.items[item.id])) || 0; }); if ((unchecked == 0) || (checked == 0)) { $scope.checkboxes.checked = (checked == total); } // grayed checkbox angular.element($element[0].getElementsByClassName("select-all")).prop("indeterminate", (checked != 0 && unchecked != 0)); }, true); //查看 $scope.viewSql = (selected, type) => { ngDialog.open({ template: 'sqlView.html', controller:'Configs.SqlViewController', width: 1000, height: 600, scope: $scope, closeByDocument : false, data: {type: type, item: selected }, className: 'ngdialog-theme-default' }); } //上传 $scope.addSql = (selected, type) => { ngDialog.open({ template: 'sqlAdd.html', controller:'Configs.SqlAddController', width: 600, height: 600, scope: $scope, closeByDocument : false, data: {type: type, item: selected }, className: 'ngdialog-theme-default' }); } $scope.verifySql = (selected, type) => { ngDialog.open({ template: 'sqlVerification.html', controller:'Configs.sqlVerificationController', width: 1000, height: 600, scope: $scope, closeByDocument : false, data: {type: type, item: selected }, className: 'ngdialog-theme-default' }); } $scope.moveSql = (selected, type) => { ngDialog.open({ template: 'sqlMove.html', controller:'Configs.sqlMoveController', width: 600, height: 600, scope: $scope, closeByDocument : false, data: {type: type, item: selected }, className: 'ngdialog-theme-default' }); } $scope.$on('onOk', (event, data) => { Configs.create_mask(); //创建遮罩层 Kubernetes.create_locadEffect("正在更新文件,请稍等!"); //创建数据加载效果层 var target = document.getElementById('loading') var spinner = new Spinner(Kubernetes.loadConfigs()).spin(target); $http({ url: "/java/console/api/filePackage/handleSqlFile", method: "POST", params: {type: data.type, opt: data.opt}, data: JSON.stringify({ item: data.item, content: data.content }) }).success((data,header,config,status) => { $("#load").remove(); Kubernetes.removeMask(); shareUpdate(data); }).error((data,header,config,status) => { }); }); $scope.$on("replace", (event, data) => { $http({ url: "/java/console/api/filePackage/handleSqlFile", method: "POST", params: {type: data.type, opt: data.opt}, data: JSON.stringify({ item: data.item, content: data.content }) }).success((data,header,config,status) => { shareUpdate(data); }).error((data,header,config,status) => { Configs.customAlert("提示", "脚本替换或归档失败!", '',null, 0, "error"); }) }); function shareUpdate (data){ $scope.filterResult = $scope.model = SystemModel.sqlInfo = data.data; var result = []; if($scope.x != "all"){ angular.forEach($scope.filterResult, (item) => { if(item.cityName == $scope.x) result.push(item); }); $scope.filterResult = result; result = []; } if($scope.y != "all"){ angular.forEach($scope.filterResult, (item) => { if(item.districtName == $scope.y) result.push(item); }); $scope.filterResult = result; result = []; } $scope.tableParams.settings({ dataset: $scope.filterResult }); } function updateSqlStatus(url: string) { var items = []; if($scope.model && $scope.model.length > 0){ angular.forEach($scope.model, (item) => { if($scope.checkboxes.items[item.id]) items.push(item); }); } if(items.length <= 0) return; $http({ url: url, method: 'POST', data: JSON.stringify(items) }).success(function(data,header,config,status){ var result = data.data, filter; if($scope.z != 'all'){ result = []; angular.forEach(data.data, (item) =>{ if($scope.status[item.sysStatus].label == $scope.z) result.push(item); }); } filter = result; if($scope.x != 'all'){ filter = []; var tmp = []; angular.forEach(result, (item) => { if($scope.x == item.cityName) tmp.push(item); }); filter = tmp; if($scope.y != 'all'){ filter = []; angular.forEach(tmp, (item) => { if($scope.y == item.districtName) filter.push(item); }); } } $scope.tableParams.settings({ dataset: filter }); //响应成功 }).error(function(data,header,config,status){ //处理响应失败 }); } }]) }