myPrintKit.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  1. function PrintTable(billList){
  2. for (var i = 0; i < billList.length; i++) {
  3. var printOrders = billList[i];
  4. //如果原发货人,电话不为空,显示原发货人信息,否则现在发货人信息
  5. if (printOrders.shipperCompanyName != null
  6. && printOrders.shipperCompanyName != ''
  7. && printOrders.shipperCompanyPhone != null
  8. && printOrders.shipperCompanyPhone != '') {
  9. printOrders.shipperTel = printOrders.shipperCompanyPhone;
  10. printOrders.shipperName = printOrders.shipperCompanyName;
  11. printOrders.saddress = printOrders.shipperCompanyAddress;
  12. printOrders.shipperPhone = '';
  13. }
  14. }
  15. var len = $(".waybillNum").length;
  16. var wayNum = "";
  17. for (var i = 0; i < len; i++) {
  18. wayNum += $(".waybillNum")[i].innerText + ",";
  19. }
  20. wayNum = wayNum.substring(0, wayNum.length - 1);
  21. //newPrintWayBill(billList, wayNum); //打印
  22. lodopPrintTable(billList, wayNum); //打印
  23. }
  24. //当前打印模板
  25. var htmlTemplateObj = null;
  26. function lodopPrintTable(billList, wayNum){
  27. //获取打印模板
  28. htmlTemplateObj = $("#printContext");
  29. // console.log("shipperName"+htmlTemplateObj.find("span.shipperName").text())
  30. var LODOP = null;
  31. try{
  32. LODOP=getLodop();
  33. if ((LODOP!=null)&&(typeof(LODOP.VERSION)!="undefined")){
  34. $("#lodopTips").hide();
  35. }
  36. else{
  37. $("#lodopTips").show();
  38. return;
  39. }
  40. }catch(err){
  41. $("#lodopTips").show();
  42. return;
  43. }
  44. //打印
  45. print(billList, wayNum);
  46. }
  47. //打印模板
  48. function templateDataProcess(data, index){
  49. Date.prototype.Format = function (fmt) { //author: meizz
  50. var o = {
  51. "M+": this.getMonth() + 1, //月份
  52. "d+": this.getDate(), //日
  53. "H+": this.getHours(), //小时
  54. "m+": this.getMinutes(), //分
  55. "s+": this.getSeconds(), //秒
  56. "q+": Math.floor((this.getMonth() + 3) / 3), //季度
  57. "S": this.getMilliseconds() //毫秒
  58. };
  59. if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
  60. for (var k in o)
  61. if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
  62. return fmt;
  63. }
  64. var printHtml = null;
  65. if(data==undefined || data == null || data== ""){
  66. return printHtml;
  67. }
  68. htmlTemplateObj.find("span.conPhone").text(data.conPhone);
  69. htmlTemplateObj.find("span.conTel").text(data.conTel);
  70. htmlTemplateObj.find("span.shipperTel").text(data.shipperTel);
  71. htmlTemplateObj.find("span.shipperName").text(data.shipperName);
  72. htmlTemplateObj.find("span.shipperPhone").text(data.shipperPhone);
  73. htmlTemplateObj.find("span.conName").text(data.conName);
  74. if(data.caddress.length>42){
  75. $('#conMsg').attr('style','border-right:0mm;font-size:8pt;width:90mm;font-family:黑体;font-weight:bold;text-align:left; ');
  76. $('#conMsg2').attr('style','font-family:黑体;text-align:left; font-size:8px;font-weight:bold; ');
  77. }else{
  78. $('#conMsg').attr('style','border-right:0mm;font-size:10pt;width:90mm;font-family:黑体;font-weight:bold;text-align:left; ');
  79. $('#conMsg2').attr('style','font-family:黑体;text-align:left; font-size:10px;font-weight:bold; ');
  80. }
  81. htmlTemplateObj.find("span.caddress").text(data.caddress);
  82. htmlTemplateObj.find("span.saddress").text(data.saddress);
  83. htmlTemplateObj.find("span.cargoName").text(data.cargoName);
  84. htmlTemplateObj.find("span.cargoWeight").text(data.cargoWeight);
  85. htmlTemplateObj.find("span.refundPayment").text(data.refundPayment);
  86. if (data.refundPayment > 0) {
  87. $("#refundPaymentId").text("代收货款");
  88. $('#refundPaymentId').attr('style','border-top:0mm;background:#000000;line-height:72px;font-weight:bold; text-align:center; color:#FFFFFF; font-size:20px;');
  89. } else {
  90. $("#refundPaymentId").text("");
  91. $('#refundPaymentId').attr('style','border-top:0mm;background:#000000;line-height:72px; text-align:center; color:#FFFFFF;');
  92. }
  93. if (data.payType.length > 2) {
  94. $('#payTypeId').attr('style','border-top:0mm;background:#000000;line-height:72px;font-weight:bold; text-align:center; color:#FFFFFF; font-size:10px;');
  95. } else {
  96. $('#payTypeId').attr('style','border-top:0mm;background:#000000;line-height:72px;font-weight:bold; text-align:center; color:#FFFFFF; font-size:20px;');
  97. }
  98. $("#payTypeId").text(data.payType);
  99. if ("" == data.transType) {
  100. $('#transTypeId').attr('style','border-top:0mm;background:#FFFFFF;line-height:72px;font-weight:bold; text-align:center; color:#000000; font-size:13px;');
  101. htmlTemplateObj.find("span.transType").text("无法匹配");
  102. } else {
  103. if (data.transType.length > 4) {
  104. $('#transTypeId').attr('style','border-top:0mm;background:#FFFFFF;line-height:72px;font-weight:bold; text-align:center; color:#000000; font-size:8px;');
  105. } else {
  106. $('#transTypeId').attr('style','border-top:0mm;background:#FFFFFF;line-height:72px;font-weight:bold; text-align:center; color:#000000; font-size:13px;');
  107. }
  108. htmlTemplateObj.find("span.transType").text(data.transType);
  109. }
  110. htmlTemplateObj.find("span.destination").text(data.destination);
  111. htmlTemplateObj.find("span.billWeight").text(data.billWeight);
  112. htmlTemplateObj.find("span.transportCharge").text(data.transportCharge);
  113. htmlTemplateObj.find("span.totalCharge").text(data.totalCharge);
  114. htmlTemplateObj.find("span.insuranceMoney").text(data.insuranceMoney);
  115. htmlTemplateObj.find("span.signSheet").text(data.signSheet);
  116. htmlTemplateObj.find("span.outerField1").text(data.outerField1);
  117. htmlTemplateObj.find("span.lastOutLoadOrgName").text(data.lastOutLoadOrgName);
  118. htmlTemplateObj.find("span.departCityName").text(data.departCityName);
  119. htmlTemplateObj.find("span.departCityName").text(data.departCityName);
  120. htmlTemplateObj.find("span.secondLoadOrgName").text(data.secondLoadOrgName);
  121. htmlTemplateObj.find("span.stationNumber").text(data.stationNumber);
  122. htmlTemplateObj.find("span.custOrderLine").text(data.custOrderLine);
  123. htmlTemplateObj.find("span.transNote").text(data.transNote);
  124. if ("" == data.markerPen) {
  125. $('#markerPen').attr('style','text-align: center; line-height: 13mm; vertical-align: middle;font-size: 35px; font-weight: bold; margin: 0px; padding: 0px;');
  126. $("#refundPaymentId").text("无大头笔信息");
  127. } else {
  128. if (data.markerPen.length > 10) {
  129. $('#markerPen').attr('style','text-align: center; line-height: 13mm; vertical-align: middle;font-size: 18px; font-weight: bold; margin: 0px; padding: 0px;');
  130. $("#markerPen").text(data.markerPen);
  131. } else {
  132. $('#markerPen').attr('style','text-align: center; line-height: 13mm; vertical-align: middle;font-size: 35px; font-weight: bold; margin: 0px; padding: 0px;');
  133. $("#markerPen").text(data.markerPen);
  134. }
  135. }
  136. // htmlTemplateObj.find("span.markerPen").text(data.markerPen);
  137. htmlTemplateObj.find("span.orderNumber").text(data.orderNumber);
  138. htmlTemplateObj.find("span.printTime").text(new Date().Format("yyyyMMdd HH:mm:ss"));
  139. htmlTemplateObj.find("span.billTime").text(data.billTime.substring(0,10));
  140. var cargoCount = data.cargoCount;
  141. if(data.cargoCount>1){
  142. cargoCount += "-" + (index+1);
  143. }
  144. htmlTemplateObj.find("span.cargoCount").text(cargoCount);
  145. //代收账号
  146. var account = data.reciveLoanAccount;
  147. if (account != null && account != '') {
  148. account = account.substring(0, 3) + "*"
  149. + account.substring(account.length - 4, account.length);
  150. } else {
  151. account = "";
  152. }
  153. htmlTemplateObj.find("span.reciveLoanAccount").text(account);
  154. if (data.conTel != '' && data.conTel != null) {
  155. if (data.conPhone != '' && data.conPhone != null) {
  156. htmlTemplateObj.find("span.conTel").text(data.conTel + "/");
  157. }
  158. }
  159. if (data.shipperTel != '' && data.shipperTel != null) {
  160. if (data.shipperPhone != ''
  161. && data.shipperPhone != null) {
  162. htmlTemplateObj.find("span.shipperTel").text(data.shipperTel + "/");
  163. }
  164. }
  165. // return htmlTemplateObj.html();
  166. }
  167. /**
  168. * 打印
  169. * @param list
  170. */
  171. function print(billList, wayNum){
  172. for(var i=0; i<billList.length; i++){
  173. var data = billList[i];
  174. data.cargoCount = 1;
  175. for(var j=0; j<data.cargoCount; j++){
  176. var serialNo = data.printSerialNos;
  177. if(data.cargoCount>1){
  178. serialNo = data.printSerialNos.split(",")[j];
  179. }
  180. //条码
  181. var barcode = data.waybillNumber + serialNo + data.stationNumber;
  182. var isHideWareHouse = data.isHideWareHouse;
  183. //模板数据处理
  184. templateDataProcess(data, j);
  185. console.log("XXXX: "+ htmlTemplateObj.find("span.shipperName").text())
  186. //打印电子运单1
  187. printEWaybill(data, serialNo, barcode, wayNum);
  188. //打印仓库分拣单
  189. // if("N"==isHideWareHouse){
  190. // printWareHouseWaybill(data, serialNo, barcode);
  191. // }
  192. }
  193. }
  194. if(billList.length>0){
  195. //$.myAlert("本次共打印"+billList.length+"张,已成功添加到打印列表!");
  196. }else {
  197. //$.myAlert('请先勾选需要打印的面单');
  198. }
  199. }
  200. /**
  201. * 打印电子运单
  202. * @param data
  203. * @param serialNo
  204. */
  205. function printEWaybill(data, serialNo, barcode, wayNum){
  206. //打印内容
  207. var printHtml = htmlTemplateObj.find("div#expressPrintArea").html();
  208. LODOP.PRINT_INIT("二级模板");
  209. LODOP.SET_PRINT_PAGESIZE(0,"110mm","180mm","CreateCustomPage");
  210. // LODOP.ADD_PRINT_TEXT(130,30,150,130,$(".markerPenCode").text());
  211. // LODOP.ADD_PRINT_TEXT(130,30,150,130,"河南郑州");
  212. LODOP.SET_SHOW_MODE("BKIMG_WIDTH","100mm");
  213. LODOP.SET_SHOW_MODE("BKIMG_HEIGHT","180mm");
  214. LODOP.ADD_PRINT_TABLE("2mm","0.6mm","95mm","177mm",printHtml);
  215. LODOP.ADD_PRINT_BARCODE("79mm","10mm","84mm","15mm","128C", data.waybillNumber);
  216. LODOP.ADD_PRINT_BARCODE("117mm","45mm","50mm","8mm","128C", data.waybillNumber);
  217. //打印
  218. LODOP.PREVIEW();
  219. //LODOP.PRINT();
  220. // LODOP.PRINT_DESIGN();
  221. //记录打印日志
  222. try {
  223. //printLogses(data);
  224. window.tempTip.postBasicRequest("changeExpressTag",{id:data.waybillNumber},res=>{
  225. });
  226. } catch (e) {
  227. }
  228. }
  229. function printTest(item = '') {
  230. var printOrder = {};
  231. printOrder.waybillNumber = item.waybill_number??'';
  232. printOrder.shipperCompanyPhone = '021-6316561';
  233. printOrder.shipperCompanyAddress = item.order.warehouse.province.name +'-'+item.order.warehouse.city.name+'-'+item.order.warehouse.county.name+'-'+item.order.warehouse.address
  234. printOrder.shipperTel = '021-6316561';
  235. printOrder.saddress = item.order.warehouse.province.name +'-'+item.order.warehouse.city.name+'-'+item.order.warehouse.county.name+'-'+item.order.warehouse.address;
  236. printOrder.shipperPhone = '021-6316561';
  237. printOrder.conPhone = item.order.consignee_phone;
  238. printOrder.conTel = item.order.consignee_phone;
  239. printOrder.shipperName = '宝时物流';
  240. printOrder.conName = item.order.consignee_name;
  241. printOrder.caddress = item.order.province+'-'+item.order.city+'-'+item.order.district+'-'+item.order.address;
  242. printOrder.cargoName = item.cargo_name;
  243. printOrder.cargoWeight = item.total_weight;
  244. printOrder.refundPayment = item.is_to_pay ? item.collect_fee : 0; //代收款
  245. printOrder.payType = '月结';
  246. printOrder.transType = item.transport_type == "JZQY_LONG" ? '精确汽运' : '精准卡航';
  247. printOrder.destination = item.destination_city.name;
  248. printOrder.billWeight = item.total_weight;
  249. printOrder.transportCharge = item.fee;
  250. printOrder.totalCharge = item.charge;
  251. printOrder.insuranceMoney = 0; //保价
  252. printOrder.signSheet = item.back_sign_bill ? (item.back_sign_bill == 1 ? '签收单原件返回' : '电子签收单' ) : '无需返单';
  253. printOrder.outerField1 = ''; //受理部门
  254. printOrder.lastOutLoadOrgName = item.arrived_org_simple_name??''; //最终外场
  255. printOrder.departCityName = '上海市'; //原寄地
  256. printOrder.secondLoadOrgName = ''; //第二外场
  257. printOrder.stationNumber = item.station_no??''; //提货网点id
  258. printOrder.custOrderLine = item.wms_bill_number;
  259. printOrder.transNote = item.ordering_remark;
  260. printOrder.markerPen = item.origination;
  261. printOrder.orderNumber = item.source_bill;
  262. printOrder.billTime = item.order.created_at;
  263. printOrder.cargoCount = item.total_number;
  264. printOrder.reciveLoanAccount = ''; //代收账号
  265. printOrder.printSerialNos = ''; //流水号
  266. printOrder.isHideWareHouse = '';
  267. printOrder.originalNumber = '';
  268. var printList = [];
  269. printList.push(printOrder);
  270. PrintTable(printList);
  271. }