|
@@ -9,7 +9,7 @@
|
|
|
<link rel="Bookmark" href="/favicon.ico" >
|
|
|
<link rel="Shortcut Icon" href="/favicon.ico" />
|
|
|
<#include "/base/add_base.ftl">
|
|
|
- <script type="text/javascript" src="https://s.iamberry.com/js/LodopFuncs.js"></script>
|
|
|
+ <script type="text/javascript" src="https://s.iamberry.com/js/LodopFuncs_v_5_0.js"></script>
|
|
|
<title>打单发货</title>
|
|
|
|
|
|
</head>
|
|
@@ -92,7 +92,8 @@
|
|
|
|
|
|
<script type="text/javascript">
|
|
|
// 选择打印设备
|
|
|
- var LODOP=getLodop();
|
|
|
+ var selPrinter = -1;
|
|
|
+ var LODOP = null;
|
|
|
$(function () {
|
|
|
$.Huitab("#tab_demo .tabBar span","#tab_demo .tabCon","current","click","0");
|
|
|
// 获取系统的打印机
|
|
@@ -106,15 +107,27 @@
|
|
|
}
|
|
|
// 开始打印
|
|
|
$("#sub-post").click(function() {
|
|
|
- LODOP.SELECT_PRINTER();
|
|
|
+ // 判断当前是否选中了订单
|
|
|
var index = getCurrTab();
|
|
|
var orders = $("." + index + "-wait-print-order");
|
|
|
if (orders == null || orders.length <= 0) {
|
|
|
layer.msg("未选中订单",{icon: 2,time:3000});
|
|
|
return;
|
|
|
}
|
|
|
- // 启动打印
|
|
|
- startPrint();
|
|
|
+ LODOP=getLodop();
|
|
|
+ // 选择打印设备,注意:选择打印机时,需要区别IE类浏览器和非IE浏览器
|
|
|
+ var isIE = (navigator.userAgent.indexOf('MSIE')>=0) || (navigator.userAgent.indexOf('Trident')>=0);
|
|
|
+ if (!isIE) {
|
|
|
+ // 非IE类浏览器,第一次时需要将内容设置到页面后,调用选择打印机接口,后续调用打印接口
|
|
|
+ startPrint(false, true);
|
|
|
+ } else {
|
|
|
+ // IE 浏览器
|
|
|
+ var printIndex = LODOP.SELECT_PRINTER();
|
|
|
+ if (printIndex!==-1) {
|
|
|
+ // 启动打印
|
|
|
+ startPrint(true, true);
|
|
|
+ }
|
|
|
+ }
|
|
|
});
|
|
|
|
|
|
function nextPrintOrder() {
|
|
@@ -130,7 +143,7 @@
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- function startPrint() {
|
|
|
+ function startPrint(isIE, isFirst) {
|
|
|
var order = nextPrintOrder();
|
|
|
if (order == null || typeof(order) == undefined) {
|
|
|
alert("打印完成,请切换快递公司继续打印");
|
|
@@ -162,31 +175,63 @@
|
|
|
}
|
|
|
if (tempObject.hasOwnProperty("error")) {
|
|
|
// 捕获系统级的错误(比如因为空指针抛出的Exception)
|
|
|
- re_print(order, tempObject.error_msg);
|
|
|
+ re_print(order, tempObject.error_msg, isIE, isFirst);
|
|
|
} else {
|
|
|
if (data && data.returnCode && data.returnCode != 200) {
|
|
|
// 捕获业务级的操作(如订单的店铺没有绑定发货人信息)
|
|
|
- re_print(order, data.returnMsg.error);
|
|
|
+ re_print(order, data.returnMsg.error, isIE, isFirst);
|
|
|
} else {
|
|
|
var res = $.parseJSON(data.returnMsg.json);
|
|
|
if (data.resultMsg && res.Success) {
|
|
|
var html = res.PrintTemplate;
|
|
|
$("#temp-print-order").html(html);
|
|
|
- LODOP.PRINT_INIT('打印订单');
|
|
|
+ LODOP.PRINT_INIT('打印订单'+orderId);
|
|
|
LODOP.SET_PRINT_PAGESIZE(0, 0, 0,"");
|
|
|
LODOP.ADD_PRINT_HTM("0mm","0mm","100%","100%", $("#temp-print-order").html());
|
|
|
- var flag = LODOP.PRINT();
|
|
|
- if (flag) {
|
|
|
- startPrint();
|
|
|
- $(order.find("td")[0]).html("<span style='color: blue'>打印完成</span>");
|
|
|
+ if (isIE) {
|
|
|
+ // IE类浏览器,直接打印
|
|
|
+ if (LODOP.PRINT()) {
|
|
|
+ startPrint(isIE, false);
|
|
|
+ $(order.find("td")[0]).html("<span style='color: blue'>打印完成</span>");
|
|
|
+ } else {
|
|
|
+ // 向后台提交失败打印的信息
|
|
|
+ order.attr("printState", "2");
|
|
|
+ $(order.find("td")[0]).html("<span style='color: red;'>失败(打印机异常)</span>");
|
|
|
+ }
|
|
|
} else {
|
|
|
- // 向后台提交失败打印的信息
|
|
|
- order.attr("printState", "2");
|
|
|
- $(order.find("td")[0]).html("<span style='color: red;'>失败(打印机异常)</span>");
|
|
|
+ // 非IE 浏览器
|
|
|
+ if (isFirst) {
|
|
|
+ // 如果是第一次打印,调用选择打印机接口
|
|
|
+ LODOP.SELECT_PRINTER(true);
|
|
|
+ // 注意,选择打印机后,需要更改打印机事件,否则无法执行回调
|
|
|
+ var spans = $("span");
|
|
|
+ for (var i = 0; i < spans.length; i++) {
|
|
|
+ if ($(spans[i]).text() === "打印份数:") {
|
|
|
+ $(spans[i]).parent().next()[0].onclick = function () {
|
|
|
+ CLODOP.SelectBox.clickOK(false);
|
|
|
+ selPrinter = CLODOP.SelectBox.selPrinter.value;
|
|
|
+ $(order.find("td")[0]).html("<span style='color: blue'>打印完成</span>");
|
|
|
+ startPrint(isIE, false);
|
|
|
+ };
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 如果非第一次打印,则调用打印接口
|
|
|
+ console.log(selPrinter);
|
|
|
+ LODOP.SET_PRINTER_INDEX(selPrinter);
|
|
|
+ if (LODOP.PRINT()) {
|
|
|
+ startPrint(isIE, false);
|
|
|
+ $(order.find("td")[0]).html("<span style='color: blue'>打印完成</span>");
|
|
|
+ } else {
|
|
|
+ // 向后台提交失败打印的信息
|
|
|
+ order.attr("printState", "2");
|
|
|
+ $(order.find("td")[0]).html("<span style='color: red;'>失败(打印机异常)</span>");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
} else {
|
|
|
// 第三方接口错误
|
|
|
- re_print(order, res.Reason);
|
|
|
+ re_print(order, res.Reason, isIE, isFirst);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -195,7 +240,7 @@
|
|
|
}
|
|
|
|
|
|
/* 打印失败后,重新打印 */
|
|
|
- function re_print(order, errorMsg) {
|
|
|
+ function re_print(order, errorMsg, isIE, isFirst) {
|
|
|
// 设置当前被打印的内容为“未打印”
|
|
|
var printNum = parseInt(order.attr("printNum"));
|
|
|
if(printNum >= 2) {
|
|
@@ -207,7 +252,7 @@
|
|
|
order.attr("printNum", (printNum + 1));
|
|
|
$(order.find("td")[0]).html("<span style='color: blue;'>正在重试(" + errorMsg + ")</span>");
|
|
|
}
|
|
|
- startPrint();
|
|
|
+ startPrint(isIE, isFirst);
|
|
|
}
|
|
|
|
|
|
function getCurrTab() {
|