apiready = function() { var ctrl = { init: {}, bind: {}, employeeId: null, roleId: null, prList: null, inspectionId: null, xjDate: null, jieDanRenId: null, // inspectionMsg: { // xjDate: '2023-11-21', // inspector: '张三', // workTime: '08:00', // prCount: '10', // prList: [{ // prName: '敦豪配电室', // prId: 1, // count: 1 // }, { // prName: '敦豪配电室1', // prId: 2, // count: 2 // }, { // prName: '敦豪配电室2', // prId: 3, // count: 3 // }] // } } /** * 弹出提示框 */ ctrl.toast = function(msg) { api.toast({ msg: msg, duration: 3000, locaiton: 'top' }); } /** * 显示右侧边栏 */ ctrl.showRightPanel = function() { api.openDrawerPane({ type: 'right', pageParam: { id: 123 }, }); } /** * 新建 保存巡检配电室 */ ctrl.saveCreateInspectPrList = function(inspectionId) { api.showProgress(); var url = '/test/xun-jian-pr/inserts'; var data = []; var PrDomList = $('#prList .pr'); var len = PrDomList.length; if (len) { for (var i = 0; i < len; i++) { var prDom = PrDomList[i]; var prId = $(prDom).data('prid'); var prName = $(prDom).data('prname'); var inspectType = $(prDom).data('inspecttype'); var dataItem = { xunJianDanId: inspectionId, prId: prId, prName: prName, employeeId: ctrl.employeeId, xunJianLeiXing: inspectType } data.push(dataItem) } } $api.post(url, data, function(res, err) { api.hideProgress(); if (err) { ctrl.toast("网络请求失败"); } else { if (!res.code || res.code != "200") { ctrl.toast("服务器响应错误"); } else { // 返回巡检安排列表页 并触发巡检安排页面定义的 inspectionCreateChanged 事件 api.sendEvent({ name: 'inspectionCreateChanged' }); toast("保存成功"); // 关闭当前页,返回到巡检任务列表页 api.closeWin(); } } }); } /** * 编辑 保存巡检配电室 */ ctrl.saveEditInspectPrList = function() { api.showProgress(); var url = '/test/xun-jian-pr/inserts'; var data = []; var PrDomList = $('#prList .pr'); var len = PrDomList.length; if (len) { for (var i = 0; i < len; i++) { var prDom = PrDomList[i]; // var id = $(prDom).data('id'); var prId = $(prDom).data('prid'); var prName = $(prDom).data('prname'); var inspectType = $(prDom).data('inspecttype'); var dataItem = { // id: id, xunJianDanId: ctrl.inspectionId, prId: prId, prName: prName, employeeId: ctrl.employeeId, xunJianLeiXing: inspectType } data.push(dataItem) } } $api.post(url, data, function(res, err) { api.hideProgress(); if (err) { ctrl.toast("网络请求失败"); } else { if (!res.code || res.code != "200") { ctrl.toast("服务器响应错误"); } else { ctrl.toast("修改成功"); // 返回巡检安排列表页 并触发巡检安排页面定义的 inspectionCreateChanged 事件 api.sendEvent({ name: 'inspectionCreateChanged' }); // 关闭当前页,返回到巡检任务列表页 api.closeWin(); } } }); } /** * 新建 保存巡检单 */ ctrl.saveCreateInspect = function() { api.showProgress(); var url = '/test/xun-jian-dan/insert'; var data = { xunJianShiJian: ctrl.xjDate, employeeId: ctrl.employeeId, roleId: ctrl.roleId }; (ctrl.jieDanRenId != '') && (data.jieDanRenId = ctrl.jieDanRenId) $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.saveCreateInspectPrList(res.data); } } }); } /** * 编辑 保存巡检单 */ ctrl.saveEditInspect = function() { api.showProgress(); var url = '/test/xun-jian-dan/insert'; var data = { id: ctrl.inspectionId, xunJianShiJian: ctrl.xjDate, employeeId: ctrl.employeeId, roleId: ctrl.roleId }; (ctrl.jieDanRenId != '') && (data.jieDanRenId = ctrl.jieDanRenId) $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.saveEditInspectPrList(); } } }); } /** * 保存 */ ctrl.save = function() { api.showProgress({ title: '保存中...', text: '请稍后', modal: false }); // 需要区分“新建”和“修改” if (ctrl.inspectionId != null) { // 修改 ctrl.saveEditInspect() } else { // 新建 ctrl.saveCreateInspect() } } /** * 清空配电室列表 */ ctrl.clearPrList = function() { $("#prList").empty(); } /** * 创建一个配电室DOM */ ctrl.createPrDom = function(prName, prId, inspectType, id) { var type = '例行巡检'; switch (inspectType) { case 1: type = '例行巡检'; break; case 2: type = '特殊巡检'; break; case 3: type = '会诊巡检'; break; case 4: type = '熄灯巡检'; break; }; var template = '' template +='
' template += '
' template += '
' template += '
' template += '
{prName} ' template += '
' template += '
< {type} >
' template += '
' template += '
' template += '
' template += '
删除
' template += '
' template +='
' template = template.replace("{prname}", prName) .replace("{prName}", prName) .replace("{inspectType}", inspectType) .replace("{type}", type) .replace("{prId}", prId) .replace("{id}", id || ''); ctrl.prList.append(template); } /** * 更新巡检信息 */ ctrl.renderInspectionMsg = function(inspectionMsg) { ctrl.xjDate = inspectionMsg.xjDate; $('#xjDate').text(inspectionMsg.xjDate); ctrl.jieDanRenId = inspectionMsg.employeeId || ''; $('#inspector').text(inspectionMsg.employeeName || '无'); // $('#workTime').text(inspectionMsg.workTime); $('#prCount').text(inspectionMsg.totalCount); var prList = inspectionMsg.prList; var length = prList.length; ctrl.clearPrList(); if (length <= 0) { ctrl.emptyTips.show(); } else { ctrl.emptyTips.hide(); } for (var i = 0; i < length; i++) { var prItem = prList[i]; var count = prItem.count; var prName = prItem.prName; var prId = prItem.prId; var inspectType = prItem.type; for (var j = 0; j < count; j++) { ctrl.createPrDom(prName, prId, inspectType); } } } /** * 巡检信息发生变化(从右侧滑栏传递的数据) */ ctrl.inspectionMsgChanged = function(ret, err) { ctrl.renderInspectionMsg(ret.value) } /** * 获取巡检单详情 */ 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.renderInspectPrList(res.data); } } }); } // 渲染巡检配电室列表 ctrl.renderInspectPrList = function(data) { // 判断配电室数量 if (data.total <= 0) { ctrl.prCountDom.text('0') ctrl.emptyTips.show(); return; } else { // 更新配电室数量 ctrl.prCountDom.text(data.total) ctrl.emptyTips.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.prName, prItem.prId, prItem.xunJianLeiXing, prItem.id); } } } ctrl.init = function() { // 适配安卓状态栏 CommonModel.fitInStatusBar(); var searcherTop = $('#heightHeader').height(); $('#searcher').css('top',searcherTop); ctrl.inspectionId = api.pageParam.id || null; ctrl.employeeId = $api.getStorage('employeeId'); ctrl.roleId = $api.getStorage('roleId'); ctrl.prList = $("#prList"); ctrl.emptyTips = $("#empty-tips"); ctrl.title = $('#title'); ctrl.xjDateDom = $('#xjDate'); ctrl.prCountDom = $('#prCount'); // 判断新增、编辑 if (ctrl.inspectionId) {// 编辑 ctrl.title.text('编辑巡检单'); // 获取巡检单详情 ctrl.getInspectDetail(); ctrl.emptyTips.hide(); } else { // 新增 ctrl.title.text('新增巡检单'); ctrl.xjDate = $api.getFormattedDate('yyyy-MM-dd'); ctrl.xjDateDom.text(ctrl.xjDate); ctrl.emptyTips.show(); } ctrl.bind(); //巡检任务信息发生变化 api.addEventListener({ name: 'inspectionMsgChanged' }, ctrl.inspectionMsgChanged); } ctrl.bind = function() { //点击返回按钮 $api.addEvt($api.dom("#back"), "touchend", function() { api.closeWin(); }) //用户点击了"日期选择、人员选择、上班时间、选择配电室、删除"按钮 $("#container").on("touchend", ".show-right-panel", ctrl.showRightPanel); // 点击“保存” $("#save-btn").on("touchend", function () { api.confirm({ title: '', msg: '确定要保存吗', buttons: ['确定', '取消'] }, function(ret, err) { var index = ret.buttonIndex; if (index == 1) { // 确定 ctrl.save(); } }); }); } ctrl.init(); }