//****************************设备管理和机器管理共用*****************************************/ function getDevicePairingLogsByDevice() { $('#div_attlarge').empty(); if (deviceid) { var cid = $('#sel_contractor').val(); devicerequest('GetDevicePairingLogsByDevice', JSON.stringify([cid, deviceid, ""]), function (data) { if (data && typeof data != "string") { showDevicePairingLogs(data, 0); } }); } } function getDevicePairingLogsByAsset() { $('#div_attlarge').empty(); if (machineid) { devicerequest('GetDevicePairingLogsByAsset', JSON.stringify([contractorid, machineid, ""]), function (data) { if (data && typeof data != "string") { showDevicePairingLogs(data, 1); } }); } } function OnExpendParingInfo(e) { var t = $(e); var tid = t.attr("target"); if (t.hasClass("iconchevrondown")) { t.removeClass("iconchevrondown").addClass("iconchevronright"); $("#" + tid).hide(); } else { t.removeClass("iconchevronright").addClass("iconchevrondown"); $("#" + tid).show(); if (!t.data("loaded")) { getPairingAttachments(t); } } } function showDevicePairingLogs(logs, type) {//0.device,1.asset $('#div_attlarge').empty(); if (logs && logs.length > 0) { for (var i = 0; i < logs.length; i++) { var log = logs[i]; var trid = "paringinfo_tr" + log.Id; var tab = $('
'); $('#div_attlarge').append(tab); var tr = $(''); tab.append(tr); var td = $(''); tr.append(td); var spanexpend = $('').data('log', log).data('type', type); td.append(spanexpend); var spantitle = $('').text(("Paired to {0} on {1} by {2}").replace('{0}', type === 0 ? log.AssetName : (log.SourceName + " " + log.SerialNumber)).replace('{1}', log.InstallTime_LocalStr).replace('{2}', log.InstallerName)); td.append(spantitle); tr = $('').hide(); tab.append(tr); td = $(''); tr.append(td); } } } function getPairingAttachments(t) { var cid = $('#sel_contractor').val(); var pairinglog = $(t).data('log'); var type = $(t).data('type'); devicerequest('GetPairingAttachments', JSON.stringify([cid, pairinglog.Id]), function (data) { if (data && typeof data != "string") { $(t).data('loaded', true); showPairingAttachments(pairinglog, data, type); } }); } function arrayBufferToBase64(buffer) { var binary = ''; var bytes = new Uint8Array(buffer); var len = bytes.byteLength; for (var i = 0; i < len; i++) { binary += String.fromCharCode(bytes[i]); } return window.btoa(binary); } function getPairingSignature(pairinglogid, logtab) { devicerequest('GetPairingSignature', JSON.stringify(pairinglogid), function (data) { if (data && data != null && data.length > 0) { var logtr = $(''); logtab.append(logtr); var logtd = $('').text(GetTextByKey('P_XXXX', 'Signature: ')); logtr.append(logtd); logtd = $(''); logtr.append(logtd); var jpeg = data; if (typeof (data) !== "string") { jpeg = arrayBufferToBase64(data); } var imgsig = $('').attr('src', 'data:image/png;base64,' + jpeg); $(logtd).append(imgsig); } }); } function getPairingAttachmentCategory(key) { switch (key) { case "Odometer": return GetTextByKey("P_XXXX", "Odometer"); case "Engine Hours": return GetTextByKey("P_XXXX", "Engine Hours"); case "Mounting Location": return GetTextByKey("P_XXXX", "Mounting Location"); case "Power Connection": return GetTextByKey("P_XXXX", "Power Connection"); case "Ground Connection": return GetTextByKey("P_XXXX", "Ground Connection"); case "Ignition Connection": return GetTextByKey("P_XXXX", "Ignition Connection"); case "Asset Number": return GetTextByKey("P_XXXX", "Asset Number"); case "Left Front of Asset": return GetTextByKey("P_XXXX", "Left Front of Asset"); case "Right Rear of Asset": return GetTextByKey("P_XXXX", "Right Rear of Asset"); case "VIN": return GetTextByKey("P_XXXX", "VIN"); case "ESN of GPS Device": return GetTextByKey("P_XXXX", "ESN of GPS Device"); default: break; } return key; } var imgTypes = [".jfif", ".jpg", ".jpeg", ".bmp", ".png", ".tiff", ".gif"]; var printTypes = ['.pdf', ".jfif", ".jpg", ".jpeg", ".bmp", ".png", ".tiff", ".gif"];//types to be loaded to print function showPairingAttachments(pairinglog, attas, type) {//0.device,1.asset var ptd = $('#paringinfo_td' + pairinglog.Id); ptd.empty(); var log = pairinglog; //Mountion Location,EngineHours,Odometer var divinfo = $('
'); var logtab = $('
'); divinfo.append(logtab); var logtr = $(''); logtab.append(logtr); var logtd = $('').text(GetTextByKey('P_XXXX', 'Date Time:')); logtr.append(logtd); logtd = $('').text(log.InstallTime_LocalStr); logtr.append(logtd); logtd = $('').text(GetTextByKey('P_XXXX', 'Installer:')); logtr.append(logtd); logtd = $('').text(log.InstallerName); logtr.append(logtd); logtr = $(''); logtab.append(logtr); if (type == 0) { logtd = $('').text(GetTextByKey('P_XXXX', 'VIN:')); logtr.append(logtd); logtd = $('').text(log.AssetVIN); logtr.append(logtd); logtd = $('').text(GetTextByKey('P_XXXX', 'Asset Name:')); logtr.append(logtd); logtd = $('').text(log.AssetName); logtr.append(logtd); } else { logtd = $('').text(GetTextByKey('P_XXXX', 'Device SN:')); logtr.append(logtd); logtd = $('').text(log.SerialNumber); logtr.append(logtd); logtd = $('').text(GetTextByKey('P_XXXX', 'Source:')); logtr.append(logtd); logtd = $('').text(log.SourceName); logtr.append(logtd); } logtr = $(''); logtab.append(logtr); logtd = $('').text(GetTextByKey('P_XXXX', 'Engine Hours: ')); logtr.append(logtd); logtd = $('').text(log.EngineHours < 0 ? '' : log.EngineHours.toLocaleString()); logtr.append(logtd); logtd = $('').text(GetTextByKey('P_XXXX', 'Odometer: ')); logtr.append(logtd); logtd = $('').text(log.Odometer < 0 ? '' : (log.Odometer.toLocaleString() + " " + log.OdometerUnit)); logtr.append(logtd); logtr = $(''); logtab.append(logtr); logtd = $('').text(GetTextByKey('P_XXXX', 'Mounting Location:')); logtr.append(logtd); logtd = $('').text(log.MountionLocation); logtr.append(logtd); logtr = $(''); logtab.append(logtr); logtd = $('').text(GetTextByKey('P_XXXX', 'Notes: ')); logtr.append(logtd); logtd = $('').text(log.Notes); logtr.append(logtd); getPairingSignature(log.Id, logtab); ptd.append(divinfo); if (attas && attas.length > 0) { for (var i = 0; i < attas.length; i++) { var att = attas[i]; var category_str = att.Category.replace(/\s+/g, '').toLowerCase(); var div_atts = $('#divatt_' + pairinglog.Id + "_" + category_str); if (div_atts.length == 0) { div_atts = $('
'); ptd.append(div_atts); var div1 = $('
'); var ext_span = $('').text(getPairingAttachmentCategory(att.Category)); div1.append(ext_span); div_atts.append(div1); } } for (var i = 0; i < attas.length; i++) { var att = attas[i]; var category_str = att.Category.replace(/\s+/g, '').toLowerCase(); var div_atts = $('#divatt_' + pairinglog.Id + "_" + category_str); var pdiv = $('
'); var div = createAttaDiv(att, true); var div1 = $('
'); var sdownload = $('').attr('title', GetTextByKey("P_WO_DOWNLOAD", 'Download')).click(att, function (e) { openDownloadFrame(e.data.FullSizeUrl + "&d=1"); }); div.append(sdownload); pdiv.append(div); var caption = att.FileName; var div3 = $('
'); var iptcaption = $('').attr('data-ori', caption).val(caption); iptcaption.data('attdata', att); div3.append(iptcaption); pdiv.append(div3); div_atts.append(pdiv); } } } function createAttaDiv(att) { var div = $('
').attr('title', att.FileName).attr('title', att.Notes === "" ? att.FileName : att.Notes) if (!att.FileType || att.FileType == "") att.FileType = ".jpg"; if (imgTypes.indexOf(att.FileType.toLowerCase()) >= 0) { var pic = $('').attr('src', att.ThumbnailUrl); pic.click(att, function (e) { window.open(e.data.FullSizeUrl, "_blank") }); div.append(pic); } else { var sdown = $('').click(att, function (e) { window.open(e.data.FullSizeUrl); }); setAttachemntIcon(att.FileType, sdown); div.append(sdown); } return div } function openPrintFrame(attatype, id) { var frame = $(""); $(document.body).after(frame); //frame.attr("src", url); frame.attr("src", _network.root + "Print.aspx?pt=3&at=" + attatype + "&id=" + id); frame.on('load', function () { setTimeout(function () { frame.contents().find("body").css("text-align", "center"); //frame.contents().find("img").css("max-height", window.screen.availHeight).css("max-width", window.screen.availWidth); frame.contents().find("img").css("max-height", "98%").css("max-width", "98%"); frame[0].contentWindow.print(); }); setTimeout(function () { frame.remove(); }, 60000); }); } function openDownloadFrame(url) { var frame = $(""); $(document.body).after(frame); frame.attr("src", url); var timer = setInterval(function () { if (frame[0].contentDocument && (frame[0].contentDocument.readyState == "complete" || frame[0].contentDocument.readyState == 4)) { frame.remove(); clearInterval(timer); } }, 5000); }