1383 lines
52 KiB
JavaScript
1383 lines
52 KiB
JavaScript
|
apiready = function () {
|
|||
|
var ctrl = {
|
|||
|
init: {},
|
|||
|
bind: {},
|
|||
|
backCallback: {},
|
|||
|
|
|||
|
firstLoadUsual: !$api.getStorage('usualIns') ? 'yes' : 'no', // yes:当前 日常检查项 页面是从异常巡检项填写页保存跳转来,no:当前页面是首次渲染
|
|||
|
firstLoadReview: !$api.getStorage('reviewIns') ? 'yes' : 'no', // yes:当前 复检检查项 页面是从异常巡检项填写页保存跳转来,no:当前页面是首次渲染
|
|||
|
firstLoadNew: !$api.getStorage('newIns') ? 'yes' : 'no', // yes:当前 新增检查项 页面是从异常巡检项填写页保存跳转来,no:当前页面是首次渲染
|
|||
|
|
|||
|
// 当前展示的tab 页类型,1:日常检查项 2:突发项 3:复检项
|
|||
|
tabType: 1,
|
|||
|
date: '',
|
|||
|
|
|||
|
prId: null,
|
|||
|
prName: '',
|
|||
|
taskId: null,
|
|||
|
|
|||
|
problems: null, // 设备缺陷信息字符串
|
|||
|
problemsObj: null, // 设备缺陷信息对象
|
|||
|
|
|||
|
emptyType: { // 对应的tab是否需要展示无数据提示
|
|||
|
usual: false,
|
|||
|
review: false,
|
|||
|
new: false
|
|||
|
},
|
|||
|
|
|||
|
newTflen: 0, // 新增突发项个数
|
|||
|
|
|||
|
serverPicUrls: [],
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
ctrl.init = function () {
|
|||
|
// 适配安卓状态栏
|
|||
|
CommonModel.fitInStatusBar();
|
|||
|
|
|||
|
api.showProgress({
|
|||
|
title: '载入中...',
|
|||
|
text: '请稍后',
|
|||
|
modal: false
|
|||
|
});
|
|||
|
|
|||
|
ctrl.prId = api.pageParam.id;
|
|||
|
ctrl.prName = api.pageParam.name;
|
|||
|
ctrl.taskId = api.pageParam.taskid;
|
|||
|
|
|||
|
// 获取保存的设备缺陷信息
|
|||
|
if ($api.getStorage('problems')) {
|
|||
|
ctrl.problems = $api.getStorage('problems');
|
|||
|
ctrl.problemsObj = JSON.parse($api.getStorage('problems'))
|
|||
|
}
|
|||
|
|
|||
|
var dateUtil = new DateUtils();
|
|||
|
ctrl.date = dateUtil.getFormattedDate('yyyy-MM-dd');
|
|||
|
|
|||
|
// 将title改成配电室名
|
|||
|
$api.html($api.dom('#title-prname'), ctrl.prName);
|
|||
|
|
|||
|
ctrl.initUsualTab()
|
|||
|
ctrl.initReviewTab()
|
|||
|
ctrl.renderNewTasks()
|
|||
|
|
|||
|
ctrl.bind();
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
ctrl.bind = function () {
|
|||
|
|
|||
|
var height = $(window).height() - $("header").height() - $(".tabs").height();
|
|||
|
$(".content-container").css("height", height);
|
|||
|
//绑定返回按钮
|
|||
|
$api.addEvt($api.dom("#back"), "touchend", function () {
|
|||
|
ctrl.backCallback();
|
|||
|
})
|
|||
|
|
|||
|
//点击系统返回按钮
|
|||
|
api.addEventListener({
|
|||
|
name: 'keyback'
|
|||
|
}, function (ret, err) {
|
|||
|
ctrl.backCallback();
|
|||
|
});
|
|||
|
|
|||
|
//点击 日常检查项 tab按钮
|
|||
|
$api.addEvt($api.dom("#usual-task-tab"), "touchend", function () {
|
|||
|
if (ctrl.tabType == 1) {
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
if (ctrl.emptyType.usual) {
|
|||
|
$api.css($api.dom('#inspectionitem-empty-tips'), "display:block");
|
|||
|
} else {
|
|||
|
$api.css($api.dom('#inspectionitem-empty-tips'), "display:none");
|
|||
|
}
|
|||
|
|
|||
|
$api.addCls(this, "active");
|
|||
|
$api.removeCls($api.dom("#review-task-tab"), "active");
|
|||
|
$api.removeCls($api.dom("#new-task-tab"), "active");
|
|||
|
$api.css($api.dom("#usual-task-panel"), 'display:block');
|
|||
|
$api.css($api.dom("#review-task-panel"), 'display:none');
|
|||
|
$api.css($api.dom("#new-task-panel"), 'display:none');
|
|||
|
|
|||
|
ctrl.tabType = 1
|
|||
|
|
|||
|
// ctrl.initPrMsgTab()
|
|||
|
}, false);
|
|||
|
|
|||
|
//点击 复查检查项 tab按钮
|
|||
|
$api.addEvt($api.dom("#review-task-tab"), "touchend", function () {
|
|||
|
if (ctrl.tabType == 3) {
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
if (ctrl.emptyType.review) {
|
|||
|
$api.css($api.dom('#inspectionitem-empty-tips'), "display:block");
|
|||
|
} else {
|
|||
|
$api.css($api.dom('#inspectionitem-empty-tips'), "display:none");
|
|||
|
}
|
|||
|
|
|||
|
$api.addCls(this, "active");
|
|||
|
$api.removeCls($api.dom("#usual-task-tab"), "active");
|
|||
|
$api.removeCls($api.dom("#new-task-tab"), "active");
|
|||
|
$api.css($api.dom("#review-task-panel"), 'display:block');
|
|||
|
$api.css($api.dom("#usual-task-panel"), 'display:none');
|
|||
|
$api.css($api.dom("#new-task-panel"), 'display:none');
|
|||
|
|
|||
|
ctrl.tabType = 3
|
|||
|
|
|||
|
// 初始化复检检查项 tab
|
|||
|
// ctrl.initReviewTab()
|
|||
|
|
|||
|
}, false);
|
|||
|
|
|||
|
//点击 新增检查项 tab按钮
|
|||
|
$api.addEvt($api.dom("#new-task-tab"), "touchend", function () {
|
|||
|
if (ctrl.tabType == 2) {
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
if (ctrl.emptyType.new) {
|
|||
|
$api.css($api.dom('#inspectionitem-empty-tips'), "display:block");
|
|||
|
} else {
|
|||
|
$api.css($api.dom('#inspectionitem-empty-tips'), "display:none");
|
|||
|
}
|
|||
|
|
|||
|
$api.addCls(this, "active");
|
|||
|
$api.removeCls($api.dom("#review-task-tab"), "active");
|
|||
|
$api.removeCls($api.dom("#usual-task-tab"), "active");
|
|||
|
$api.css($api.dom("#new-task-panel"), 'display:block');
|
|||
|
$api.css($api.dom("#review-task-panel"), 'display:none');
|
|||
|
$api.css($api.dom("#usual-task-panel"), 'display:none');
|
|||
|
|
|||
|
ctrl.tabType = 2
|
|||
|
|
|||
|
// ctrl.getRepairLogs();
|
|||
|
|
|||
|
}, false);
|
|||
|
|
|||
|
// radio选择框改变事件
|
|||
|
|
|||
|
|
|||
|
/*
|
|||
|
====================日常检查项 事件======================
|
|||
|
*/
|
|||
|
// 点击任意地方,关闭task-item-status-ok弹框
|
|||
|
$api.addEvt($api.dom("body"), "touchend", function () {
|
|||
|
|
|||
|
// var domLis = $('.task-item-status-ok.display')
|
|||
|
// // var domLis = $api.dom(".task-item-status-ok.display")
|
|||
|
// var length = domLis.length
|
|||
|
|
|||
|
// for (var i = 0; i < length; i++) {
|
|||
|
// $api.removeCls(domLis[i], 'display');
|
|||
|
// }
|
|||
|
|
|||
|
}, false);
|
|||
|
|
|||
|
|
|||
|
/*
|
|||
|
====================复查检查项 事件======================
|
|||
|
*/
|
|||
|
|
|||
|
/*
|
|||
|
====================新增检查项 事件======================
|
|||
|
*/
|
|||
|
// 新增突发检查项 按钮 点击事件
|
|||
|
$('#new-add-btn').on("touchend", function () {
|
|||
|
|
|||
|
api.prompt({
|
|||
|
title: '巡检项描述:'
|
|||
|
}, function (ret, err) {
|
|||
|
var text = ret.text;
|
|||
|
|
|||
|
if (ret.buttonIndex == 2) { // 点击确定按钮
|
|||
|
ctrl.addNewInspItem(text);
|
|||
|
}
|
|||
|
})
|
|||
|
|
|||
|
})
|
|||
|
|
|||
|
/*
|
|||
|
* =====================自动勾选、巡检完成===================
|
|||
|
*/
|
|||
|
// 自动勾选剩余项按钮 点击事件
|
|||
|
$('#auto-checked-all').on("touchend", function () {
|
|||
|
api.showProgress({
|
|||
|
title: '处理中...',
|
|||
|
text: '请稍后',
|
|||
|
modal: true
|
|||
|
});
|
|||
|
|
|||
|
// 1、将剩余未勾选的 √ 状态改为选中状态
|
|||
|
var domList = $(".task-item[data-status='']")
|
|||
|
var len = domList.length
|
|||
|
for (var i = 0; i < len; i++) {
|
|||
|
var dom = $($(domList[i]).find('.task-item-img-success')[0])
|
|||
|
|
|||
|
if (!dom.hasClass('light')) {
|
|||
|
dom.addClass('light')
|
|||
|
}
|
|||
|
}
|
|||
|
// 2、将剩余未选项的父元素 .task-item 上的 data-status 属性值填充为0,并更新localStorage
|
|||
|
var usualIns = $api.getStorage('usualIns');
|
|||
|
var reviewIns = $api.getStorage('reviewIns');
|
|||
|
var newIns = $api.getStorage('newIns');
|
|||
|
|
|||
|
var usualInsObj = usualIns? JSON.parse(usualIns) : null;
|
|||
|
var reviewInsObj = reviewIns? JSON.parse(reviewIns) : null;
|
|||
|
var newInsObj = newIns? JSON.parse(newIns) : null;
|
|||
|
|
|||
|
var taskItemDomList = $('.task-item')
|
|||
|
var length = taskItemDomList.length
|
|||
|
for (var j = 0; j < length; j++) {
|
|||
|
var dom = $(taskItemDomList[j])
|
|||
|
var status = dom.data('status')
|
|||
|
var itemId;
|
|||
|
if (status === '') {
|
|||
|
dom.data('status', 0)
|
|||
|
|
|||
|
// 更新 localStorage
|
|||
|
var id = $(dom.parents('.task-panel')[0]).attr('id')
|
|||
|
|
|||
|
switch (id) {
|
|||
|
case 'usual-task-panel':
|
|||
|
itemId = dom.data('itemid')
|
|||
|
usualInsObj[itemId] = 0;
|
|||
|
$api.rmStorage('usualIns');
|
|||
|
$api.setStorage('usualIns', JSON.stringify(usualInsObj));
|
|||
|
break;
|
|||
|
case 'review-task-panel':
|
|||
|
itemId = dom.data('itemid')
|
|||
|
reviewInsObj[itemId] = 0;
|
|||
|
$api.rmStorage('reviewIns');
|
|||
|
$api.setStorage('reviewIns', JSON.stringify(reviewInsObj));
|
|||
|
break;
|
|||
|
case 'new-task-panel':
|
|||
|
itemId = dom.data('index')
|
|||
|
newInsObj[itemId]['s'] = 0;
|
|||
|
$api.rmStorage('newIns');
|
|||
|
$api.setStorage('newIns', JSON.stringify(newInsObj));
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
api.hideProgress();
|
|||
|
})
|
|||
|
|
|||
|
// 巡检完成
|
|||
|
$('#inspection-finished').on("touchend", function () {
|
|||
|
//1、检查是否存在未勾选的巡检项
|
|||
|
var emptyItemList = $(".task-item[data-status='']");
|
|||
|
if (emptyItemList.length) {
|
|||
|
|
|||
|
api.confirm({
|
|||
|
title: '',
|
|||
|
msg: '有未勾选的巡检项',
|
|||
|
buttons: ['确定', '取消']
|
|||
|
}, function(ret, err) {
|
|||
|
|
|||
|
});
|
|||
|
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
api.showProgress({
|
|||
|
title: '提交中...',
|
|||
|
text: '请稍后',
|
|||
|
modal: false
|
|||
|
});
|
|||
|
//2、从localStorage中获取设备缺陷信息(pics路径、desc描述)
|
|||
|
// 存在新增突发项时,提交新增突发项
|
|||
|
var newItemDoms = $('#new-task-panel .task-item')
|
|||
|
ctrl.newTflen = newItemDoms.length;
|
|||
|
if (ctrl.newTflen) {
|
|||
|
|
|||
|
newItemDoms.forEach(function (newItemDom, newItemDomIndex) {
|
|||
|
var checkItem = $($(newItemDom).find('.task-item-desc')[0]).text();
|
|||
|
var status = $(newItemDom).data('status');
|
|||
|
|
|||
|
(function () {
|
|||
|
ctrl.submitTfItem(checkItem, status, $(newItemDom), newItemDomIndex);
|
|||
|
})()
|
|||
|
})
|
|||
|
|
|||
|
} else {
|
|||
|
|
|||
|
if (ctrl.problems) { // 没有突发项提交,但有设备缺陷
|
|||
|
ctrl.handleUploadPic();
|
|||
|
|
|||
|
} else { // 没有突发项提交,也没有设备缺陷
|
|||
|
|
|||
|
ctrl.comitUsual();
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
//3、先将每一条设备缺陷中的图片上传,再将当前设备缺陷提交;循环提交全部设备缺陷
|
|||
|
//4、调用巡检完成接口,完成当前配电室的巡检
|
|||
|
//5、将 localStorage 中保存的巡检项状态信息 和 设备缺陷信息清空
|
|||
|
|
|||
|
|
|||
|
})
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
日常检查项 tab 中的事件绑定
|
|||
|
*/
|
|||
|
ctrl.usualBind = function () {
|
|||
|
// 点击设备分类,自动折叠当前分类的巡检项
|
|||
|
$("#usual-task-panel").on("touchend", ".category-name", function () {
|
|||
|
|
|||
|
// 隐藏 当前分类的巡检项
|
|||
|
$api.toggleCls($(this).next()[0], 'hide');
|
|||
|
// 分类名前的箭头旋转90度
|
|||
|
$api.toggleCls($api.dom(this, 'img'), 'transform');
|
|||
|
|
|||
|
})
|
|||
|
|
|||
|
// 点击√
|
|||
|
$("#usual-task-panel .task-item-img-success").on("touchend", "img", function (e) {
|
|||
|
e.stopPropagation();
|
|||
|
//切换√选中状态
|
|||
|
$api.addCls($(this).parent()[0], 'light');
|
|||
|
// 将同一项的x选中状态取消
|
|||
|
$api.removeCls($($(this).parents()[0]).siblings('.task-item-img-error')[0], 'light');
|
|||
|
// 切换弹框显示状态
|
|||
|
$api.toggleCls($(this).siblings('.task-item-status-ok')[0], 'display')
|
|||
|
// 更新 父元素 .task-item 上的 data-status 属性值
|
|||
|
// 1、获取 当前巡检项选择的状态值
|
|||
|
var val = $($(this).siblings('.task-item-status-ok')[0]).children("input:checked")[0].value
|
|||
|
// 2、将状态值 更新到父元素 .task-item 上的 data-status 属性
|
|||
|
var itemDom = $($(this).parents('.task-item')[0])
|
|||
|
itemDom.data('status', val)
|
|||
|
|
|||
|
// 保存在 localStorage 中的设备缺陷,判断是否含有当前巡检项的问题,若有则删除,并更新设备缺陷 storage
|
|||
|
var itemId = itemDom.data('itemid')
|
|||
|
var problems = $api.getStorage('problems');
|
|||
|
if (!problems) {
|
|||
|
return
|
|||
|
}
|
|||
|
var problemsObj = JSON.parse(problems);
|
|||
|
var probArr = problemsObj.arr;
|
|||
|
var len = probArr.length;
|
|||
|
if (len) {
|
|||
|
var _probArr = problemsObj.arr;
|
|||
|
|
|||
|
probArr.forEach(function (t, i) {
|
|||
|
if (t.itemId == itemId) {
|
|||
|
_probArr.splice(i, 1)
|
|||
|
}
|
|||
|
})
|
|||
|
|
|||
|
problemsObj.arr = _probArr;
|
|||
|
|
|||
|
$api.rmStorage('problems');
|
|||
|
$api.setStorage('problems', JSON.stringify(problemsObj));
|
|||
|
}
|
|||
|
})
|
|||
|
|
|||
|
// 单选框 选中事件
|
|||
|
$('#usual-task-panel input[type=radio]').change(function () {
|
|||
|
|
|||
|
// 将 value 值 更新到父元素 .task-item 上的 data-status 属性值
|
|||
|
var value = this.value
|
|||
|
|
|||
|
$(this).parents('.task-item').data('status', value)
|
|||
|
|
|||
|
})
|
|||
|
|
|||
|
// 点击×,切换×选中状态
|
|||
|
$("#usual-task-panel .task-item-img-error").on("touchend", "img", function () {
|
|||
|
|
|||
|
// 切换x选中状态
|
|||
|
// $api.addCls($(this).parent()[0], 'light');
|
|||
|
// 将同一项的√选中状态取消
|
|||
|
// $api.removeCls($($(this).parents()[0]).siblings('.task-item-img-success')[0], 'light');
|
|||
|
|
|||
|
/**
|
|||
|
* 将当前item的勾选状态更新到localStorage中的 usualIns 中
|
|||
|
* */
|
|||
|
var usualInsObj = JSON.parse($api.getStorage('usualIns'))
|
|||
|
|
|||
|
// 日常检查项domList
|
|||
|
var usualItems = $('#usual-task-panel li.task-item');
|
|||
|
|
|||
|
usualItems.forEach(function (uItem, uI) {
|
|||
|
var itemId = $(uItem).attr('data-itemid')
|
|||
|
usualInsObj[itemId] = $(uItem).attr('data-status')
|
|||
|
})
|
|||
|
|
|||
|
$api.rmStorage('usualIns');
|
|||
|
$api.setStorage('usualIns', JSON.stringify(usualInsObj))
|
|||
|
|
|||
|
// 将状态值 更新到父元素 .task-item 上的 data-status 属性
|
|||
|
// $(this).parents('.task-item').data('status', 2);
|
|||
|
|
|||
|
var itemId = $($(this).parents('.task-item')[0]).data('itemid');
|
|||
|
// 跳转到设备缺陷页
|
|||
|
api.openWin({
|
|||
|
name: 'inspectionProblem',
|
|||
|
url: './inspectionProblem.html',
|
|||
|
reload: true,
|
|||
|
pageParam: {
|
|||
|
prid: ctrl.prId,
|
|||
|
taskid: ctrl.taskId,
|
|||
|
itemid: itemId,
|
|||
|
source: ctrl.tabType,
|
|||
|
prname: ctrl.prName,
|
|||
|
tabtype: 'usual'
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
})
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 复查检查项 tab 中的事件绑定
|
|||
|
*/
|
|||
|
ctrl.reviewBind = function () {
|
|||
|
|
|||
|
// 点击√
|
|||
|
$("#review-task-panel .task-item-img-success").on("touchend", "img", function (e) {
|
|||
|
e.stopPropagation();
|
|||
|
//切换√选中状态
|
|||
|
$api.addCls($(this).parent()[0], 'light');
|
|||
|
// 将同一项的x选中状态取消
|
|||
|
$api.removeCls($($(this).parents()[0]).siblings('.task-item-img-error')[0], 'light');
|
|||
|
// 切换弹框显示状态
|
|||
|
$api.toggleCls($(this).siblings('.task-item-status-ok')[0], 'display')
|
|||
|
// 更新 父元素 .task-item 上的 data-status 属性值
|
|||
|
// 1、获取 当前巡检项选择的状态值
|
|||
|
var val = $($(this).siblings('.task-item-status-ok')[0]).children("input:checked")[0].value
|
|||
|
// 2、将状态值 更新到父元素 .task-item 上的 data-status 属性
|
|||
|
var itemDom = $($(this).parents('.task-item')[0])
|
|||
|
itemDom.data('status', val)
|
|||
|
|
|||
|
// 保存在 localStorage 中的设备缺陷,判断是否含有当前巡检项的问题,若有则删除,并更新设备缺陷 storage
|
|||
|
var itemId = itemDom.data('itemid')
|
|||
|
var problems = $api.getStorage('problems');
|
|||
|
if (!problems) {
|
|||
|
return
|
|||
|
}
|
|||
|
var problemsObj = JSON.parse(problems);
|
|||
|
var probArr = problemsObj.arr;
|
|||
|
var len = probArr.length;
|
|||
|
if (len) {
|
|||
|
var _probArr = problemsObj.arr;
|
|||
|
|
|||
|
probArr.forEach(function (t, i) {
|
|||
|
if (t.itemId == itemId) {
|
|||
|
_probArr.splice(i, 1)
|
|||
|
}
|
|||
|
})
|
|||
|
|
|||
|
problemsObj.arr = _probArr;
|
|||
|
|
|||
|
$api.rmStorage('problems');
|
|||
|
$api.setStorage('problems', JSON.stringify(problemsObj));
|
|||
|
}
|
|||
|
})
|
|||
|
|
|||
|
// 单选框 选中事件
|
|||
|
$('#review-task-panel input[type=radio]').change(function () {
|
|||
|
|
|||
|
// 将 value 值 更新到父元素 .task-item 上的 data-status 属性值
|
|||
|
var value = this.value
|
|||
|
|
|||
|
$(this).parents('.task-item').data('status', value)
|
|||
|
|
|||
|
})
|
|||
|
|
|||
|
// 点击×,切换×选中状态
|
|||
|
$("#review-task-panel .task-item-img-error").on("touchend", "img", function () {
|
|||
|
|
|||
|
// 切换x选中状态
|
|||
|
// $api.addCls($(this).parent()[0], 'light');
|
|||
|
// 将同一项的√选中状态取消
|
|||
|
// $api.removeCls($($(this).parents()[0]).siblings('.task-item-img-success')[0], 'light');
|
|||
|
|
|||
|
/**
|
|||
|
* 将当前item的勾选状态更新到localStorage中的 reviewIns 中
|
|||
|
* */
|
|||
|
var reviewInsObj = JSON.parse($api.getStorage('reviewIns'))
|
|||
|
|
|||
|
// 日常检查项domList
|
|||
|
var reviewItems = $('#review-task-panel li.task-item');
|
|||
|
|
|||
|
reviewItems.forEach(function (vItem, vI) {
|
|||
|
var itemId = $(vItem).attr('data-itemid')
|
|||
|
reviewInsObj[itemId] = $(vItem).attr('data-status')
|
|||
|
})
|
|||
|
|
|||
|
$api.rmStorage('reviewIns');
|
|||
|
$api.setStorage('reviewIns', JSON.stringify(reviewInsObj))
|
|||
|
|
|||
|
// 将状态值 更新到父元素 .task-item 上的 data-status 属性
|
|||
|
// $(this).parents('.task-item').data('status', 2);
|
|||
|
|
|||
|
var itemId = $($(this).parents('.task-item')[0]).data('itemid');
|
|||
|
// 跳转到设备缺陷页
|
|||
|
api.openWin({
|
|||
|
name: 'inspectionProblem',
|
|||
|
url: './inspectionProblem.html',
|
|||
|
reload: true,
|
|||
|
pageParam: {
|
|||
|
prid: ctrl.prId,
|
|||
|
taskid: ctrl.taskId,
|
|||
|
itemid: itemId,
|
|||
|
source: ctrl.tabType,
|
|||
|
prname: ctrl.prName,
|
|||
|
tabtype: 'review'
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
})
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 新增检查项 tab 中的事件绑定
|
|||
|
*/
|
|||
|
ctrl.newBind = function () {
|
|||
|
// 点击√
|
|||
|
$($("#new-task-panel .task-item-img-success").last()[0]).on("touchend", "img", function (e) {
|
|||
|
e.stopPropagation();
|
|||
|
//切换√选中状态
|
|||
|
$api.addCls($(this).parent()[0], 'light');
|
|||
|
// 将同一项的x选中状态取消
|
|||
|
$api.removeCls($($(this).parents()[0]).siblings('.task-item-img-error')[0], 'light');
|
|||
|
// 切换弹框显示状态
|
|||
|
$api.toggleCls($(this).siblings('.task-item-status-ok')[0], 'display')
|
|||
|
// 更新 父元素 .task-item 上的 data-status 属性值
|
|||
|
// 1、获取 当前巡检项选择的状态值
|
|||
|
var val = $($(this).siblings('.task-item-status-ok')[0]).children("input:checked")[0].value
|
|||
|
// 2、将状态值 更新到父元素 .task-item 上的 data-status 属性
|
|||
|
var itemDom = $($(this).parents('.task-item')[0])
|
|||
|
itemDom.data('status', val)
|
|||
|
|
|||
|
// 保存在 localStorage 中的设备缺陷,判断是否含有当前巡检项的问题,若有则删除,并更新设备缺陷 storage
|
|||
|
var index = itemDom.data('index')
|
|||
|
var problems = $api.getStorage('problems');
|
|||
|
if (!problems) {
|
|||
|
return
|
|||
|
}
|
|||
|
var problemsObj = JSON.parse(problems);
|
|||
|
var newProbArr = problemsObj.newArr;
|
|||
|
var len = newProbArr.length;
|
|||
|
if (len) {
|
|||
|
var _newProbArr = problemsObj.newArr;
|
|||
|
|
|||
|
newProbArr.forEach(function (t, i) {
|
|||
|
if (t.index == index) {
|
|||
|
_newProbArr.splice(i, 1)
|
|||
|
}
|
|||
|
})
|
|||
|
|
|||
|
problemsObj.newArr = _newProbArr;
|
|||
|
|
|||
|
$api.rmStorage('problems');
|
|||
|
$api.setStorage('problems', JSON.stringify(problemsObj));
|
|||
|
}
|
|||
|
})
|
|||
|
|
|||
|
// 单选框 选中事件
|
|||
|
$('#new-task-panel input[type=radio]').change(function () {
|
|||
|
|
|||
|
// 将 value 值 更新到父元素 .task-item 上的 data-status 属性值
|
|||
|
var value = this.value
|
|||
|
|
|||
|
$(this).parents('.task-item').data('status', value)
|
|||
|
|
|||
|
})
|
|||
|
|
|||
|
// 点击×,切换×选中状态
|
|||
|
$($("#new-task-panel .task-item-img-error").last()[0]).on("touchend", "img", function () {
|
|||
|
|
|||
|
// 切换x选中状态
|
|||
|
// $api.addCls($(this).parent()[0], 'light');
|
|||
|
// 将同一项的√选中状态取消
|
|||
|
// $api.removeCls($($(this).parents()[0]).siblings('.task-item-img-success')[0], 'light');
|
|||
|
|
|||
|
/**
|
|||
|
* 将当前item的勾选状态更新到localStorage中的 newIns 中
|
|||
|
* */
|
|||
|
var newInsObj = JSON.parse($api.getStorage('newIns'))
|
|||
|
|
|||
|
// 日常检查项domList
|
|||
|
var newItems = $('#new-task-panel li.task-item');
|
|||
|
|
|||
|
newItems.forEach(function (vItem, vI) {
|
|||
|
var index = $(vItem).data('index')
|
|||
|
newInsObj[index]['s'] = $(vItem).data('status')
|
|||
|
})
|
|||
|
|
|||
|
$api.rmStorage('newIns');
|
|||
|
$api.setStorage('newIns', JSON.stringify(newInsObj))
|
|||
|
|
|||
|
// 将状态值 更新到父元素 .task-item 上的 data-status 属性
|
|||
|
// $(this).parents('.task-item').data('status', 2);
|
|||
|
|
|||
|
var index = $($(this).parents('.task-item')[0]).data('index');
|
|||
|
// 跳转到设备缺陷页
|
|||
|
api.openWin({
|
|||
|
name: 'inspectionProblem',
|
|||
|
url: './inspectionProblem.html',
|
|||
|
reload: true,
|
|||
|
pageParam: {
|
|||
|
prid: ctrl.prId,
|
|||
|
taskid: ctrl.taskId,
|
|||
|
itemid: index,
|
|||
|
source: ctrl.tabType,
|
|||
|
prname: ctrl.prName,
|
|||
|
tabtype: 'new'
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
})
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* 弹出提示框
|
|||
|
*/
|
|||
|
|
|||
|
ctrl.toast = function (msg) {
|
|||
|
api.toast({
|
|||
|
msg: msg,
|
|||
|
duration: 3000,
|
|||
|
locaiton: 'top'
|
|||
|
});
|
|||
|
}
|
|||
|
|
|||
|
ctrl.backCallback = function () {
|
|||
|
//关闭首页正在加载的提示框
|
|||
|
api.execScript({
|
|||
|
name: 'index',
|
|||
|
frameName: 'featureFrame',
|
|||
|
script: "api.hideProgress();"
|
|||
|
});
|
|||
|
api.setScreenOrientation({
|
|||
|
orientation: 'auto_portrait'
|
|||
|
});
|
|||
|
api.setFullScreen({
|
|||
|
fullScreen: false
|
|||
|
});
|
|||
|
api.closeWin({});
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
====================日常检查项======================
|
|||
|
*/
|
|||
|
// 初始化 日常检查项 tab
|
|||
|
ctrl.initUsualTab = function () {
|
|||
|
ctrl.getUsualTasks()
|
|||
|
}
|
|||
|
// 获取日常检查项
|
|||
|
ctrl.getUsualTasks = function () {
|
|||
|
api.showProgress({
|
|||
|
title: '载入中...',
|
|||
|
text: '请稍后',
|
|||
|
modal: false
|
|||
|
});
|
|||
|
|
|||
|
var url = "/ems/rest/xj/routine/item/list";
|
|||
|
var data = {
|
|||
|
prId: ctrl.prId,
|
|||
|
xjDate: ctrl.date
|
|||
|
}
|
|||
|
$api.get(url, data, function (res, err) {
|
|||
|
api.hideProgress();
|
|||
|
|
|||
|
if (err) {
|
|||
|
ctrl.toast("网络请求失败");
|
|||
|
} else {
|
|||
|
if (res.code == 200) {
|
|||
|
if (res.body && res.body.length > 0) {
|
|||
|
ctrl.renderUsualTasks(res.body)
|
|||
|
|
|||
|
ctrl.usualBind()
|
|||
|
|
|||
|
ctrl.emptyType.usual = false;
|
|||
|
$api.css($api.dom('#inspectionitem-empty-tips'), "display:none");
|
|||
|
} else {
|
|||
|
ctrl.emptyType.usual = true;
|
|||
|
$api.css($api.dom('#inspectionitem-empty-tips'), "display:block");
|
|||
|
}
|
|||
|
} else {
|
|||
|
ctrl.toast("服务器响应错误" + (res.code ? (",错误码:" + res.code) : ""));
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
// 渲染日常巡检项
|
|||
|
ctrl.renderUsualTasks = function (data) {
|
|||
|
/**
|
|||
|
* 将当前日常检查项的每项的勾选状态保存到localStorage中
|
|||
|
* 结构:
|
|||
|
* usualIns: {
|
|||
|
* itemId: val // 勾选状态值
|
|||
|
* }
|
|||
|
* */
|
|||
|
var type = false;
|
|||
|
var usualInsObj;
|
|||
|
if (ctrl.firstLoadUsual == 'yes') { // 当前日常检查项DOM是首次渲染,不是从异常检查项页面中保存后跳转而来
|
|||
|
type = true;
|
|||
|
|
|||
|
var usualIns = ''
|
|||
|
|
|||
|
// 将日常检查项信息初始化到localStorage中
|
|||
|
$api.setStorage('usualIns', JSON.stringify(usualIns))
|
|||
|
} else { // 当前日常检查项页面是从异常检查项页面中保存后跳转而来
|
|||
|
// 获取 localStorage 中保存的巡检项状态信息
|
|||
|
var usualIns = $api.getStorage('usualIns');
|
|||
|
usualInsObj = JSON.parse(usualIns);
|
|||
|
}
|
|||
|
|
|||
|
// 处理DOM
|
|||
|
$('#usual-task-panel>ul').empty();
|
|||
|
|
|||
|
var tpl = '';
|
|||
|
var len = data.length
|
|||
|
|
|||
|
for (var i = 0; i < len; i++) {
|
|||
|
var categoryItem = data[i]
|
|||
|
var itemList = categoryItem.routineItems
|
|||
|
var categoryDom = ''
|
|||
|
|
|||
|
categoryDom += '<li class="category-item" data-category-id="{{categoryId}}">'
|
|||
|
categoryDom += '<div class="category-name">'
|
|||
|
categoryDom += '<img class="" src="../../image/arrow-bottom.png" />'
|
|||
|
categoryDom += '<span>{{categoryName}}</span>'
|
|||
|
categoryDom += '</div>'
|
|||
|
categoryDom += '<ul class="">'
|
|||
|
|
|||
|
categoryDom += (function (i, itemList, type) {
|
|||
|
return getItemDom(i, itemList, type)
|
|||
|
})(i, itemList, type)
|
|||
|
|
|||
|
categoryDom += '</ul>'
|
|||
|
categoryDom += '</li>'
|
|||
|
|
|||
|
var dom = categoryDom.replace('{{categoryId}}', categoryItem.categoryId)
|
|||
|
.replace('{{categoryName}}', categoryItem.categoryName)
|
|||
|
|
|||
|
tpl += dom
|
|||
|
}
|
|||
|
|
|||
|
$api.html($api.dom('#usual-task-panel>ul'), tpl);
|
|||
|
|
|||
|
// 获取 巡检项 dom
|
|||
|
function getItemDom(index, itemList, type) {
|
|||
|
var tpl = ''
|
|||
|
var len = itemList.length
|
|||
|
|
|||
|
if (type) {
|
|||
|
var s = JSON.parse($api.getStorage('usualIns'));
|
|||
|
var usualIns = s ? s : {};
|
|||
|
}
|
|||
|
|
|||
|
for (var i = 0; i < len; i++) {
|
|||
|
var item = itemList[i]
|
|||
|
|
|||
|
var itemDom = ''
|
|||
|
itemDom += '<li class="task-item" data-status="{{status}}" data-itemid="{{itemId}}">'
|
|||
|
itemDom += '<div class="task-item-desc">'
|
|||
|
itemDom += '{{taskItemDesc}}'
|
|||
|
itemDom += '</div>'
|
|||
|
itemDom += '<div class="task-item-img">'
|
|||
|
itemDom += '<span class="task-item-status-box task-item-img-success {{successClass}}">'
|
|||
|
itemDom += '<span class="task-item-status-ok">'
|
|||
|
itemDom += '<input {{checked0}} type="radio" name="task-item-status{{index}}" id="normal{{index}}" value="0">'
|
|||
|
itemDom += '<label for="normal{{index}}">正常</label>'
|
|||
|
itemDom += ' '
|
|||
|
itemDom += '<input {{checked1}} type="radio" name="task-item-status{{index}}" id="resolved{{index}}" value="1">'
|
|||
|
itemDom += '<label for="resolved{{index}}">异常已解决</label>'
|
|||
|
itemDom += '</span>'
|
|||
|
itemDom += '<img class="success-dark" src="../../image/success-dark.svg" alt="">'
|
|||
|
itemDom += '<img class="success-light" src="../../image/success-light.svg" alt="">'
|
|||
|
itemDom += '</span>'
|
|||
|
itemDom += '<span class="task-item-img-error {{errorClass}}">'
|
|||
|
itemDom += '<img class="error-dark" src="../../image/error-dark.svg" alt="">'
|
|||
|
itemDom += '<img class="error-light" src="../../image/error-light.svg" alt="">'
|
|||
|
itemDom += '</span>'
|
|||
|
itemDom += '</div>'
|
|||
|
itemDom += '</li>'
|
|||
|
|
|||
|
var dom = itemDom.replace('{{itemId}}', item.itemId)
|
|||
|
.replace('{{taskItemDesc}}', item.checkItem)
|
|||
|
.replace(/{{index}}/g, index + '' + i);
|
|||
|
|
|||
|
if (type) { // 首次渲染
|
|||
|
dom = dom.replace('{{status}}', '')
|
|||
|
.replace('{{checked0}}', 'checked')
|
|||
|
.replace('{{checked1}}', '')
|
|||
|
.replace('{{successClass}}', '')
|
|||
|
.replace('{{errorClass}}', '')
|
|||
|
} else { // 不是首次渲染,是从设备缺陷页跳转而来
|
|||
|
dom = dom.replace('{{status}}', usualInsObj[item.itemId])
|
|||
|
.replace('{{checked0}}', (usualInsObj[item.itemId] == '0' || usualInsObj[item.itemId] == '' || usualInsObj[item.itemId] == '2') ? 'checked' : '')
|
|||
|
.replace('{{checked1}}', usualInsObj[item.itemId] == '1' ? 'checked' : '')
|
|||
|
.replace('{{successClass}}', (usualInsObj[item.itemId] == '0' || usualInsObj[item.itemId] == '1') ? 'light' : '')
|
|||
|
.replace('{{errorClass}}', usualInsObj[item.itemId] == '2' ? 'light' : '')
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
tpl += dom
|
|||
|
|
|||
|
if (type) {
|
|||
|
usualIns[item.itemId] = ''
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (type) {
|
|||
|
$api.rmStorage('usualIns');
|
|||
|
$api.setStorage('usualIns', JSON.stringify(usualIns))
|
|||
|
}
|
|||
|
|
|||
|
return tpl;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
====================复查检查项======================
|
|||
|
*/
|
|||
|
// 初始化 日常检查项 tab
|
|||
|
ctrl.initReviewTab = function () {
|
|||
|
ctrl.getReviewTasks()
|
|||
|
}
|
|||
|
// 获取复查检查项
|
|||
|
ctrl.getReviewTasks = function () {
|
|||
|
api.showProgress({
|
|||
|
title: '载入中...',
|
|||
|
text: '请稍后',
|
|||
|
modal: false
|
|||
|
});
|
|||
|
|
|||
|
var url = "/ems/rest/xj/fj/item/list";
|
|||
|
var data = {
|
|||
|
prId: ctrl.prId
|
|||
|
}
|
|||
|
$api.get(url, data, function (res, err) {
|
|||
|
api.hideProgress();
|
|||
|
|
|||
|
if (err) {
|
|||
|
ctrl.toast("网络请求失败");
|
|||
|
} else {
|
|||
|
if (res.code == 200) {
|
|||
|
if (res.body && res.body.length > 0) {
|
|||
|
ctrl.renderReviewTasks(res.body)
|
|||
|
|
|||
|
ctrl.reviewBind()
|
|||
|
|
|||
|
ctrl.emptyType.review = false;
|
|||
|
$api.css($api.dom('#inspectionitem-empty-tips'), "display:block");
|
|||
|
} else {
|
|||
|
// 显示无数据提示
|
|||
|
ctrl.emptyType.review = true;
|
|||
|
$api.css($api.dom('#inspectionitem-empty-tips'), "display:none");
|
|||
|
}
|
|||
|
} else {
|
|||
|
ctrl.toast("服务器响应错误" + (res.code ? (",错误码:" + res.code) : ""));
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
// 渲染复查检查项
|
|||
|
ctrl.renderReviewTasks = function (data) {
|
|||
|
|
|||
|
/**
|
|||
|
* 将当前复查检查项的每项的勾选状态保存到localStorage中
|
|||
|
* 结构:
|
|||
|
* reviewIns: {
|
|||
|
* itemId: val // 勾选状态值
|
|||
|
* }
|
|||
|
* */
|
|||
|
var type = false;
|
|||
|
var reviewInsObj;
|
|||
|
if (ctrl.firstLoadReview == 'yes') { // 当前检查项DOM是首次渲染,不是从异常检查项页面中保存后跳转而来
|
|||
|
type = true;
|
|||
|
|
|||
|
reviewInsObj = {};
|
|||
|
|
|||
|
} else { // 当前检查项页面是从异常检查项页面中保存后跳转而来
|
|||
|
// 获取 localStorage 中保存的巡检项状态信息
|
|||
|
var reviewIns = $api.getStorage('reviewIns');
|
|||
|
reviewInsObj = JSON.parse(reviewIns);
|
|||
|
}
|
|||
|
|
|||
|
// 处理DOM
|
|||
|
$('#review-task-panel>ul').empty();
|
|||
|
|
|||
|
var tpl = '';
|
|||
|
var len = data.length
|
|||
|
|
|||
|
for (var i = 0; i < len; i++) {
|
|||
|
var reviewItem = data[i]
|
|||
|
var reviewDom = ''
|
|||
|
|
|||
|
reviewDom += '<li class="task-item" data-status="{{status}}" data-itemid="{{itemId}}">'
|
|||
|
reviewDom += '<div class="task-item-desc">'
|
|||
|
reviewDom += '{{checkItem}}'
|
|||
|
reviewDom += '</div>'
|
|||
|
reviewDom += '<div class="task-item-img">'
|
|||
|
reviewDom += '<span class="task-item-status-box task-item-img-success {{successClass}}">'
|
|||
|
reviewDom += '<span class="task-item-status-ok">'
|
|||
|
reviewDom += '<input {{checked0}} type="radio" name="task-item-status{{index}}" id="normal{{index}}" value="0">'
|
|||
|
reviewDom += '<label for="normal{{index}}">正常</label>'
|
|||
|
reviewDom += ' '
|
|||
|
reviewDom += '<input {{checked1}} type="radio" name="task-item-status{{index}}" id="resolved{{index}}" value="1">'
|
|||
|
reviewDom += '<label for="resolved{{index}}">异常已解决</label>'
|
|||
|
reviewDom += '</span>'
|
|||
|
reviewDom += '<img class="success-dark" src="../../image/success-dark.svg" alt="">'
|
|||
|
reviewDom += '<img class="success-light" src="../../image/success-light.svg" alt="">'
|
|||
|
reviewDom += '</span>'
|
|||
|
reviewDom += '<span class="task-item-img-error {{errorClass}}">'
|
|||
|
reviewDom += '<img class="error-dark" src="../../image/error-dark.svg" alt="">'
|
|||
|
reviewDom += '<img class="error-light" src="../../image/error-light.svg" alt="">'
|
|||
|
reviewDom += '</span>'
|
|||
|
reviewDom += '</div>'
|
|||
|
reviewDom += '</li>'
|
|||
|
|
|||
|
var dom = reviewDom.replace('{{itemId}}', reviewItem.itemId)
|
|||
|
.replace('{{checkItem}}', reviewItem.checkItem)
|
|||
|
.replace(/{{index}}/g, i);
|
|||
|
|
|||
|
if (type) { // 首次渲染
|
|||
|
dom = dom.replace('{{status}}', '')
|
|||
|
.replace('{{checked0}}', 'checked')
|
|||
|
.replace('{{checked1}}', '')
|
|||
|
.replace('{{successClass}}', '')
|
|||
|
.replace('{{errorClass}}', '')
|
|||
|
} else { // 不是首次渲染,是从设备缺陷页跳转而来
|
|||
|
dom = dom.replace('{{status}}', reviewInsObj[reviewItem.itemId])
|
|||
|
.replace('{{checked0}}', (reviewInsObj[reviewItem.itemId] == '0' || reviewInsObj[reviewItem.itemId] == '' || reviewInsObj[reviewItem.itemId] == '2') ? 'checked' : '')
|
|||
|
.replace('{{checked1}}', reviewInsObj[reviewItem.itemId] == '1' ? 'checked' : '')
|
|||
|
.replace('{{successClass}}', (reviewInsObj[reviewItem.itemId] == '0' || reviewInsObj[reviewItem.itemId] == '1') ? 'light' : '')
|
|||
|
.replace('{{errorClass}}', reviewInsObj[reviewItem.itemId] == '2' ? 'light' : '')
|
|||
|
}
|
|||
|
|
|||
|
if (type) {
|
|||
|
reviewInsObj[reviewItem.itemId] = ''
|
|||
|
}
|
|||
|
|
|||
|
tpl += dom
|
|||
|
}
|
|||
|
|
|||
|
if (type) {
|
|||
|
$api.setStorage('reviewIns', JSON.stringify(reviewInsObj))
|
|||
|
}
|
|||
|
|
|||
|
$api.html($api.dom('#review-task-panel>ul'), tpl);
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/*
|
|||
|
====================新增检查项======================
|
|||
|
*/
|
|||
|
// 添加一项突发检查项
|
|||
|
ctrl.addNewInspItem = function (text) {
|
|||
|
var liList = $('#new-task-panel .category-item li')
|
|||
|
var index = liList ? liList.length : 0
|
|||
|
|
|||
|
var newDom = ''
|
|||
|
|
|||
|
newDom += '<li class="task-item" data-status="{{status}}" data-itemid="{{itemId}}" data-index="{{index}}">'
|
|||
|
newDom += '<div class="task-item-desc">'
|
|||
|
newDom += '{{checkItem}}'
|
|||
|
newDom += '</div>'
|
|||
|
newDom += '<div class="task-item-img">'
|
|||
|
newDom += '<span class="task-item-status-box task-item-img-success {{successClass}}">'
|
|||
|
newDom += '<span class="task-item-status-ok">'
|
|||
|
newDom += '<input {{checked0}} type="radio" name="task-item-status{{index}}" id="normal{{index}}" value="0">'
|
|||
|
newDom += '<label for="normal{{index}}">正常</label>'
|
|||
|
newDom += ' '
|
|||
|
newDom += '<input {{checked1}} type="radio" name="task-item-status{{index}}" id="resolved{{index}}" value="1">'
|
|||
|
newDom += '<label for="resolved{{index}}">异常已解决</label>'
|
|||
|
newDom += '</span>'
|
|||
|
newDom += '<img class="success-dark" src="../../image/success-dark.svg" alt="">'
|
|||
|
newDom += '<img class="success-light" src="../../image/success-light.svg" alt="">'
|
|||
|
newDom += '</span>'
|
|||
|
newDom += '<span class="task-item-img-error {{errorClass}}">'
|
|||
|
newDom += '<img class="error-dark" src="../../image/error-dark.svg" alt="">'
|
|||
|
newDom += '<img class="error-light" src="../../image/error-light.svg" alt="">'
|
|||
|
newDom += '</span>'
|
|||
|
newDom += '</div>'
|
|||
|
newDom += '</li>'
|
|||
|
|
|||
|
var dom = newDom.replace('{{itemId}}', '')
|
|||
|
.replace('{{checkItem}}', text)
|
|||
|
.replace(/{{index}}/g, index + 1)
|
|||
|
.replace('{{status}}', '')
|
|||
|
.replace('{{checked0}}', 'checked')
|
|||
|
.replace('{{checked1}}', '')
|
|||
|
.replace('{{successClass}}', '')
|
|||
|
.replace('{{errorClass}}', '');
|
|||
|
|
|||
|
$('#new-task-panel .category-item').append(dom);
|
|||
|
|
|||
|
// 更新 localStorage
|
|||
|
var newIns = $api.getStorage('newIns');
|
|||
|
var type = newIns ? true : false;
|
|||
|
var newInsObj = type ? JSON.parse(newIns) : {};
|
|||
|
|
|||
|
var item = {
|
|||
|
s: '', // status 状态值
|
|||
|
c: text // 检查项checkItem
|
|||
|
}
|
|||
|
|
|||
|
newInsObj[index + 1] = item;
|
|||
|
|
|||
|
$api.rmStorage('newIns');
|
|||
|
$api.setStorage('newIns', JSON.stringify(newInsObj));
|
|||
|
|
|||
|
ctrl.newBind();
|
|||
|
// if (index == 0) {
|
|||
|
// }
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
// 渲染新增检查项
|
|||
|
ctrl.renderNewTasks = function () {
|
|||
|
|
|||
|
if (ctrl.firstLoadNew == 'yes') {
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
var newIns = $api.getStorage('newIns');
|
|||
|
var newInsObj = JSON.parse(newIns);
|
|||
|
|
|||
|
var tpl = '';
|
|||
|
|
|||
|
$('#new-task-panel ul').empty();
|
|||
|
|
|||
|
for (var key in newInsObj) {
|
|||
|
if (newInsObj.hasOwnProperty(key)) {
|
|||
|
|
|||
|
var val = newInsObj[key];
|
|||
|
|
|||
|
var itemDom = ''
|
|||
|
|
|||
|
itemDom += '<li class="task-item" data-status="{{status}}" data-itemid="{{itemId}}" data-index="{{index}}">'
|
|||
|
itemDom += '<div class="task-item-desc">'
|
|||
|
itemDom += '{{checkItem}}'
|
|||
|
itemDom += '</div>'
|
|||
|
itemDom += '<div class="task-item-img">'
|
|||
|
itemDom += '<span class="task-item-status-box task-item-img-success {{successClass}}">'
|
|||
|
itemDom += '<span class="task-item-status-ok">'
|
|||
|
itemDom += '<input {{checked0}} type="radio" name="task-item-status{{index}}" id="normal{{index}}" value="0">'
|
|||
|
itemDom += '<label for="normal{{index}}">正常</label>'
|
|||
|
itemDom += ' '
|
|||
|
itemDom += '<input {{checked1}} type="radio" name="task-item-status{{index}}" id="resolved{{index}}" value="1">'
|
|||
|
itemDom += '<label for="resolved{{index}}">异常已解决</label>'
|
|||
|
itemDom += '</span>'
|
|||
|
itemDom += '<img class="success-dark" src="../../image/success-dark.svg" alt="">'
|
|||
|
itemDom += '<img class="success-light" src="../../image/success-light.svg" alt="">'
|
|||
|
itemDom += '</span>'
|
|||
|
itemDom += '<span class="task-item-img-error {{errorClass}}">'
|
|||
|
itemDom += '<img class="error-dark" src="../../image/error-dark.svg" alt="">'
|
|||
|
itemDom += '<img class="error-light" src="../../image/error-light.svg" alt="">'
|
|||
|
itemDom += '</span>'
|
|||
|
itemDom += '</div>'
|
|||
|
itemDom += '</li>'
|
|||
|
|
|||
|
var dom = itemDom.replace('{{itemId}}', '')
|
|||
|
.replace('{{checkItem}}', val.c)
|
|||
|
.replace(/{{index}}/g, key)
|
|||
|
.replace('{{status}}', val.s)
|
|||
|
.replace('{{checked0}}', (val.s == '0' || val.s == '' || val.s == '2') ? 'checked' : '')
|
|||
|
.replace('{{checked1}}', val.s == '1' ? 'checked' : '')
|
|||
|
.replace('{{successClass}}', (val.s == '0' || val.s == '1') ? 'light' : '')
|
|||
|
.replace('{{errorClass}}', val.s == '2' ? 'light' : '');
|
|||
|
|
|||
|
$api.append($api.dom('#new-task-panel ul'), dom);
|
|||
|
|
|||
|
ctrl.newBind();
|
|||
|
|
|||
|
// tpl += dom
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
// $api.html($api.dom('#new-task-panel ul'), tpl);
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* =========================其他========================
|
|||
|
*/
|
|||
|
// 提交突发项
|
|||
|
ctrl.submitTfItem = function (checkItem, status, dom, i) {
|
|||
|
var url = '/ems/rest/xj/tf/item'
|
|||
|
var data = {
|
|||
|
taskId: ctrl.taskId,
|
|||
|
checkItem: checkItem,
|
|||
|
status: status
|
|||
|
}
|
|||
|
|
|||
|
$api.post(url, data, function (res, err) {
|
|||
|
|
|||
|
if (err) {
|
|||
|
api.hideProgress();
|
|||
|
ctrl.toast("网络请求失败,请稍后再试");
|
|||
|
} else {
|
|||
|
if (res.code == 200) {
|
|||
|
var itemId = res.body;
|
|||
|
|
|||
|
// 更新新增突发项dom 上的itemid
|
|||
|
dom.data('itemid', itemId);
|
|||
|
|
|||
|
// 更新 localStorage 中 新增突发项的 问题信息 itemId
|
|||
|
var index = dom.data('index');
|
|||
|
var newArr = ctrl.problemsObj.newArr;
|
|||
|
if (newArr.length) {
|
|||
|
newArr.forEach(function (item, i) {
|
|||
|
if (item.index == index) {
|
|||
|
item.itemId = itemId
|
|||
|
}
|
|||
|
})
|
|||
|
|
|||
|
// $api.rmStorage('problems');
|
|||
|
// $api.setStorage('problems', JSON.stringify(problemsObj));
|
|||
|
}
|
|||
|
|
|||
|
if (ctrl.newTflen == (i + 1)) {
|
|||
|
// 突发检查项已经全部提交
|
|||
|
// 判断是否有设备缺陷需要提交
|
|||
|
if (ctrl.problems) {
|
|||
|
ctrl.handleUploadPic();
|
|||
|
} else {
|
|||
|
// 如果没有设备缺陷,直接提交常规和复检巡检项日志
|
|||
|
ctrl.comitUsual();
|
|||
|
}
|
|||
|
}
|
|||
|
} else {
|
|||
|
api.hideProgress();
|
|||
|
ctrl.toast("服务器响应错误" + (res.code ? (",错误码:" + res.code) : ""));
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
// 处理设备缺陷中的图片上传
|
|||
|
ctrl.handleUploadPic = function () {
|
|||
|
ctrl.probsArr = ctrl.problemsObj.arr.concat(ctrl.problemsObj.newArr);
|
|||
|
|
|||
|
var len = ctrl.probsArr.length;
|
|||
|
if (len) {
|
|||
|
ctrl.probsArr.forEach(function (probsItem, probsIndex) {
|
|||
|
if (probsItem.picture) {
|
|||
|
var pictureArr = probsItem.picture.split(',');
|
|||
|
var pictureLen = pictureArr.length;
|
|||
|
|
|||
|
pictureArr.forEach(function (pictureItem, pictureIndex) {
|
|||
|
(function () {
|
|||
|
ctrl.uploadPic(pictureItem, probsIndex, pictureLen, pictureIndex)
|
|||
|
})()
|
|||
|
})
|
|||
|
} else {
|
|||
|
ctrl.comitProblem(probsIndex);
|
|||
|
}
|
|||
|
})
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 上传设备缺陷图片
|
|||
|
ctrl.uploadPic = function (file, probsIndex, pictureLen, pictureIndex) {
|
|||
|
var pictureIndex = pictureIndex;
|
|||
|
|
|||
|
var url = "/ems/rest/common/file/pad_upload";
|
|||
|
var data = file
|
|||
|
|
|||
|
$api.uploadFile(url, data, function (res, err) {
|
|||
|
|
|||
|
if (err) {
|
|||
|
ctrl.toast("网络请求失败,请稍后再试");
|
|||
|
} else {
|
|||
|
if (res.code == 200) {
|
|||
|
// 将返回的图片路径保存
|
|||
|
if (res.body && res.body.fileUrl) {
|
|||
|
ctrl.serverPicUrls.push(res.body.fileUrl)
|
|||
|
|
|||
|
if ((pictureLen-1) == pictureIndex) {// 代表当前设备缺陷的图片全部上传完成
|
|||
|
// 2、调用提交 设备缺陷接口
|
|||
|
(function () {
|
|||
|
ctrl.comitProblem(probsIndex)
|
|||
|
})()
|
|||
|
}
|
|||
|
} else {
|
|||
|
ctrl.toast("服务器错误,未返回数据");
|
|||
|
}
|
|||
|
} else {
|
|||
|
ctrl.toast("服务器响应错误" + (res.code ? (",错误码:" + res.code) : ""));
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
// 提交设备缺陷
|
|||
|
ctrl.comitProblem = function (probsIndex) {
|
|||
|
var picture = ctrl.serverPicUrls? ctrl.serverPicUrls.join(',') : '';
|
|||
|
var problemDesc = ctrl.probsArr[probsIndex]['problemDesc'];
|
|||
|
var itemId = ctrl.probsArr[probsIndex]['itemId'];
|
|||
|
var quesGrade = ctrl.probsArr[probsIndex]['quesGrade'];
|
|||
|
|
|||
|
var url = '/ems/rest/xj/problem'
|
|||
|
var data = {
|
|||
|
taskId: ctrl.problemsObj.taskId,
|
|||
|
itemId: itemId,
|
|||
|
source: ctrl.problemsObj.source,
|
|||
|
problemDesc: problemDesc,
|
|||
|
picture: picture,
|
|||
|
record: '',
|
|||
|
quesGrade: quesGrade,
|
|||
|
prId: ctrl.problemsObj.prId
|
|||
|
}
|
|||
|
|
|||
|
$api.post(url, data, function (res, err) {
|
|||
|
api.hideProgress();
|
|||
|
|
|||
|
if (err) {
|
|||
|
ctrl.toast("网络请求失败,请稍后再试");
|
|||
|
} else {
|
|||
|
if (res.code == 200) {
|
|||
|
ctrl.serverPicUrls = [];
|
|||
|
if (probsIndex == (ctrl.probsArr.length-1)) {
|
|||
|
// 调用巡检完成
|
|||
|
ctrl.comitUsual();
|
|||
|
}
|
|||
|
} else {
|
|||
|
ctrl.toast("服务器响应错误" + (res.code ? (",错误码:" + res.code) : ""));
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
// 提交常规检查项巡检结果
|
|||
|
ctrl.comitUsual = function () {
|
|||
|
var routineLogs = [];
|
|||
|
var usualItemDoms = $('#usual-task-panel .task-item');
|
|||
|
|
|||
|
usualItemDoms.forEach(function (item, index) {
|
|||
|
var itemid = $(item).data('itemid');
|
|||
|
var status = $(item).data('status');
|
|||
|
routineLogs.push({
|
|||
|
itemId: itemid,
|
|||
|
status: status
|
|||
|
})
|
|||
|
})
|
|||
|
|
|||
|
var url = '/ems/rest/xj/routine/log'
|
|||
|
var data = {
|
|||
|
taskId: ctrl.taskId,
|
|||
|
routineLogs: routineLogs
|
|||
|
}
|
|||
|
|
|||
|
$api.post(url, data, function (res, err) {
|
|||
|
|
|||
|
if (err) {
|
|||
|
ctrl.toast("网络请求失败,请稍后再试");
|
|||
|
} else {
|
|||
|
if (res.code == 200) {
|
|||
|
ctrl.comitReview();
|
|||
|
} else {
|
|||
|
ctrl.toast("服务器响应错误" + (res.code ? (",错误码:" + res.code) : ""));
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
})
|
|||
|
}
|
|||
|
// 提交复检检查项巡检结果
|
|||
|
ctrl.comitReview = function () {
|
|||
|
var fjLogs = [];
|
|||
|
var reviewItemDoms = $('#review-task-panel .task-item');
|
|||
|
var len = reviewItemDoms.length;
|
|||
|
|
|||
|
if (!len) {
|
|||
|
// 调用巡检完成接口
|
|||
|
ctrl.finished();
|
|||
|
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
reviewItemDoms.forEach(function (item, index) {
|
|||
|
var itemid = $(item).data('itemid');
|
|||
|
var status = $(item).data('status');
|
|||
|
fjLogs.push({
|
|||
|
itemId: itemid,
|
|||
|
status: status
|
|||
|
})
|
|||
|
})
|
|||
|
|
|||
|
var url = '/ems/rest/xj/fj/log'
|
|||
|
var data = {
|
|||
|
taskId: ctrl.taskId,
|
|||
|
fjLogs: fjLogs
|
|||
|
}
|
|||
|
|
|||
|
$api.post(url, data, function (res, err) {
|
|||
|
|
|||
|
if (err) {
|
|||
|
ctrl.toast("网络请求失败,请稍后再试");
|
|||
|
} else {
|
|||
|
if (res.code == 200) {
|
|||
|
// 调用巡检完成接口
|
|||
|
ctrl.finished();
|
|||
|
} else {
|
|||
|
ctrl.toast("服务器响应错误" + (res.code ? (",错误码:" + res.code) : ""));
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
// 巡检完成
|
|||
|
ctrl.finished = function () {
|
|||
|
var url = "/ems/rest/xj/task/complete";
|
|||
|
var data = {
|
|||
|
taskId: ctrl.taskId,
|
|||
|
}
|
|||
|
$api.put(url, data, function (res, err) {
|
|||
|
api.hideProgress();
|
|||
|
|
|||
|
if (err) {
|
|||
|
ctrl.toast("网络请求失败,请稍后再试");
|
|||
|
} else {
|
|||
|
if (res.code == 200) {
|
|||
|
if (!$api.getStorage('canUploadFlag')) {
|
|||
|
$api.setStorage('canUploadFlag', 'true')
|
|||
|
}
|
|||
|
|
|||
|
// 清除 localStorage 中保存的内容
|
|||
|
$api.rmStorage('usualIns')
|
|||
|
$api.rmStorage('reviewIns')
|
|||
|
$api.rmStorage('newIns')
|
|||
|
$api.rmStorage('problems')
|
|||
|
|
|||
|
api.openWin({
|
|||
|
name: 'inspectionFrame',
|
|||
|
url: '../index/inspectionFrame.html',
|
|||
|
reload: true,
|
|||
|
pageParam: {}
|
|||
|
});
|
|||
|
} else {
|
|||
|
ctrl.toast("服务器响应错误" + (res.code ? (",错误码:" + res.code) : ""));
|
|||
|
}
|
|||
|
}
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
ctrl.init();
|
|||
|
|
|||
|
}
|