angular.module('nurseApp').controller('alarmExpertConfigCtrl',['$scope','$filter','$rootScope','$modal','balert','bconfirm','baseTypeService','alarmExpertService','TemplateService','equipmentTemplateService','$q', function($scope,$filter,$rootScope,$modal,balert,bconfirm,baseTypeService,alarmExpertService,TemplateService,equipmentTemplateService,$q){ (function(){ $scope.selectEvent = { EquipmentId:'', baseEquipmentId:'', keyWor:'', expired:'NULL' //'NULL' 全部 0 未过期 1 过期 } $scope.alarmexpertList = [] $scope.equipmentTemplates = [] $scope.alarmexpertInfo = {} $scope.uploadFileList = [] $scope.allDevice = [] $scope.allTemplate = [] $scope.query = { baseEquipmentName:'' } equipmentTemplateService.getAllEquipmentTemplate().then(function (data) { $scope.allTemplates = data; baseTypeService.getDeviceList().then(function(data){ data.forEach(function(Equipment) { $scope.allDevice.push({ EquipmentId:Equipment.EquipmentId, EquipmentName:Equipment.EquipmentName, EquipmentTemplateId:Equipment.EquipmentTemplateId, baseEquipmentId:_.findWhere($scope.allTemplates,{EquipmentTemplateId:Equipment.EquipmentTemplateId}).EquipmentBaseType }); }); }) }); TemplateService.GetEquipmentBaseType().then(function (data) { $scope.equipmentTemplates = data; $scope.serch() }); })(); var setAlarmExpertDialog = $modal({ scope: $scope, templateUrl: 'partials/alarmExpert/setAlarmExpert.html', show: false }); $scope.alarmExpertDialog = { title:'', type:'' } $scope.serch = function(){ alarmExpertService.getAlarmexpert($scope.selectEvent).then(function(data){ if(data){ $scope.alarmexpertList = data $scope.tableParams.onChange('',undefined) } }) } $scope.getEquipmentBaseTypeName = function(baseId){ if(baseId == '2200') return "ALL" var result = _.find($scope.equipmentTemplates, function (item) { return item.baseEquipmentId == baseId }); if(result){ return result.baseEquipmentName } return baseId } $scope.getEquipmentNameByID = function(Id){ var result = _.find($scope.allDevice, function (item) { return item.EquipmentId == Id }); if(result){ return result.EquipmentName } return baseId } $scope.changeEquipmentBaseType = function(id){ } $scope.changeEquipment = function(id,selectEvent){ var deferred = $q.defer(); var TemplateId = _.findWhere($scope.allDevice,{EquipmentId:id}).EquipmentTemplateId TemplateService.GetEventByEquipmentTemplateId(TemplateId).then(function (data) { if(data){ $scope.EquipmentEvent = data deferred.resolve(data); } // if(selectEvent){ // $scope.alarmexpertInfo.EventId = selectEvent // }else{ // $scope.alarmexpertInfo.EventId = $scope.EquipmentEvent[0].EventId // } }); return deferred.promise; } //导出 $scope.exportToHtml = function () { $scope.loading = true alarmExpertService.getAlarmexpertAll().then(function (data) { if(data == "OK"){ $scope.loading = false downloadAlarmexpertURI("/upload/exportData.xls","/upload/exportData.xls") } else{ $scope.loading = false balert.show("danger", $scope.languageJson.alarmExpert.Prompt.ExportFailed, 3000); } }); }; //导入 star-------------------- var addAlarmExpertDialog = $modal({ scope: $scope, templateUrl: 'partials/alarmExpert/addAlarmExpert.html', show: false }); $scope.$on("fileSelected", function (event, msg) { $scope.file = msg; }); $scope.addAlarmExpertExcel = function () { addAlarmExpertDialog.$promise.then(addAlarmExpertDialog.show); }; $scope.analysisHtml = function () { $scope.loading = true; var file = $scope.file; if (file === undefined) return; console.log($scope.file); if ($scope.file.name != "exportData.xls"){ balert.show("danger", $scope.languageJson.alarmExpert.Prompt.fileName, 3000); //文件名不同禁止导入 $scope.loading = false return; } alarmExpertService.ImportAlarmExpert($scope.file).then(function(data){ if(data == 'OK'){ balert.show("success", $scope.languageJson.alarmExpert.Prompt.addSuess, 3000);//添加成功 addAlarmExpertDialog.hide(); $scope.serch() }else{ $scope.loading = false balert.show("danger", $scope.languageJson.alarmExpert.Prompt.addFail, 3000);//添加失败 } }) } //导入 end-------------------- function downloadAlarmexpertURI(uri,name){ var link = document.createElement('a') link.download = name link.target = '_blank' link.href = uri document.body.appendChild(link) link.click() document.body.removeChild(link) } /* 数组分页 pageNo 页码 pageSize 显示条数 array AllSignalList */ function pagination(pageNo, pageSize, array) { var offset = (pageNo - 1) * pageSize; return (offset + pageSize >= array.length) ? array.slice(offset, array.length) : array.slice(offset, offset + pageSize); } $scope.tableParams = { currentPage: 1,//当前页面 itemsPerPage: 10,//显示条数 pagesLength: 10, totalItems: 0,//总条数 hint: { the: $scope.languageJson.Paging.The, page: $scope.languageJson.Paging.Page, articel: $scope.languageJson.Paging.Articel, eachPage: $scope.languageJson.Paging.EachPage, total: $scope.languageJson.Paging.Total, noData: $scope.languageJson.Paging.NoData }, list: [], perPageOptions: [10, 20, 30, 40, 50], onChange: function (newValue, oldValue) { if (newValue == undefined) return; $scope.loading = true; var index = $scope.tableParams.currentPage;//当前页面 var size = $scope.tableParams.itemsPerPage;//显示条数 // var filterList = $filter('filter')(newValue,$scope.serch);//数据筛选 //分页 $scope.tableParams.list = pagination(index,size,$scope.alarmexpertList) $scope.tableParams.totalItems = $scope.alarmexpertList.length $rootScope.$emit('resultTotal', {}); $scope.loading = false; } }; $scope.setAlarmExpert = function(alarm){ console.log(alarm) $scope.uploadFileList = [] $scope.alarmexpertInfo = {} $scope.alarmExpertDialog.title = $scope.languageJson.alarmExpert.add + $scope.languageJson.alarmExpert.alarmList $scope.alarmExpertDialog.type = 'add' $scope.alarmexpertInfo.keyWord = alarm.meanings $scope.alarmexpertInfo.alarmexpertattachment = $scope.uploadFileList $scope.alarmexpertInfo.EquipmentId = alarm.deviceId $scope.changeEquipment($scope.alarmexpertInfo.EquipmentId).then(function(data){ if(data){ var event = _.findWhere(data,{EventName:alarm.eventName}) if(event){ $scope.alarmexpertInfo.EventId = event.EventId }else{ $scope.alarmexpertInfo.EventId = data[0].EventId } } }) TemplateService.GetEquipmentBaseType().then(function (data) { if(data){ $scope.equipmentTemplates = data; alarmExpertService.getEquipmentBaseType(alarm.deviceId).then(function(baseId){ if(baseId){ $scope.alarmexpertInfo.baseEquipmentId = baseId setAlarmExpertDialog.show() } }) } }); } //点击添加 $scope.addAlarmexpert = function(){ $scope.uploadFileList = [] $scope.alarmexpertInfo = {} $scope.alarmExpertDialog.title = $scope.languageJson.alarmExpert.add + $scope.languageJson.alarmExpert.alarmList $scope.alarmExpertDialog.type = 'add' $scope.alarmexpertInfo.alarmexpertattachment = $scope.uploadFileList // $scope.alarmexpertInfo.baseEquipmentId = $scope.equipmentTemplates[0].baseEquipmentId // var a = _.findWhere($scope.allDevice,{baseEquipmentId:$scope.alarmexpertInfo.baseEquipmentId}).EquipmentId $scope.alarmexpertInfo.EquipmentId = $scope.allDevice[0].EquipmentId $scope.changeEquipment($scope.alarmexpertInfo.EquipmentId).then(function(data){ if(data){ $scope.alarmexpertInfo.EventId = data[0].EventId } }) // $scope.alarmexpertInfo.baseEquipmentId = _.findWhere($scope.equipmentTemplates,{baseEquipmentId:$scope.allDevice[0].baseEquipmentId}).baseEquipmentId setAlarmExpertDialog.show() } //点击编辑 $scope.editAlarmexpert = function(rowData){ $scope.uploadedFileList = JSON.parse(JSON.stringify(rowData.alarmexpertattachment)) $scope.uploadFileList = [] $scope.alarmExpertDialog.title = $scope.languageJson.alarmExpert.edit + $scope.languageJson.alarmExpert.alarmList $scope.alarmExpertDialog.type = 'edit' $scope.alarmexpertInfo = JSON.parse(JSON.stringify(rowData)) $scope.alarmexpertInfo.EquipmentId = $scope.alarmexpertInfo.equipmentId $scope.alarmexpertInfo.EventId = $scope.alarmexpertInfo.eventId $scope.changeEquipment($scope.alarmexpertInfo.EquipmentId).then(function(data){ if(data){ $scope.alarmexpertInfo.EventId = $scope.alarmexpertInfo.eventId } }) $scope.alarmexpertInfo.verification == 1 ? $scope.isVerify = true : $scope.isVerify = false $scope.alarmexpertInfo.alarmexpertattachment = $scope.uploadFileList // $scope.uploadFileList = getUplodList($scope.alarmexpertInfo.alarmexpertattachment) setAlarmExpertDialog.show() } //点击详情 $scope.showAlarmexpert = function(rowData){ $scope.uploadedFileList = JSON.parse(JSON.stringify(rowData.alarmexpertattachment)) $scope.uploadFileList = [] $scope.alarmExpertDialog.title = $scope.languageJson.alarmExpert.alarmList + $scope.languageJson.alarmExpert.info $scope.alarmExpertDialog.type = 'info' $scope.alarmexpertInfo = rowData $scope.alarmexpertInfo.EquipmentId = $scope.alarmexpertInfo.equipmentId $scope.changeEquipment($scope.alarmexpertInfo.EquipmentId).then(function(data){ if(data){ $scope.alarmexpertInfo.EventId = $scope.alarmexpertInfo.eventId } }) $scope.alarmexpertInfo.verification == 1 ? $scope.isVerify = true : $scope.isVerify = false // $scope.uploadFileList = getUplodList($scope.alarmexpertInfo.alarmexpertattachment) setAlarmExpertDialog.show() } function getUplodList(arr){ var result = [] for (var i = 0; i < arr.length; i++) { result.push( { id:i+1, FileName:arr[i].attachmentName, File:arr[i].attachmentPath } ) } return result } //点击保存 $scope.setAlarmexpertInfo = function(alarmExpertDialog,alarmexpertInfo){ $scope.alarmexpertInfo = alarmexpertInfo $scope.loading = true; $scope.alarmexpertInfo.createrUser = localStorage.getItem("username") var danger = cheakFilterData($scope.alarmexpertInfo) if(danger){ balert.show("danger", danger, 3000); $scope.loading = false; return } if($scope.alarmexpertInfo.keyWord){ $scope.alarmexpertInfo.keyWord = $scope.alarmexpertInfo.keyWord.replaceAll(',',',') } switch (alarmExpertDialog.type) { case 'add': alarmexpertAdd() break; case 'edit': alarmexpertEdit() break; default: break; } } //告警专家知识录入 function alarmexpertAdd(){ alarmExpertService.alarmexpertAdd($scope.alarmexpertInfo).then(function(data){ if(data == 'OK'){ balert.show("success", $scope.languageJson.alarmExpert.Prompt.addSuess, 3000);//添加成功 $scope.serch() $scope.loading = false setAlarmExpertDialog.hide() }else{ $scope.loading = false balert.show("danger", $scope.languageJson.alarmExpert.Prompt.addFail, 3000);//添加失败 } }) } //告警专家知识编辑 function alarmexpertEdit(){ $scope.alarmexpertInfo.alarm_Id = $scope.alarmexpertInfo.alarmId var req = { alarm_Id:$scope.alarmexpertInfo.alarmId, title:$scope.alarmexpertInfo.title, problem:$scope.alarmexpertInfo.problem, solution:$scope.alarmexpertInfo.solution, // baseEquipmentId:$scope.alarmexpertInfo.baseEquipmentId, equipmentId:$scope.alarmexpertInfo.EquipmentId,//设备id eventId:$scope.alarmexpertInfo.EventId,//事件id keyWord:$scope.alarmexpertInfo.keyWord, verificationUser:$scope.alarmexpertInfo.verification == '1' ? $scope.alarmexpertInfo.createrUser : "", verification:$scope.alarmexpertInfo.verification, remarks:$scope.alarmexpertInfo.remarks, alarmexpertattachment:$scope.alarmexpertInfo.alarmexpertattachment } alarmExpertService.alarmexpertModify(req).then(function(data){ if(data == 'OK'){ balert.show("success", $scope.languageJson.alarmExpert.Prompt.editSuess, 3000);//修改成功 $scope.serch() $scope.loading = false setAlarmExpertDialog.hide() }else{ $scope.loading = false balert.show("danger", $scope.languageJson.alarmExpert.Prompt.editFail, 3000);//修改失败 } }) } //配置无效 $scope.confNotEffective = function(){ //确认配置无效? bconfirm.show($scope, $scope.languageJson.alarmExpert.save + $scope.languageJson.alarmExpert.notEffective + '?').then(function (data) { if (data) { $scope.loading = true var req = { alarm_Id:$scope.alarmexpertInfo.alarmId, expired:1 } alarmExpertService.alarmexpertModify(req).then(function(data){ if(data == 'OK'){ balert.show("success", $scope.languageJson.alarmExpert.Prompt.editSuess, 3000);//修改成功 $scope.serch() $scope.loading = false setAlarmExpertDialog.hide() }else{ $scope.loading = false balert.show("danger", $scope.languageJson.alarmExpert.Prompt.editFail, 3000);//修改失败 } }) } }); } function cheakFilterData(checkData){ var result = false if(!checkData.title){ return result = $scope.languageJson.alarmExpert.Prompt.titleNULL } if(!checkData.problem){ return result = $scope.languageJson.alarmExpert.Prompt.problemNULL } if(!checkData.solution){ return result = $scope.languageJson.alarmExpert.Prompt.solutionNULL } return result } $scope.$on("fileSelected", function (event, msg) { $scope.File = msg; $scope.loading=true; if ($scope.File == undefined) { // balert.show('danger', $scope.languageJson.Configuration.ImageControl.UploadError, 3000); $scope.loading=false; return; } if($scope.File.size > 512000){ balert.show('danger', "请选择小于500k的文件!", 3000); $scope.loading=false; return; } var reader = new FileReader(); //读取文件 reader.readAsDataURL($scope.File); //读取成功 reader.addEventListener('load', function(e) { var str = this.result; var id = $scope.uploadFileList.length + 1 $scope.uploadFileList.push( { id:id, FileName:$scope.File.name, File:str } ) $scope.loading=false; }); }); $scope.uploadFile = function(){ var $file = $('#file1') $file.focus().click(); } $scope.removeUpload = function(index){ $scope.uploadFileList.splice(index,1) } }])