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

547 lines
17 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 = {
init: {},
bind: {},
employeeId: null,
roleId: null,
prList: null,
inspectionId: null,
xjDate: null,
jieDanRenId: null,
status: null, // status0 未接单1 未开始2 巡检中3 已完成
tabType: 'content', // 当前激活的 tab
prefix: 'https://cdyfile.saas.dianwutong.com/',
problemType: 0, // 设备缺陷类型
hasUnfinishedPr: false, // 当前巡检任务下,是否存在未完成巡检的配电室,默认不存在
};
ctrl.init = function() {
// 适配安卓状态栏
CommonModel.fitInStatusBar();
ctrl.inspectionId = api.pageParam.inspectionid;
// status1 未开始2 巡检中3 已完成
ctrl.status = api.pageParam.status;
if (ctrl.status == 1) {
$('#start-inspect-btn').show();
$('#finish-inspect-btn').hide();
} else if (ctrl.status == 2) {
$('#start-inspect-btn').hide();
$('#finish-inspect-btn').show();
} else if (ctrl.status == 3) {
$('#start-inspect-btn').hide();
$('#finish-inspect-btn').hide();
}
ctrl.employeeId = $api.getStorage('employeeId');
ctrl.roleId = $api.getStorage('roleId');
ctrl.prList = $("#prList");
ctrl.contentEmptyTips = $("#content-empty-tips");
ctrl.problemEmptyTips = $("#problem-empty-tips");
ctrl.title = $('#title');
ctrl.xjDateDome = $('#xjDate');
ctrl.prCountDom = $('#prCount');
//巡检任务信息发生变化
api.addEventListener({
name: 'inspectionPrChanged'
}, ctrl.inspectionPrChanged);
ctrl.bind();
ctrl.initInspectContentTab()
};
ctrl.bind = function() {
// 点击返回按钮
$api.addEvt($api.dom("#back"), "touchend", function() {
api.closeWin();
});
//点击 “巡检内容” tab按钮
$api.addEvt($api.dom("#content-tab"), "touchend", function () {
if (ctrl.tabType == 'content') {
return
}
$api.addCls(this, "active");
$api.removeCls($api.dom("#problem-tab"), "active");
$api.css($api.dom("#content-panel"), 'display:block');
$api.css($api.dom("#problem-panel"), 'display:none');
$api.css($api.dom('#content-empty-tips'), "display:none");
ctrl.tabType = 'content'
// 初始化 巡检内容 tab
ctrl.initInspectContentTab();
}, false);
//点击 “设备缺陷” tab按钮
$api.addEvt($api.dom("#problem-tab"), "touchend", function () {
if (ctrl.tabType == 'problem') {
return
}
$api.addCls(this, "active");
$api.removeCls($api.dom("#content-tab"), "active");
$api.css($api.dom("#problem-panel"), 'display:block');
$api.css($api.dom("#content-panel"), 'display:none');
$api.css($api.dom('#problem-empty-tips'), "display:none");
ctrl.tabType = 'problem';
// 初始化 设备缺陷 tab
ctrl.initInspectProblemTab();
}, false);
// 点击“未处理” btn
$("#btn-unhandle").on("touchend", function() {
ctrl.problemType = 0;
$(this).siblings('.bg-touch').removeClass('bg-yellow');
$(this).addClass('bg-yellow');
ctrl.initInspectProblemTab();
});
// 点击“处理中” btn
$("#btn-handling").on("touchend", function() {
ctrl.problemType = 1;
$(this).siblings('.bg-touch').removeClass('bg-yellow');
$(this).addClass('bg-yellow');
ctrl.initInspectProblemTab();
});
// 点击图片预览
$("#problem-list-container").on("touchend", ".problem-pic-item", function (e) {
e.stopPropagation();
var src = $(this).attr('src');
$('#pic-review img').attr('src', src);
$('#pic-review').css('display', 'block');
});
// 点击预览图片 关闭预览
$('#pic-review').on("touchend", function () {
$(this).css('display', 'none');
});
// 点击配电室 跳转到对应配电室巡检详情页
$('#prList').on("touchend", ".pr", function(e) {
e.stopPropagation();
// 只有巡检中的单子才能跳转到配电室详情页
if (ctrl.status == 0 || ctrl.status == 1) {
ctrl.toast('开始巡检后才能查看');
return;
};
var id = $(this).data('id');
var prId = $(this).data('prid');
var prName = $(this).data('prname');
var status = $(this).data('status');
if (status == '2') { // 已完成 巡检的配电室禁止跳转
ctrl.toast('已完成巡检,无法查看');
return;
};
api.openWin({
name: 'inspectionPrDetail',
url: './inspectionPrDetail.html',
pageParam: {
id: id,
prid: prId,
prname: prName
}
});
});
// 点击 "开始巡检" 按钮
$('#start-inspect-btn').on("touchend", function(e) {
e.stopPropagation();
api.confirm({
title: '',
msg: '确定要开始吗',
buttons: ['确定', '取消']
}, function(ret, err) {
var index = ret.buttonIndex;
if (index == 1) { // 确定
ctrl.startInspect();
}
});
});
// 点击 “巡检完成” 按钮
$('#finish-inspect-btn').on("touchend", function(e) {
e.stopPropagation();
api.confirm({
title: '',
msg: '确定所有配电室巡检完成了吗',
buttons: ['确定', '取消']
}, function(ret, err) {
var index = ret.buttonIndex;
if (index == 1) { // 确定
if (ctrl.hasUnfinishedPr) {
ctrl.toast('存在未巡检完成的配电室!');
} else {
ctrl.finishInspect();
};
}
});
});
};
/**
* 弹出提示框
*/
ctrl.toast = function(msg) {
api.toast({
msg: msg,
duration: 3000,
locaiton: 'top'
});
};
// 初始化 巡检内容 tab
ctrl.initInspectContentTab = function() {
ctrl.getInspectDetail();
};
// 初始化 设备缺陷 tab
ctrl.initInspectProblemTab = function() {
ctrl.getProblemList();
};
// 获取设备缺陷 列表
ctrl.getProblemList = function() {
api.showProgress();
var url = '/test/xun-jian-dan/queryProblemById/' + ctrl.inspectionId + '/' + ctrl.problemType;
$api.get(url, function(res, err) {
if (err) {
ctrl.toast("网络请求失败");
api.hideProgress();
} else {
if (!res.code || res.code != "200") {
ctrl.toast("服务器响应错误");
api.hideProgress();
} else {
ctrl.renderProblemList(res.data);
}
}
});
};
// 清空设备缺陷 列表
ctrl.clearProblemList = function() {
$("#problem-list-container").empty();
};
// 渲染设备缺陷 列表
ctrl.renderProblemList = function(data) {
var length = data.length;
ctrl.clearProblemList();
if (length > 0) {
ctrl.problemEmptyTips.hide();
for (var i = 0; i < length; i++) {
var dataItem = data[i];
ctrl.createProblemDom(i + 1, dataItem);
};
} else {
ctrl.problemEmptyTips.show();
};
api.hideProgress();
};
// 创建 设备缺陷 DOM
ctrl.createProblemDom = function(index, problemItem) {
var tpl = '';
var status = '';
var colorClass = '';
var problemDesc = problemItem.problemDesc;
var pics = [];
if (problemItem.picture) {
pics = problemItem.picture.split(',');
};
var picsLength = pics.length;
if (problemItem.status == 0) {
status = '未处理';
colorClass = 'text-red';
} else if (problemItem.status == 1) {
status = '处理中';
colorClass = 'text-yellow';
};
tpl += '<li class="problem-item">';
tpl += '<div class="problem-index">';
tpl += '<div class="problem-item-title">问题<span>{index}</span></div>';
tpl += '<div class="status {colorClass}">{status}</div>';
tpl += '</div>';
tpl += '<div class="problem-desc">';
tpl += '<div class="problem-item-title">问题描述:</div>';
tpl += '<div class="desc">{problemDesc}</div>';
tpl += '</div>';
tpl += '<div class="problem-pic">';
tpl += '<div class="problem-item-title">现场照片:</div>';
tpl += '<div class="pic-content" class="pics problem-item-content">';
if (picsLength > 0) {
for (var i = 0; i < picsLength; i++) {
var url = pics[i];
var img = '<span class="pic-item"><img class="pic-add-btn problem-pic-item" src="' + ctrl.prefix + url + '" alt=""></span>';
tpl += img;
}
} else {
tpl += '无'
}
tpl += '</div>';
tpl += '</div>';
tpl += '</li>';
tpl = tpl.replace("{index}", index)
.replace("{colorClass}", colorClass)
.replace("{problemDesc}", problemDesc)
.replace("{status}", status);
$("#problem-list-container").append(tpl);
};
/**
* 清空配电室列表
*/
ctrl.clearPrList = function() {
$("#prList").empty();
};
// 巡检单中的配电室巡检状态改变 触发的事件处理
ctrl.inspectionPrChanged = function(ret, err) {
ctrl.initInspectContentTab();
};
/**
* 获取巡检单详情
*/
ctrl.getInspectDetail = function() {
api.showProgress();
var url = '/test/xun-jian-dan/queryById/' + ctrl.inspectionId;
$api.get(url, function(res, err) {
if (err) {
ctrl.toast("网络请求失败");
api.hideProgress();
} else {
if (!res.code || res.code != "200") {
ctrl.toast("服务器响应错误");
api.hideProgress();
} else {
ctrl.renderInspectDetail(res.data);
// 获取当前巡检单对应的巡检配电室列表
ctrl.getInspectPrList();
}
}
});
};
// 渲染 详情
ctrl.renderInspectDetail = function(data) {
// 更新巡检日期
ctrl.xjDate = data.xunJianShiJian;
$('#xjDate').text(data.xunJianShiJian);
// 更新巡检人员
ctrl.jieDanRenId = data.jieDanRenId || null;
$('#inspector').text(data.jieDanRen || '无');
};
/**
* 获取巡检配电室列表
*/
ctrl.getInspectPrList = function() {
api.showProgress();
var url = '/test/xun-jian-pr/queryByList/1/9999/' + ctrl.inspectionId;
$api.get(url, function(res, err) {
if (err) {
ctrl.toast("网络请求失败");
api.hideProgress();
} else {
if (!res.code || res.code != "200") {
ctrl.toast("服务器响应错误");
api.hideProgress();
} else {
api.hideProgress();
ctrl.hasUnfinishedPr = false;
ctrl.renderInspectPrList(res.data);
}
}
});
};
// 渲染巡检配电室列表
ctrl.renderInspectPrList = function(data) {
// 判断配电室数量
if (data.total <= 0) {
ctrl.prCountDom.text('0')
ctrl.contentEmptyTips.show();
return;
} else {
// 更新配电室数量
ctrl.prCountDom.text(data.total)
ctrl.contentEmptyTips.hide();
ctrl.clearPrList();
// 渲染配电室列表
var records = data.records;
var len = data.records.length;
for (var i = 0; i < len; i++) {
var prItem = records[i];
ctrl.createPrDom(prItem);
}
}
};
/**
* 创建一个配电室DOM
*/
ctrl.createPrDom = function(prItem) {
var status = prItem.shiFouWanCheng;
var statusDesc = prItem.shiFouWanCheng? '已完成' : '未完成';
var colorClass = prItem.shiFouWanCheng? 'color-green' : 'color-red';
var id = prItem.id;
var prId = prItem.prId;
var prName = prItem.prName;
var type = '例行巡检';
switch (prItem.xunJianLeiXing - 0) {
case 1:
type = '例行巡检';
break;
case 2:
type = '特殊巡检';
break;
case 3:
type = '会诊巡检';
break;
case 4:
type = '熄灯巡检';
break;
};
if (!prItem.shiFouWanCheng) {
ctrl.hasUnfinishedPr = true;
};
var template = ''
template +='<div class="pr" data-id="{id}" data-prid="{prId}" data-prname="{prName}" data-status="{status}">'
template += '<div class="left">'
template += '<div class="icon-con"><img src="../../image/black-pr-icon.png"></div>'
template += '<div class="content font1">'
template += '<div class="pr-name-con"><span class="pr-name">{prName}</span>&nbsp;'
template += '</div>'
template += '<div> < <span class="inspect-type">{type}</span> > </div>'
template += '</div>'
template += '</div>'
template += '<div class="right">'
template += '<span class="{colorClass}">{statusDesc}</span>'
template += '</div>'
template +='</div>'
template = template.replace("{id}", id)
.replace("{prId}", prId)
.replace("{prName}", prName)
.replace("{status}", status)
.replace("{prName}", prName)
.replace("{type}", type)
.replace("{colorClass}", colorClass)
.replace("{statusDesc}", statusDesc);
ctrl.prList.append(template);
};
// 开始巡检
ctrl.startInspect = function () {
api.showProgress();
var url = '/test/xun-jian-dan/updateById';
var data = {
id: ctrl.inspectionId,
shiFouWanCheng: 2
};
$api.post(url, data, function(res, err) {
if (err) {
ctrl.toast("网络请求失败");
api.hideProgress();
} else {
if (!res.code || res.code != "200") {
ctrl.toast("服务器响应错误");
api.hideProgress();
} else {
ctrl.status = 2;
api.hideProgress();
// 隐藏开始巡检 按钮
$('#start-inspect-btn').hide();
// 显示巡检完成 按钮
$('#finish-inspect-btn').show();
}
}
});
};
// 全部巡检完成
ctrl.finishInspect = function () {
api.showProgress();
var url = '/test/xun-jian-dan/updateById';
var data = {
id: ctrl.inspectionId,
shiFouWanCheng: 3
};
$api.post(url, data, function(res, err) {
if (err) {
ctrl.toast("网络请求失败");
api.hideProgress();
} else {
if (!res.code || res.code != "200") {
ctrl.toast("服务器响应错误");
api.hideProgress();
} else {
api.hideProgress();
// 隐藏开始巡检 按钮
$('#start-inspect-btn').hide();
// 隐藏巡检完成 按钮
$('#finish-inspect-btn').hide();
// 跳转到巡检任务页 并更新页面数据
api.sendEvent({
name: 'inspectionTaskChanged'
});
api.closeWin();
}
}
});
};
ctrl.init();
}