app-xiangsonghua/app-saas-src/script/feature/alarmDetail.js
2024-12-26 17:00:06 +08:00

187 lines
5.8 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

apiready = function() {
var ctrl = {
alarmId: null,
websocket: null,
alarm: null,
init: {},
bind: {},
getAlarm: {},
renderAlarm: {},
initWebsocket: {},
renderFilter: {} //渲染报警列表前的拦截器,用于处理体验账号模式下的数据
}
//初始化
ctrl.init = function() {
// 适配安卓状态栏
CommonModel.fitInStatusBar();
this.alarmId = api.pageParam.id;
ctrl.employeeId = $api.getStorage('employeeId');
this.bind();
this.getAlarm();
}
//事件绑定
ctrl.bind = function() {
//点击返回按钮
$api.addEvt($api.dom("#back"), 'touchend', function() {
api.closeWin();
// if(ctrl.websocket){
// ctrl.websocket.close();
// }
}, false);
//退出app 关闭socket
api.addEventListener({
name: 'pause'
}, function(ret, err) {
// ctrl.websocket.close();
});
//应用恢复 打开websocket
api.addEventListener({
name: 'resume'
}, function(ret, err) {
// ctrl.initWebsocket(ctrl.alarm.serverIp, ctrl.alarm.varType, ctrl.alarm.varIndex);
});
// “生成工单” 按钮 点击
$api.addEvt($api.dom("#create-order-btn"), 'touchend', function() {
api.confirm({
title: '',
msg: '确定要生成工单吗',
buttons: ['确定', '取消']
}, function(ret, err) {
var index = ret.buttonIndex;
if (index == 1) { // 确定
ctrl.createOrder();
}
});
})
}
ctrl.getAlarm = function() {
var data = {
alarmId: this.alarmId
}
var url = "/ems/rest/alarm";
$api.get(url, data, function(ret, err) {
if (!err && ret && ret.code === 200) {
$api.css($api.dom("#content"), 'display:block');
$api.css($api.dom("#empty-tips"), 'display:none');
ctrl.renderAlarm(ret.body);
if (ret.body.handleStatus == 0) {
$api.css($api.dom("#create-order-btn"), 'display:block');
}
ctrl.alarm = ret.body;
} else {
$api.css($api.dom("#content"), 'display:none');
$api.css($api.dom("#empty-tips"), 'display:block');
}
});
}
//渲染报警列表前的拦截器,用于处理体验账号模式下的数据
ctrl.renderFilter = function(alarm) {
if ($api.getStorage('cus') && alarm.prName) {
alarm.prName = $api.guestPrName;
}
}
ctrl.renderAlarm = function(alarm) {
//渲染报警列表前的拦截器,用于处理体验账号模式下的数据
ctrl.renderFilter(alarm);
$api.text($api.dom("#pr-name"), alarm.prName);
var unit = alarm.unit ? alarm.unit : '';
var content = '<div>报警描述:' + alarm.alarmDesc + '</div>';
if (alarm.ddNum) {
content += ("<div>调度号:" + alarm.ddNum + "</div>");
}
if ($api.getStorage('cus')) {
content = content.replace($api.guestKeysPattern, $api.guestName);
}
if (alarm.varType == "1") { // AI
var alarmValue = ((alarm.alarmValue || alarm.alarmValue == 0) ? alarm.alarmValue.toFixed(2) : '');
content += '<div>报警值:' + alarmValue + unit + '</div>';
content += '<div>报警设定值:' +
((alarm.lowLimit || alarm.lowLimit == 0) ? "下限&nbsp;" + alarm.lowLimit + unit : '') +
((alarm.lowLimit || alarm.lowLimit == 0) && (alarm.topLimit || alarm.topLimit == 0) ? "" : '') +
((alarm.topLimit || alarm.topLimit == 0) ? "上限&nbsp;" + alarm.topLimit + unit : '') +
'</div>';
} else {
if (alarm.showValue) {
content += ('<div>报警值:' + alarm.valueDefine + '</div>')
}
}
// 处理状态
content += '<div>处理状态:' + ['未处理', '处理中', '已处理', '已确认'][alarm.handleStatus] + '</div>'
// 如果已确认 显示确认的原因
if (alarm.handleStatus == 3) {
content += '<div>确认原因:' + alarm.reason + '</div>';
}
// content += '<div>历史报警:' + alarm.historyAlarmCount + '次</div>';
// content += '<div>历史抢修:' + alarm.historyQxCount + '次</div>';
var alarmTime = (alarm.alarmTime ? moment(alarm.alarmTime).format("YYYY-MM-DD HH:mm:ss") : "")
if (alarm.lastAlarmTime) {
var lastAlarmTime = moment(alarm.lastAlarmTime).format("YYYY-MM-DD HH:mm:ss");
content += '<div>本次报警时间:' + alarmTime + '</div>';
content += '<div>上次报警时间:' + lastAlarmTime + '</div>';
} else {
content += ('<div>本次报警时间:' + alarmTime + '</div>');
}
$api.html($api.dom("#content-body"), content);
}
/**
* 弹出提示框
*/
ctrl.toast = function (msg) {
api.toast({
msg: msg,
duration: 3000,
locaiton: 'top'
});
};
// 生成工单
ctrl.createOrder = function () {
var url = '/test/gong-dan/alarmTransferToWorkOrder/'
+ ctrl.employeeId + '/'
+ ctrl.alarmId;
$api.post(url, function(ret, err) {
if (!err && ret && ret.code == "200") {
ctrl.toast('生成成功')
api.closeWin();
} else {
ctrl.toast('生成失败,' + ret.msg)
}
})
};
ctrl.init();
}