jdPrintBill.js 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625
  1. var printPageUrl = "";
  2. var billOrderList = [];
  3. var IsPrintOrderList = [];
  4. var orderCount = 0;
  5. var errorMsg = "";
  6. function doConnect() {
  7. socket = new WebSocket('ws://127.0.0.1:9113');//菜鸟ws://127.0.0.1:13528, 13888抖音打印组件, //拼多多打印组件ws://127.0.0.1:5000;wss://127.0.0.1:18653 //京东 ws为9113;wss为9114
  8. // 打开Socket
  9. socket.onopen = function (event) {
  10. // 监听消息
  11. socket.onmessage = function (event) {
  12. console.log('Client received a message', event);
  13. var response = JSON.parse(event.data);
  14. if (response.code == 6) {
  15. getPrintersHandler(response);//处理打印机列表
  16. } else if (response.cmd == 'setPrinterConfig') {
  17. printConfigHandler(response);
  18. }
  19. };
  20. // 监听Socket的关闭
  21. socket.onclose = function (event) {
  22. service_status.text('打印服务状态:未连接');
  23. isConnected = false;
  24. console.log('Client notified socket has closed', event);
  25. };
  26. };
  27. }
  28. function doGetPrinters() {
  29. var request = getRequestObject("GET_Printers");
  30. socket.send(JSON.stringify(request));
  31. }
  32. function doSetPrintConfig(pName) {
  33. var request = getRequestObject("setPrinterConfig");
  34. request.printer = {};
  35. request.printer.name = pName;
  36. request.printer.needBottomLogo = false;
  37. request.printer.autoOrientation = false;
  38. request.printer.needTopLogo = false;
  39. request.printer.orientation = 0;//纵向
  40. //request.printer.horizontalOffset = 0.2;
  41. //request.printer.verticalOffset = 0.3;
  42. request.printer.autoPageSize = false;
  43. //request.printer.paperSize.width = 55;
  44. //request.printer.paperSize.height = 95;
  45. request.printer.paperSize = {};
  46. request.printer.paperSize.width = 75;
  47. request.printer.paperSize.height = 128;
  48. request.printer.orientation = 0;
  49. request.printer.autoOrientation = true;
  50. socket.send(JSON.stringify(request));
  51. }
  52. function printConfigHandler(res) {
  53. console.log("xxxxx", res);
  54. }
  55. /***
  56. *
  57. * 获取请求的UUID,指定长度和进制,如
  58. * getUUID(8, 2) //"01001010" 8 character (base=2)
  59. * getUUID(8, 10) // "47473046" 8 character ID (base=10)
  60. * getUUID(8, 16) // "098F4D35"。 8 character ID (base=16)
  61. *
  62. */
  63. function getUUID(len, radix) {
  64. var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
  65. var uuid = [], i;
  66. radix = radix || chars.length;
  67. if (len) {
  68. for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix];
  69. } else {
  70. var r;
  71. uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
  72. uuid[14] = '4';
  73. for (i = 0; i < 36; i++) {
  74. if (!uuid[i]) {
  75. r = 0 | Math.random() * 16;
  76. uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
  77. }
  78. }
  79. }
  80. return uuid.join('');
  81. }
  82. /***
  83. * 构造request对象
  84. */
  85. function getRequestObject(cmd) {
  86. var request = new Object();
  87. request.key = getUUID(8, 16);
  88. request.version = "2";
  89. request.orderType = cmd;
  90. return request;
  91. }
  92. /***
  93. * 获取自定义区数据以及模板URL
  94. * waybillNO 电子面单号
  95. */
  96. function getCustomAreaData(waybillNO) {
  97. //获取waybill对应的自定义区的JSON object,此处的ajaxGet函数是伪代码
  98. var jsonObject = ajaxGet(waybillNO);
  99. var ret = new Object();
  100. ret.templateURL = jsonObject.content.templateURL;
  101. ret.data = jsonObject.content.data;
  102. return ret;
  103. }
  104. /***
  105. * 获取电子面单Json 数据
  106. * waybillNO 电子面单号
  107. */
  108. function getWaybillJson(waybillNO) {
  109. //获取waybill对应的json object,此处的ajaxGet函数是伪代码
  110. var jsonObject = ajaxGet(waybillNO);
  111. return jsonObject;
  112. }
  113. /**
  114. * 弹窗模式配置打印机
  115. * */
  116. //var request = getRequestObject("printerConfig");
  117. //webSocket.send(JSON.stringify(request));
  118. /**
  119. * 打印电子面单
  120. * printer 指定要使用那台打印机
  121. * waybillArray 要打印的电子面单的数组
  122. */
  123. function doPrint(data, sellerMemo) {
  124. var nJsonData = JSON.parse(data);
  125. var docuData = nJsonData.waybillCloudPrintResponseList[0];
  126. var printStr = docuData.printData;
  127. printStr = printStr.replace(/\\/g, "");
  128. var printData = JSON.parse(printStr);
  129. var request = getRequestObject("PRINT");
  130. request.task = new Object();
  131. request.task.taskID = getUUID(8, 10);
  132. request.task.preview = false;
  133. request.task.printer = mini.get("txtBillPrinter_CN").getText();
  134. var documents = new Array();
  135. var doc = new Object();
  136. doc.documentID = docuData.waybillCode;
  137. var content = new Array();
  138. var obj = {};
  139. obj.templateURL = mini.get("txtBillModel_CN").getValue();
  140. var selfData = {};
  141. selfData.recipient = printData.data.recipient;
  142. selfData.routingInfo = printData.data.routingInfo;
  143. selfData.sender = printData.data.sender;
  144. selfData.shippingOption = printData.data.recipient.shippingOption;
  145. selfData.waybillCode = docuData.waybillCode;
  146. selfData.packageInfo = printData.data.packageInfo;
  147. //selfData.item_name = "我是你要的商品芭比娃娃。。。";
  148. obj.data = selfData
  149. content.push(obj);
  150. var Obj2 = {};
  151. Obj2.data = {};
  152. Obj2.data.value = "";
  153. //Obj2.templateURL = "http://cloudprint.cainiao.com/template/customArea/440439";
  154. Obj2.templateURL = printPageUrl + "/waybillPrintPage.aspx?value=" + sellerMemo;
  155. content.push(Obj2);
  156. doc.contents = content;
  157. documents.push(doc);
  158. request.task.documents = documents;
  159. socket.send(JSON.stringify(request));
  160. }
  161. function doPrintSF(iData, sellerMemo) {
  162. var mainDataStr = iData.data;
  163. mainDataStr = mainDataStr.replace(/\\/g, "");
  164. //mainDataStr = mainDataStr.replace(/n/g, "");
  165. var mainData = JSON.parse(mainDataStr);
  166. var docData = mainData.data[0]
  167. var request = getRequestObject("PRINT");
  168. request.task = new Object();
  169. request.task.taskID = getUUID(8, 10);
  170. request.task.preview = false;
  171. request.task.printer = mini.get("txtBillPrinter").getText();
  172. var documents = new Array();
  173. var doc = new Object();
  174. doc.documentID = docData.waybillCode;
  175. var content = new Array();
  176. var obj = {};
  177. //obj.templateURL = docData.templateURL;
  178. //var selfData = {};
  179. //selfData.recipient = docData.printData.receiverInfo;
  180. ////selfData.routingInfo =
  181. //selfData.sender = docData.printData.deliverInfo;
  182. ////selfData.shippingOption = deliverInfo;
  183. //selfData.waybillCode = docData.waybillCode;
  184. //selfData.packageInfo = printData.data.packageInfo;
  185. //selfData.item_name = "我是你要的商品芭比娃娃。。。";
  186. obj.templateURL = docData.templateURL;
  187. obj.data = docData.printData;
  188. content.push(obj);
  189. var Obj2 = {};
  190. Obj2.data = {};
  191. Obj2.data.value = "";
  192. //Obj2.templateURL = "http://cloudprint.cainiao.com/template/customArea/440439";
  193. Obj2.templateURL = printPageUrl + "/waybillPrintPage2.aspx?value=" + sellerMemo;
  194. content.push(Obj2);
  195. doc.contents = content;
  196. documents.push(doc);
  197. request.task.documents = documents;
  198. socket.send(JSON.stringify(request));
  199. }
  200. function doPrintEn(data, sellerMemo) {
  201. var nJsonData = JSON.parse(data);
  202. var docuData = nJsonData.response.data.content[0];
  203. //var printStr = docuData.printData;
  204. //printStr = printStr.replace(/\\/g, "");
  205. //var printData = JSON.parse(printStr);
  206. //console.log(printData);
  207. var request = getRequestObject("PRINT");
  208. request.parameters = new Object();
  209. //request.parameters.taskID = getUUID(8, 10);
  210. //request.parameters.preview = false;
  211. request.parameters.printName = mini.get("txtBillPrinter").getText();
  212. var content = new Array();
  213. content.push(docuData.props);
  214. console.log("doPrintEn", sellerMemo);
  215. //var Obj2 = {};
  216. //Obj2.data = {};
  217. //Obj2.data.list = [];
  218. //var objsmall = new Object();
  219. //objsmall.text = sellerMemo;
  220. //Obj2.data.list.push(objsmall);
  221. //Obj2.data.text = sellerMemo;
  222. //Obj2.templateURL = printPageUrl + "/PDDXMLFile.xml";
  223. //content.push(Obj2);
  224. request.parameters.contents = content;
  225. socket.send(JSON.stringify(request));
  226. }
  227. function getPrintersHandler(jsonData) {
  228. if (jsonData.content != undefined && jsonData.content.length > 0) {
  229. var printList = jsonData.content.split(",");
  230. var array = new Array();
  231. for (var item of printList) {
  232. var pObj = new Object();
  233. pObj.name = item;
  234. array.push(pObj);
  235. }
  236. mini.get("txtBillPrinter").setData(array);
  237. mini.get("txtBillPrinter_CN").setData(array);
  238. }
  239. else
  240. console.log("getPrintersHandler,jsonData.content is undefine!");
  241. }
  242. //打开弹窗
  243. function waybillFn() {
  244. var rec = grid.getSelecteds();
  245. if (rec != undefined && rec != "" && rec.length > 0) {
  246. //edit_id = rec.tid;
  247. var offline_str = "";
  248. for (var item of rec) {
  249. if (item.IsOffLineOrder == 1) {
  250. offline_str += item.ctid;
  251. offline_str += ",";
  252. }
  253. }
  254. if (offline_str.length > 0) {
  255. mini.alert("选中订单中有线下单:" + offline_str + "线下单请使用“菜鸟打单");
  256. return;
  257. }
  258. mini.get("waybill_win").show();
  259. $("#waybill_win").find("input").val("");
  260. doGetPrinters();
  261. var wb_cpname = localStorage.getItem("waybill_cpname");
  262. var wb_cpcode = localStorage.getItem("waybill_cpcode");
  263. //var wb_tempid = localStorage.getItem("waybill_tempid");
  264. //var wb_temptext = localStorage.getItem("waybill_temptext");
  265. var wb_printer = localStorage.getItem("waybill_printer");
  266. if (wb_cpcode != undefined && wb_cpcode != null) {
  267. mini.get("txtBillCom").setValue(wb_cpcode);
  268. //mini.get("txtBillModel").setValue(wb_tempid);
  269. //mini.get("txtBillModel").setText(wb_temptext);
  270. mini.get("txtBillPrinter").setText(wb_printer);
  271. mini.get("txtBillPrinter").setValue(wb_printer);
  272. //doSetPrintConfig(wb_printer);
  273. }
  274. //var printTem = localStorage.getItem("waybill_templates");
  275. //console.log("printem", printTem);
  276. //if (printTem != undefined && printTem != "") {
  277. // printTem = JSON.parse(printTem);
  278. //}
  279. //if (printTem == undefined || printTem == "") {
  280. // //获取点三打印模板
  281. // postAjax("get_stdtemplates", "", function (data) {
  282. // console.log("get_stdtemplates", data);
  283. // localStorage.setItem("waybill_templates", JSON.stringify(data));
  284. // printTem = data;
  285. // if (wb_cpname != undefined && wb_cpname != null && wb_cpname != "") {
  286. // var cname = wb_cpname.split("-")[0];
  287. // var tempList = printTem.response.data.content;
  288. // var needList = [];
  289. // if (tempList.length > 0) {
  290. // for (var tp of tempList) {
  291. // if (tp.name.indexOf(cname) != -1) {
  292. // needList.push(tp);
  293. // }
  294. // }
  295. // }
  296. // mini.get("txtBillModel").setData(needList);
  297. // }
  298. // });
  299. //}
  300. //else {
  301. // if (wb_cpname != undefined && wb_cpname != null && wb_cpname != "") {
  302. // var cname = wb_cpname.split("-")[0];
  303. // var tempList = printTem.response.data.content;
  304. // var needList = [];
  305. // if (tempList.length > 0) {
  306. // for (var tp of tempList) {
  307. // if (tp.name.indexOf(cname) != -1) {
  308. // needList.push(tp);
  309. // }
  310. // }
  311. // }
  312. // mini.get("txtBillModel").setData(needList);
  313. // }
  314. //}
  315. }
  316. else {
  317. mini.alert("请选中一行记录!");
  318. }
  319. }
  320. function onBillComChanged(e) {
  321. var rec = e.selected;
  322. console.log(rec);
  323. var id = rec.id;
  324. var name = rec.name;
  325. //mini.get("txtBillModel").setValue("");
  326. //var url = "../handler/sync.ashx?t=get_waybill_model&pid=" + id
  327. //mini.get("txtBillModel").setUrl(url);
  328. //var printTem = localStorage.getItem("waybill_templates");
  329. //console.log("printem", printTem);
  330. //if (printTem != undefined && printTem != "") {
  331. // printTem = JSON.parse(printTem);
  332. //}
  333. //console.log("printTemplate", printTem);
  334. //var cname = name.split("-")[0];
  335. //var tempList = printTem.response.data.content;
  336. //var needList = [];
  337. //if (tempList.length > 0) {
  338. // for (var tp of tempList) {
  339. // if (tp.name.indexOf(cname) != -1) {
  340. // needList.push(tp);
  341. // }
  342. // }
  343. //}
  344. //mini.get("txtBillModel").setData(needList);
  345. }
  346. function onBillPrinterChanged(e) {
  347. //doSetPrintConfig(mini.get("txtBillPrinter").getText());
  348. }
  349. function saveWaybillFn() {
  350. //var url = "http://d3.diansan.com/d3/open/print/express/index.html?waybillCodeList=YT5608493119031&templateId=1&requestId=1909374336748825642&sourceType=THIRD_ORDER";
  351. //openWaiWin("打印面单", url, 900, 700, null);
  352. //return;
  353. mini.get("id_saveWaybillBtn").disable();
  354. //mini.get("id_sysWaybillBtn").disable();
  355. IsPrintOrderList = [];
  356. billOrderList = [];
  357. billOrderList = grid.getSelecteds();
  358. orderCount = billOrderList.length;
  359. errorMsg = "";
  360. if (billOrderList.length <= 0) return;
  361. console.log(billOrderList);
  362. progressShow("电子面单打印中...进度:1");
  363. sendPrintData(0);
  364. }
  365. function sendPrintData(iTag) {
  366. if (iTag >= orderCount) {
  367. //console.log("return" + billOrderList.length);
  368. grid.reload();
  369. mini.get("id_saveWaybillBtn").enable();
  370. //mini.get("id_sysWaybillBtn").enable();
  371. return;
  372. }
  373. //console.log("start" + billOrderList.length);
  374. var item = billOrderList[iTag];
  375. if (item.SplitTag.length > 0) {
  376. isHaveOtherOrder(item.ctid, item, iTag, item.tid);
  377. }
  378. else {
  379. doRealGetPrintData(item, iTag);
  380. }
  381. }
  382. function doRealGetPrintData(item, iTag, isTogether = 0) {
  383. var ctid = item.ctid;
  384. var cpcode = mini.get("txtBillCom").getValue();
  385. var cpname = mini.get("txtBillCom").getText();
  386. //var tempId = mini.get("txtBillModel").getValue();
  387. if (cpcode == "") {
  388. alert("快递公司和模板不能为空!");
  389. return;
  390. }
  391. var parms = new Object();
  392. parms.ctid = ctid;
  393. parms.cpcode = cpcode;
  394. parms.cpname = cpname;
  395. parms.together = isTogether;
  396. $("#progressShowDiv").html("电子面单打印中...进度:" + (iTag + 1));
  397. postAjaxSync("set_erp_printwaybill", parms, function (data) {
  398. //console.log("back" + billOrderList.length);
  399. console.log("电子面单返回data", data);
  400. if (data.restype == 0) {
  401. errorMsg += item.ctid;
  402. errorMsg += data.data;
  403. errorMsg += ",";
  404. }
  405. else {
  406. if (cpcode == "SFFQ-LY") {
  407. doPrintSF(data, item.seller_memo);
  408. }
  409. else
  410. doPrintEn(data.data, item.seller_memo);
  411. }
  412. if (iTag < orderCount - 1) {
  413. //console.log("another" + billOrderList.length);
  414. sendPrintData(iTag + 1);
  415. }
  416. else {
  417. localStorage.setItem("waybill_cpcode", cpcode);
  418. localStorage.setItem("waybill_cpname", cpname);
  419. localStorage.setItem("waybill_printer", mini.get("txtBillPrinter").getText());
  420. grid.reload();
  421. mini.get("id_saveWaybillBtn").enable();
  422. //mini.get("id_sysWaybillBtn").enable();
  423. mini.get("waybill_win").hide();
  424. progressHide();
  425. if (errorMsg != "") {
  426. mini.alert(errorMsg);
  427. }
  428. //console.log("end" + billOrderList.length);
  429. }
  430. });
  431. }
  432. function isHaveOtherOrder(ctid, item, iTag, tid) {
  433. for (var ltid of IsPrintOrderList) {
  434. if (ltid == tid) {
  435. sendPrintData(iTag + 1);
  436. return;
  437. }
  438. }
  439. postAjax("get_erp_sameorders", "ctid=" + ctid, function (data) {
  440. if (data.data > 1) {
  441. mini.showMessageBox({
  442. title: "提示!",
  443. width: 500, //宽度
  444. height: 200, //高度
  445. iconCls: "mini-messagebox-question",
  446. buttons: ["继续打单", "合并打单", "取消打印"],
  447. message: "请注意:该订单有相同发货地址,共 " + data.data + " 单!",
  448. callback: function (action) {
  449. if (action == "继续打单") {
  450. doRealGetPrintData(item, iTag);
  451. }
  452. else if (action == "合并打单") {
  453. IsPrintOrderList.push(tid);
  454. doRealGetPrintData(item, iTag, 1);
  455. }
  456. else if (action == "取消打印") {
  457. mini.get("id_saveWaybillBtn").enable();
  458. return;
  459. }
  460. }
  461. });
  462. return;
  463. }
  464. else {
  465. doRealGetPrintData(item, iTag);
  466. }
  467. });
  468. }
  469. function cancelWaybillFn() {
  470. mini.get("waybill_win").hide();
  471. }
  472. //菜鸟物流云打印--------------------------------------------------------------------------------------------=======================================
  473. function CNwaybillFn() {
  474. var rec = grid.getSelected();
  475. if (rec != undefined && rec != "") {
  476. edit_id = rec.tid;
  477. mini.get("waybill_win_CN").show();
  478. $("#waybill_win_CN").find("input").val("");
  479. doGetPrinters();
  480. var wb_cpname = localStorage.getItem("waybill_cpname_CN");
  481. var wb_cpcode = localStorage.getItem("waybill_cpcode_CN");
  482. var wb_tempurl = localStorage.getItem("waybill_tempurl_CN");
  483. var wb_temptext = localStorage.getItem("waybill_temptext_CN");
  484. var wb_printer = localStorage.getItem("waybill_printer_CN");
  485. if (wb_cpcode != undefined && wb_cpcode != null) {
  486. mini.get("txtBillCom_CN").setValue(wb_cpcode);
  487. mini.get("txtBillModel_CN").setValue(wb_tempurl);
  488. mini.get("txtBillModel_CN").setText(wb_temptext);
  489. mini.get("txtBillPrinter_CN").setText(wb_printer);
  490. mini.get("txtBillPrinter_CN").setValue(wb_printer);
  491. //doSetPrintConfig(wb_printer);
  492. }
  493. }
  494. else {
  495. mini.alert("请选中一行记录!");
  496. }
  497. }
  498. function CNonBillComChanged(e) {
  499. var rec = e.selected;
  500. console.log(rec);
  501. var cpCode = rec.cpCode;
  502. var id = cpCode.split("_")[1];
  503. mini.get("txtBillModel_CN").setValue("");
  504. var url = "../handler/sync.ashx?t=get_waybill_model&pid=" + id
  505. mini.get("txtBillModel_CN").setUrl(url);
  506. }
  507. function CNonBillPrinterChanged(e) {
  508. // doSetPrintConfig(mini.get("txtBillPrinter_CN").getText());
  509. }
  510. function CNsaveWaybillFn() {
  511. billOrderList = [];
  512. billOrderList = grid.getSelecteds();
  513. orderCount = billOrderList.length;
  514. errorMsg = "";
  515. if (billOrderList.length <= 0) return;
  516. progressShow("电子面单打印中...进度:1");
  517. sendPrintDataEN(0);
  518. }
  519. function sendPrintDataEN(iTag) {
  520. if (iTag >= orderCount) {
  521. //console.log("return" + billOrderList.length);
  522. grid.reload();
  523. return;
  524. }
  525. var rec = billOrderList[iTag];
  526. var ctid = rec.ctid;
  527. var cpcode = mini.get("txtBillCom_CN").getValue();
  528. var cpname = mini.get("txtBillCom_CN").getText();
  529. var tempUrl = mini.get("txtBillModel_CN").getValue();
  530. if (cpcode == "" || tempUrl == "") {
  531. alert("快递公司和模板不能为空!");
  532. return;
  533. }
  534. var parms = new Object();
  535. parms.ctid = ctid;
  536. parms.cpcode = cpcode;
  537. parms.cpname = cpname;
  538. parms.tempurl = tempUrl;
  539. $("#progressShowDiv").html("电子面单打印中...进度:" + (iTag + 1));
  540. postAjaxSync("set_erp_printwaybill_cn", parms, function (data) {
  541. console.log("set_erp_printwaybill_cn", data);
  542. if (data.restype == 0) {
  543. errorMsg += rec.ctid;
  544. errorMsg += data.data;
  545. errorMsg += ",";
  546. }
  547. else
  548. doPrint(data.data, rec.seller_memo);
  549. if (iTag < orderCount - 1) {
  550. sendPrintDataEN(iTag + 1);
  551. }
  552. else {
  553. localStorage.setItem("waybill_cpcode_CN", cpcode);
  554. localStorage.setItem("waybill_cpname_CN", cpname);
  555. localStorage.setItem("waybill_tempurl_CN", tempUrl);
  556. localStorage.setItem("waybill_temptext_CN", mini.get("txtBillModel_CN").getText());
  557. localStorage.setItem("waybill_printer_CN", mini.get("txtBillPrinter_CN").getText());
  558. grid.reload();
  559. progressHide();
  560. mini.get("waybill_win_CN").hide();
  561. if (errorMsg.length > 0) {
  562. mini.alert(errorMsg);
  563. }
  564. }
  565. });
  566. }
  567. function CNcancelWaybillFn() {
  568. mini.get("waybill_win_CN").hide();
  569. }