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

426 lines
17 KiB
JavaScript

apiready = function() {
var ctrl = {
init: {},
bind: {},
getLog: {}, //获取抢修日志详情
renderLog: {}, //渲染抢修日志详情
toast: {}, //弹出提示框
handleData: {}, //处理数据
renderFilter: {}, //拦截接口返回数据,对体验模式下的数据进行过滤
filter: {}, //数组筛选
}
ctrl.init = function() {
// 适配安卓状态栏
CommonModel.fitInStatusBar();
ctrl.bind();
ctrl.getPr();
ctrl.getLog();
}
// 弹出提示框
ctrl.toast = function(msg) {
api.toast({
msg: msg,
duration: 3000,
locaiton: 'top'
});
}
ctrl.bind = function() {
//点击返回按钮
$api.addEvt($api.dom("#back"), "touchend", function() {
api.closeWin();
})
$('.bt-detail').on('touchend', function() {
$(this).parent().parent().find('.item').toggle();
$(this).find('img').toggleClass("close")
})
}
//数组筛选 obj {type:2}
ctrl.filter = function(ary, obj) {
var result = [];
for (var i = 0; i < ary.length; i++) {
var currentObj = ary[i];
for (var attr in obj) {
if (currentObj.hasOwnProperty(attr) && currentObj[attr] == obj[attr]) {
result.push(currentObj);
}
}
}
return result;
}
// 获取抢修日志详情
ctrl.getLog = function() {
var url = '/ems/rest/qx/order';
var id = api.pageParam.id;
var messageId = api.pageParam.messageId;
var data = {
qxOrderId: id
};
$api.get(url, data, function(res, err) {
if (err) {
ctrl.toast("网络请求失败");
} else {
if (res.code == 200) {
ctrl.renderLog(res);
} else if (res.code == 404) {
var msg = "";
if (messageId) {
msg = "日志不存在";
ctrl.toast(msg);
api.sendEvent({
name: 'removeMessage',
extra: {
messageId: messageId
}
});
window.setTimeout(function() {
api.closeWin();
}, 2000);
} else {
ctrl.toast("服务器响应错误" + (res.code ? (",错误码:" + res.code) : ""));
}
} else {
ctrl.toast("服务器响应错误" + (res.code ? (",错误码:" + res.code) : ""));
}
}
});
}
// 获取配电室详情
ctrl.getPr = function() {
var powerRoom = api.pageParam.name;
if (powerRoom) {
ctrl.prName = powerRoom.prName;
} else {
return;
}
}
ctrl.handleData = function() {
var dateUtil = new DateUtils();
if (!ctrl.log) {
return;
}
if (ctrl.log.qxTasks) {
// 查勘任务
ctrl.surveyTasks = ctrl.filter(ctrl.log.qxTasks, {
"taskType": 1
});
// 抢修任务
var repairTask = ctrl.filter(ctrl.log.qxTasks, {
"taskType": 2
});
ctrl.repairTask = (repairTask && repairTask.length > 0) ? repairTask[0] : null;
}
//查询报警时间
if (ctrl.log.alarmTime) {
dateUtil.setDate(ctrl.log.alarmTime);
ctrl.alarmTime = dateUtil.getFormattedDate('yyyy-MM-dd hh:mm:ss');
}
//查询开始查勘时间
if (ctrl.surveyTasks && ctrl.surveyTasks.length > 0) {
var tasks = ctrl.surveyTasks.sort(function(a, b) {
return a.createTime - b.createTime;
});
dateUtil.setDate(tasks[0].createTime);
ctrl.startSurveyTime = dateUtil.getFormattedDate('yyyy-MM-dd hh:mm:ss');
} else {
ctrl.startSurveyTime = "没有安排查勘";
}
//获取抢修时间和抢修结束时间
if (ctrl.repairTask) {
if (ctrl.repairTask.deleteFlag) {
ctrl.startRepairTime = "没有安排抢修";
ctrl.completeRepairTime = "没有安排抢修";
} else {
dateUtil.setDate(ctrl.repairTask.createTime);
ctrl.startRepairTime = dateUtil.getFormattedDate('yyyy-MM-dd hh:mm:ss');
if (ctrl.repairTask.isComplete) {
dateUtil.setDate(ctrl.repairTask.completeTime);
ctrl.completeRepairTime = dateUtil.getFormattedDate('yyyy-MM-dd hh:mm:ss');
} else {
ctrl.completeRepairTime = '';
}
}
} else {
ctrl.startRepairTime = "没有安排抢修";
ctrl.completeRepairTime = "没有安排抢修";
}
}
//查看图片
//@param picContainner 图片放置的容器的id
//@param tasks 后台获取到的任务列表
ctrl.showPic = function(picContainner, tasks) {
if (!tasks.picture) {
return;
}
var pics = tasks.picture.length > 0 ? tasks.picture.split(",") : [];
if (pics.length > 0) {
$api.html($api.dom('#' + picContainner), '');
var photoBrowser = api.require('photoBrowser');
var imageList = [];
var container = document.getElementById(picContainner);
//点击图片 使用图片查看器查看
container.addEventListener("touchend", function() {
//初始化图片查看器
photoBrowser.open({
images: imageList,
bgColor: '#000'
}, function(ret, err) {
if (ret && ret.eventType == "click") {
photoBrowser.close();
}
});
})
for (var i = 0; i < pics.length; i++) {
(function() {
var container = document.getElementById(picContainner);
var image = new Image();
image.src = "../../../image/pre-pic.png";
container.appendChild(image);
api.imageCache({
url: ctrl.prefix+pics[i],
policy: "cache_else_network",
thumbnail: false
}, function(ret, err) {
if (ret.status) {
var container = document.getElementById(picContainner);
// var image = new Image();
image.src = ret.url;
image.onload = function() {
container.appendChild(image);
photoBrowser.appendImage({
images: [ret.url]
});
imageList.push(ret.url);
}
} else {
// var image = new Image();
var container = document.getElementById(picContainner);
image.src = "../../../image/img-error.png";
image.onload = function() {
container.appendChild(image);
photoBrowser.appendImage({
images: [image.src]
});
imageList.push(image.src);
}
}
})
})()
}
} else {
var dom = "没有图片";
$('#' + picContainner).html(dom);
}
}
ctrl.renderLog = function(res) {
ctrl.log = res.body;
ctrl.prefix = res.prefix;
ctrl.handleData();
var log = ctrl.log;
if (!log) {
return;
}
var isComplete = log.deleteFlag;
$api.text($api.dom('#pr-name'), ctrl.prName);
$api.text($api.dom('#malfunction-item'), log.orderDesc);
if (ctrl.completeRepairTime == "没有安排抢修") {
if (isComplete) {
$api.text($api.dom('#complete-time'), ctrl.completeRepairTime);
}
} else {
$api.text($api.dom('#complete-time'), ctrl.completeRepairTime.slice(10));
$api.text($api.dom('#complete-date'), ctrl.completeRepairTime.slice(0, 10));
}
if (ctrl.startRepairTime == "没有安排抢修") {
if (isComplete) {
$api.text($api.dom('#repair-time'), ctrl.startRepairTime);
}
} else {
$api.text($api.dom('#repair-time'), ctrl.startRepairTime.slice(10));
$api.text($api.dom('#repair-date'), ctrl.startRepairTime.slice(0, 10));
}
if (ctrl.startSurveyTime == "没有安排查勘") {
if (isComplete) {
$api.text($api.dom('#survey-time'), ctrl.startSurveyTime);
}
} else {
$api.text($api.dom('#survey-time'), ctrl.startSurveyTime.slice(10));
$api.text($api.dom('#survey-date'), ctrl.startSurveyTime.slice(0, 10));
}
$api.text($api.dom('#alram-time'), ctrl.alarmTime && ctrl.alarmTime.slice(10) || '');
$api.text($api.dom('#alram-date'), ctrl.alarmTime && ctrl.alarmTime.slice(0, 10) || '');
if (ctrl.completeRepairTime != "没有安排抢修" && ctrl.completeRepairTime) {
$api.addCls($api.dom('#complete-circle'), 'circle-green');
$api.addCls($api.dom('#repair-circle'), 'circle');
$api.addCls($api.dom('#survey-circle'), 'circle');
$api.addCls($api.dom('#alram-circle'), 'circle');
} else if (ctrl.startRepairTime != "没有安排抢修") {
$api.addCls($api.dom('#complete-circle'), 'circle');
$api.addCls($api.dom('#repair-circle'), 'circle-green');
$api.addCls($api.dom('#survey-circle'), 'circle');
$api.addCls($api.dom('#alram-circle'), 'circle');
} else if (ctrl.startSurveyTime != "没有安排查勘") {
$api.addCls($api.dom('#complete-circle'), 'circle');
$api.addCls($api.dom('#repair-circle'), 'circle');
$api.addCls($api.dom('#survey-circle'), 'circle-green');
$api.addCls($api.dom('#alram-circle'), 'circle');
} else {
$api.addCls($api.dom('#complete-circle'), 'circle');
$api.addCls($api.dom('#repair-circle'), 'circle');
$api.addCls($api.dom('#survey-circle'), 'circle');
$api.addCls($api.dom('#alram-circle'), 'circle-green');
}
//抢修方案
if (ctrl.cus) {
log.qxProgramme = log.qxProgramme?log.qxProgramme.replace($api.guestKeysPattern, $api.guestName): '';
}
$("#repair-programme").text(log.qxProgramme ? log.qxProgramme : "没有制定抢修方案");
//查勘结果
var surveyTasks = ctrl.surveyTasks;
if (surveyTasks && surveyTasks.length) {
var str = '<div>';
for (var i = 0; i < surveyTasks.length; i++) {
str += '<div>查勘记录' + (i + 1) + '</div>';
if (surveyTasks[i].taskDesc) {
if (ctrl.cus) {
surveyTasks[i].taskDesc = surveyTasks[i].taskDesc.replace($api.guestKeysPattern, $api.guestName);
}
str += '<div class="survey-desc ">查勘描述:' + surveyTasks[i].taskDesc + '</div>';
} else if (!surveyTasks[i].picture) {
str += '<div class="survey-desc ">该条查勘记录没有相关信息</div>';
} else {
str += '<div class="survey-desc">没有查勘描述</div>';
}
str += '<div style="height:1rem;"></div>';
if (surveyTasks[i].picture && surveyTasks[i].picture.length) {
var id = surveyTasks[i].taskId;
str += '<div class="survey-pic survey-pic-detail" id="' + id + '"></div>';
str += '</div>';
$('#survey-list-con').html(str);
//查勘图片处理
var tasks = surveyTasks[i];
var pics = tasks.picture.length > 0 ? tasks.picture.split(",") : [];
if (pics.length > 0) {
var photoBrowser = api.require('photoBrowser');
ctrl.imageList = [];
var container = document.getElementById(id);
$('#survey-list-con').on('touchend', '.survey-pic', function() {
//初始化图片查看器
photoBrowser.open({
images: ctrl.imageList,
bgColor: '#000'
}, function(ret, err) {
if (ret && ret.eventType == "click") {
photoBrowser.close();
}
});
})
function addPic(index) {
for (var j = 0; j < pics.length; j++) {
(function() {
var container = document.getElementById(index);
var image = new Image();
image.src = "../../../image/pre-pic.png";
container.appendChild(image);
api.imageCache({
url: ctrl.prefix+pics[j],
policy: "cache_else_network",
thumbnail: false
}, function(ret, err) {
if (ret.status) {
var container = document.getElementById(index);
image.src = ret.url;
image.onload = function() {
container.appendChild(image);
photoBrowser.appendImage({
images: [ret.url]
});
ctrl.imageList.push(ret.url);
}
} else {
var container = document.getElementById(index);
image.src = "../../../image/img-error.png";
image.onload = function() {
container.appendChild(image);
photoBrowser.appendImage({
images: [image.src]
});
ctrl.imageList.push(image.src);
}
}
})
})()
}
}
addPic(id);
}
} else if (surveyTasks[i].taskDesc) {
//没有查勘图片
str += '<div>没有查勘图片</div>'
str += '</div>';
$('#survey-list-con').html(str);
} else {
str += '</div>';
$('#survey-list-con').html(str);
}
}
} else {
//没有查勘结果
$('#survey-list-con').html('没有查勘结果');
};
//抢修结果
var repairTask = ctrl.repairTask;
if (repairTask) {
if (ctrl.cus) {
repairTask.result = log.qxProgramme.replace($api.guestKeysPattern, $api.guestName);
}
$api.text($api.dom("#taskDesc"), repairTask.result);
if (repairTask.picture && repairTask.picture.length) {
ctrl.showPic('repair-pic', repairTask);
}
} else {
var dom = "无抢修记录";
$('#repair-result').html(dom);
}
}
ctrl.init();
}