apiready = function() { var ctrl = { init: {}, bind: {}, prefix: 'https://cdyfile.saas.dianwutong.com/', employeeId: '', prId: '', orderData: { pics: [], serverPicUrls: [], uploadPicNum: 0, resultDesc: '' }, tabType: 'order', problemData: { status: true, // true:完成了初始化,false:当前存在未提交设备缺陷 desc: '', // 设备缺陷 文字描述 pics: [], // 设备缺陷 图片信息 serverPicUrls: [], // 上传完成,返回的图片 url uploadPicNum: 0, // 已经上传完成的图片的数量 activeProblemItemDom: null, // 当前正在编辑的设备缺陷 DOM }, }; ctrl.init = function() { CommonModel.fitInStatusBar(); ctrl.orderId = api.pageParam.orderid; ctrl.status = api.pageParam.status; ctrl.employeeId = $api.getStorage('employeeId'); ctrl.startBtnDom = $('#start-btn'); ctrl.finishBtnDom = $('#finish-btn'); if (ctrl.status == 1) { // 未处理 ctrl.startBtnDom.show(); ctrl.finishBtnDom.hide(); $('.start-show').hide(); } else if (ctrl.status == 2) { // 处理中 ctrl.startBtnDom.hide(); ctrl.finishBtnDom.show(); $('.start-show').show(); }; ctrl.bind(); ctrl.initOrderDetail(); } ctrl.bind = function() { //点击返回按钮 $api.addEvt($api.dom("#back"), "touchend", function() { api.closeWin(); }); //点击 “工单详情” tab按钮 $api.addEvt($api.dom("#order-tab"), "touchend", function () { if (ctrl.tabType == 'order') { return } $api.addCls(this, "active"); $api.removeCls($api.dom("#problem-tab"), "active"); $api.css($api.dom("#order-panel"), 'display:block'); $api.css($api.dom("#problem-panel"), 'display:none'); $api.css($api.dom('#inspectionitem-empty-tips'), "display:none"); ctrl.tabType = 'order' }, false); //点击 “设备缺陷” tab按钮 $api.addEvt($api.dom("#problem-tab"), "touchend", function () { if (ctrl.tabType == 'problem') { return } $api.addCls(this, "active"); $api.removeCls($api.dom("#order-tab"), "active"); $api.css($api.dom("#problem-panel"), 'display:block'); $api.css($api.dom("#order-panel"), 'display:none'); $api.css($api.dom('#inspectionitem-empty-tips'), "display:none"); ctrl.tabType = 'problem'; }, false); /** * =============================order-panel 工单详情 中的事件绑定=============================== */ // 点击 添加 图片 + // $("#pic-add-btn").on("touchend", function () { // var resultPicContentDom = $('#result-pic-content'); // var params = { // sourceType: 'camera', // destinationType: 'base64' // }; // api.getPicture(params, function(ret, err){ // if (ret && ret.data) { // // 创建图片预览dom // var picItemDom = ''; // var dom = picItemDom.replace('{{url}}', ret.data); // resultPicContentDom.prepend(dom); // // 保存 图片 base64 和 url // ctrl.orderData.pics.push({ // url: ret.data // }); // } // }) // }); // 点击 相册选择 添加 设备缺陷图片 $("#pic-add-btn").on("touchend", function () { var picContentDom = $('#pic-content'); var params = { sourceType: 'library', // sourceType: 'camera', // sourceType: 'album', destinationType: 'base64' } api.getPicture(params, function(ret, err){ if (ret && ret.data) { // 创建图片预览dom var picItemDom = '' var dom = picItemDom.replace('{{url}}', ret.data) picContentDom.prepend(dom) // 保存 图片 base64 和 url ctrl.orderData.pics.push({ url: ret.data }); } }) }); // 点击 照相机 拍照添加 设备缺陷图片 $("#camera-btn").on("touchend", function () { var picContentDom = $('#result-pic-content'); var params = { // sourceType: 'library', sourceType: 'camera', // sourceType: 'album', destinationType: 'base64' } api.getPicture(params, function(ret, err){ if (ret && ret.data) { // 创建图片预览dom var picItemDom = '' var dom = picItemDom.replace('{{url}}', ret.data) picContentDom.prepend(dom) // 保存 图片 base64 和 url ctrl.orderData.pics.push({ url: ret.data }); } }) }); // 图片 删除按钮 $("#result-pic-content").on("touchend", "i", function (e) { e.stopPropagation(); var _this = this; api.confirm({ title: '', msg: '确定要删除吗', buttons: ['确定', '取消'] }, function(ret, err) { var index = ret.buttonIndex; if (index == 1) { // 确定 var url = $($(_this).siblings('img')[0]).attr('src'); $(_this).parent('.pic-item').remove(); // 从 ctrl.orderData.pics 中删除对应url ctrl.orderData.pics = ctrl.orderData.pics.filter(function (item) { return item.url != url; }); } }); }); // 点击图片预览 $("#order-panel").on("touchend", ".pic", function (e) { e.stopPropagation(); var src = $(this).attr('src'); $('#pic-review img').attr('src', src); $('#pic-review').css('display', 'block'); }); // 点击 “开始处理” 按钮 $('#start-btn').on("touchend", function () { api.confirm({ title: '', msg: '确定开始处理吗', buttons: ['确定', '取消'] }, function(ret, err) { var index = ret.buttonIndex; if (index == 1) { // 确定 ctrl.handleStart(); } }); }); // 点击 “处理完成” 按钮 $('#finish-btn').on("touchend", function () { api.confirm({ title: '', msg: '确定提交处理结果吗', buttons: ['确定', '取消'] }, function(ret, err) { var index = ret.buttonIndex; if (index == 1) { // 确定 // 判断是否有未提交的设备缺陷 if (!ctrl.problemData.status) { ctrl.toast('存在未提交的设备缺陷!'); } else { ctrl.handleFinish(); }; } }); }); /** * ===============================prolem-panel 设备缺陷 中的事件绑定================================ */ // 点击 新增设备缺陷 $('#new-add-btn').on("touchend", function () { // 判断当前工单是否是 “处理中” ,“未处理”工单不可以添加设备缺陷 if (ctrl.status == 1) { ctrl.toast("工单未开始处理,不能添加设备缺陷"); return }; // 判断是否有未提交的设备缺陷 if (ctrl.problemData.status) { // 页面中添加一个 问题 li DOM ctrl.addProblemItemDom(); ctrl.problemData.status = false; } else { ctrl.toast('存在未提交的设备缺陷!') }; }); // 点击 添加设备缺陷图片 + $("#problem-list-container").on("touchend", ".pic-add-btn", function () { var picContentDom = $(this).parent('.pic-content'); var params = { sourceType: 'camera', destinationType: 'base64' } api.getPicture(params, function(ret, err){ if (ret && ret.data) { // 创建图片预览dom var picItemDom = '' var dom = picItemDom.replace('{{url}}', ret.data) picContentDom.prepend(dom) // 保存 图片 base64 和 url ctrl.problemData.pics.push({ url: ret.data }) } }) }); // 图片预览 $("#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'); }); // 设备缺陷 图片 “删除” $("#problem-list-container").on("touchend", "i", function (e) { e.stopPropagation(); var _this = this; api.confirm({ title: '', msg: '确定要删除吗', buttons: ['确定', '取消'] }, function(ret, err) { var index = ret.buttonIndex; if (index == 1) { // 确定 var url = $($(_this).siblings('img')[0]).attr('src'); $(_this).parent('.pic-item').remove(); // 从 ctrl.problemData.pics 中删除对应url ctrl.problemData.pics = ctrl.problemData.pics.filter(function (item) { return item.url != url; }); } }); }); // 点击 “删除” 设备缺陷 $('#problem-list-container').on("touchend", ".delete-btn", function () { var _this = this; api.confirm({ title: '', msg: '确定要删除吗', buttons: ['确定', '取消'] }, function(ret, err) { ctrl.problemData.activeProblemItemDom = $(_this).parents('.problem-item'); var index = ret.buttonIndex; if (index == 1) { // 确定 ctrl.handleDelete(); } }); }); // 点击 “提交” 设备缺陷 $('#problem-list-container').on("touchend", ".submit-btn", function () { ctrl.problemData.activeProblemItemDom = $(this).parents('.problem-item'); ctrl.problemData.desc = ctrl.problemData.activeProblemItemDom.find('.desc').val().trim(); api.confirm({ title: '', msg: '确定要提交吗', buttons: ['确定', '取消'] }, function(ret, err) { var index = ret.buttonIndex; if (index == 1) { // 确定 if (!ctrl.problemData.desc.trim()) { ctrl.toast('缺陷描述不能为空!'); } else { ctrl.handleSubmit(); }; } }); }); // 点击预览图片 关闭预览 $('#pic-review').on("touchend", function (e) { e.stopPropagation(); $(this).css('display', 'none'); }); }; /** * 弹出提示框 */ ctrl.toast = function (msg) { api.toast({ msg: msg, duration: 3000, locaiton: 'top' }); }; // 初始化 工单详情 ctrl.initOrderDetail = function () { ctrl.getOrderDetail(); }; // 获取工单详情 ctrl.getOrderDetail = function () { var url = '/test/gong-dan/queryById/' + ctrl.orderId; api.showProgress({ title: '载入中...', text: '请稍后', modal: false }); $api.get(url, function(res, err) { api.hideProgress(); if (err) { ctrl.toast("网络请求失败"); } else { if (!res.code || res.code != "200" || !res.data) { ctrl.toast("服务器响应错误" + (res.code ? (",错误码:" + res.code) : "")); } else { ctrl.prId = res.data.prId; ctrl.renderOrderDetail(res.data); } } }); }; // 渲染工单详情 ctrl.renderOrderDetail = function (data) { $('#pr-name').text(data.prName); $('#person').text(data.tiJiaoRenName); $('#create-time').text(data.tiJiaoShiJian); $('#desc').text(data.miaoShu); // 渲染问题照片 var picContentDom = $('#pic-content'); if (data.zhaoPian) { ctrl.renderPics(picContentDom, data.zhaoPian); } else { picContentDom.html('无'); }; }; // 渲染 图片 ctrl.renderPics = function(dom, pics) { dom.empty(); var picsArr = pics.split(','); var length = picsArr.length; for (var i = 0; i < length; i++) { var picUrl = ctrl.prefix + picsArr[i]; var picDom = ''; dom.append(picDom); } }; // “开始处理” ctrl.handleStart = function () { api.showProgress(); var url = '/test/gong-dan/gongDanKaiShi'; var data = { id: ctrl.orderId }; $api.post(url, data, function (res, err) { if (err) { api.hideProgress(); ctrl.toast("开始失败,请稍后再试"); } else { if (res.code == 200) { ctrl.startBtnDom.hide(); ctrl.finishBtnDom.show(); $('.start-show').show(); api.hideProgress(); ctrl.toast("开始成功"); ctrl.status = 2; } else { api.hideProgress(); ctrl.toast("服务器响应错误" + (res.code ? (",错误码:" + res.code) : "")); } }; }); }; // “处理完成” ctrl.handleFinish = function () { // 数据校验 var flag = ctrl.checkData(); if (!flag) { ctrl.toast("请填写完整,再提交"); return; }; api.showProgress(); var pics = ctrl.orderData.pics; var length = pics.length; if (length > 0) { // 有图片 // 上传 图片 for (var i = 0; i < length; i++) { var url = pics[i]['url']; ctrl.uploadPic(url); } } else { // 没图片 ctrl.submit(); }; }; // 数据校验 ctrl.checkData = function () { ctrl.orderData.resultDesc = $('#result-desc').val().trim(); if (ctrl.orderData.resultDesc) { // 验证处理结果 return true; } else { return false; }; }; // 上传图片 ctrl.uploadPic = function (file) { 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.orderData.serverPicUrls.push(res.body.fileUrl) ctrl.orderData.uploadPicNum++; if (ctrl.orderData.uploadPicNum == ctrl.orderData.pics.length) {// 代表全部图片上传完成 // 2、调用接口 ctrl.submit(); } } else { api.hideProgress(); ctrl.toast("服务器错误,未返回数据"); } } else { api.hideProgress(); ctrl.toast("服务器响应错误" + (res.code ? (",错误码:" + res.code) : "")); } } }) }; // 提交处理结果 ctrl.submit = function () { api.showProgress(); var chuLiZhaoPian = ctrl.orderData.serverPicUrls.join(','); var url = '/test/gong-dan/gongDanWanCheng'; var data = { id: ctrl.orderId, chuLiMiaoShu: ctrl.orderData.resultDesc }; if (chuLiZhaoPian) { data.chuLiZhaoPian = chuLiZhaoPian; }; $api.post(url, data, function (res, err) { if (err) { api.hideProgress(); ctrl.toast("提交结果失败,请稍后再试"); } else { if (res.code == 200) { // 返回 我的工单 页 api.sendEvent({ name: 'orderTaskChanged' }); api.hideProgress(); ctrl.toast("提交成功"); api.closeWin(); } else { api.hideProgress(); ctrl.toast("服务器响应错误" + (res.code ? (",错误码:" + res.code) : "")); } }; }); }; /** * ============================= 设备缺陷 panel ============================ */ // 添加一个 设备缺陷 dom ctrl.addProblemItemDom = function() { var index = $('#problem-list-container li').length + 1; var itemDom = ''; itemDom += '
  • '; itemDom += '
    '; itemDom += '
    问题{index}
    '; itemDom += '
    ' itemDom += '
    ' itemDom += '删除' itemDom += '
    ' itemDom += '
    '; itemDom += '提交'; itemDom += '
    '; itemDom += '
    ' itemDom += '
    已提交
    ' itemDom += '
    '; itemDom += '
    '; itemDom += '
    *问题描述:
    '; itemDom += '
    '; itemDom += ''; itemDom += '
    '; itemDom += '
    '; itemDom += '
    '; itemDom += '
    现场照片:
    '; itemDom += '
    '; itemDom += ''; itemDom += '
    '; itemDom += '
    '; itemDom += '
  • '; itemDom = itemDom.replace('{index}', index); $('#problem-list-container').append(itemDom); }; // 处理 删除 事件 ctrl.handleDelete = function () { ctrl.problemData.activeProblemItemDom.remove(); ctrl.resetProblemData(); }; // 处理 问题 提交 事件 ctrl.handleSubmit = function() { api.showProgress(); var pics = ctrl.problemData.pics; var length = pics.length; if (length > 0) { // 有图片 // 上传 图片 for (var i = 0; i < length; i++) { var url = pics[i]['url'] ctrl.uploadProblemPic(url) } } else { // 没图片 ctrl.submitProblem(); }; }; // 重置 设备缺陷 数据表单 ctrl.resetProblemData = function () { ctrl.problemData.status = true; ctrl.problemData.desc = ''; ctrl.problemData.pics = []; ctrl.problemData.serverPicUrls = []; ctrl.problemData.uploadPicNum = 0; ctrl.problemData.activeProblemItemDom = null; }; // 上传 设备缺陷 图片 ctrl.uploadProblemPic = function (file) { var url = "/ems/rest/common/file/pad_upload"; var data = file; $api.uploadFile(url, data, function (res, err) { if (err) { api.hideProgress(); ctrl.toast("网络请求失败,请稍后再试"); } else { if (res.code == 200) { // 将返回的图片路径保存 if (res.body && res.body.fileUrl) { ctrl.problemData.serverPicUrls.push(res.body.fileUrl) ctrl.problemData.uploadPicNum++; if (ctrl.problemData.uploadPicNum == ctrl.problemData.pics.length) {// 代表全部图片上传完成 // 2、调用提交 设备缺陷接口 ctrl.submitProblem(); } } else { api.hideProgress(); ctrl.toast("服务器错误,未返回数据"); } } else { api.hideProgress(); ctrl.toast("服务器响应错误" + (res.code ? (",错误码:" + res.code) : "")); } } }) }; // 提交 设备缺陷 ctrl.submitProblem = function() { api.showProgress(); var zhaoPian = ctrl.problemData.serverPicUrls.join(','); var url = '/test/gong-dan/insert'; var data = { tiJiaoRenId: ctrl.employeeId, xunJianPrId: ctrl.id, prId: ctrl.prId, miaoShu: ctrl.problemData.desc, isXjProblem: 1 }; if (zhaoPian) { data.zhaoPian = zhaoPian; }; $api.post(url, data, function (res, err) { if (err) { api.hideProgress(); ctrl.toast("提交设备缺陷失败,请稍后再试"); } else { if (res.code == 200) { // 隐藏当前设备缺陷的 删除 和 提交 按钮,隐藏 添加图片 删除图片 按钮 ctrl.problemData.activeProblemItemDom.find('.btns').css('display', 'none'); ctrl.problemData.activeProblemItemDom.find('.finished').css('display', 'block'); ctrl.problemData.activeProblemItemDom.find('.pic-add-btn').css('display', 'none'); ctrl.problemData.activeProblemItemDom.find('.pic-item i').css('display', 'none'); ctrl.problemData.activeProblemItemDom.find('.desc').attr('disabled', 'disabled'); // 初始化 problemData ctrl.resetProblemData(); api.hideProgress(); ctrl.toast("提交成功"); } else { api.hideProgress(); ctrl.toast("服务器响应错误" + (res.code ? (",错误码:" + res.code) : "")); } }; }); }; ctrl.init(); }