3122 lines
145 KiB
JavaScript
3122 lines
145 KiB
JavaScript
angular.module('nurseApp')
|
||
// (重写)设备导航栏
|
||
.controller('sidebarCtrl',['$scope', '$rootScope', 'deviceService',
|
||
function($scope, $rootScope, deviceService){
|
||
$scope.isExpand = true;// 默认展开
|
||
$scope.SidebarId = localStorage.getItem("SidebarId");
|
||
$scope.SidebarPartId = localStorage.getItem("SidebarPartId");
|
||
|
||
(function(){
|
||
loadSidebar();
|
||
})();
|
||
|
||
function loadSidebar(){
|
||
deviceService.GetShowConfigureMold().then(function (sidebar) {
|
||
$scope.DeviceSidebar = sidebar;
|
||
if($scope.SidebarId == null && sidebar){
|
||
$scope.SidebarId = sidebar[0].configId;
|
||
if($scope.SidebarPartId == null && sidebar[0].parts){
|
||
$scope.SidebarPartId = sidebar[0].parts[0].configId;
|
||
}else{
|
||
$scope.SidebarPartId = -1;
|
||
}
|
||
//localStorage.setItem("SidebarId",$scope.SidebarId);
|
||
//localStorage.setItem("SidebarPartId",$scope.SidebarPartId);
|
||
}
|
||
//console.log(sidebar, $scope.SidebarId, $scope.SidebarPartId);
|
||
});
|
||
}
|
||
|
||
$rootScope.$on("loadSidebar", function (fun) {
|
||
loadSidebar();
|
||
});
|
||
|
||
$scope.sidebarActive = function(item, part){
|
||
if(part == undefined){
|
||
if(item && item.parts){
|
||
$scope.SidebarId = item.configId;
|
||
$scope.SidebarPartId = item.parts[0].configId;
|
||
window.location.href = '#/deviceInfo/'+item.parts[0].deviceId;
|
||
}else{
|
||
$scope.SidebarId = item.configId;
|
||
$scope.SidebarPartId = -1;
|
||
}
|
||
}else{
|
||
$scope.SidebarId = item.configId;
|
||
$scope.SidebarPartId = part.configId;
|
||
window.location.href = '#/deviceInfo/'+part.deviceId;
|
||
}
|
||
//localStorage.setItem("SidebarId",$scope.SidebarId);
|
||
//localStorage.setItem("SidebarPartId",$scope.SidebarPartId);
|
||
};
|
||
}
|
||
])
|
||
// (重写)设备详情页(活动告警、实时数据、设备控制)
|
||
.controller('deviceInfoCtrl',['$scope', '$rootScope', '$stateParams', '$interval', '$modal', 'deviceService', 'activeSignalService', 'activeDeviceService', 'alarmService', 'baseTypeService', 'userService', 'devcontrolService', 'balert',
|
||
function($scope, $rootScope, $stateParams, $interval, $modal, deviceService, activeSignalService, activeDeviceService, alarmService, baseTypeService, userService, devcontrolService, balert){
|
||
(function(){
|
||
if($stateParams.deviceId == 0){
|
||
deviceService.GetShowConfigureMold().then(function (sidebar) {
|
||
if(sidebar && sidebar[0].parts){
|
||
$scope.deviceId = sidebar[0].parts[0].deviceId;
|
||
loadDeviceInfo();
|
||
loadDeviceControl();
|
||
}
|
||
});
|
||
}else{
|
||
$scope.deviceId = $stateParams.deviceId;
|
||
loadDeviceInfo();
|
||
loadDeviceControl();
|
||
}
|
||
})();
|
||
|
||
function loadDeviceInfo(){
|
||
if(!$scope.deviceId) return;
|
||
// 活动告警
|
||
alarmService.getAlarmsByDeviceId($scope.deviceId).then(function (data) {
|
||
$scope.alarms = data;
|
||
});
|
||
// 实时数据
|
||
if($scope.tableParams){
|
||
var index = ($scope.tableParams.currentPage - 1)*$scope.tableParams.itemsPerPage;
|
||
var count = $scope.tableParams.itemsPerPage;
|
||
loadDeviceSignal($scope.deviceId, index, count);
|
||
}
|
||
}
|
||
|
||
//#region 活动告警
|
||
$scope.beginEndAlarm = function (uniqueId) {
|
||
|
||
$scope.selectedAlarmUniqueId = uniqueId;
|
||
//alert($scope.selectedAlarmUniqueId);
|
||
|
||
remarkDialog = $modal({
|
||
scope: $scope,
|
||
templateUrl: 'partials/alarmRemarkDialog.html',
|
||
show: false
|
||
});
|
||
|
||
remarkDialog.$promise.then(remarkDialog.show);
|
||
};
|
||
|
||
$scope.endEndAlarm = function (note) {
|
||
if (note == undefined || note == "") {
|
||
balert.show('danger', $scope.languageJson.RoomHome.AlarmTitle.EndAlarm.ReasonError, 3000);//'理由不能为空!'
|
||
return;
|
||
}
|
||
var logonId = localStorage.getItem("username");
|
||
var param = "'" + $scope.selectedAlarmUniqueId + "'|" + logonId + "|" + note;
|
||
|
||
alarmService.endAlarm(param).then(function (data) {
|
||
remarkDialog.hide();
|
||
});
|
||
};
|
||
//#endregion
|
||
|
||
//#region 实时数据
|
||
//分页对象定义
|
||
$scope.filter = {
|
||
isQuery: false
|
||
};
|
||
$scope.tableParams = {
|
||
currentPage: 1,//当前页面
|
||
itemsPerPage: 100,//显示条数
|
||
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: [100, 200, 500, 1000],//显示条数组
|
||
onChange: function (newValue, oldValue) {
|
||
if (newValue == undefined) return;
|
||
$scope.stop();
|
||
// var index = ($scope.tableParams.currentPage - 1)*$scope.tableParams.itemsPerPage;
|
||
// var count = $scope.tableParams.itemsPerPage;
|
||
// loadDeviceSignal($scope.deviceId, index, count);
|
||
$scope.start();
|
||
}
|
||
};
|
||
function loadDeviceSignal(deviceId, index, count){
|
||
activeDeviceService.getActiveDevices().then(function (data) {
|
||
var dev = undefined;
|
||
data.forEach(function (item) {
|
||
if (item.id == $stateParams.deviceId)
|
||
dev = item;
|
||
});
|
||
if (dev == undefined) return;
|
||
|
||
if (dev.status === "Alarm") dev.info = $scope.languageJson.RoomHome.AlarmTitle.DataTable.Alarm;//"告警中"
|
||
if (dev.status === "Normal") dev.info = $scope.languageJson.RoomHome.AlarmTitle.DataTable.Normal;//"正常运行"
|
||
if (dev.status === "Disconnect") dev.info = $scope.languageJson.RoomHome.AlarmTitle.DataTable.Disconnect;//"已中断"
|
||
|
||
dev.colorClass = function () {
|
||
if (dev.status === "Alarm") return "text-danger";
|
||
if (dev.status === "Normal") return "text-success";
|
||
if (dev.status === "Disconnect") return "text-muted";
|
||
};
|
||
|
||
dev.iconClass = function () {
|
||
if (dev.status === "Alarm") return "fa fa-bell";
|
||
if (dev.status === "Normal") return "fa fa-check";
|
||
if (dev.status === "Disconnect") return "fa fa-times";
|
||
};
|
||
|
||
$scope.device = dev;
|
||
});
|
||
activeSignalService.getActiveSignalByDeviceByPage(deviceId, index, count).then(function (signals) {
|
||
if ($scope.device && $scope.device.status != undefined && $scope.device.status == "Disconnect") {//设备状态为中断时,所有的信号状态都为中断
|
||
signals.forEach(function (item) {
|
||
item.alarmSeverity = -255;
|
||
});
|
||
}
|
||
$scope.tableParams.list = signals;
|
||
//console.log(deviceId, index, count, signals.length);
|
||
});
|
||
activeSignalService.getActiveSignalByDeviceTotal(deviceId).then(function (total) {
|
||
$scope.tableParams.totalItems = parseInt(total);
|
||
$rootScope.$emit('resultTotal',{});
|
||
//console.log($scope.deviceId, total);
|
||
});
|
||
}
|
||
$scope.getStatusLabel = function (status) {
|
||
if (status == 255)
|
||
return $scope.languageJson.RoomHome.AlarmTitle.DataTable.Normal;//"正常"
|
||
else if (status == -255)
|
||
return $scope.languageJson.RoomHome.AlarmTitle.DataTable.Disconnect;//"已中断"
|
||
else if (parseInt(status) >= 0 && parseInt(status) <= 3)
|
||
return $scope.languageJson.RoomHome.AlarmTitle.DataTable.Alarm;//"告警"
|
||
else
|
||
return $scope.languageJson.RoomHome.AlarmTitle.DataTable.Loading;//"加载中"
|
||
};
|
||
// 信号状态提示
|
||
$scope.getStatusTextClass = function (preClass, status) {
|
||
if (status == 255)
|
||
return preClass + " text-success";
|
||
else if (status >= 0 && status <= 3)
|
||
return preClass + " text-danger";
|
||
else
|
||
return "text-muted";
|
||
};
|
||
// 信号状态图标
|
||
$scope.getStatusIconClass = function (status) {
|
||
if (status == 255)
|
||
return "fa fa-check";
|
||
else if (status >= 0 && status <= 3)
|
||
return "fa fa-bell";
|
||
else
|
||
return "fa fa-times";
|
||
};
|
||
//#endregion
|
||
|
||
//#region 设备控制
|
||
function loadDeviceControl(){
|
||
if(!$scope.deviceId) return;
|
||
baseTypeService.GetAllControlMeaningByDeviceId($scope.deviceId,1).then(function(controls){
|
||
$scope.Controls = controls;
|
||
//console.log(controls);
|
||
});
|
||
}
|
||
|
||
var controlSetterDlg = $modal({
|
||
scope: $scope,
|
||
templateUrl: 'partials/controlauthorizesetter.html',
|
||
show: false
|
||
});
|
||
$scope.sendControlClk = function(control){
|
||
var isShow = false;
|
||
var value = "0";
|
||
if(control.CommandType == "1"){//遥调
|
||
isShow = false;
|
||
value = control.MinValue;
|
||
}else{//遥控
|
||
isShow = true;
|
||
value = control.ParameterValue;
|
||
}
|
||
$scope.controlinfo = {
|
||
isPwd : true,
|
||
isShow : isShow,
|
||
pwdType : 'LoginPassword',
|
||
Pwd : '',
|
||
deviceid : $scope.deviceId,
|
||
controlid : control.BaseTypeId,
|
||
optionType : value,
|
||
optionValue : value,
|
||
commdanType : control.CommandType,
|
||
min: control.MinValue,
|
||
max: control.MaxValue
|
||
};
|
||
controlSetterDlg.$promise.then(controlSetterDlg.show);
|
||
};
|
||
$scope.sendcontrol = function(){
|
||
var alert = $scope.languageJson.Configuration.RemoteControl.Alert;
|
||
var paras = $scope.controlinfo;
|
||
var userName = localStorage.getItem("username");
|
||
|
||
userService.changePassword(userName,paras.userpwd).then(function(data){
|
||
if(data == "OK"){
|
||
devcontrolService.senddevcontrol(paras.deviceid,paras.controlid,paras.optionType,userName).then(function(data){
|
||
if(data == "success"){
|
||
balert.show('success', alert.Succeed, 3000);//"下发命令成功!"
|
||
controlSetterDlg.hide();
|
||
}
|
||
else
|
||
balert.show('danger', alert.Failed, 3000);//"下发命令失败!"
|
||
});
|
||
}else
|
||
balert.show('danger', alert.PasswordError,3000);//'密码不正确,请重新输入!'
|
||
});
|
||
}
|
||
$scope.changeValue = function(value){
|
||
$scope.controlinfo.optionType = value;
|
||
};
|
||
//#endregion
|
||
|
||
//#region 定时器
|
||
var stop = undefined;
|
||
$scope.start = function () {
|
||
if (angular.isDefined(stop)) return;
|
||
|
||
loadDeviceInfo();
|
||
|
||
stop = $interval(function () {
|
||
loadDeviceInfo();
|
||
}, 3000);
|
||
};
|
||
|
||
$scope.stop = function () {
|
||
if (angular.isDefined(stop)) {
|
||
$interval.cancel(stop);
|
||
stop = undefined;
|
||
}
|
||
};
|
||
|
||
$scope.$on('$destroy', function () {
|
||
// Make sure that the interval is destroyed too
|
||
$scope.stop();
|
||
});
|
||
//#endregion
|
||
}
|
||
])
|
||
// (重写)配置管理
|
||
.controller('ConfigCtrl',['$scope', '$rootScope', '$modal', '$filter', 'notifyService', 'stationService', 'equipmentTemplateService', 'TemplateService', 'baseTypeService', 'uploadService', 'monitorUnitService', 'employeeService', 'equipmentService', 'portService', 'samplerUnitService', 'deviceService', 'balert', 'bconfirm',
|
||
function($scope, $rootScope, $modal, $filter, notifyService, stationService, equipmentTemplateService, TemplateService, baseTypeService, uploadService, monitorUnitService, employeeService, equipmentService, portService, samplerUnitService, deviceService, balert, bconfirm){
|
||
//#region 1.初始化配置
|
||
//配置分页基本参数
|
||
$scope.paginationConf = {
|
||
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
|
||
},
|
||
currentPage: 1,
|
||
itemsPerPage: 10,
|
||
pagesLength: 10,
|
||
totalItems: 0,
|
||
equipments: [],
|
||
perPageOptions: [10, 20, 30, 40, 50],
|
||
onChange: function () {
|
||
}
|
||
};
|
||
|
||
$scope.equipmentItems = -1;
|
||
|
||
//中心
|
||
$scope.center = {};
|
||
$scope.center.centerId = -1;
|
||
$scope.center.centerIP = "";
|
||
$scope.center.centerPort = -1;
|
||
$scope.center.centerDSIP = "";
|
||
$scope.center.Enable = false;
|
||
|
||
//局站
|
||
$scope.station = {};
|
||
$scope.stationId = -1;
|
||
$scope.station.stationName = "";
|
||
$scope.station.contactId = -1;
|
||
$scope.station.remark = "";
|
||
$scope.station.employee = {};
|
||
|
||
//监控单元
|
||
$scope.monitorUnit = {};
|
||
$scope.monitorUnit.MonitorUnitId = -1;
|
||
|
||
//模板
|
||
$scope.equipmentTemplate = {};
|
||
$scope.equipmentTemplate.EquipmentTemplateId = -1;
|
||
$scope.equipmentTemplate.EquipmentTemplateName = "";
|
||
|
||
//设备
|
||
$scope.equipment = {};
|
||
$scope.equipment.EquipmentId = -1;
|
||
$scope.equipment.EquipmentName = "";
|
||
$scope.equipment.EquipmentType = -1;
|
||
$scope.equipment.StationIArrayListd = -1;
|
||
$scope.equipment.EquipmentTemplateId = -1;
|
||
$scope.equipment.SamplerUnitId = -1;
|
||
$scope.equipment.MonitorUnitId = -1;
|
||
|
||
//端口
|
||
$scope.portFlag = 0;
|
||
$scope.port = {};
|
||
$scope.port.PortId = -1;
|
||
$scope.port.MonitorUnitId = -1;
|
||
$scope.port.PortNo = -1;
|
||
$scope.port.PortType = 0;
|
||
$scope.port.Setting = "9600,n,8,1";
|
||
$scope.port.PortTypeVar = {};
|
||
|
||
//采集单元
|
||
$scope.samplerUnit = {};
|
||
$scope.samplerUnit.SamplerUnitId = -1;
|
||
$scope.samplerUnit.PortId = -1;
|
||
$scope.samplerUnit.MonitorUnitId = -1;
|
||
$scope.samplerUnit.Address = 1;
|
||
$scope.samplerUnit.DllPath = "";
|
||
$scope.samplerUnit.SamplerId = -1;
|
||
$scope.samplerUnit.SamplerType = -1;
|
||
$scope.samplerUnit.SamplerUnitName = "";
|
||
|
||
$scope.Template = {
|
||
EquipmentCategory: [],
|
||
Property: []
|
||
};
|
||
$scope.Signal = {
|
||
SignalCategory: [],
|
||
SignalType: [],
|
||
ChannelType: [],
|
||
DataType: []
|
||
};
|
||
$scope.Event = {
|
||
EventCategory: [],
|
||
StartType: [],
|
||
EndType: [],
|
||
EventSeverity: []
|
||
};
|
||
$scope.Control = {
|
||
ControlCategory: [],
|
||
ControlSeverity: [],
|
||
CommandType: [],
|
||
ControlType: [],
|
||
DataType: []
|
||
};
|
||
$scope.seleBaseType = {};
|
||
//#endregion
|
||
|
||
//#region 2.初始化数据
|
||
(function(){
|
||
//获取端口类型
|
||
notifyService.getDataItems("39").then(function (data) {
|
||
var result = data;
|
||
if (result == "fail to get dataItems") {
|
||
alert($scope.languageJson.Config.Failed.Title);/*获取端口类型失败,请检查连接是否正常!*/
|
||
} else {
|
||
$scope.portTypes = parsePortTypes(data);
|
||
}
|
||
});
|
||
//进入局站管理页面后,判断局站是否进行初始化,如果没有初始化,初始化局站
|
||
stationService.initStationInfo().then(function (data) {
|
||
var result = data;
|
||
if (result == "fail to init station info") {
|
||
balert.show('danger', $scope.languageJson.Config.Failed.Initialization, 3000);/*'初始化局站失败,请检查连接是否正常!'*/
|
||
} else {
|
||
//获取局站数据
|
||
stationService.getStationInfo().then(function (data) {
|
||
var result = data;
|
||
if (result == "fail to get station info") {
|
||
balert.show('danger', $scope.languageJson.Config.Failed.Station, 3000);/*'获取局站信息失败,请检查连接是否正常!'*/
|
||
} else {
|
||
getStation(result);
|
||
|
||
//获取中心配置
|
||
stationService.getCenterInfo().then(function (data) {
|
||
var result = data;
|
||
if (result == "fail to get center info") {
|
||
balert.show('danger', $scope.languageJson.Config.Failed.Center, 3000);/*'获取中心信息失败,请检查连接是否正常!'*/
|
||
} else {
|
||
getCenter(result);
|
||
}
|
||
});
|
||
|
||
//获取监控单元数据
|
||
monitorUnitService.getMonitorUnit($scope.stationId).then(function (data) {
|
||
$scope.monitorUnit = getMonitorUnit(data);
|
||
});
|
||
|
||
//获取人员信息
|
||
employeeService.getAllEmployees().then(function (data) {
|
||
$scope.employees = parseEmployees(data);
|
||
|
||
for (var i = 0; i < $scope.employees.length; i++) {
|
||
if ($scope.employees[i].EmployeeId == $scope.station.contactId) {
|
||
$scope.station.employee = $scope.employees[i];
|
||
break;
|
||
}
|
||
}
|
||
});
|
||
}
|
||
});
|
||
}
|
||
});
|
||
|
||
$scope.selectEvent = {};
|
||
//初始化 模板列表
|
||
equipmentTemplateService.getAllEquipmentTemplate().then(function (data) {
|
||
$scope.equipmentTemplates = parseEquipmentTemplate(data);
|
||
if ($scope.equipmentTemplates[0])
|
||
$scope.selectEvent.EquipmentTemplateId = $scope.equipmentTemplates[0].EquipmentTemplateId;
|
||
});
|
||
|
||
//初始化等级信息
|
||
$scope.selectEventSever = {};
|
||
TemplateService.getAllEventSeverity().then(function (data) {
|
||
$scope.equipmentEvent = data;
|
||
$scope.selectEventSever.EventSeverity = $scope.equipmentEvent[0].EventSeverity;
|
||
});
|
||
|
||
function initTemplateDataItem() {
|
||
TemplateService.GetDataItemByEntryId("7").then(function (data) {
|
||
$scope.Template.EquipmentCategory = data;
|
||
});
|
||
TemplateService.GetDataItemByEntryId("9").then(function (data) {
|
||
$scope.Template.Property = data;
|
||
});
|
||
TemplateService.GetEquipmentBaseType().then(function (data) {
|
||
$scope.Template.EquipmentBaseType = data;
|
||
});
|
||
TemplateService.GetDataItemByEntryId("17").then(function (data) {
|
||
$scope.Signal.SignalCategory = data;
|
||
});
|
||
TemplateService.GetDataItemByEntryId("18").then(function (data) {
|
||
$scope.Signal.SignalType = data;
|
||
});
|
||
TemplateService.GetDataItemByEntryId("22").then(function (data) {
|
||
$scope.Signal.ChannelType = data;
|
||
});
|
||
TemplateService.GetDataItemByEntryId("70").then(function (data) {
|
||
$scope.Signal.DataType = data;
|
||
});
|
||
|
||
TemplateService.GetDataItemByEntryId("24").then(function (data) {
|
||
$scope.Event.EventCategory = data;
|
||
});
|
||
TemplateService.GetDataItemByEntryId("25").then(function (data) {
|
||
$scope.Event.StartType = data;
|
||
});
|
||
TemplateService.GetDataItemByEntryId("26").then(function (data) {
|
||
$scope.Event.EndType = data;
|
||
});
|
||
TemplateService.GetDataItemByEntryId("23").then(function (data) {
|
||
$scope.Event.EventSeverity = data;
|
||
});
|
||
|
||
TemplateService.GetDataItemByEntryId("31").then(function (data) {
|
||
$scope.Control.ControlCategory = data;
|
||
});
|
||
TemplateService.GetDataItemByEntryId("28").then(function (data) {
|
||
$scope.Control.ControlSeverity = data;
|
||
});
|
||
TemplateService.GetDataItemByEntryId("32").then(function (data) {
|
||
$scope.Control.CommandType = data;
|
||
});
|
||
TemplateService.GetDataItemByEntryId("68").then(function (data) {
|
||
$scope.Control.ControlType = data;
|
||
});
|
||
TemplateService.GetDataItemByEntryId("70").then(function (data) {
|
||
$scope.Control.DataType = data;
|
||
});
|
||
uploadService.GetAllJsonTemplates().then(function (data) {
|
||
$scope.ConfigTemplates = parseJsonTemplate(data);
|
||
});
|
||
uploadService.GetAllJsonConfiguration().then(function (data) {
|
||
$scope.JsonConfiguration = parseJsonTemplate(data);
|
||
});
|
||
|
||
};
|
||
initTemplateDataItem();
|
||
|
||
baseTypeService.getDeviceList().then(function(data){
|
||
$scope.AllDevices = data;
|
||
});
|
||
})();
|
||
//解析端口类型数据
|
||
function parsePortTypes(data) {
|
||
|
||
var dataArray = [];
|
||
var lan = $scope.languageJson.Language;
|
||
data.forEach(function (element, index) {
|
||
//if (element.ItemId == 1 || element.ItemId == 5 || element.ItemId == 6)
|
||
if (element.ItemId == 1 || element.ItemId == 5 || element.ItemId == 6 || element.ItemId == 3 || element.ItemId == 19) {
|
||
//只保留串口和网口
|
||
var portType = {};
|
||
portType.PortTypeId = element.ItemId;
|
||
if (lan == "Chinese")
|
||
portType.PortTypeValue = element.ItemValue;
|
||
else
|
||
portType.PortTypeValue = element.ItemAlias;
|
||
dataArray.push(portType);
|
||
}
|
||
});
|
||
|
||
return dataArray;
|
||
}
|
||
// 解析设备模板
|
||
function parseEquipmentTemplate(data) {
|
||
var result = [];
|
||
if (data) {
|
||
data.forEach(function (item) {
|
||
if (item.SoName != undefined && item.SoName.indexOf(".") != -1) {
|
||
var index = item.SoName.indexOf(".");
|
||
item.SoName = item.SoName.substring(0, index) + ".so";
|
||
if(result.length == 0){
|
||
result.push(item);
|
||
}else{
|
||
var f = _.findWhere(result, {EquipmentTemplateId:item.EquipmentTemplateId});
|
||
if(f == undefined){
|
||
result.push(item);
|
||
}
|
||
}
|
||
}
|
||
});
|
||
}
|
||
return result;
|
||
}
|
||
// 解析组态模板
|
||
function parseJsonTemplate(data) {
|
||
data.forEach(function (item) {
|
||
if ($scope.languageJson.Language != "Chinese") {
|
||
if (item.id == "201") item.name = $scope.languageJson.ConfigurationType.CT201;
|
||
else if (item.id == "301") item.name = $scope.languageJson.ConfigurationType.CT301;
|
||
else if (item.id == "401") item.name = $scope.languageJson.ConfigurationType.CT401;
|
||
else if (item.id == "402") item.name = $scope.languageJson.ConfigurationType.CT402;
|
||
else if (item.id == "501") item.name = $scope.languageJson.ConfigurationType.CT501;
|
||
else if (item.id == "702") item.name = $scope.languageJson.ConfigurationType.CT702;
|
||
else if (item.id == "1001") item.name = $scope.languageJson.ConfigurationType.CT1001;
|
||
else if (item.id == "1004") item.name = $scope.languageJson.ConfigurationType.CT1004;
|
||
else if (item.id == "1006") item.name = $scope.languageJson.ConfigurationType.CT1006;
|
||
else if (item.id == "1101") item.name = $scope.languageJson.ConfigurationType.CT1101;
|
||
else if (item.id == "1201") item.name = $scope.languageJson.ConfigurationType.CT1201;
|
||
else if (item.id == "1501") item.name = $scope.languageJson.ConfigurationType.CT1501;
|
||
else if (item.id == "2001") item.name = $scope.languageJson.ConfigurationType.CT2001;
|
||
}
|
||
if (item.name == "8888") item.name = $scope.languageJson.Configuration.ConfigurationPage.Export.Topology;//"拓扑图"
|
||
else if (item.name == "8889") item.name = $scope.languageJson.Configuration.ConfigurationPage.Export.MDC;//"MDC统计";
|
||
//else if(item.name == "8890") item.name = $scope.languageJson.Configuration.ConfigurationPage.Export.IView;//"iView首页";
|
||
else if (item.name == "9999") item.name = $scope.languageJson.Configuration.ConfigurationPage.Export.Blank;//"空白页面";
|
||
else if (item.name == "9999.table") item.name = $scope.languageJson.Configuration.ConfigurationPage.Export.Table;//"表格页面";
|
||
});
|
||
return data;
|
||
}
|
||
// 获取站点信息
|
||
function getStation(data) {
|
||
|
||
data.forEach(function (element, index) {
|
||
$scope.stationId = element.StationId;
|
||
$scope.station.stationName = element.StationName;
|
||
$scope.station.contactId = element.ContactId;
|
||
$scope.station.remark = element.Description;
|
||
});
|
||
}
|
||
// 获取中心站点信息
|
||
function getCenter(data) {
|
||
|
||
data.forEach(function (element, index) {
|
||
$scope.center.centerId = element.CenterId;
|
||
$scope.center.centerIP = element.CenterIP;
|
||
$scope.center.centerDSIP = element.CenterDSIP;
|
||
$scope.center.centerPort = element.CenterPort;
|
||
if (element.Enable == "true") {
|
||
$scope.center.Enable = true;
|
||
} else {
|
||
$scope.center.Enable = false;
|
||
}
|
||
|
||
});
|
||
}
|
||
// 获取监控器信息
|
||
function getMonitorUnit(data) {
|
||
var mu = {};
|
||
|
||
data.forEach(function (element, index) {
|
||
mu.MonitorUnitId = element.MonitorUnitId;
|
||
});
|
||
|
||
return mu;
|
||
}
|
||
// 解析人员信息
|
||
function parseEmployees(data) {
|
||
|
||
var dataArray = [];
|
||
|
||
data.forEach(function (element, index) {
|
||
var employee = {};
|
||
employee.EmployeeId = element.EmployeeId;
|
||
employee.EmployeeName = element.EmployeeName;
|
||
employee.Mobile = element.Mobile;
|
||
employee.Email = element.Email;
|
||
dataArray.push(employee);
|
||
});
|
||
|
||
return dataArray;
|
||
}
|
||
//#endregion
|
||
|
||
//#region 3.设备信息管理
|
||
//#region 3.1.新增设备
|
||
var addEquipmentDialog = $modal({
|
||
scope: $scope,
|
||
templateUrl: 'fsu_model/partials/addEquipment.html',
|
||
show: false
|
||
});
|
||
$scope.addEquipmentClick = function(){
|
||
//增加设备前初始化
|
||
$scope.equipmentTemplate = {};
|
||
$scope.equipment = {};
|
||
$scope.port = {};
|
||
$scope.samplerUnit = {};
|
||
$scope.portType = undefined;
|
||
$scope.portFlag = 0;
|
||
$scope.configurationType = "";
|
||
$scope.templates = false;
|
||
$scope.uploadGroup = false;
|
||
addEquipmentDialog.$promise.then(addEquipmentDialog.show);
|
||
};
|
||
$scope.addClick = function(){
|
||
//增加设备前校验输入是否正确
|
||
//判断是否输入完成
|
||
if ($scope.equipment.EquipmentName == undefined) {
|
||
balert.show('danger', $scope.languageJson.Config.Config.Enter, 3000);/*请输入设备名称!*/
|
||
return;
|
||
}
|
||
//检查名称长度是否超长
|
||
if ($scope.equipment.EquipmentName.length > 128) {
|
||
balert.show('danger', $scope.languageJson.Config.Config.Allowed, 3000);/*设备名称长度不允许超过128位!*/
|
||
return;
|
||
}
|
||
//检查端口、采集单元信息是否输入正确
|
||
if (!PortAndSPUnitValidate($scope.monitorUnit.MonitorUnitId)) {
|
||
return;
|
||
}
|
||
//虚拟端口:106端口只能配置成IO设备
|
||
var isPortNo = false;
|
||
if ($scope.port.PortNo == 106) {
|
||
if ($scope.equipment.EquipmentType != 1004) {
|
||
balert.show('danger', $scope.languageJson.Config.Config.Ports, 3000);/*'106端口只能配置成IO设备!'*/
|
||
return;
|
||
}
|
||
}
|
||
//终端服务端口:已存在100端口,开放端口设置
|
||
if ($scope.port.PortType == 6) {
|
||
if ($scope.port.PortNo < 100 || $scope.port.PortNo >= 201) {
|
||
balert.show('danger', $scope.languageJson.Config.Config.Network, 3000);/*'网口的端口号只能在100-200之间!'*/
|
||
return;
|
||
}
|
||
}
|
||
//非基本串口,不可重复端口号
|
||
if (parseInt($scope.port.PortType) != 1 && parseInt($scope.port.PortType) != 6) {
|
||
$scope.paginationConf.equipments.forEach(function (item, index) {
|
||
if (item.PortNo == $scope.port.PortNo) {
|
||
isPortNo = true;
|
||
}
|
||
});
|
||
if (isPortNo) {
|
||
balert.show('danger', $scope.languageJson.Config.Config.Repeated, 3000);/*'端口已存在,不能重复!'*/
|
||
return;
|
||
}
|
||
}
|
||
|
||
//判断设备是否重名、端口的地址是否重复
|
||
equipmentService.checkEquipmentConfig(0, $scope.equipment.EquipmentName, $scope.port.PortNo, $scope.samplerUnit.Address).then(function (result) {
|
||
if (result == "OK") {
|
||
//新增设备
|
||
AddEquipment($scope.monitorUnit.MonitorUnitId);
|
||
} else if (result == "Name Exists") {
|
||
balert.show('danger', $scope.languageJson.Config.Config.Exists, 3000);/*'设备名称已存在!'*/
|
||
return;
|
||
} else if (result == "Address Exists") {
|
||
balert.show('danger', $scope.languageJson.Config.Config.Script, 3000);/*'同端口的地址不能重复!'*/
|
||
return;
|
||
} else {
|
||
balert.show('danger', $scope.languageJson.Config.Config.Wrong, 3000);/*'脚本错误,请尝试其他端口!'*/
|
||
return;
|
||
}
|
||
});
|
||
};
|
||
//新增设备前校验端口和采集单元设置
|
||
function PortAndSPUnitValidate(monitorUnitId) {
|
||
|
||
if ($scope.port.PortNo == "" || $scope.port.PortNo == undefined) {
|
||
balert.show('danger', $scope.languageJson.Config.Port.Title, 3000);/*'请输入端口号'*/
|
||
return false;
|
||
}
|
||
if (isNaN($scope.port.PortNo)) {
|
||
balert.show('danger', $scope.languageJson.Config.Port.Entered, 3000);/*'端口号输入有误!'*/
|
||
return false;
|
||
}
|
||
if ($scope.port.PortType == undefined) {
|
||
balert.show('danger', $scope.languageJson.Config.Port.Select, 3000);/*'请选择端口类型'*/
|
||
return false;
|
||
}
|
||
if ($scope.port.Setting == "" || $scope.port.Setting == undefined) {
|
||
balert.show('danger', $scope.languageJson.Config.Port.Communication, 3000);/*'请输入通讯参数'*/
|
||
return false;
|
||
}
|
||
if ($scope.samplerUnit.Address == "" || $scope.samplerUnit.Address == undefined) {
|
||
balert.show('danger', $scope.languageJson.Config.Port.Address, 3000);/*'请输入地址'*/
|
||
return false;
|
||
}
|
||
if (isNaN($scope.samplerUnit.Address)) {
|
||
balert.show('danger', $scope.languageJson.Config.Port.Incorrectly, 3000);/*'地址输入有误!'*/
|
||
return false;
|
||
}
|
||
if ($scope.samplerUnit.DllPath == "" || $scope.samplerUnit.DllPath == undefined) {
|
||
balert.show('danger', $scope.languageJson.Config.Port.SO, 3000);/*'请输入SO库名!'*/
|
||
return false;
|
||
}
|
||
|
||
return true;
|
||
}
|
||
function AddEquipment(monitorUnitId) {
|
||
//增加端口
|
||
// FSU特殊处理
|
||
if($scope.port.PortType == "1") $scope.port.PortType = "6";
|
||
portService.getInsertPort($scope.port).then(function (data) {
|
||
if (data == "fail to get insert port") {
|
||
//插入失败
|
||
balert.show('danger', $scope.languageJson.Config.Config.Failed, 3000);/*'插入端口失败,请检查连接是否正常!'*/
|
||
return;
|
||
} else {
|
||
//插入成功,返回portId
|
||
$scope.samplerUnit.PortId = parseInt(data);
|
||
samplerUnitService.getInsertSamplerUnit($scope.samplerUnit).then(function (data) {
|
||
if (data == "fail to get insert samplerUnit") {
|
||
//插入失败
|
||
balert.show('danger', $scope.languageJson.Config.Config.Connection, 3000);/*'插入采集单元失败,请检查连接是否正常!'*/
|
||
return;
|
||
} else {
|
||
//插入成功,返回samplerUnitId
|
||
$scope.equipment.SamplerUnitId = parseInt(data);
|
||
$scope.equipment.StationId = $scope.stationId;
|
||
$scope.equipment.EquipmentTemplateId = $scope.equipmentTemplate.EquipmentTemplateId;
|
||
$scope.equipment.MonitorUnitId = $scope.monitorUnit.MonitorUnitId;
|
||
|
||
equipmentService.getInsertEquipment($scope.equipment,$scope.configurationType).then(function (data) {
|
||
if (data == "fail to get insert equipment") {
|
||
//插入失败
|
||
balert.show('danger', $scope.languageJson.Config.Config.Faileds, 3000);/*'插入设备失败,请检查连接是否正常!'*/
|
||
return;
|
||
} else {
|
||
$scope.equipmentItems = parseInt(data);
|
||
$scope.paginationConf.totalItems = $scope.equipmentItems;
|
||
|
||
balert.show('success', $scope.languageJson.Config.Config.Equipments, 3000);/*'增加设备成功!'*/
|
||
addEquipmentDialog.hide();
|
||
}
|
||
});
|
||
}
|
||
});
|
||
}
|
||
});
|
||
}
|
||
//#endregion
|
||
|
||
//#region 3.1.1.新增设备:选择协议文件
|
||
var templateDialog = $modal({
|
||
scope: $scope,
|
||
templateUrl: 'partials/selectTemplate.html',
|
||
show: false
|
||
});
|
||
$scope.selectTemplateClick = function(){
|
||
equipmentTemplateService.getAllEquipmentTemplate().then(function (data) {
|
||
$scope.equipmentTemplates = data;
|
||
|
||
//初始化
|
||
$scope.equipmentTemplate = {};
|
||
$scope.equipment = {};
|
||
$scope.port = {};
|
||
$scope.samplerUnit = {};
|
||
$scope.portFlag = 0;
|
||
|
||
templateDialog.$promise.then(templateDialog.show);
|
||
});
|
||
};
|
||
$scope.selectEquipmentTemplateId = function (equipmentTemplateId) {
|
||
$scope.selectedTemplateId = equipmentTemplateId;
|
||
};
|
||
$scope.select = function () {
|
||
|
||
if ($scope.selectedTemplateId == undefined) {
|
||
balert.show('danger', $scope.languageJson.Select.Please, 3000);/*请选择模板!*/
|
||
return;
|
||
}
|
||
|
||
//获取所选模板
|
||
equipmentTemplateService.getEquipmentTemplate($scope.selectedTemplateId).then(function (data) {
|
||
$scope.equipmentTemplate = getEquipmentTemplate(data);
|
||
|
||
//获取默认设备名
|
||
equipmentService.getDefaultEquipment($scope.monitorUnit.MonitorUnitId, $scope.equipmentTemplate.EquipmentTemplateId).then(function (data) {
|
||
$scope.equipment = getEquipment(data);
|
||
});
|
||
|
||
//获取默认端口
|
||
$scope.portNoChange(1);
|
||
});
|
||
|
||
$scope.selectedTemplateId = undefined;
|
||
templateDialog.hide();
|
||
};
|
||
function getEquipmentTemplate(data) {
|
||
var template = {};
|
||
|
||
data.forEach(function (element, index) {
|
||
template.EquipmentTemplateId = element.EquipmentTemplateId;
|
||
template.EquipmentTemplateName = element.EquipmentTemplateName;
|
||
});
|
||
|
||
return template;
|
||
}
|
||
function getEquipment(data) {
|
||
var equipment = {};
|
||
|
||
data.forEach(function (element, index) {
|
||
equipment.EquipmentId = element.EquipmentId;
|
||
equipment.EquipmentName = element.EquipmentName;
|
||
equipment.EquipmentType = element.EquipmentType;
|
||
});
|
||
|
||
return equipment;
|
||
}
|
||
function getPort(data) {
|
||
var port = {};
|
||
|
||
data.forEach(function (element, index) {
|
||
port.PortId = element.PortId;
|
||
port.MonitorUnitId = element.MonitorUnitId;
|
||
port.PortName = element.PortName;
|
||
port.PortNo = element.PortNo;
|
||
port.PortType = element.PortType;
|
||
port.Setting = element.Setting;
|
||
});
|
||
|
||
return port;
|
||
}
|
||
function getSamplerUnit(data) {
|
||
var samplerUnit = {};
|
||
|
||
data.forEach(function (element, index) {
|
||
samplerUnit.SamplerUnitId = element.SamplerUnitId;
|
||
samplerUnit.PortId = element.PortId;
|
||
samplerUnit.MonitorUnitId = element.MonitorUnitId;
|
||
samplerUnit.Address = element.Address;
|
||
samplerUnit.DllPath = element.DllPath;
|
||
samplerUnit.SamplerId = element.SamplerId;
|
||
samplerUnit.SamplerType = element.SamplerType;
|
||
samplerUnit.SamplerUnitName = element.SamplerUnitName;
|
||
});
|
||
|
||
return samplerUnit;
|
||
}
|
||
function parsePortByFSU(port, samplerUnit){
|
||
if(port.PortType == "1"){
|
||
if(samplerUnit && samplerUnit.Address){
|
||
var portNo = port.PortNo;
|
||
if(portNo.length < 2) portNo = "0"+portNo;
|
||
port.Setting = "127.0.0.1:80"+portNo;
|
||
}
|
||
}
|
||
return port;
|
||
}
|
||
// 端口号 值变化事件
|
||
$scope.portNoChange = function(portNo){
|
||
portService.getDefaultPort($scope.monitorUnit.MonitorUnitId, portNo).then(function (data) {
|
||
$scope.port = getPort(data);
|
||
$scope.portFlag = 1;
|
||
if($scope.port.PortType == "6" && parseInt($scope.port.PortNo) <= 16){
|
||
$scope.port.PortTypeVar = $scope.portTypes[0];
|
||
$scope.port.PortType = "1";
|
||
}else{
|
||
for (var i = 0; i < $scope.portTypes.length; i++) {
|
||
if ($scope.portTypes[i].PortTypeId == $scope.port.PortType) {
|
||
$scope.port.PortTypeVar = $scope.portTypes[i];
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
//获取默认采集单元
|
||
samplerUnitService.getDefaultSamplerUnit($scope.equipmentTemplate.EquipmentTemplateId, $scope.port.PortId, $scope.port.PortNo, $scope.monitorUnit.MonitorUnitId).then(function (data) {
|
||
$scope.samplerUnit = getSamplerUnit(data);
|
||
// FSU版特殊处理
|
||
$scope.port = parsePortByFSU($scope.port, $scope.samplerUnit);
|
||
});
|
||
});
|
||
};
|
||
// 端口类型 值变化直接
|
||
$scope.portTypeChange = function (portTypeId) {
|
||
//portTypeId => 串口:1、SNMP口:3、虚拟端口:5、网口:6、简单逻辑口:19
|
||
|
||
$scope.port.PortType = portTypeId;
|
||
$(".address-text").html($scope.languageJson.Config.Equipment.Address);
|
||
$(".address-input").show();
|
||
|
||
//端口不重复
|
||
if (portTypeId == 3 || portTypeId == 6 || portTypeId == 19) {
|
||
var nextNo = 1;
|
||
if ($scope.paginationConf && $scope.paginationConf.equipments) {
|
||
$scope.paginationConf.equipments.forEach(function (item) {
|
||
if (item.PortNo != 106 && parseInt(item.PortNo) > nextNo)
|
||
nextNo = parseInt(item.PortNo);
|
||
});
|
||
}
|
||
|
||
if ($scope.port.PortNo < 100) {
|
||
if (portTypeId == 3) {//SNMP
|
||
if (nextNo >= 150)
|
||
$scope.port.PortNo = nextNo + 1;
|
||
else
|
||
$scope.port.PortNo = 150;
|
||
} else if (portTypeId == 19) {//简单逻辑串口
|
||
if (nextNo > 200)
|
||
$scope.port.PortNo = nextNo + 1;
|
||
else
|
||
$scope.port.PortNo = 201;
|
||
} else {//网口
|
||
if (nextNo == 105)
|
||
$scope.port.PortNo = 107;
|
||
else if (nextNo >= 100)
|
||
$scope.port.PortNo = nextNo + 1;
|
||
else
|
||
$scope.port.PortNo = 100;
|
||
}
|
||
}
|
||
}
|
||
|
||
//通讯参数文本 与 IP参数文本 切换
|
||
if (portTypeId != 1 && portTypeId != 5) {
|
||
$(".param-text").html($scope.languageJson.Config.Equipment.IPParameters);
|
||
} else
|
||
$(".param-text").html($scope.languageJson.Config.Equipment.Parameters);
|
||
//通讯参数值
|
||
if (portTypeId == 1) {//串口
|
||
$scope.port.Setting = "127.0.0.1:8001";
|
||
$scope.port.PortNo = 1;
|
||
} else if (portTypeId == 3 || portTypeId == 6 || portTypeId == 19) {//SNMP口:3、网口:6、简单逻辑口:19
|
||
$scope.port.Setting = "127.0.0.1:7070";
|
||
} else if (portTypeId == 5) {//虚拟口
|
||
$scope.port.Setting = "comm_io_dev.so";
|
||
$scope.port.PortNo = 106;
|
||
}
|
||
$scope.portNoChange($scope.port.PortNo);
|
||
};
|
||
//#endregion
|
||
|
||
//#region 3.2.新增IO设备
|
||
var ioTemplateDialog = $modal({
|
||
scope: $scope,
|
||
templateUrl: 'partials/selectIOTemplate.html',
|
||
show: false
|
||
});
|
||
$scope.addIOEquipmentClick = function(){
|
||
//增加设备前初始化
|
||
$scope.equipmentTemplate = {};
|
||
$scope.equipment = {};
|
||
$scope.port = {};
|
||
$scope.samplerUnit = {};
|
||
|
||
//判断是否存在IO设备
|
||
equipmentService.getIOEquipments($scope.stationId).then(function (data) {
|
||
//返回IO设备个数
|
||
var result = data;
|
||
if (result == "fail to get io equipments") {
|
||
/*查看IO设备是否存在失败,请检查数据库连接是否正常*/
|
||
balert.show('danger', $scope.languageJson.Config.Config.Check, 3000);
|
||
} else {
|
||
var ioEquipments = data.length;
|
||
if (ioEquipments > 0) {
|
||
balert.show('danger', $scope.languageJson.Config.Config.Already, 3000);/*已存在IO设备,不允许重复增加!*/
|
||
} else {
|
||
//插入IO设备
|
||
/*请确认是否增加IO设备?*/
|
||
bconfirm.show($scope, $scope.languageJson.Config.Config.Pease).then(function (data) {
|
||
if (data) {
|
||
InsertIOEquipment();
|
||
}
|
||
});
|
||
}
|
||
}
|
||
});
|
||
};
|
||
$scope.selectIO = function () {
|
||
if ($scope.selectedIOTemplateId == undefined) {
|
||
balert.show('danger', $scope.languageJson.Select.Please, 3000);/*请选择模板!*/
|
||
return;
|
||
}
|
||
|
||
AddIOEquipment($scope.selectedIOTemplateId);
|
||
|
||
ioTemplateDialog.hide();
|
||
};
|
||
$scope.selectIOEquipmentTemplateId = function (equipmentTemplateId) {
|
||
$scope.selectedIOTemplateId = equipmentTemplateId;
|
||
};
|
||
function InsertIOEquipment() {
|
||
|
||
//第一步:获取IO模板
|
||
equipmentTemplateService.getIOEquipmentTemplates().then(function (data) {
|
||
|
||
var ioEquipmentTemplateId = -1;
|
||
var result = data;
|
||
|
||
if (result == "fail to get io equipmentTemplates") {
|
||
balert.show('danger', $scope.languageJson.Config.Port.Failed, 3000);/*'获取IO模板失败,请检查数据库连接是否正常!'*/
|
||
return;
|
||
} else {
|
||
//获取IO模板成功
|
||
$scope.ioEquipmentTemplates = data;
|
||
|
||
//第二步:获取IO模板ID
|
||
if ($scope.ioEquipmentTemplates.length <= 0) {
|
||
//没有IO模板
|
||
balert.show('danger', $scope.languageJson.Config.Port.Entereds, 3000);/*'没有找到IO模板,请在协议管理中增加IO模板!'*/
|
||
return;
|
||
} else if ($scope.ioEquipmentTemplates.length > 1) {
|
||
//存在多个IO模板,需要弹出对话框供用户选择
|
||
$scope.selectedIOEquipmentTemplateId = -1;
|
||
|
||
ioTemplateDialog.$promise.then(ioTemplateDialog.show);
|
||
return;
|
||
} else {
|
||
ioEquipmentTemplateId = $scope.ioEquipmentTemplates[0].EquipmentTemplateId;
|
||
}
|
||
}
|
||
|
||
//第三步:增加IO设备
|
||
AddIOEquipment(ioEquipmentTemplateId);
|
||
});
|
||
}
|
||
function AddIOEquipment(equipmentTemplateId) {
|
||
//获取所选模板
|
||
equipmentTemplateService.getEquipmentTemplate(equipmentTemplateId).then(function (data) {
|
||
$scope.equipmentTemplate = getEquipmentTemplate(data);
|
||
|
||
//获取默认端口
|
||
portService.getDefaultPort($scope.monitorUnit.MonitorUnitId, 106).then(function (data) {
|
||
if(parseInt($scope.port.PortType) > 1 && parseInt(data[0].PortType) > 1) return;
|
||
$scope.port = getPort(data);
|
||
// FSU版特殊处理
|
||
$scope.port.PortType = "6";
|
||
$scope.port.Setting = "127.0.0.1:8101";
|
||
|
||
//获取默认采集单元
|
||
samplerUnitService.getDefaultSamplerUnit($scope.equipmentTemplate.EquipmentTemplateId, $scope.port.PortId, $scope.port.PortNo, $scope.monitorUnit.MonitorUnitId).then(function (data) {
|
||
$scope.samplerUnit = getSamplerUnit(data);
|
||
|
||
//获取默认设备
|
||
equipmentService.getDefaultEquipment($scope.monitorUnit.MonitorUnitId, $scope.equipmentTemplate.EquipmentTemplateId).then(function (data) {
|
||
$scope.equipment = getEquipment(data);
|
||
|
||
AddEquipment($scope.monitorUnit.MonitorUnitId);
|
||
});
|
||
});
|
||
});
|
||
});
|
||
}
|
||
//#endregion
|
||
|
||
//#region 3.3新增自诊断设备
|
||
var hostEquipmentDlg = $modal({
|
||
scope: $scope,
|
||
templateUrl: 'partials/selectHostTemplate.html',
|
||
show: false
|
||
});
|
||
$scope.addHostEquipmentClick = function () {
|
||
|
||
equipmentService.getHostEquipments($scope.stationId).then(function (data) {
|
||
var result = data;
|
||
if (result == "fail to get io equipments") {
|
||
/*查看自诊断设备是否存在失败,请检查数据库连接是否正常*/
|
||
balert.show('danger', $scope.languageJson.Config.AddHost.GetErrorPrompt, 3000);
|
||
} else {
|
||
var equipments = data.length;
|
||
if (equipments > 0) {
|
||
balert.show('danger', $scope.languageJson.Config.AddHost.ExistPrompt, 3000);/*已存在自诊断设备,不允许重复增加!*/
|
||
} else {
|
||
//插入IO设备
|
||
/*请确认是否增加自诊断设备?*/
|
||
bconfirm.show($scope, $scope.languageJson.Config.AddHost.SelectPrompt).then(function (data) {
|
||
if (data) {
|
||
InsertHostEquipment();
|
||
}
|
||
});
|
||
}
|
||
}
|
||
});
|
||
};
|
||
function InsertHostEquipment() {
|
||
//第一步:获取IO模板
|
||
equipmentTemplateService.getHostEquipmentTemplates().then(function (data) {
|
||
|
||
var hostEquipmentTemplateId = -1;
|
||
var result = data;
|
||
|
||
if (result == "fail to get io equipmentTemplates") {
|
||
balert.show('danger', $scope.languageJson.Config.Port.Failed, 3000);/*'获取IO模板失败,请检查数据库连接是否正常!'*/
|
||
return;
|
||
} else {
|
||
//获取自诊断模板成功
|
||
$scope.hostEquipmentTemplates = data;
|
||
|
||
//第二步:获取自诊断模板ID
|
||
if ($scope.hostEquipmentTemplates.length <= 0) {
|
||
//没有自诊断模板
|
||
balert.show('danger', $scope.languageJson.Config.AddHost.NoExistPrompt, 3000);/*'没有找到自诊断模板,请在协议管理中增加自诊断模板!'*/
|
||
return;
|
||
} else if ($scope.hostEquipmentTemplates.length > 1) {
|
||
//存在多个自诊断模板,需要弹出对话框供用户选择
|
||
$scope.selectedHostTemplateId = undefined;
|
||
|
||
hostEquipmentDlg.$promise.then(hostEquipmentDlg.show);
|
||
return;
|
||
} else {
|
||
hostEquipmentTemplateId = $scope.hostEquipmentTemplates[0].EquipmentTemplateId;
|
||
}
|
||
}
|
||
|
||
//第三步:增加自诊断设备
|
||
AddHostEquipment(hostEquipmentTemplateId);
|
||
});
|
||
}
|
||
$scope.selectHostEquipmentTemplateId = function (equipmentTemplateId) {
|
||
$scope.selectedHostTemplateId = equipmentTemplateId;
|
||
};
|
||
$scope.selectHost = function () {
|
||
|
||
if ($scope.selectedHostTemplateId == undefined) {
|
||
balert.show('danger', $scope.languageJson.Select.Please, 3000);/*请选择模板!*/
|
||
return;
|
||
}
|
||
|
||
AddHostEquipment($scope.selectedHostTemplateId);
|
||
|
||
hostEquipmentDlg.hide();
|
||
};
|
||
function AddHostEquipment(equipmentTemplateId) {
|
||
//获取所选模板
|
||
equipmentTemplateService.getEquipmentTemplate(equipmentTemplateId).then(function (data) {
|
||
$scope.equipmentTemplate = getEquipmentTemplate(data);
|
||
|
||
//获取默认端口
|
||
portService.getDefaultPort($scope.monitorUnit.MonitorUnitId, 31).then(function (data) {
|
||
$scope.port = getPort(data);
|
||
|
||
//获取默认采集单元
|
||
samplerUnitService.getDefaultSamplerUnit($scope.equipmentTemplate.EquipmentTemplateId, $scope.port.PortId, $scope.port.PortNo, $scope.monitorUnit.MonitorUnitId).then(function (data) {
|
||
$scope.samplerUnit = getSamplerUnit(data);
|
||
|
||
//获取默认设备
|
||
equipmentService.getDefaultEquipment($scope.monitorUnit.MonitorUnitId, $scope.equipmentTemplate.EquipmentTemplateId).then(function (data) {
|
||
$scope.equipment = getEquipment(data);
|
||
|
||
AddEquipment($scope.monitorUnit.MonitorUnitId);
|
||
});
|
||
});
|
||
});
|
||
});
|
||
}
|
||
//#endregion
|
||
|
||
//#region 3.4.修改设备
|
||
var updEquipmentDlg = $modal({
|
||
scope: $scope,
|
||
templateUrl: 'partials/updEquipment.html',
|
||
show: false
|
||
});
|
||
$scope.updateEquipmentClick = function (data) {
|
||
//var e = $scope.paginationConf.equipments;
|
||
$scope.equipment = data;
|
||
portService.getDefaultPort(data.MonitorUnitId, data.PortNo).then(function (port) {
|
||
if (port.length > 0) {
|
||
|
||
$scope.equipment.Setting = port[0].Setting;
|
||
$scope.equipment.PortId = port[0].PortId;
|
||
$scope.equipment.PortType = port[0].PortType;
|
||
// FSU特殊处理
|
||
if($scope.equipment.PortType == "6" && parseInt(port[0].PortNo) <= 16){
|
||
$scope.equipment.PortType = "1";
|
||
}
|
||
|
||
//是否有其他同端口的设备,如果有其他端口则不允许修改“端口类型”和“通讯参数”
|
||
var isExist = isOtherPortExist(data.EquipmentId, port[0].PortNo);
|
||
if (isExist) $scope.equipment.readonly = true;
|
||
else $scope.equipment.readonly = false;
|
||
|
||
samplerUnitService.getDefaultSamplerUnit(data.EquipmentTemplateId, port[0].PortId, port[0].PortNo, data.MonitorUnitId).then(function (unit) {
|
||
if (unit.length > 0) {
|
||
$scope.samplerUnit = unit[0];
|
||
}
|
||
});
|
||
|
||
$scope.equipment.EquipmentTemplateName = getEquipmentTemplateNameById(data.EquipmentTemplateId);
|
||
}
|
||
});
|
||
updEquipmentDlg.$promise.then(updEquipmentDlg.show);
|
||
};
|
||
function getEquipmentTemplateNameById(etid) {
|
||
var etname = "";
|
||
if ($scope.equipmentTemplates) {
|
||
$scope.equipmentTemplates.forEach(function (item) {
|
||
if (item.EquipmentTemplateId == etid)
|
||
etname = item.EquipmentTemplateName;
|
||
});
|
||
}
|
||
return etname;
|
||
}
|
||
function isOtherPortExist(equipment, portNo) {
|
||
var is = false;
|
||
if ($scope.paginationConf && $scope.paginationConf.equipments) {
|
||
$scope.paginationConf.equipments.forEach(function (item) {
|
||
if (item.PortNo == portNo) {
|
||
if (item.EquipmentId != equipment)
|
||
is = true;
|
||
}
|
||
});
|
||
}
|
||
return is;
|
||
}
|
||
$scope.updClick = function () {
|
||
if ($scope.equipment.EquipmentId == "" || $scope.equipment.EquipmentName == "" || $scope.equipment.PortNo == ""
|
||
|| $scope.equipment.PortType == "" || $scope.equipment.Setting == "" || $scope.equipment.Address == "") {
|
||
balert.show('danger', $scope.languageJson.Config.Confirms.Device, 3000);/*'设备信息均不能为空!'*/
|
||
return;
|
||
}
|
||
equipmentService.checkEquipmentConfig($scope.equipment.EquipmentId, $scope.equipment.EquipmentName,
|
||
$scope.equipment.PortNo, $scope.equipment.Address).then(function (result) {
|
||
if (result == "OK") {
|
||
//添加端口
|
||
// FSU特殊处理
|
||
if($scope.equipment.PortType == "1") $scope.equipment.PortType = "6";
|
||
portService.getInsertPort($scope.equipment).then(function (portId) {
|
||
if (portId == "fail to get insert port") {
|
||
balert.show('danger', $scope.languageJson.Config.Config.Failed, 3000);/*'插入端口失败,请检查连接是否正常!'*/
|
||
return;
|
||
} else {
|
||
//添加采集单元
|
||
$scope.samplerUnit.PortId = parseInt(portId);
|
||
$scope.samplerUnit.Address = $scope.equipment.Address;
|
||
//修改so库
|
||
if ($scope.equipment.DllPath != $scope.samplerUnit.DllPath) {
|
||
$scope.samplerUnit.SamplerUnitId = -1;
|
||
$scope.samplerUnit.DllPath = $scope.equipment.DllPath;
|
||
}
|
||
samplerUnitService.getInsertSamplerUnit($scope.samplerUnit).then(function (units) {
|
||
if (units == "fail to get insert samplerUnit") {
|
||
balert.show('danger', $scope.languageJson.Config.Config.Connection, 3000);/*'插入采集单元失败,请检查连接是否正常!'*/
|
||
return;
|
||
} else {
|
||
$scope.equipment.SamplerUnitId = parseInt(units);
|
||
//修改设备
|
||
equipmentService.updateEquipment($scope.equipment.EquipmentId, $scope.equipment.EquipmentName, $scope.equipment.Vendor, $scope.equipment.SamplerUnitId).then(function (data) {
|
||
if (data == "OK") {
|
||
balert.show('success', $scope.languageJson.Config.Confirms.Modify, 3000);/*'修改设备成功!'*/
|
||
$scope.equipment = {};
|
||
updEquipmentDlg.hide();
|
||
} else {
|
||
balert.show('danger', $scope.languageJson.Config.Confirms.Modifying, 3000);/*'修改设备失败!'*/
|
||
}
|
||
});
|
||
}
|
||
});
|
||
}
|
||
});
|
||
} else if (result == "Name Exists") {
|
||
balert.show('danger', $scope.languageJson.Config.Confirms.Exists, 3000);/*'设备名称已存在!'*/
|
||
return;
|
||
} else if (result == "Address Exists") {
|
||
balert.show('danger', $scope.languageJson.Config.Confirms.Port, 3000);/*'同端口的地址不能重复!'*/
|
||
return;
|
||
}
|
||
});
|
||
};
|
||
|
||
$scope.changePortNo = function (newValue, oldValue) {
|
||
if (newValue == undefined || newValue == oldValue) return;
|
||
portService.getDefaultPort($scope.equipment.MonitorUnitId, newValue).then(function (port) {
|
||
if (port.length > 0) {
|
||
$scope.equipment.Setting = port[0].Setting;
|
||
$scope.equipment.PortId = port[0].PortId;
|
||
$scope.equipment.PortType = port[0].PortType;
|
||
|
||
var isExist = isOtherPortExist(newValue);
|
||
if (port[0].PortId != -1 && isExist) $scope.equipment.readonly = true;
|
||
else $scope.equipment.readonly = false;
|
||
|
||
samplerUnitService.getDefaultSamplerUnit($scope.equipment.EquipmentTemplateId, port[0].PortId, port[0].PortNo, $scope.equipment.MonitorUnitId).then(function (unit) {
|
||
if (unit.length > 0) {
|
||
$scope.samplerUnit = unit[0];
|
||
// FSU特殊处理
|
||
$scope.equipment = parsePortByFSU($scope.equipment, $scope.samplerUnit);
|
||
}
|
||
});
|
||
}
|
||
});
|
||
};
|
||
//#endregion
|
||
|
||
//#region 3.4.1.修改设备:重新绑定设备模板
|
||
var templateListDlg = $modal({
|
||
scope: $scope,
|
||
templateUrl: 'partials/equipmentTemplates.html',
|
||
show: false
|
||
});
|
||
$scope.showTemplateListClick = function (templateId) {
|
||
if ($scope.equipmentTemplates) {
|
||
$scope.equipmentTemplates.forEach(function (item) {
|
||
if (item.EquipmentTemplateId == templateId) {
|
||
// 解决DLL后缀问题
|
||
if(item.SoName.toUpperCase().indexOf("DLL") > -1) {
|
||
var index = item.SoName.lastIndexOf(".");
|
||
item.SoName = item.SoName.substring(0,index)+".so";
|
||
}
|
||
$scope.Rebinding = item;
|
||
|
||
$scope.Rebinding.CategoryName = getCategoryName($scope.Rebinding.EquipmentCategory);
|
||
$scope.Rebinding.PropertyName = getPropertyName($scope.Rebinding.Property);
|
||
}
|
||
});
|
||
}
|
||
templateListDlg.$promise.then(templateListDlg.show);
|
||
};
|
||
function getCategoryName(category) {
|
||
var name = category;
|
||
if ($scope.Template.EquipmentCategory) {
|
||
$scope.Template.EquipmentCategory.forEach(function (item) {
|
||
if (item.ItemId == category) {
|
||
if ($scope.languageJson.Language == "English")
|
||
name = item.ItemAlias;
|
||
else
|
||
name = item.ItemValue;
|
||
}
|
||
});
|
||
}
|
||
return name;
|
||
}
|
||
function getPropertyName(property) {
|
||
var result = "";
|
||
var name = "";
|
||
var pros = property.split("/");
|
||
if (pros) {
|
||
pros.forEach(function (pro) {
|
||
if ($scope.Template.Property) {
|
||
$scope.Template.Property.forEach(function (item) {
|
||
if (pro == item.ItemId) {
|
||
if ($scope.languageJson.Language == "English")
|
||
name = item.ItemAlias;
|
||
else
|
||
name = item.ItemValue;
|
||
}
|
||
});
|
||
}
|
||
if (result == "")
|
||
result = name;
|
||
else
|
||
result += "/" + name;
|
||
});
|
||
}
|
||
return result;
|
||
}
|
||
$scope.changeRebinding = function (obj) {
|
||
$scope.Rebinding = angular.fromJson(obj);
|
||
// 解决DLL后缀问题
|
||
if($scope.Rebinding.SoName.toUpperCase().indexOf("DLL") > -1) {
|
||
var index = $scope.Rebinding.SoName.lastIndexOf(".");
|
||
$scope.Rebinding.SoName = $scope.Rebinding.SoName.substring(0,index)+".so";
|
||
}
|
||
|
||
$scope.Rebinding.CategoryName = getCategoryName($scope.Rebinding.EquipmentCategory);
|
||
$scope.Rebinding.PropertyName = getPropertyName($scope.Rebinding.Property);
|
||
};
|
||
//重新绑定模板
|
||
$scope.rebindingClick = function () {
|
||
var equipmentId = $scope.equipment.EquipmentId;
|
||
var equipmentTemplateId = $scope.Rebinding.EquipmentTemplateId;
|
||
$scope.equipment.DllPath = $scope.Rebinding.SoName;
|
||
|
||
equipmentService.RebindingEquipmentTemplate(equipmentId, equipmentTemplateId).then(function (data) {
|
||
if (data == "OK") {
|
||
balert.show('success', $scope.languageJson.Config.Confirms.Modify, 3000);/*'修改设备成功!'*/
|
||
$scope.equipment.EquipmentTemplateId = $scope.Rebinding.EquipmentTemplateId;
|
||
$scope.equipment.EquipmentTemplateName = $scope.Rebinding.EquipmentTemplateName;
|
||
templateListDlg.hide();
|
||
} else {
|
||
balert.show('danger', "[" + data + "]" + $scope.languageJson.Config.Confirms.Modifying, 3000);/*'修改设备失败!'*/
|
||
}
|
||
});
|
||
};
|
||
//#endregion
|
||
|
||
//#region 3.5.删除设备
|
||
$scope.removeEquipmentClick = function (id, name, samplerUnitId) {
|
||
$scope.selectedEquipmentId = id;
|
||
$scope.selectedEquipmentName = name;
|
||
|
||
bconfirm.show($scope, $scope.languageJson.Config.Confirms.Title + $scope.selectedEquipmentId + ")" + $scope.selectedEquipmentName + "?").then(function (data) {
|
||
if (data) {
|
||
equipmentService.deleteEquipment($scope.stationId, $scope.selectedEquipmentId, samplerUnitId).then(function (data) {
|
||
//删除完成后,返回设备个数
|
||
var result = data;
|
||
if (result == "fail to delete equipment") {
|
||
balert.show('danger', $scope.languageJson.Config.Confirms.Deleting, 3000);/*'删除设备失败,请检查连接是否正常!'*/
|
||
} else {
|
||
$scope.equipmentItems = parseInt(data);
|
||
$scope.paginationConf.totalItems = $scope.equipmentItems;
|
||
balert.show('success', $scope.languageJson.Config.Confirms.Successfully, 3000);/*'删除设备成功!'*/
|
||
}
|
||
});
|
||
}
|
||
});
|
||
};
|
||
//#endregion
|
||
|
||
//#region 3.6.配置生效
|
||
$scope.reLoadEquipmentConfigClick = function () {
|
||
/*请确认是否执行配置生效?*/
|
||
bconfirm.show($scope, $scope.languageJson.Config.Config.Whether).then(function (data) {
|
||
if (data) {
|
||
$scope.loading = true;
|
||
equipmentService.reLoadEquipment($scope.stationId, $scope.station.stationName).then(function (data) {
|
||
//删除完成后,返回设备个数
|
||
var result = data;
|
||
var ver = localStorage.getItem("versions");
|
||
if (result == "fail to reload equipment") {
|
||
balert.show('danger', $scope.languageJson.Config.Config.Sails, 3000);/*执行配置生效失败,请检查连接是否正常!*/
|
||
} else {
|
||
if (ver == "IView") {
|
||
balert.show('success', $scope.languageJson.Config.Config.Configuration, 3000);/*'执行配置生效成功!'*/
|
||
}
|
||
else{
|
||
balert.show('success', $scope.languageJson.Config.Config.Configuration, 3000);/*'执行配置生效成功!'*/
|
||
$("#side-menu .sub-li").remove();
|
||
deviceService.getAllDevicesType().then();
|
||
}
|
||
}
|
||
$scope.loading = false;
|
||
// 重新加载组态列
|
||
$rootScope.$emit("loadSidebar");
|
||
});
|
||
//生成备份文件
|
||
equipmentService.CreateConfigManager().then(function (data) {
|
||
});
|
||
}
|
||
});
|
||
};
|
||
//#endregion
|
||
|
||
//#endregion
|
||
|
||
//#region 4.局站信息管理
|
||
$scope.saveStationConfigClick = function () {
|
||
if ($scope.station.stationName === undefined ||
|
||
$scope.station.contactId == -1) {
|
||
//'局站信息不完整,请检查是否输入完整!'
|
||
balert.show('danger', $scope.languageJson.Config.Stations.Input, 3000);
|
||
return;
|
||
}
|
||
$scope.loading = true;
|
||
stationService.updateStationInfo($scope.stationId, $scope.station.stationName, $scope.station.contactId, $scope.station.remark).then(function (data) {
|
||
if (data == "OK") {
|
||
equipmentService.ReLoadFSU().then(function (data) {
|
||
$scope.loading = false;
|
||
balert.show('success', $scope.languageJson.Config.Stations.Successfully, 3000);//'保存局站配置成功!'
|
||
});
|
||
|
||
} else {
|
||
//'保存局站配置失败!'
|
||
balert.show('danger', $scope.languageJson.Config.Stations.Failed, 3000);
|
||
}
|
||
});
|
||
};
|
||
$scope.contactManChange = function (EmployeeId) {
|
||
$scope.station.contactId = EmployeeId;
|
||
};
|
||
//#endregion
|
||
|
||
//#region 5.中心信息管理
|
||
$scope.saveCenterConfigClick = function () {
|
||
if ($scope.center.centerIP === undefined || $scope.center.centerDSIP === undefined ||
|
||
$scope.center.centerPort == -1 || $scope.center.centerPort == undefined) {
|
||
balert.show('danger', $scope.languageJson.Config.Room.The, 3000);/*中心信息不完整,请检查是否输入完整!*/
|
||
return;
|
||
}
|
||
$scope.loading = true;
|
||
stationService.updateCenterInfo($scope.center.centerId, $scope.center.centerIP, $scope.center.centerPort, $scope.center.centerDSIP, $scope.center.Enable).then(function (data) {
|
||
if (data == "OK") {
|
||
equipmentService.ReLoadFSU().then(function (data) {
|
||
$scope.loading = false;
|
||
balert.show('success', $scope.languageJson.Config.Room.Center, 3000);/*'保存中心配置成功!'*/
|
||
});
|
||
} else {
|
||
balert.show('danger', $scope.languageJson.Config.Room.Saves, 3000);/*'保存中心配置失败!'*/
|
||
}
|
||
});
|
||
};
|
||
|
||
$scope.resetCenterConfigClick = function () {
|
||
$scope.center = {};
|
||
$scope.center.centerId = -1;
|
||
$scope.center.centerIP = "";
|
||
$scope.center.centerPort = 15001;
|
||
$scope.center.centerDSIP = "";
|
||
$scope.center.Enable = false;
|
||
};
|
||
|
||
$scope.selectEnable = function () {
|
||
var a = $scope.center.Enable;
|
||
};
|
||
//#endregion
|
||
|
||
//#region 6.模板管理
|
||
//#region 6.1.设备模板
|
||
// 查询
|
||
$scope.selectEventClick = function () {
|
||
document.querySelector("#rollBtn").style.display = "block";
|
||
document.querySelector("#rollAlarm").style.display = "block";
|
||
if ($scope.selectEvent.EquipmentTemplateId == undefined) {
|
||
balert.show('danger', $scope.languageJson.Config.Templatenames.Please, 3000);/*'请选择设备模板!'*/
|
||
return;
|
||
}
|
||
|
||
//遍历选中的模板设备编号
|
||
$scope.equipmentTemplates.forEach(function (item) {
|
||
if (item.EquipmentTemplateId == $scope.selectEvent.EquipmentTemplateId)
|
||
$scope.selectEvent.EquipmentBaseType = item.EquipmentBaseType;
|
||
});
|
||
|
||
TemplateService.GetSignalByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId).then(function (data) {
|
||
TemplateService.GetSignalMeaningsByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId).then(function (datas) {
|
||
$scope.SignalMeaningsList = datas;
|
||
$scope.SignalList = parseSignalList(data, datas);
|
||
$scope.filterSignalList = $filter('filter')($scope.SignalList, $scope.query);
|
||
|
||
GetEventByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId);
|
||
|
||
GetControlByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId);
|
||
});
|
||
});
|
||
};
|
||
//查询信号
|
||
function GetSignalByEquipmentTemplateId(EquipmentTemplateId) {
|
||
TemplateService.GetSignalByEquipmentTemplateId(EquipmentTemplateId).then(function (data) {
|
||
TemplateService.GetSignalMeaningsByEquipmentTemplateId(EquipmentTemplateId).then(function (datas) {
|
||
$scope.SignalMeaningsList = datas;
|
||
$scope.SignalList = parseSignalList(data, datas);
|
||
$scope.filterSignalList = $filter('filter')($scope.SignalList, $scope.query);
|
||
document.getElementById('signalListSelAll').indeterminate = false
|
||
});
|
||
});
|
||
};
|
||
//查询事件
|
||
function GetEventByEquipmentTemplateId(EquipmentTemplateId) {
|
||
TemplateService.GetEventByEquipmentTemplateId(EquipmentTemplateId).then(function (data) {
|
||
TemplateService.GetEventConditionByEquipmentTemplateId(EquipmentTemplateId).then(function (datas) {
|
||
$scope.EventConditionList = datas;
|
||
$scope.EventList = parseEventList(data, datas);
|
||
});
|
||
});
|
||
};
|
||
//查询控制
|
||
function GetControlByEquipmentTemplateId(EquipmentTemplateId) {
|
||
TemplateService.GetControlByEquipmentTemplateId(EquipmentTemplateId).then(function (data) {
|
||
TemplateService.GetControlMeaningsByEquipmentTemplateId(EquipmentTemplateId).then(function (datas) {
|
||
$scope.ControlMeaningsList = datas;
|
||
$scope.ControlList = parseControlList(data, datas);
|
||
});
|
||
});
|
||
};
|
||
function parseSignalList(data, datas) {
|
||
data.forEach(function (item) {
|
||
$scope.Signal.SignalCategory.forEach(function (es) {
|
||
if (item.SignalCategory == es.ItemId) {
|
||
item.SignalCategoryName = getLanguageItem(es);
|
||
}
|
||
});
|
||
$scope.Signal.ChannelType.forEach(function (es) {
|
||
if (item.ChannelType == es.ItemId) {
|
||
item.ChannelTypeName = getLanguageItem(es);
|
||
}
|
||
});
|
||
$scope.Signal.DataType.forEach(function (es) {
|
||
if (item.DataType == es.ItemId) {
|
||
item.DataTypeName = getLanguageItem(es);
|
||
}
|
||
});
|
||
if (item.Enable == 'true' || item.Visible == 'true') item.IsOpen = true;
|
||
else item.IsOpen = false;
|
||
|
||
if (datas) {
|
||
item.DataMeanings = [];
|
||
datas.forEach(function (sm) {
|
||
if (item.SignalId == sm.SignalId) {
|
||
if (item.Meanings == undefined) {
|
||
item.Meanings = sm.Meanings;
|
||
} else {
|
||
item.Meanings += "/" + sm.Meanings;
|
||
}
|
||
item.DataMeanings.push(sm);
|
||
}
|
||
});
|
||
}
|
||
});
|
||
return data;
|
||
};
|
||
function parseEventList(data, datas) {
|
||
data.forEach(function (item) {
|
||
$scope.Event.EventCategory.forEach(function (es) {
|
||
if (item.EventCategory == es.ItemId) {
|
||
item.EventCategoryName = getLanguageItem(es);
|
||
}
|
||
});
|
||
$scope.Event.StartType.forEach(function (es) {
|
||
if (item.StartType == es.ItemId) {
|
||
item.StartTypeName = getLanguageItem(es);
|
||
}
|
||
});
|
||
$scope.Event.EndType.forEach(function (es) {
|
||
if (item.EndType == es.ItemId) {
|
||
item.EndTypeName = getLanguageItem(es);
|
||
}
|
||
});
|
||
if (item.Enable == 'true' || item.Visible == 'true') item.IsOpen = true;
|
||
else item.IsOpen = false;
|
||
|
||
if (datas) {
|
||
item.EventCondition = [];
|
||
datas.forEach(function (ec) {
|
||
if (item.EventId == ec.EventId) {
|
||
if (item.EventSeverity == undefined) {
|
||
item.EventSeverity = ec.EventSeverity;
|
||
item.EventSeverityName = getEventSeverityName(ec.EventSeverity);
|
||
item.Meanings = ec.EventConditionId;
|
||
} else {
|
||
item.EventSeverity += "/" + ec.EventSeverity;
|
||
item.EventSeverityName += "/" + getEventSeverityName(ec.EventSeverity);
|
||
item.Meanings += "/" + ec.EventConditionId;
|
||
}
|
||
item.EventCondition.push(ec);
|
||
}
|
||
});
|
||
}
|
||
|
||
if ($scope.SignalList) {
|
||
$scope.SignalList.forEach(function (s) {
|
||
if (item.SignalId == s.SignalId) {
|
||
item.SignalName = s.SignalName;
|
||
}
|
||
});
|
||
}
|
||
|
||
if (item.Enable == "true" || item.Enable == true)
|
||
item.Shield = false;
|
||
else
|
||
item.Shield = true;
|
||
});
|
||
return data;
|
||
};
|
||
function getEventSeverityName(severity) {
|
||
var name = "";
|
||
if ($scope.Event.EventSeverity) {
|
||
$scope.Event.EventSeverity.forEach(function (item) {
|
||
if (item.ItemId == severity) {
|
||
if ($scope.languageJson.Language == "English")
|
||
name = item.ItemAlias;
|
||
else
|
||
name = item.ItemValue;
|
||
}
|
||
});
|
||
}
|
||
return name;
|
||
}
|
||
function parseControlList(data, datas) {
|
||
data.forEach(function (item) {
|
||
$scope.Control.ControlCategory.forEach(function (es) {
|
||
if (item.ControlCategory == es.ItemId) {
|
||
item.ControlCategoryName = getLanguageItem(es);
|
||
}
|
||
});
|
||
$scope.Control.ControlSeverity.forEach(function (es) {
|
||
if (item.ControlSeverity == es.ItemId) {
|
||
item.ControlSeverityName = getLanguageItem(es);
|
||
}
|
||
});
|
||
$scope.Control.CommandType.forEach(function (es) {
|
||
if (item.CommandType == es.ItemId) {
|
||
item.CommandTypeName = getLanguageItem(es);
|
||
}
|
||
});
|
||
$scope.Control.ControlType.forEach(function (es) {
|
||
if (item.ControlType == es.ItemId) {
|
||
item.ControlTypeName = getLanguageItem(es);
|
||
}
|
||
});
|
||
$scope.Control.DataType.forEach(function (es) {
|
||
if (item.DataType == es.ItemId) {
|
||
item.DataTypeName = getLanguageItem(es);
|
||
}
|
||
});
|
||
if (item.Enable == 'true' || item.Visible == 'true') item.IsOpen = true;
|
||
else item.IsOpen = false;
|
||
|
||
if (datas) {
|
||
item.DataMeanings = [];
|
||
datas.forEach(function (cm) {
|
||
if (item.ControlId == cm.ControlId) {
|
||
if (item.Meanings == undefined) {
|
||
item.Meanings = cm.Meanings;
|
||
} else {
|
||
item.Meanings += "/" + cm.Meanings;
|
||
}
|
||
item.DataMeanings.push(cm);
|
||
}
|
||
});
|
||
}
|
||
|
||
if ($scope.SignalList) {
|
||
$scope.SignalList.forEach(function (s) {
|
||
if (item.SignalId == s.SignalId) {
|
||
item.SignalName = s.SignalName;
|
||
}
|
||
});
|
||
}
|
||
});
|
||
return data;
|
||
}
|
||
function getLanguageItem(item) {
|
||
if ($scope.languageJson == undefined)
|
||
$scope.languageJson = angular.fromJson(sessionStorage.getItem('languageJson'));
|
||
var lan = $scope.languageJson.Language;
|
||
if (lan == 'English') return item.ItemAlias
|
||
else return item.ItemValue
|
||
}
|
||
|
||
//修改模版
|
||
var ModifyTemplateDialog = $modal({
|
||
scope: $scope,
|
||
templateUrl: 'partials/ModifyTemplate.html',
|
||
show: false
|
||
});
|
||
$scope.UpdateEquipmentTemplateClick = function () {
|
||
$scope.equipmentTemplates.forEach(function (item) {
|
||
if (item.EquipmentTemplateId == $scope.selectEvent.EquipmentTemplateId) {
|
||
$scope.UpdateTemplate = item;
|
||
ModifyTemplateDialog.$promise.then(ModifyTemplateDialog.show);
|
||
checkoutProperty($scope.UpdateTemplate.Property);
|
||
return;
|
||
}
|
||
});
|
||
};
|
||
function checkoutProperty(data) {
|
||
var d = data.split("/");
|
||
if (data)
|
||
$scope.UpdateTemplate.Property = data;
|
||
else
|
||
$scope.UpdateTemplate.Property = "";
|
||
if ($scope.Template.Property)
|
||
$scope.Template.Property.forEach(function (item) {
|
||
item.isChecked = false;
|
||
var str = [];
|
||
d.forEach(function (pro) {
|
||
if (pro == item.ItemId) {
|
||
item.isChecked = true;
|
||
}
|
||
});
|
||
});
|
||
};
|
||
//设备模板属性
|
||
$scope.isShowProperty = false;
|
||
$scope.showProperty = function () {
|
||
//$("#myProperty").show();
|
||
$("#myProperty").css("display", "block");
|
||
$scope.isShowProperty = true;
|
||
};
|
||
$(function () {
|
||
$(document).click(function (e) {
|
||
var myDiv = $("#myProperty");
|
||
if (myDiv.css("display") == "block" && $scope.isShowProperty == false) {
|
||
//$("#myProperty").hide();
|
||
$("#myProperty").css("display", "none");
|
||
}
|
||
$scope.isShowProperty = false;
|
||
});
|
||
});
|
||
$scope.ClickProperty = function (id) {
|
||
if ($scope.Template.Property)
|
||
$scope.Template.Property.forEach(function (item) {
|
||
if (item.ItemId == id) {
|
||
if (!item.isChecked) {
|
||
item.isChecked = true;
|
||
$scope.UpdateTemplate.Property = sortProperty($scope.UpdateTemplate.Property, id, true);
|
||
} else {
|
||
item.isChecked = false;
|
||
$scope.UpdateTemplate.Property = sortProperty($scope.UpdateTemplate.Property, id, false);
|
||
}
|
||
}
|
||
});
|
||
};
|
||
function sortProperty(str, pro, isAdd) {
|
||
var result = "";
|
||
if (isAdd) {//添加
|
||
if (str == "" || str == undefined) result = pro;
|
||
else {
|
||
str = str + "/" + pro;
|
||
var arr = str.split("/");
|
||
arr = arr.sort();
|
||
for (var i = 0; i < arr.length; i++) {
|
||
if (result == "")
|
||
result += arr[i];
|
||
else
|
||
result += "/" + arr[i];
|
||
}
|
||
}
|
||
} else {//删除
|
||
var arr = str.split("/");
|
||
for (var i = 0; i < arr.length; i++) {
|
||
if (arr[i] == pro) continue;
|
||
if (result == "")
|
||
result += arr[i];
|
||
else
|
||
result += "/" + arr[i];
|
||
}
|
||
}
|
||
return result;
|
||
};
|
||
$scope.SaveEquipmentTemplate = function () {
|
||
var is = false;
|
||
$scope.equipmentTemplates.forEach(function (item) {
|
||
if ($scope.UpdateTemplate.EquipmentTemplateId != item.EquipmentTemplateId &&
|
||
$scope.UpdateTemplate.EquipmentTemplateName == item.EquipmentTemplateName) {
|
||
is = true;
|
||
}
|
||
});
|
||
if (is) {
|
||
balert.show('danger', $scope.languageJson.Config.Templatenames.Title, 3000);/*'模板名称不能相同!'*/
|
||
return;
|
||
}
|
||
if ($scope.UpdateTemplate.EquipmentTemplateName == "" || $scope.UpdateTemplate.EquipmentTemplateName == undefined) {
|
||
balert.show('danger', $scope.languageJson.Config.Templatenames.Cannot, 3000);/*'模板名称不能为空!'*/
|
||
return;
|
||
}
|
||
if ($scope.UpdateTemplate.EquipmentCategory == "" || $scope.UpdateTemplate.EquipmentCategory == undefined) {
|
||
balert.show('danger', $scope.languageJson.Config.Templatenames.Type, 3000);/*'类型不能为空!'*/
|
||
return;
|
||
}
|
||
if ($scope.UpdateTemplate.EquipmentBaseType == "" || $scope.UpdateTemplate.EquipmentBaseType == undefined) {
|
||
balert.show('danger', $scope.languageJson.Config.Templatenames.Empty, 3000);/*'设备基类不能为空!'*/
|
||
return;
|
||
}
|
||
|
||
TemplateService.SaveEquipmentTemplate($scope.UpdateTemplate).then(function (data) {
|
||
if (data == "SUCCESS") {
|
||
balert.show('success', $scope.languageJson.Config.Templatenames.Successfully, 3000);/*'修改成功!'*/
|
||
ModifyTemplateDialog.hide();
|
||
} else
|
||
balert.show('danger', $scope.languageJson.Config.Templatenames.Fail, 3000);/*'修改失败!'*/
|
||
});
|
||
};
|
||
|
||
// 导出协议模板
|
||
$scope.ExportProtocol = function (templateId) {
|
||
$scope.loading = true;
|
||
TemplateService.ExportProtocol(templateId).then(function (data) {
|
||
$scope.loading = false;
|
||
});
|
||
};
|
||
//#endregion
|
||
|
||
//#region 6.2.信号管理
|
||
//#region 6.2.1.新增/修改信号
|
||
var SignalSetterDialog = $modal({
|
||
scope: $scope,
|
||
templateUrl: 'partials/SignalSetter.html',
|
||
show: false
|
||
});
|
||
// 新增页面弹出框
|
||
$scope.AddSignal = function () {
|
||
//console.log($scope.paginationConf.equipments);
|
||
if ($scope.selectEvent.EquipmentBaseType != undefined &&
|
||
(parseInt($scope.selectEvent.EquipmentBaseType) >= 1100 && parseInt($scope.selectEvent.EquipmentBaseType) < 1200))
|
||
$scope.ChargeShow = true;
|
||
else
|
||
$scope.ChargeShow = false;
|
||
|
||
$scope.btnName = $scope.languageJson.Config.Signal.News;/*新增*/
|
||
TemplateService.GetNextSignalId($scope.selectEvent.EquipmentTemplateId, 'Signal').then(function (data) {
|
||
$scope.Signals = {
|
||
EquipmentTemplateId: $scope.selectEvent.EquipmentTemplateId,
|
||
DeviceId:"-1",
|
||
SignalId: parseInt(data) + 1,
|
||
SignalName: $scope.languageJson.Config.Config.Newsignal,
|
||
SignalType: '2',
|
||
ChannelNo: '-2',
|
||
ChannelType: '1',
|
||
DataType: '0',
|
||
SignalCategory: '1',
|
||
ShowPrecision: '0',
|
||
Enable: true,
|
||
Visible: true,
|
||
BaseTypeId: '',
|
||
Expression: '',
|
||
Unit: '',
|
||
StoreInterval: '',
|
||
AbsValueThreshold: '',
|
||
PercentThreshold: '',
|
||
StaticsPeriod: '',
|
||
ChargeStoreInterVal: '',
|
||
ChargeAbsValue: '',
|
||
IsBaseNameExt: "display:none;"
|
||
};/*'新信号'*/
|
||
$scope.CategoryHide = false;
|
||
SignalSetterDialog.$promise.then(SignalSetterDialog.show);
|
||
setTimeout(function () {
|
||
$("#Inspect-Hint").attr("data-original-title", "<h5>" + $scope.languageJson.Config.Signal.Accuracys + "</h5>");
|
||
}, 500);
|
||
});
|
||
TemplateService.GetSignalByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId).then(function (data) {
|
||
TemplateService.GetSignalMeaningsByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId).then(function (datas) {
|
||
$scope.SignalMeaningsList = datas;
|
||
$scope.SignalList2 = parseSignalList(data, datas);
|
||
});
|
||
});
|
||
};
|
||
// 修改信号弹出框
|
||
$scope.updateSignalClick = function (data) {
|
||
if ($scope.selectEvent.EquipmentBaseType != undefined &&
|
||
(parseInt($scope.selectEvent.EquipmentBaseType) >= 1100 && parseInt($scope.selectEvent.EquipmentBaseType) < 1200))
|
||
$scope.ChargeShow = true;
|
||
else
|
||
$scope.ChargeShow = false;
|
||
|
||
$scope.btnName = $scope.languageJson.Config.Config.Modify/*"修改"*/;
|
||
$scope.Signals = data;
|
||
if (data.Enable == 'true') $scope.Signals.Enable = true;
|
||
if (data.Visible == 'true') $scope.Signals.Visible = true;
|
||
$scope.ChangeCategory($scope.Signals.SignalCategory);
|
||
SignalSetterDialog.$promise.then(SignalSetterDialog.show);
|
||
};
|
||
var oldNo;
|
||
$scope.ChangeSignalType = function (type) {
|
||
if (type == 2) {
|
||
oldNo = $scope.Signals.ChannelNo;
|
||
if ($scope.Signals.SignalId == -3)
|
||
$scope.Signals.ChannelNo = -3;
|
||
else
|
||
$scope.Signals.ChannelNo = -2;
|
||
} else {
|
||
var is = false;
|
||
$scope.SignalList.forEach(function (item) {
|
||
if (item.SignalId == $scope.Signals.SignalId) {
|
||
is = true;
|
||
$scope.Signals.ChannelNo = oldNo;
|
||
}
|
||
});
|
||
if (!is) {
|
||
TemplateService.GetMaxChannelNo($scope.selectEvent.EquipmentTemplateId).then(function (data) {
|
||
$scope.Signals.ChannelNo = parseInt(data) + 1;
|
||
});
|
||
}
|
||
}
|
||
};
|
||
$scope.ChangeDeviceToSignal = function(DeviceId){
|
||
var EquipmentTemplateId = "-1";
|
||
//$scope.Signals.SignalId = "";
|
||
if(DeviceId == "-1"){
|
||
EquipmentTemplateId = $scope.selectEvent.EquipmentTemplateId;
|
||
}else{
|
||
var device = _.findWhere($scope.AllDevices,{EquipmentId:DeviceId});
|
||
if(device){
|
||
EquipmentTemplateId = device.EquipmentTemplateId;
|
||
}
|
||
}
|
||
TemplateService.GetSignalByEquipmentTemplateId(EquipmentTemplateId).then(function (data) {
|
||
TemplateService.GetSignalMeaningsByEquipmentTemplateId(EquipmentTemplateId).then(function (datas) {
|
||
$scope.SignalMeaningsList = datas;
|
||
$scope.SignalList2 = parseSignalList(data, datas);
|
||
});
|
||
});
|
||
};
|
||
$scope.ChangeSignalExpression = function (SignalId) {
|
||
var str = "["+$scope.Signals.DeviceId+"," + SignalId + "]";
|
||
$scope.ClickSignalsLi(str);
|
||
};
|
||
$scope.CheckExpression = function (id) {
|
||
var textDom = document.getElementById(id);
|
||
if (textDom.selectionStart || textDom.selectionStart == '0') {
|
||
$scope.startPos = textDom.selectionStart;
|
||
$scope.endPos = textDom.selectionEnd;
|
||
$scope.scrollTop = textDom.scrollTop;
|
||
}
|
||
};
|
||
$scope.ClickSignalsLi = function (symbol) {
|
||
if ($scope.Signals.Expression == undefined)
|
||
$scope.Signals.Expression = "";
|
||
|
||
var textDom = document.getElementById("SignalExpression");
|
||
var addStr = symbol;
|
||
|
||
if (textDom.selectionStart || textDom.selectionStart == '0') {
|
||
$scope.Signals.Expression = $scope.Signals.Expression.substring(0, $scope.startPos) + addStr +
|
||
$scope.Signals.Expression.substring($scope.endPos);
|
||
textDom.focus();
|
||
textDom.selectionStart = $scope.startPos + addStr.length;
|
||
textDom.selectionEnd = $scope.startPos + addStr.length;
|
||
textDom.scrollTop = $scope.scrollTop;
|
||
} else {
|
||
$scope.Signals.Expression += addStr;
|
||
textDom.focus();
|
||
}
|
||
};
|
||
$scope.ChangeCategory = function (cate) {
|
||
if (cate == 1) {//模拟量,SignalId最后一位为1
|
||
if ($scope.btnName == $scope.languageJson.Config.Signal.News)/*"新增"*/
|
||
if ($scope.Signals.SignalId % 10 == 0) {
|
||
$scope.Signals.SignalId += 1;
|
||
}
|
||
$scope.CategoryHide = false;
|
||
} else if (cate == 2) {//开关量,SignalId最后一位为0
|
||
if ($scope.btnName == $scope.languageJson.Config.Signal.News)/*"新增"*/
|
||
if ($scope.Signals.SignalId % 10 == 1) {
|
||
$scope.Signals.SignalId -= 1;
|
||
}
|
||
$scope.CategoryHide = true;
|
||
} else
|
||
$scope.CategoryHide = false;
|
||
};
|
||
// 保存
|
||
$scope.saveSignal = function () {
|
||
if ($scope.Signals.SignalName == "" || $scope.Signals.SignalName == undefined) {
|
||
balert.show('danger', $scope.languageJson.Config.SignalName.Title, 3000);/*'信号名称不能为空!'*/
|
||
return;
|
||
}
|
||
|
||
if ($scope.SignalList && $scope.Signals.BaseTypeId != "" && $scope.Signals.BaseTypeId != undefined) {
|
||
var is = false;
|
||
$scope.SignalList.forEach(function (item) {
|
||
if (item.SignalId != $scope.Signals.SignalId && item.BaseTypeId == $scope.Signals.BaseTypeId)
|
||
is = true;
|
||
});
|
||
if (is) {
|
||
balert.show('danger', $scope.languageJson.Config.SignalName.Repeated, 3000);/*'基类编号不能重复!'*/
|
||
return;
|
||
}
|
||
}
|
||
if ($scope.Signals.ChannelNo == "" || $scope.Signals.ChannelNo == undefined) {
|
||
balert.show('danger', $scope.languageJson.Config.SignalName.Channel, 3000);/*'通道号不能为空!'*/
|
||
return;
|
||
}
|
||
if ($scope.Signals.ShowPrecision == "" || $scope.Signals.ShowPrecision == undefined) {
|
||
balert.show('danger', $scope.languageJson.Config.SignalName.Accuracy, 3000);/*'精确率不能为空!'*/
|
||
return;
|
||
}
|
||
if ($scope.Signals.SignalType == 2) {
|
||
if ($scope.Signals.SignalId == -3) {
|
||
if ($scope.Signals.ChannelNo != -3) {
|
||
balert.show('danger', $scope.languageJson.Config.SignalName.Status, 3000);/*'通讯状态信号通道号只能为-3!'*/
|
||
return;
|
||
}
|
||
} else if ($scope.Signals.ChannelNo != -2) {
|
||
balert.show('danger', $scope.languageJson.Config.SignalName.Virtual, 3000);/*'虚拟信号通道号只能为-2!'*/
|
||
return;
|
||
}
|
||
}
|
||
if ($scope.Signals.SignalType != 2 && $scope.Signals.ChannelNo < 0) {
|
||
balert.show('danger', $scope.languageJson.Config.SignalName.Acquisition, 3000);/*'采集信号/常量信号通道号不能为负数!'*/
|
||
return;
|
||
}
|
||
var ret = /^\-?\d*(\.\d+)?$/;
|
||
if (!ret.test($scope.Signals.StoreInterval) || !ret.test($scope.Signals.AbsValueThreshold) ||
|
||
!ret.test($scope.Signals.PercentThreshold) || !ret.test($scope.Signals.ChargeStoreInterVal)) {
|
||
balert.show('danger', $scope.languageJson.Config.SignalName.Storage, 3000);/*'存储周期/百分比阀值/绝对值阀值/统计周期不能输入字符!'*/
|
||
return;
|
||
}
|
||
if ($scope.Signals.StoreInterval < 0 || $scope.Signals.PercentThreshold < 0 ||
|
||
$scope.Signals.ChargeStoreInterVal < 0) {
|
||
balert.show('danger', $scope.languageJson.Config.SignalName.Storagcycle, 3000);/*'存储周期/百分比阀值/统计周期不能小于零!'*/
|
||
return;
|
||
}
|
||
if ($scope.Signals.SignalType != 2 || $scope.Signals.ChannelNo != -2) {
|
||
if ($scope.SignalList) {
|
||
var is = false;
|
||
$scope.SignalList.forEach(function (item) {
|
||
if (item.ChannelNo == $scope.Signals.ChannelNo && item.SignalId != $scope.Signals.SignalId) {
|
||
is = true;
|
||
}
|
||
});
|
||
if (is) {
|
||
balert.show('danger', $scope.languageJson.Config.SignalName.Repeateds, 3000);/*'通道号不能重复!'*/
|
||
TemplateService.GetMaxChannelNo($scope.selectEvent.EquipmentTemplateId).then(function (data) {
|
||
$scope.Signals.ChannelNo = parseInt(data) + 1;
|
||
});
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
|
||
if ($scope.btnName == $scope.languageJson.Config.Config.Modify) {/*"修改"*/
|
||
TemplateService.SaveSignal($scope.Signals).then(function (ret) {
|
||
GetSignalByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId);
|
||
balert.show('success', $scope.languageJson.Config.SignalName.Successfully, 3000);/*'修改成功!'*/
|
||
SignalSetterDialog.hide();
|
||
});
|
||
} else {
|
||
TemplateService.AddSignal($scope.Signals).then(function (ret) {
|
||
GetSignalByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId);
|
||
balert.show('success', $scope.languageJson.Config.SignalName.Added, 3000);/*'新增成功!'*/
|
||
SignalSetterDialog.hide();
|
||
});
|
||
}
|
||
};
|
||
//#endregion
|
||
|
||
//#region 6.2.2.绑定信号基类
|
||
var SignalBasetypeDialog = $modal({
|
||
scope: $scope,
|
||
templateUrl: 'partials/SignalBasetype.html',
|
||
show: false
|
||
});
|
||
$scope.SignalBaseTypeId = function () {
|
||
$scope.Signals.StartNum = 2;
|
||
$scope.Signals.EndNum = "";
|
||
if ($scope.Signals.BaseTypeId == undefined || $scope.Signals.BaseTypeId == "")
|
||
$scope.Signals.IsBaseNameExt = "display:none;";
|
||
TemplateService.GetEquipmentBaseTypeById($scope.Signals.EquipmentTemplateId).then(function (data) {
|
||
$scope.Signals.EquipmentBaseType = data;
|
||
$scope.CheckedEquipmentBaseType();
|
||
SignalBasetypeDialog.$promise.then(SignalBasetypeDialog.show);
|
||
});
|
||
// 重写
|
||
$scope.confirmed = function () {
|
||
if ($scope.Signals.BaseTypeId == "" || $scope.Signals.BaseTypeId == undefined)
|
||
SignalBasetypeDialog.hide();
|
||
else if ($scope.SignalList) {
|
||
var is = false;
|
||
$scope.SignalList.forEach(function (item) {
|
||
if (item.SignalId != $scope.Signals.SignalId && item.BaseTypeId == $scope.Signals.BaseTypeId)
|
||
is = true;
|
||
});
|
||
if (is) {
|
||
balert.show('danger', $scope.languageJson.Config.Signalbase.Repeated, 3000);/*'基类编号不能重复!'*/
|
||
} else
|
||
SignalBasetypeDialog.hide();
|
||
}
|
||
};
|
||
$scope.clear = function () {
|
||
$scope.Signals.BaseTypeId = "";
|
||
SignalBasetypeDialog.hide();
|
||
};
|
||
$scope.create = function () {
|
||
if ($scope.Signals.BaseTypeId == "" || $scope.Signals.BaseTypeId == undefined) {
|
||
balert.show('danger', $scope.languageJson.Config.Signalbase.Title, 3000);/*'请选择基类信号!'*/
|
||
return;
|
||
}
|
||
if ($scope.Signals.BaseNameExt != "" && $scope.Signals.BaseNameExt != undefined) {
|
||
if ($scope.Signals.StartNum == "" || $scope.Signals.StartNum == undefined) {
|
||
balert.show('danger', $scope.languageJson.Config.Signalbase.Starting, 3000);/*'开始序号不能为空!'*/
|
||
return;
|
||
}
|
||
if ($scope.Signals.EndNum != "" && $scope.Signals.EndNum != undefined) {
|
||
if (parseInt($scope.Signals.EndNum) <= parseInt($scope.Signals.StartNum)) {
|
||
balert.show('danger', $scope.languageJson.Config.Signalbase.Must, 3000);/*'结束序号必须大于开始序号!'*/
|
||
return;
|
||
}
|
||
}
|
||
if (isNaN($scope.Signals.StartNum) || ($scope.Signals.EndNum != "" && isNaN($scope.Signals.EndNum))) {
|
||
balert.show('danger', $scope.languageJson.Config.Signalbase.Numbers, 3000);/*'开始序号和结束序号只能是数值!'*/
|
||
return;
|
||
}
|
||
}
|
||
var num = parseInt(parseInt($scope.Signals.BaseTypeId) / 100);
|
||
var isBaseTypeId = false;
|
||
$scope.Template.BaseDic.forEach(function (item) {
|
||
if (item.BaseTypeId.indexOf(num) == 0) {
|
||
var no = parseInt(item.BaseTypeId) % 100;
|
||
if ($scope.Signals.EndNum == undefined || $scope.Signals.EndNum == "") {
|
||
if (no == $scope.Signals.StartNum) {
|
||
balert.show('danger', $scope.languageJson.Config.Signalbase.Add, 3000);/*'新增基类信号已存在!'*/
|
||
isBaseTypeId = true;
|
||
}
|
||
} else {
|
||
if (no >= parseInt($scope.Signals.StartNum) && no <= parseInt($scope.Signals.EndNum)) {
|
||
balert.show('danger', $scope.languageJson.Config.Signalbase.Serial, 3000);/*'新增序号区间有已存在的基类信号!'*/
|
||
isBaseTypeId = true;
|
||
}
|
||
}
|
||
}
|
||
});
|
||
if (isBaseTypeId) return;
|
||
TemplateService.InsertBaseType("TBL_SignalBaseDic", $scope.Signals.EquipmentBaseType, $scope.Signals.BaseTypeId, $scope.Signals.StartNum, $scope.Signals.EndNum).then(function (data) {
|
||
if (data) {
|
||
balert.show('success', $scope.languageJson.Config.Signalbase.Successfully, 3000);/*'新增成功!'*/
|
||
$scope.CheckedEquipmentBaseType();
|
||
} else {
|
||
balert.show('danger', $scope.languageJson.Config.Signalbase.New, 3000);/*'新增失败!'*/
|
||
}
|
||
});
|
||
};
|
||
};
|
||
$scope.CheckedEquipmentBaseType = function () {
|
||
if ($scope.Signals.EquipmentBaseType) {
|
||
TemplateService.GetBaseDicByBaseType("SignalBaseDic", $scope.Signals.EquipmentBaseType).then(function (data) {
|
||
$scope.Template.BaseDic = data;
|
||
if ($scope.Signals.BaseTypeId)
|
||
$scope.CheckedBaseTypeId($scope.Signals.BaseTypeId);
|
||
});
|
||
}
|
||
};
|
||
$scope.CheckedBaseTypeId = function (baseTypeId) {
|
||
$scope.Signals.IsBaseNameExt = "display:none;";
|
||
$scope.Signals.IsSystem = "display:none;";
|
||
$scope.Template.BaseDic.forEach(function (item) {
|
||
if (item.BaseTypeId == baseTypeId) {
|
||
$scope.Signals.BaseNameExt = item.BaseNameExt;
|
||
if (item.IsSystem == "false")
|
||
$scope.Signals.IsSystem = "display:block;";
|
||
if (item.BaseNameExt != undefined && item.BaseNameExt != "")
|
||
$scope.Signals.IsBaseNameExt = "display:block;";
|
||
}
|
||
});
|
||
};
|
||
var ConfirmBoxDialog = $modal({
|
||
scope: $scope,
|
||
templateUrl: 'partials/confirmBox.html',
|
||
show: false
|
||
});
|
||
$scope.removeSignalBaseDic = function () {
|
||
$scope.ConfirmBox = {
|
||
type: "DeleteSignalBaseDic",
|
||
equipmentTemplateId: undefined,
|
||
id: $scope.Signals.BaseTypeId
|
||
};
|
||
$scope.message = $scope.languageJson.Config.Signalbase.Class;/*确定删除此基类信号吗?*/
|
||
ConfirmBoxDialog.$promise.then(ConfirmBoxDialog.show);
|
||
};
|
||
//#endregion
|
||
|
||
//#region 6.2.3.删除信号
|
||
$scope.deleteSignalClick = function (data) {
|
||
$scope.ConfirmBox = {
|
||
type: "DeleteSignal",
|
||
equipmentTemplateId: data.EquipmentTemplateId,
|
||
id: data.SignalId
|
||
};
|
||
$scope.message = $scope.languageJson.Config.SignalName.Confirm + data.SignalName + $scope.languageJson.Config.SignalName.Data;
|
||
ConfirmBoxDialog.$promise.then(ConfirmBoxDialog.show);
|
||
};
|
||
//#endregion
|
||
|
||
//#region 6.2.4.批量修改存储
|
||
var modifyStorageCycleDlg = $modal({
|
||
scope: $scope,
|
||
templateUrl: 'partials/modifyStorageCycle.html',
|
||
show: false
|
||
});
|
||
$scope.batchSignalConfigClk = function(selectedArr){
|
||
$scope.signalResult = {
|
||
TemplateId:0,
|
||
SignalIdArray:[], //信号id数组类型存储全部选中id
|
||
StoreInterval:"", //存储周期
|
||
AbsValueThreshold:"", //绝对值阀值
|
||
PercentThreshold:"", //百分比阀值
|
||
StaticsPeriod:"", //统计周期(时)
|
||
};
|
||
if (selectedArr == undefined){
|
||
return;
|
||
}else{
|
||
selectedArr.forEach(function(item){
|
||
if(item.checked){
|
||
$scope.signalResult.SignalIdArray.push(item.SignalId)
|
||
$scope.signalResult.TemplateId = item.EquipmentTemplateId;
|
||
}
|
||
})
|
||
}
|
||
if ($scope.signalResult.SignalIdArray.length == 0){
|
||
balert.show('danger',$scope.languageJson.Configuration.SignalControl.ErrorPrompt, 3000);/*'请选择信号!'*/
|
||
}else{
|
||
modifyStorageCycleDlg.$promise.then(modifyStorageCycleDlg.show);
|
||
}
|
||
}
|
||
$scope.selectSignalListAll = function(selectedArr){
|
||
if(selectedArr.checkedAll) {
|
||
selectedArr.forEach(function (item) {
|
||
item.checked = true;
|
||
})
|
||
}else {
|
||
selectedArr.forEach(function (item) {
|
||
item.checked = false;
|
||
})
|
||
}
|
||
}
|
||
$scope.selectSignal = function(selectedArr,el){
|
||
let allCount = 0
|
||
let dom = document.getElementById(el)
|
||
if(!dom) return
|
||
selectedArr.forEach(function(item){
|
||
if(item.checked){
|
||
allCount++
|
||
}
|
||
})
|
||
if(allCount == selectedArr.length){
|
||
dom.indeterminate = false
|
||
selectedArr.checkedAll = true
|
||
}else if(allCount >= 1){
|
||
dom.indeterminate = true
|
||
}else{
|
||
dom.indeterminate = false
|
||
selectedArr.checkedAll= false
|
||
}
|
||
}
|
||
$scope.modifySignalCycle = function(){
|
||
TemplateService.modifySignalCycle($scope.signalResult).then(function(date){
|
||
if (date=="OK"){
|
||
balert.show('success', $scope.languageJson.Config.Templatenames.Successfully, 3000);/*'修改成功!'*/
|
||
GetSignalByEquipmentTemplateId($scope.signalResult.TemplateId);
|
||
modifyStorageCycleDlg.hide();
|
||
}else{
|
||
balert.show('danger', $scope.languageJson.Config.Templatenames.Fail, 3000);/*'修改失败!'*/
|
||
}
|
||
})
|
||
}
|
||
//#endregion
|
||
//#endregion
|
||
|
||
//#region 6.3.信号/控制:信号/控制含义
|
||
var BindingMeaningsDialog = $modal({
|
||
scope: $scope,
|
||
templateUrl: 'partials/bindingMeanings.html',
|
||
show: false
|
||
});
|
||
$scope.BindingMeanings = function (type, data) {
|
||
if (type == 'Signal') {
|
||
$scope.title = $scope.languageJson.Config.ControlSignal.Title;/*"信号"*/
|
||
$scope.DataMeanings = getSignalMeanings(data);
|
||
} else {
|
||
$scope.title = $scope.languageJson.Config.ControlSignal.Control;/*"控制"*/
|
||
$scope.DataMeanings = getControlMeanings(data);
|
||
}
|
||
BindingMeaningsDialog.$promise.then(BindingMeaningsDialog.show);
|
||
};
|
||
function getSignalMeanings(data) {
|
||
var obj = [];
|
||
if (data.DataMeanings) {
|
||
data.DataMeanings.forEach(function (item) {
|
||
var cfg = {};
|
||
if (item.StateValue == undefined)
|
||
cfg.Value = item.Value;
|
||
else
|
||
cfg.Value = item.StateValue;
|
||
cfg.Meanings = item.Meanings;
|
||
obj.push(cfg);
|
||
});
|
||
}
|
||
obj.EquipmentTemplateId = data.EquipmentTemplateId;
|
||
if (obj.EquipmentTemplateId == undefined) obj.EquipmentTemplateId = $scope.selectEvent.EquipmentTemplateId;
|
||
obj.Id = data.SignalId;
|
||
return obj;
|
||
};
|
||
function getControlMeanings(data) {
|
||
var obj = [];
|
||
if (data.DataMeanings) {
|
||
data.DataMeanings.forEach(function (item) {
|
||
var cfg = {};
|
||
if (item.ParameterValue == undefined) cfg.Value = item.Value;
|
||
else cfg.Value = item.ParameterValue;
|
||
cfg.Meanings = item.Meanings;
|
||
obj.push(cfg);
|
||
});
|
||
}
|
||
obj.EquipmentTemplateId = data.EquipmentTemplateId;
|
||
if (obj.EquipmentTemplateId == undefined) obj.EquipmentTemplateId = $scope.selectEvent.EquipmentTemplateId;
|
||
obj.Id = data.ControlId;
|
||
return obj;
|
||
};
|
||
// 新增含义
|
||
$scope.addMeaningsCol = function () {
|
||
var value = -1;
|
||
$scope.DataMeanings.forEach(function (item) {
|
||
if (item.Value > value) {
|
||
value = item.Value;
|
||
}
|
||
});
|
||
value++;
|
||
var cfg = {
|
||
Value: value,
|
||
Meanings: $scope.languageJson.Config.Meaning
|
||
};/*'含义'*/
|
||
$scope.DataMeanings.push(cfg);
|
||
};
|
||
// 保存含义
|
||
$scope.saveMeanings = function () {
|
||
if ($scope.title == $scope.languageJson.Config.ControlSignal.Title) {/*"信号"*/
|
||
TemplateService.SaveSignalMeanings($scope.DataMeanings).then(function (data) {
|
||
balert.show('success', $scope.languageJson.Config.ControlSignal.Successful, 3000);/*'处理成功!'*/
|
||
parseSignalMeanings($scope.DataMeanings);
|
||
});
|
||
} else {
|
||
TemplateService.SaveControlMeanings($scope.DataMeanings).then(function (data) {
|
||
balert.show('success', $scope.languageJson.Config.ControlSignal.Successful, 3000);/*'处理成功!'*/
|
||
parseControlMeanings($scope.DataMeanings);
|
||
});
|
||
}
|
||
BindingMeaningsDialog.hide();
|
||
};
|
||
function parseSignalMeanings(data) {
|
||
$scope.Signals.Meanings = undefined;
|
||
$scope.Signals.DataMeanings = [];
|
||
data.forEach(function (sm) {
|
||
if ($scope.Signals.Meanings == undefined) {
|
||
$scope.Signals.Meanings = sm.Meanings;
|
||
} else {
|
||
$scope.Signals.Meanings += "/" + sm.Meanings;
|
||
}
|
||
$scope.Signals.DataMeanings.push(sm);
|
||
});
|
||
if ($scope.Signals.DataMeanings.EquipmentTemplateId == undefined)
|
||
$scope.Signals.DataMeanings.EquipmentTemplateId = $scope.selectEvent.EquipmentTemplateId;
|
||
$scope.Signals.DataMeanings.Id = $scope.Signals.SignalId;
|
||
};
|
||
function parseControlMeanings(data) {
|
||
$scope.Controls.Meanings = undefined;
|
||
$scope.Controls.DataMeanings = [];
|
||
data.forEach(function (sm) {
|
||
if ($scope.Controls.Meanings == undefined) {
|
||
$scope.Controls.Meanings = sm.Meanings;
|
||
} else {
|
||
$scope.Controls.Meanings += "/" + sm.Meanings;
|
||
}
|
||
$scope.Controls.DataMeanings.push(sm);
|
||
});
|
||
if ($scope.Controls.DataMeanings.EquipmentTemplateId == undefined)
|
||
$scope.Controls.DataMeanings.EquipmentTemplateId = $scope.selectEvent.EquipmentTemplateId;
|
||
$scope.Controls.DataMeanings.Id = $scope.Controls.ControlId;
|
||
};
|
||
// 删除含义
|
||
$scope.deleteMeaningsClick = function ($index) {
|
||
$scope.DataMeanings.splice($index, 1);
|
||
};
|
||
//#endregion
|
||
|
||
//#region 6.4.事件管理
|
||
//#region 6.4.1.新增/修改事件
|
||
var EventSetterDialog = $modal({
|
||
scope: $scope,
|
||
templateUrl: 'partials/EventSetter.html',
|
||
show: false
|
||
});
|
||
// 新增信号弹出框
|
||
$scope.AddEvent = function () {
|
||
$scope.btnName = $scope.languageJson.Config.ControlSignal.New/*"新增"*/;
|
||
TemplateService.GetNextSignalId($scope.selectEvent.EquipmentTemplateId, 'Event').then(function (data) {
|
||
$scope.Events = {
|
||
EquipmentTemplateId: $scope.selectEvent.EquipmentTemplateId,
|
||
EventId: parseInt(data),
|
||
EventName: $scope.languageJson.Config.Details.NewName,
|
||
EventCategory: '2',
|
||
StartType: '1',
|
||
EndType: '3',
|
||
Enable: true,
|
||
Visible: true,
|
||
IsBaseNameExt: "display:none;"
|
||
};/*'新事件'*/
|
||
EventSetterDialog.$promise.then(EventSetterDialog.show);
|
||
});
|
||
if ($scope.SignalList == undefined) {
|
||
TemplateService.GetSignalByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId).then(function (data) {
|
||
TemplateService.GetSignalMeaningsByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId).then(function (datas) {
|
||
$scope.SignalMeaningsList = datas;
|
||
$scope.SignalList = parseSignalList(data, datas);
|
||
});
|
||
});
|
||
}
|
||
};
|
||
// 修改信号弹出框
|
||
$scope.updateEventClick = function (data) {
|
||
$scope.btnName = $scope.languageJson.Config.ControlSignal.Modify;/*"修改"*/
|
||
$scope.Events = data;
|
||
if (data.Enable == 'true') $scope.Events.Enable = true;
|
||
if (data.Visible == 'true') $scope.Events.Visible = true;
|
||
EventSetterDialog.$promise.then(EventSetterDialog.show);
|
||
};
|
||
$scope.ChangeRelateEventSignal = function (signalId) {
|
||
if ($scope.Events.StartExpression == undefined)
|
||
$scope.Events.StartExpression = '';
|
||
$scope.Events.StartExpression += "[-1," + signalId + "]";
|
||
$scope.SignalList.forEach(function (item) {
|
||
if (item.SignalId == signalId)
|
||
$scope.Events.EventName = item.SignalName + $scope.languageJson.Config.Details.Suffix;/*"事件"*/
|
||
});
|
||
};
|
||
$scope.ClickEventsLi = function (symbol) {
|
||
if ($scope.Events.StartExpression == undefined)
|
||
$scope.Events.StartExpression = "";
|
||
|
||
var textDom = document.getElementById("EventExpression");
|
||
var addStr = symbol;
|
||
|
||
if (textDom.selectionStart || textDom.selectionStart == '0') {
|
||
$scope.Events.StartExpression = $scope.Events.StartExpression.substring(0, $scope.startPos) + addStr +
|
||
$scope.Events.StartExpression.substring($scope.endPos);
|
||
textDom.focus();
|
||
textDom.selectionStart = $scope.startPos + addStr.length;
|
||
textDom.selectionEnd = $scope.startPos + addStr.length;
|
||
textDom.scrollTop = $scope.scrollTop;
|
||
} else {
|
||
$scope.Events.StartExpression += addStr;
|
||
textDom.focus();
|
||
}
|
||
};
|
||
$scope.saveEvent = function () {
|
||
if ($scope.Events.EventName == undefined || $scope.Events.EventName == '') {
|
||
balert.show('danger', $scope.languageJson.Config.ControlSignal.Empty, 3000);/*'事件名称不能为空!'*/
|
||
return;
|
||
}
|
||
if ($scope.btnName == $scope.languageJson.Config.ControlSignal.New) {/*'新增'*/
|
||
TemplateService.AddEvent($scope.Events).then(function (data) {
|
||
GetEventByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId);
|
||
balert.show('success', $scope.languageJson.Config.ControlSignal.Added, 3000);/*'新增成功!'*/
|
||
});
|
||
} else {
|
||
TemplateService.SaveEvent($scope.Events).then(function (data) {
|
||
GetEventByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId);
|
||
balert.show('success', $scope.languageJson.Config.ControlSignal.Modified, 3000);/*'修改成功!'*/
|
||
});
|
||
}
|
||
EventSetterDialog.hide();
|
||
};
|
||
|
||
//#region 绑定事件&事件基类
|
||
var BindingConditionDialog = $modal({
|
||
scope: $scope,
|
||
templateUrl: 'partials/bindingCondition.html',
|
||
show: false
|
||
});
|
||
$scope.BindingCondition = function (data) {
|
||
$scope.EventCondition = data.EventCondition;
|
||
if ($scope.EventCondition == undefined)
|
||
$scope.EventCondition = [];
|
||
$scope.EventCondition.EquipmentTemplateId = data.EquipmentTemplateId;
|
||
$scope.EventCondition.EventId = data.EventId;
|
||
BindingConditionDialog.$promise.then(BindingConditionDialog.show);
|
||
};
|
||
$scope.addConditionCol = function () {
|
||
var number = -1;
|
||
if ($scope.EventCondition) {
|
||
$scope.EventCondition.forEach(function (item) {
|
||
if (item.EventConditionId > number) number = item.EventConditionId;
|
||
});
|
||
}
|
||
var cfg = {
|
||
EventConditionId: ++number,
|
||
EventSeverity: '1',
|
||
StartOperation: '=',
|
||
StartCompareValue: '0',
|
||
StartDelay: '0',
|
||
Meanings: $scope.Events.EventName
|
||
};
|
||
if ($scope.Events.EventCondition && $scope.Events.EventCondition.length > 0)
|
||
cfg.BaseTypeId = $scope.Events.EventCondition[0].BaseTypeId;
|
||
$scope.EventCondition.push(cfg);
|
||
};
|
||
$scope.deleteConditionClick = function ($index) {
|
||
$scope.EventCondition.splice($index, 1);
|
||
};
|
||
$scope.saveCondition = function () {
|
||
$scope.Events.Meanings = undefined;
|
||
TemplateService.SaveCondition($scope.EventCondition).then(function (data) {
|
||
$scope.EventCondition.forEach(function (ec) {
|
||
if ($scope.Events.Meanings == undefined) {
|
||
$scope.Events.Meanings = ec.EventConditionId;
|
||
} else {
|
||
$scope.Events.Meanings += "/" + ec.EventConditionId;
|
||
}
|
||
});
|
||
$scope.Events.EventCondition = $scope.EventCondition;
|
||
balert.show('success', $scope.languageJson.Config.ControlSignal.Successful, 3000);/*'处理成功!'*/
|
||
BindingConditionDialog.hide();
|
||
});
|
||
};
|
||
// 基类事件基类
|
||
var EventBasetypeDialog = $modal({
|
||
scope: $scope,
|
||
templateUrl: 'partials/EventBasetype.html',
|
||
show: false
|
||
});
|
||
$scope.EventBaseTypeId = function (data) {
|
||
$scope.Events.EventConditionId = data.EventConditionId;
|
||
$scope.Events.BaseTypeId = data.BaseTypeId;
|
||
$scope.Events.StartNum = 2;
|
||
$scope.Events.EndNum = "";
|
||
TemplateService.GetEquipmentBaseTypeById($scope.Events.EquipmentTemplateId).then(function (data) {
|
||
$scope.Events.EquipmentBaseType = data;
|
||
$scope.CheckedEventEquipmentBaseType();
|
||
EventBasetypeDialog.$promise.then(EventBasetypeDialog.show);
|
||
});
|
||
};
|
||
$scope.createEvent = function () {
|
||
if ($scope.Events.BaseTypeId == "" || $scope.Events.BaseTypeId == undefined) {
|
||
balert.show('danger', $scope.languageJson.Config.Signalbase.Title, 3000);/*'请选择基类事件!'*/
|
||
return;
|
||
}
|
||
if ($scope.Events.BaseNameExt != "" && $scope.Events.BaseNameExt != undefined) {
|
||
if ($scope.Events.StartNum == "" || $scope.Events.StartNum == undefined) {
|
||
balert.show('danger', $scope.languageJson.Config.Signalbase.Starting, 3000);/*'开始序号不能为空!'*/
|
||
return;
|
||
}
|
||
if ($scope.Events.EndNum != "" && $scope.Events.EndNum != undefined) {
|
||
if ($scope.Events.EndNum <= $scope.Events.StartNum) {
|
||
balert.show('danger', $scope.languageJson.Config.Signalbase.Must, 3000);/*'结束序号必须大于开始序号!*/
|
||
return;
|
||
}
|
||
}
|
||
if (isNaN($scope.Events.StartNum) || ($scope.Events.EndNum != "" && isNaN($scope.Events.EndNum))) {
|
||
balert.show('danger', $scope.languageJson.Config.Signalbase.Numbers, 3000);/*开始序号和结束序号只能是数值!*/
|
||
return;
|
||
}
|
||
}
|
||
var num = parseInt(parseInt($scope.Events.BaseTypeId) / 100);
|
||
var isBaseTypeId = false;
|
||
$scope.Template.EventBaseDic.forEach(function (item) {
|
||
if (item.BaseTypeId.indexOf(num) == 0) {
|
||
var no = parseInt(item.BaseTypeId) % 100;
|
||
if ($scope.Events.EndNum == undefined || $scope.Events.EndNum == "") {
|
||
if (no == $scope.Events.StartNum) {
|
||
balert.show('danger', $scope.languageJson.Config.Signalbase.Add, 3000);/*新增基类信号已存在!*/
|
||
isBaseTypeId = true;
|
||
}
|
||
} else {
|
||
if (no >= parseInt($scope.Events.StartNum) && no <= parseInt($scope.Events.EndNum)) {
|
||
balert.show('danger', $scope.languageJson.Config.Signalbase.Serial, 3000);/*新增序号区间有已存在的基类信号!*/
|
||
isBaseTypeId = true;
|
||
}
|
||
}
|
||
}
|
||
});
|
||
if (isBaseTypeId) return;
|
||
TemplateService.InsertBaseType("TBL_EventBaseDic", $scope.Events.EquipmentBaseType, $scope.Events.BaseTypeId, $scope.Events.StartNum, $scope.Events.EndNum).then(function (data) {
|
||
if (data) {
|
||
balert.show('success', $scope.languageJson.Config.Signalbase.Successfully, 3000);/*新增成功!*/
|
||
$scope.CheckedEventEquipmentBaseType();
|
||
} else {
|
||
balert.show('danger', $scope.languageJson.Config.Signalbase.New, 3000);/*新增失败!*/
|
||
}
|
||
});
|
||
};
|
||
$scope.confirmedEvents = function () {
|
||
$scope.EventCondition.forEach(function (item) {
|
||
if ($scope.Events.EventConditionId == item.EventConditionId)
|
||
item.BaseTypeId = $scope.Events.BaseTypeId;
|
||
});
|
||
EventBasetypeDialog.hide();
|
||
};
|
||
$scope.clearEvents = function () {
|
||
$scope.Events.BaseTypeId = "";
|
||
EventBasetypeDialog.hide();
|
||
};
|
||
$scope.removeEventBaseDic = function () {
|
||
$scope.ConfirmBox = {
|
||
type: "DeleteEventBaseDic",
|
||
equipmentTemplateId: undefined,
|
||
id: $scope.Events.BaseTypeId
|
||
};
|
||
$scope.message = $scope.languageJson.Config.Signalbase.Class;/*确定删除此基类信号吗?*/
|
||
ConfirmBoxDialog.$promise.then(ConfirmBoxDialog.show);
|
||
};
|
||
//#endregion
|
||
//#endregion
|
||
|
||
//#region 6.4.2.删除事件
|
||
$scope.deleteEventClick = function (data) {
|
||
$scope.ConfirmBox = {
|
||
type: "DeleteEvent",
|
||
equipmentTemplateId: data.EquipmentTemplateId,
|
||
id: data.EventId
|
||
};
|
||
$scope.message = $scope.languageJson.Config.SignalName.Confirm + data.EventName + $scope.languageJson.Config.SignalName.Data;//"确定删除" / 事件的数据
|
||
ConfirmBoxDialog.$promise.then(ConfirmBoxDialog.show);
|
||
};
|
||
//#endregion
|
||
|
||
//#region 6.4.3.屏蔽事件
|
||
var shieldEventDlg = $modal({
|
||
scope: $scope,
|
||
templateUrl: 'partials/eventShieldStatus.html',
|
||
show: false
|
||
});
|
||
$scope.ShieldEvent = function () {
|
||
$scope.ShieldTemplate = getEquipmentTemplateById($scope.selectEvent.EquipmentTemplateId);
|
||
|
||
shieldEventDlg.$promise.then(shieldEventDlg.show);
|
||
};
|
||
function getEquipmentTemplateById(id) {
|
||
var obj = {};
|
||
if ($scope.equipmentTemplates) {
|
||
$scope.equipmentTemplates.forEach(function (item) {
|
||
if (item.EquipmentTemplateId == id)
|
||
obj = item;
|
||
});
|
||
}
|
||
if ($scope.EventList) {
|
||
obj.Shield = true;
|
||
$scope.EventList.forEach(function (item) {
|
||
if (item.Shield == false)
|
||
obj.Shield = false;
|
||
});
|
||
}
|
||
return obj;
|
||
}
|
||
$scope.checkShieldAll = function (equipmentTemplateId, shieldName, isShield) {
|
||
if (shieldName !== undefined) {
|
||
eval(shieldName + " = !" + shieldName);
|
||
}
|
||
isShield = !isShield;
|
||
TemplateService.ShieldEnableEvent(equipmentTemplateId, "", isShield).then(function (data) {
|
||
console.log("ShieldEnableEvent:" + data);
|
||
if ($scope.EventList) {
|
||
$scope.EventList.forEach(function (item) {
|
||
item.Shield = isShield;
|
||
});
|
||
}
|
||
});
|
||
};
|
||
$scope.checkShieldEvent = function (row, isShield) {
|
||
if (isShield == undefined) {
|
||
row.Shield = !row.Shield;
|
||
isShield = row.Shield;
|
||
} else
|
||
isShield = !isShield;
|
||
TemplateService.ShieldEnableEvent($scope.ShieldTemplate.EquipmentTemplateId, row.EventId, isShield).then(function (data) {
|
||
console.log("ShieldEnableEvent:" + data);
|
||
});
|
||
};
|
||
$scope.ShieldEventSave = function () {
|
||
balert.show('success', $scope.languageJson.Config.ShieldEventBox.Prompt.succeed, 3000);/*保存成功,请点击'配置生效'按钮!*/
|
||
shieldEventDlg.hide();
|
||
};
|
||
//#endregion
|
||
//#endregion
|
||
|
||
//#region 6.5.控制管理
|
||
//#region 6.5.1.新增/修改控制
|
||
var ControlSetterDialog = $modal({
|
||
scope: $scope,
|
||
templateUrl: 'partials/ControlSetter.html',
|
||
show: false
|
||
});
|
||
// 新增控制弹出框
|
||
$scope.AddControl = function () {
|
||
$scope.btnName = $scope.languageJson.Config.Setting.New/*"新增"*/;
|
||
TemplateService.GetNextSignalId($scope.selectEvent.EquipmentTemplateId, 'Control').then(function (data) {
|
||
$scope.Controls = {
|
||
EquipmentTemplateId: $scope.selectEvent.EquipmentTemplateId,
|
||
ControlId: parseInt(data),
|
||
ControlName: $scope.languageJson.Config.Con.NewName,
|
||
ControlCategory: '1',
|
||
ControlSeverity: '1',
|
||
ControlType: '1',
|
||
DataType: '0',
|
||
CmdToken: '',
|
||
CommandType: '1',
|
||
MaxValue: '0.0',
|
||
MinValue: '0.0',
|
||
Meanings: '',
|
||
Enable: true,
|
||
Visible: true,
|
||
BaseTypeId: ''
|
||
};/*'新控制'*/
|
||
ControlSetterDialog.$promise.then(ControlSetterDialog.show);
|
||
});
|
||
};
|
||
// 修改控制弹出框
|
||
$scope.updateControlClick = function (data) {
|
||
$scope.btnName = $scope.languageJson.Config.ControlSignal.Modify;/*"修改"*/
|
||
$scope.Controls = data;
|
||
if (data.Enable == 'true') $scope.Controls.Enable = true;
|
||
if (data.Visible == 'true') $scope.Controls.Visible = true;
|
||
ControlSetterDialog.$promise.then(ControlSetterDialog.show);
|
||
};
|
||
$scope.ChangeRelateControlSignal = function (signalId) {
|
||
$scope.SignalList.forEach(function (item) {
|
||
if (item.SignalId == signalId)
|
||
$scope.Controls.ControlName = item.SignalName + $scope.languageJson.Config.ControlSignal.Suffix;/*"控制"*/
|
||
});
|
||
};
|
||
$scope.saveControl = function () {
|
||
var controlSignal = $scope.languageJson.Config.ControlSignal;
|
||
if ($scope.Controls.ControlName == "" || $scope.Controls.ControlName == undefined) {
|
||
balert.show('danger', controlSignal.Controls, 3000);/*'控制名称不能为空!'*/
|
||
return;
|
||
}
|
||
if ($scope.btnName == controlSignal.Modify) {/*"修改"*/
|
||
TemplateService.SaveControl($scope.Controls).then(function (ret) {
|
||
GetControlByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId);
|
||
balert.show('success', controlSignal.Modified, 3000);/*'修改成功!'*/
|
||
ControlSetterDialog.hide();
|
||
});
|
||
} else {
|
||
TemplateService.AddControl($scope.Controls).then(function (ret) {
|
||
GetControlByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId);
|
||
balert.show('success', controlSignal.Added, 3000);/*'新增成功!'*/
|
||
ControlSetterDialog.hide();
|
||
});
|
||
}
|
||
};
|
||
// 控制基类
|
||
var ControlBasetypeDialog = $modal({
|
||
scope: $scope,
|
||
templateUrl: 'partials/ControlBasetype.html',
|
||
show: false
|
||
});
|
||
$scope.ControlBaseTypeId = function (data) {
|
||
$scope.Controls.StartNum = 2;
|
||
$scope.Controls.EndNum = "";
|
||
TemplateService.GetEquipmentBaseTypeById($scope.Controls.EquipmentTemplateId).then(function (data) {
|
||
$scope.Controls.EquipmentBaseType = data;
|
||
if ($scope.Controls.BaseTypeId == "" || $scope.Controls.BaseTypeId == undefined)
|
||
$scope.Controls.IsBaseNameExt = "display:none;";
|
||
$scope.CheckedControlEquipmentBaseType();
|
||
ControlBasetypeDialog.$promise.then(ControlBasetypeDialog.show);
|
||
});
|
||
};
|
||
$scope.createControl = function () {
|
||
if ($scope.Controls.BaseTypeId == "" || $scope.Controls.BaseTypeId == undefined) {
|
||
balert.show('danger', $scope.languageJson.Config.Signalbase.Base, 3000);/*'请选择基类事件!'*/
|
||
return;
|
||
}
|
||
if ($scope.Controls.BaseNameExt != "" && $scope.Controls.BaseNameExt != undefined) {
|
||
if ($scope.Controls.StartNum == "" || $scope.Controls.StartNum == undefined) {
|
||
balert.show('danger', $scope.languageJson.Config.Signalbase.Starting, 3000);/*'开始序号不能为空!'*/
|
||
return;
|
||
}
|
||
if ($scope.Controls.EndNum != "" && $scope.Controls.EndNum != undefined) {
|
||
if ($scope.Controls.EndNum <= $scope.Controls.StartNum) {
|
||
balert.show('danger', $scope.languageJson.Config.Signalbase.Must, 3000);/*'结束序号必须大于开始序号!'*/
|
||
return;
|
||
}
|
||
}
|
||
if (isNaN($scope.Controls.StartNum) || ($scope.Controls.EndNum != "" && isNaN($scope.Controls.EndNum))) {
|
||
balert.show('danger', $scope.languageJson.Config.Signalbase.Numbers, 3000);/*'开始序号和结束序号只能是数值!'*/
|
||
return;
|
||
}
|
||
}
|
||
var num = parseInt(parseInt($scope.Controls.BaseTypeId) / 100);
|
||
var isBaseTypeId = false;
|
||
$scope.Template.ControlBaseDic.forEach(function (item) {
|
||
if (item.BaseTypeId.indexOf(num) == 0) {
|
||
var no = parseInt(item.BaseTypeId) % 100;
|
||
if ($scope.Controls.EndNum == undefined || $scope.Controls.EndNum == "") {
|
||
if (no == $scope.Events.StartNum) {
|
||
balert.show('danger', $scope.languageJson.Config.Signalbase.Add, 3000);/*'新增基类信号已存在!'*/
|
||
isBaseTypeId = true;
|
||
}
|
||
} else {
|
||
if (no >= parseInt($scope.Controls.StartNum) && no <= parseInt($scope.Controls.EndNum)) {
|
||
balert.show('danger', $scope.languageJson.Config.Signalbase.Serial, 3000);/*'新增序号区间有已存在的基类信号!'*/
|
||
isBaseTypeId = true;
|
||
}
|
||
}
|
||
}
|
||
});
|
||
if (isBaseTypeId) return;
|
||
TemplateService.InsertBaseType("TBL_CommandBaseDic", $scope.Controls.EquipmentBaseType, $scope.Controls.BaseTypeId, $scope.Controls.StartNum, $scope.Controls.EndNum).then(function (data) {
|
||
if (data) {
|
||
balert.show('success', $scope.languageJson.Config.Signalbase.Successfully, 3000);/*'新增成功!'*/
|
||
$scope.CheckedControlEquipmentBaseType();
|
||
} else {
|
||
balert.show('danger', $scope.languageJson.Config.Signalbase.New, 3000);/*'新增失败!'*/
|
||
}
|
||
});
|
||
};
|
||
$scope.confirmedControls = function () {
|
||
if ($scope.ControlList) {
|
||
var is = false;
|
||
$scope.ControlList.forEach(function (item) {
|
||
if (item.ControlId != $scope.Controls.ControlId && item.BaseTypeId == $scope.Controls.BaseTypeId)
|
||
is = true;
|
||
});
|
||
if (is) {
|
||
balert.show('danger', $scope.languageJson.Config.Signalbase.Repeated, 3000);/*'基类编号不能重复!'*/
|
||
} else
|
||
ControlBasetypeDialog.hide();
|
||
}
|
||
};
|
||
$scope.clearControls = function () {
|
||
$scope.Controls.BaseTypeId = "";
|
||
ControlBasetypeDialog.hide();
|
||
};
|
||
$scope.removeControlBaseDic = function () {
|
||
$scope.ConfirmBox = {
|
||
type: "DeleteCommandBaseDic",
|
||
equipmentTemplateId: undefined,
|
||
id: $scope.Controls.BaseTypeId
|
||
};
|
||
$scope.message = $scope.languageJson.Config.Signalbase.Class;/*"确定删除此基类信号吗?"*/
|
||
ConfirmBoxDialog.$promise.then(ConfirmBoxDialog.show);
|
||
};
|
||
//#endregion
|
||
|
||
//#region 6.5.2.删除控制
|
||
$scope.deleteControlClick = function (data) {
|
||
$scope.ConfirmBox = {
|
||
type: "DeleteControl",
|
||
equipmentTemplateId: data.EquipmentTemplateId,
|
||
id: data.ControlId
|
||
};
|
||
$scope.message = $scope.languageJson.Config.SignalName.Confirm + data.ControlName + $scope.languageJson.Config.SignalName.Data;//"确定删除“" / 控制的数据
|
||
ConfirmBoxDialog.$promise.then(ConfirmBoxDialog.show);
|
||
};
|
||
//#endregion
|
||
//#endregion
|
||
|
||
//#region 6.6.排序
|
||
$scope.sortingOrder = undefined;
|
||
$scope.reverse = false;
|
||
$scope.SortBy = function (newSortingOrder) {
|
||
if ($scope.sortingOrder == newSortingOrder) {
|
||
$scope.reverse = !$scope.reverse;
|
||
}
|
||
$scope.sortingOrder = newSortingOrder;
|
||
// 遍历
|
||
$('th i').each(function () {
|
||
// 删除其他箭头样式
|
||
$(this).removeClass("fa-chevron-down");
|
||
$(this).removeClass("fa-chevron-up");
|
||
});
|
||
if ($scope.reverse) {
|
||
$('th.' + newSortingOrder + ' i').removeClass('fa-chevron-down').addClass('fa-chevron-up');
|
||
} else {
|
||
$('th.' + newSortingOrder + ' i').removeClass('fa-chevron-up').addClass('fa-chevron-down');
|
||
}
|
||
|
||
};
|
||
$scope.SortByChannelNo = function (newSortingOrder) {
|
||
$scope.SignalList.forEach(function (item) {
|
||
if (parseInt(item.ChannelNo) < 10 && parseInt(item.ChannelNo) > 0)
|
||
item.No = "1000" + item.ChannelNo;
|
||
else if (parseInt(item.ChannelNo) < 100 && parseInt(item.ChannelNo) > 0)
|
||
item.No = "100" + item.ChannelNo;
|
||
else if (parseInt(item.ChannelNo) < 1000 && parseInt(item.ChannelNo) > 0)
|
||
item.No = "10" + item.ChannelNo;
|
||
else if (parseInt(item.ChannelNo) < 10000 && parseInt(item.ChannelNo) > 0)
|
||
item.No = "1" + item.ChannelNo;
|
||
else
|
||
item.No = item.ChannelNo;
|
||
});
|
||
$scope.reverse = !$scope.reverse;
|
||
$scope.sortingOrder = "No";
|
||
// 遍历
|
||
$('th i').each(function () {
|
||
// 删除其他箭头样式
|
||
$(this).removeClass("fa-chevron-down");
|
||
$(this).removeClass("fa-chevron-up");
|
||
});
|
||
if ($scope.reverse) {
|
||
$('th.' + newSortingOrder + ' i').removeClass('fa-chevron-down').addClass('fa-chevron-up');
|
||
} else {
|
||
$('th.' + newSortingOrder + ' i').removeClass('fa-chevron-up').addClass('fa-chevron-down');
|
||
}
|
||
};
|
||
//#endregion
|
||
|
||
//#region 公共代码
|
||
$scope.ok = function () {
|
||
if ($scope.ConfirmBox == undefined) return;
|
||
if ($scope.ConfirmBox.type == "BatchBaseTypeId") {
|
||
TemplateService.BatchBaseTypeId($scope.selectEvent.EquipmentTemplateId).then(function (ret) {
|
||
GetSignalByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId);
|
||
balert.show('success', $scope.languageJson.Config.Templatenames.Batch, 3000);/*'批处理完成!'*/
|
||
});
|
||
} else if ($scope.ConfirmBox.type == "DeleteSignal") {
|
||
TemplateService.DeleteSignal($scope.ConfirmBox.equipmentTemplateId, $scope.ConfirmBox.id).then(function (ret) {
|
||
GetSignalByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId);
|
||
balert.show('success', $scope.languageJson.Config.Templatenames.Deleted, 3000);/*'删除成功!'*/
|
||
});
|
||
} else if ($scope.ConfirmBox.type == "DeleteEvent") {
|
||
TemplateService.DeleteEvent($scope.ConfirmBox.equipmentTemplateId, $scope.ConfirmBox.id).then(function (ret) {
|
||
GetEventByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId);
|
||
balert.show('success', $scope.languageJson.Config.Templatenames.Deleted, 3000);/*'删除成功!'*/
|
||
});
|
||
} else if ($scope.ConfirmBox.type == "DeleteControl") {
|
||
TemplateService.DeleteControl($scope.ConfirmBox.equipmentTemplateId, $scope.ConfirmBox.id).then(function (ret) {
|
||
GetControlByEquipmentTemplateId($scope.selectEvent.EquipmentTemplateId);
|
||
balert.show('success', $scope.languageJson.Config.Templatenames.Deleted, 3000);/*'删除成功!'*/
|
||
});
|
||
} else if ($scope.ConfirmBox.type == "DeleteSignalBaseDic") {
|
||
TemplateService.DeleteBaseDic("SignalBaseDic", $scope.ConfirmBox.id).then(function (data) {
|
||
balert.show('success', $scope.languageJson.Config.Templatenames.Deleted, 3000);/*'删除成功!'*/
|
||
$scope.CheckedEquipmentBaseType();
|
||
});
|
||
} else if ($scope.ConfirmBox.type == "DeleteEventBaseDic") {
|
||
TemplateService.DeleteBaseDic("EventBaseDic", $scope.ConfirmBox.id).then(function (data) {
|
||
balert.show('success', $scope.languageJson.Config.Templatenames.Deleted, 3000);/*'删除成功!'*/
|
||
$scope.CheckedEventEquipmentBaseType();
|
||
});
|
||
} else if ($scope.ConfirmBox.type == "DeleteCommandBaseDic") {
|
||
TemplateService.DeleteBaseDic("CommandBaseDic", $scope.ConfirmBox.id).then(function (data) {
|
||
balert.show('success', $scope.languageJson.Config.Templatenames.Deleted, 3000);/*'删除成功!'*/
|
||
$scope.CheckedControlEquipmentBaseType();
|
||
});
|
||
}
|
||
ConfirmBoxDialog.hide();
|
||
};
|
||
$scope.CheckedEventEquipmentBaseType = function () {
|
||
if ($scope.Events.EquipmentBaseType) {
|
||
TemplateService.GetBaseDicByBaseType("EventBaseDic", $scope.Events.EquipmentBaseType).then(function (data) {
|
||
$scope.Template.EventBaseDic = data;
|
||
$scope.CheckedEventBaseTypeId($scope.Events.BaseTypeId);
|
||
});
|
||
}
|
||
};
|
||
$scope.CheckedEventBaseTypeId = function (baseTypeId) {
|
||
$scope.Events.IsBaseNameExt = "display:none;";
|
||
$scope.Events.IsSystem = "display:none;";
|
||
$scope.Template.EventBaseDic.forEach(function (item) {
|
||
if (item.BaseTypeId == baseTypeId) {
|
||
$scope.Events.BaseNameExt = item.BaseNameExt;
|
||
if (item.IsSystem == "false")
|
||
$scope.Events.IsSystem = "display:block;";
|
||
if (item.BaseNameExt != undefined && item.BaseNameExt != "")
|
||
$scope.Events.IsBaseNameExt = "display:block;";
|
||
}
|
||
});
|
||
};
|
||
$scope.CheckedControlEquipmentBaseType = function () {
|
||
if ($scope.Controls.EquipmentBaseType) {
|
||
TemplateService.GetBaseDicByBaseType("CommandBaseDic", $scope.Controls.EquipmentBaseType).then(function (data) {
|
||
$scope.Template.ControlBaseDic = data;
|
||
if ($scope.Controls.BaseTypeId)
|
||
$scope.CheckedControlBaseTypeId($scope.Controls.BaseTypeId);
|
||
});
|
||
}
|
||
};
|
||
$scope.CheckedControlBaseTypeId = function (baseTypeId) {
|
||
$scope.Controls.IsBaseNameExt = "display:none;";
|
||
$scope.Controls.IsSystem = "display:none;";
|
||
$scope.Template.ControlBaseDic.forEach(function (item) {
|
||
if (item.BaseTypeId == baseTypeId) {
|
||
$scope.Controls.BaseNameExt = item.BaseNameExt;
|
||
if (item.IsSystem == "false")
|
||
$scope.Controls.IsSystem = "display:block;";
|
||
if (item.BaseNameExt != undefined && item.BaseNameExt != "")
|
||
$scope.Controls.IsBaseNameExt = "display:block;";
|
||
}
|
||
});
|
||
};
|
||
//#endregion
|
||
//#endregion
|
||
}
|
||
]);
|