qcode_bach.js 103 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987
  1. define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'LodopFuncs'], function ($, undefined, Backend, Table, Form, LodopFuncs) {
  2. var Controller = {
  3. index: function () {
  4. // 初始化表格参数配置
  5. Table.api.init();
  6. this.table.first();
  7. this.table.second();
  8. //大件码打印
  9. // function print_l(data,qrcode){
  10. // //打印二维码
  11. // var html = '<style type="text/css">' +
  12. // '.tg {border-collapse:collapse;border-spacing:0;font-weight:500;}' +
  13. // '.tg td{font-family:Arial, sans-serif;font-size:14px;padding:5px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}' +
  14. // '.tg .tg-s6z2{text-align:center;}</style>' +
  15. // '<div width="340px"><table class="tg" width="340px">' +
  16. // '<caption style="width: 300px;">'+data.company_name+'</caption>' +
  17. // '<tr><td style="width: 70px;">规格:</td><td colspan="5" style="word-break:break-all;border-color:black;">'+data.product_name+'</td>' +
  18. // '<tr><td>配盘数:</td><td colspan="2">'+data.sqrcd+'</td><td>辅单位:</td><td colspan="2">'+data.sec_unit+'</td></tr>' +
  19. // '<tr><td>数量:</td><td colspan="2">'+data.num+'</td><td>主单位:</td><td colspan="2">'+data.main_unit+'</td></tr>' +
  20. // '<tr><td>生产日期:</td><td colspan="5">'+data.date+'</td></tr>' +
  21. // '<tr><td>生产批号:</td><td colspan="5">'+data.batch+'</td></tr>' +
  22. // '<tr><td colspan="6" style="word-break:break-all; border-color:black; font-size: 13px;">'+data.qrcode+'</td></table>' +
  23. // '<div style="position:absolute;top: 260px;left: 30px"><img src="'+data.pCode+'" > </td></div>' +
  24. // '<div style="position:absolute;top: 365px;left: 300px;width: 50px;text-align: center;"><span style="font-weight: 500;word-break:normal;font-size: 16px">大件号'+data.l_flow+'</span></div>\n' +
  25. // '</div>';
  26. // var printPdf = (html,qrcode) => {
  27. // var LODOP=getLodop();
  28. // console.log("LODOP 对象:", LODOP);
  29. // LODOP.SET_LICENSES("","152A06E8F6CBD6AC1F213ABFCB0D8604","C94CEE276DB2187AE6B65D56B3FC2848","");
  30. // LODOP.PRINT_INIT("河南中烟大件二维码打码");
  31. // LODOP.SET_PRINT_STYLE("FontSize",16);
  32. // LODOP.SET_PRINT_STYLE("Bold",1);
  33. // LODOP.SET_PRINT_PAGESIZE(1, 1000, 1500, "CreateCustomPage");
  34. // LODOP.ADD_PRINT_HTM(5,8,516,590,html);
  35. // // LODOP.SET_PRINT_STYLEA(0,"QRCodeVersion",14);
  36. // // LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M");
  37. // // LODOP.ADD_PRINT_BARCODE(18,715,'27mm','27mm',"QRCode",qrcode);
  38. // // LODOP.PRINT() // 直接打印
  39. // // LODOP.PRINT_DESIGN() // 设计模式
  40. // if (qrcode){
  41. // LODOP.PREVIEW();//打印预览
  42. // }else{
  43. // LODOP.PRINT();// 直接打印
  44. // }
  45. // };
  46. // printPdf(html,qrcode);
  47. // }
  48. function print_l(data,qrcode){
  49. //打印二维码
  50. var html = '<style type="text/css">' +
  51. '.tg {border-collapse:collapse;border-spacing:0;font-weight:500;}' +
  52. '.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}' +
  53. '.tg .tg-s6z2{text-align:center;}</style>' +
  54. '<div width="340px"><table class="tg" width="340px">' +
  55. '<caption style="width: 300px;">'+data.company_name+'</caption>' +
  56. '<tr><td style="width: 70px;">规格:</td><td colspan="5" style="word-break:break-all;border-color:black;">'+data.product_name+'</td>' +
  57. '<tr><td>配盘数:</td><td colspan="2">'+data.sqrcd+'</td><td>辅单位:</td><td colspan="2">'+data.sec_unit+'</td></tr>' +
  58. '<tr><td>数量:</td><td colspan="2">'+data.num+'</td><td>主单位:</td><td colspan="2">'+data.main_unit+'</td></tr>' +
  59. '<tr><td>生产日期:</td><td colspan="5">'+data.date+'</td></tr>' +
  60. '<tr><td>生产批号:</td><td colspan="5">'+data.batch+'</td></tr>' +
  61. '<tr><td colspan="6" style="word-break:break-all; border-color:black; font-size: 13px;">'+data.qrcode+'</td></table>' +
  62. '<div style="position:absolute;top: 287px;left: 30px"><img src="'+data.pCode+'" > </td></div>' +
  63. '<div style="position:absolute;top: 365px;left: 300px;width: 50px;text-align: center;"><span style="font-weight: 500;word-break:normal;font-size: 16px">大件号'+data.l_flow+'</span></div>\n' +
  64. '</div>';
  65. var printPdf = (html,qrcode) => {
  66. var LODOP=getLodop();
  67. LODOP.SET_LICENSES("","152A06E8F6CBD6AC1F213ABFCB0D8604","C94CEE276DB2187AE6B65D56B3FC2848","");
  68. LODOP.PRINT_INIT("河南中烟大件二维码打码");
  69. LODOP.SET_PRINT_STYLE("FontSize",16);
  70. LODOP.SET_PRINT_STYLE("Bold",1);
  71. LODOP.SET_PRINT_PAGESIZE(1, 1000, 1500, "CreateCustomPage");
  72. // LODOP.ADD_PRINT_HTM(15,20,350,545,html);
  73. LODOP.ADD_PRINT_HTM(10,20,350,590,html);
  74. // LODOP.SET_PRINT_STYLEA(0,"QRCodeVersion",14);
  75. // LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M");
  76. // LODOP.ADD_PRINT_BARCODE(18,715,'27mm','27mm',"QRCode",qrcode);
  77. // LODOP.PRINT() // 直接打印
  78. // LODOP.PRINT_DESIGN() // 设计模式
  79. if (qrcode){
  80. LODOP.PREVIEW() //打印预览
  81. }else{
  82. LODOP.PRINT() // 直接打印
  83. }
  84. }
  85. printPdf(html,qrcode)
  86. }
  87. //小件码打印(10mmx2.5mm)
  88. function print1(data,qrcode){
  89. //打印二维码
  90. var html = "<style>.tg {font-weight:500;}.tg td{font-family:宋体,楷体;font-size:10px;overflow:hidden;word-break:break-all;border-color:black;}</style> " +
  91. "<table class=\"tg\"> <tr> <td>" + data.company_name + "</td> </tr> " +
  92. "<tr> <td >规格:" + data.product_name + "</td> </tr> " +
  93. "<tr> <td>生产批号:" + data.batch + "</td> </tr> " +
  94. "<tr> <td>日期:" + data.date + "</td> </tr></table>";
  95. var LODOP=getLodop();
  96. LODOP.PRINT_INIT("小件(10mmx2.5mm)");
  97. LODOP.SET_LICENSES("", "152A06E8F6CBD6AC1F213ABFCB0D8604", "C94CEE276DB2187AE6B65D56B3FC2848", "");
  98. LODOP.SET_PRINT_PAGESIZE(1, 1000, 250, "CreateCustomPage");
  99. LODOP.ADD_PRINT_HTM(15, 10, 270, 160,html);
  100. LODOP.ADD_PRINT_TEXT(70,200,100,20,data.l_flow);
  101. LODOP.SET_PRINT_STYLEA(0,"FontName","宋体");
  102. LODOP.SET_PRINT_STYLEA(0,"FontSize",10);
  103. LODOP.SET_PRINT_STYLEA(0,"FontColor","#000000");
  104. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  105. LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M");
  106. LODOP.ADD_PRINT_BARCODE(4,280,'25mm','25mm',"QRCode",data.qrcode);
  107. if (qrcode){
  108. LODOP.PREVIEW() //打印预览
  109. }else{
  110. LODOP.PRINT() // 直接打印
  111. }
  112. }
  113. //小件码打印(10mmx1.8mm)
  114. function print2(data,qrcode){
  115. //打印二维码
  116. var html = "<style>.tg {border-collapse:collapse;border-spacing:0;font-weight:500;}.tg td{font-family:宋体,楷体;font-size:9px;overflow:hidden;word-break:break-all;border-color:black;}</style>" +
  117. "<table class=\"tg\"> <tr> <td>" + data.company_name + "</td> </tr> " +
  118. "<tr> <td >规格:" + data.product_name + "</td> </tr> " +
  119. "<tr> <td>生产批号:" + data.batch + "</td> </tr> " +
  120. "<tr> <td>日期:" + data.date + "</td> </tr></table>";
  121. var LODOP=getLodop();
  122. LODOP.PRINT_INIT("小件(10mmx2.5mm)");
  123. LODOP.SET_LICENSES("", "152A06E8F6CBD6AC1F213ABFCB0D8604", "C94CEE276DB2187AE6B65D56B3FC2848", "");
  124. LODOP.SET_PRINT_PAGESIZE(1, 1000, 180, "CreateCustomPage");
  125. LODOP.ADD_PRINT_HTM(3, 5, 300, 160, html);
  126. LODOP.ADD_PRINT_TEXT(50,200,100,18,data.l_flow);
  127. LODOP.SET_PRINT_STYLEA(0,"FontName","宋体");
  128. LODOP.SET_PRINT_STYLEA(0,"FontSize",10);
  129. LODOP.SET_PRINT_STYLEA(0,"FontColor","#000000");
  130. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  131. LODOP.SET_PRINT_STYLE("QRCodeVersion",10);
  132. LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M");
  133. LODOP.ADD_PRINT_BARCODE(5,310,'25mm','25mm',"QRCode",data.qrcode);
  134. if (qrcode){
  135. LODOP.PREVIEW() //打印预览
  136. }else{
  137. LODOP.PRINT() // 直接打印
  138. }
  139. }
  140. //小件码打印(10mmx4mm)
  141. function print3(data,qrcode){
  142. //打印二维码
  143. var html = "<style>" +
  144. ".tg {border-collapse:collapse;border-spacing:0;font-weight:500;}" +
  145. ".tg td{font-family:宋体, 楷体;font-size:14px;overflow:hidden;word-break:break-all;border-color:black;}" +
  146. "</style>" +
  147. "<table class=\"tg\"> <tr> <td>" + data.company_name + "</td> </tr> " +
  148. "<tr> <td >规格:" + data.product_name + "</td> </tr> " +
  149. "<tr> <td>生产批号:" + data.batch + "</td> </tr> " +
  150. "<tr> <td>日期:" + data.date + "</td> </tr></table>";
  151. var LODOP=getLodop();
  152. LODOP.PRINT_INIT("小件(10mmx4mm)");
  153. LODOP.SET_LICENSES("", "152A06E8F6CBD6AC1F213ABFCB0D8604", "C94CEE276DB2187AE6B65D56B3FC2848", "");
  154. LODOP.SET_PRINT_PAGESIZE(1, 1000, 400, "CreateCustomPage");
  155. LODOP.ADD_PRINT_HTM(9, 5, 230, 160, html);
  156. LODOP.ADD_PRINT_TEXT(130,110,100,20,data.l_flow);
  157. LODOP.SET_PRINT_STYLEA(0,"FontName","宋体");
  158. LODOP.SET_PRINT_STYLEA(0,"FontSize",14);
  159. LODOP.SET_PRINT_STYLEA(0,"FontColor","#000000");
  160. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  161. LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M");
  162. LODOP.ADD_PRINT_BARCODE(9,240,'45mm','45mm',"QRCode",data.qrcode);
  163. if (qrcode){
  164. LODOP.PREVIEW() //打印预览
  165. }else{
  166. LODOP.PRINT() // 直接打印
  167. }
  168. }
  169. //小件码打印(10mmx5mm)
  170. function print4(data,qrcode){
  171. //打印二维码
  172. var html = "<style>" +
  173. ".tg {font-weight:500;}" +
  174. ".tg td{font-family:宋体, 楷体;font-size:14px;overflow:hidden;word-break:break-all;border-color:black;}" +
  175. "</style>" +
  176. "<table class=\"tg\"> <tr> <td>" + data.company_name + "</td> </tr> " +
  177. "<tr> <td >规格:" + data.product_name + "</td> </tr> " +
  178. "<tr> <td>生产批号:" + data.batch + "</td> </tr> " +
  179. "<tr> <td>日期:" + data.date + "</td> </tr></table>";
  180. var LODOP=getLodop();
  181. LODOP.PRINT_INIT("小件(10mmx5mm)");
  182. LODOP.SET_LICENSES("", "152A06E8F6CBD6AC1F213ABFCB0D8604", "C94CEE276DB2187AE6B65D56B3FC2848", "");
  183. LODOP.SET_PRINT_PAGESIZE(1, 1000, 500, "CreateCustomPage");
  184. LODOP.ADD_PRINT_HTM(20, 10, 230, 160,html);
  185. LODOP.ADD_PRINT_TEXT(160, 100, 100, 20,data.l_flow);
  186. LODOP.SET_PRINT_STYLEA(0,"FontName","宋体");
  187. LODOP.SET_PRINT_STYLEA(0,"FontSize",16);
  188. LODOP.SET_PRINT_STYLEA(0,"FontColor","#000000");
  189. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  190. LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M");
  191. LODOP.ADD_PRINT_BARCODE(25, 235, '45mm', '45mm',"QRCode",data.qrcode);
  192. if (qrcode){
  193. LODOP.PREVIEW() //打印预览
  194. }else{
  195. LODOP.PRINT() // 直接打印
  196. }
  197. }
  198. //小件码打印(10mmx6mm)
  199. function print5(data,qrcode){
  200. //打印二维码
  201. var html = "<style>.tg {font-weight:500;}.tg td{font-family:宋体, 楷体;font-size:14px;padding:2px 2px;overflow:hidden;word-break:break-all;border-color:black;}</style> " +
  202. "<table class=\"tg\"> <tr> <td>" + data.company_name + "</td> </tr> " +
  203. "<tr> <td >规格:" + data.product_name + "</td> </tr> " +
  204. "<tr> <td>生产批号:" + data.batch + "</td> </tr> " +
  205. "<tr> <td>日期:" + data.date + "</td> </tr></table>";
  206. var LODOP=getLodop();
  207. LODOP.PRINT_INIT("小件(10mmx6mm)");
  208. LODOP.SET_LICENSES("", "152A06E8F6CBD6AC1F213ABFCB0D8604", "C94CEE276DB2187AE6B65D56B3FC2848", "");
  209. LODOP.SET_PRINT_PAGESIZE(1, 1000, 600, "CreateCustomPage");
  210. LODOP.ADD_PRINT_HTM(25, 10, 180, 160, html);
  211. LODOP.ADD_PRINT_TEXT(180, 100, 100, 20,data.l_flow);
  212. LODOP.SET_PRINT_STYLEA(0,"FontName","宋体");
  213. LODOP.SET_PRINT_STYLEA(0,"FontSize",16);
  214. LODOP.SET_PRINT_STYLEA(0,"FontColor","#000000");
  215. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  216. LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M");
  217. LODOP.ADD_PRINT_BARCODE(25, 190, '55mm', '55mm',"QRCode",data.qrcode);
  218. if (qrcode){
  219. LODOP.PREVIEW() //打印预览
  220. }else{
  221. LODOP.PRINT() // 直接打印
  222. }
  223. }
  224. //跳转
  225. $('#exp').click(function (e) {
  226. $.get('qcode_bach/exp', {}, function (data) {
  227. if(data.code==1){
  228. top.window.$('[addtabs="'+data.data.id+'"]').trigger("click");
  229. }else{
  230. Toastr.error(data.msg)
  231. }
  232. }, 'json');
  233. })
  234. //自动打码(大件)
  235. $('#print_l').click(function (e) {
  236. var rows = $('#table2').bootstrapTable('getSelections');
  237. var ids = rows.map(function(item) {
  238. return item.id;
  239. });
  240. var html = '<div style="margin-top: 20px">' +
  241. '<label class="col-xs-5 col-sm-3" style="text-align: right;">标签类型:</label>' +
  242. '<select class="selectpicker" style="height: 30px;" name="row[type]" id="type">' +
  243. '<option value="v010" >v010 大件盒包装 (10cmx15cm)</option>' +
  244. '</select>' +
  245. '</div>' +
  246. '<div>' +
  247. '<label class="col-xs-5 col-sm-3" style="text-align: right;">打印数量:</label>' +
  248. '<input id="numn" style="width: 200px;margin-bottom: 2px;" name="row[numn]" type="text" value="4">' +
  249. '</div>' +
  250. '<div class="form-group layer-footer" style="margin-top: 15px;margin-bottom: 10px">' +
  251. '<div style="text-align: center">' +
  252. '<button type="button" id="btn" class="btn btn-primary btn-embossed" style="position: relative; z-index: 10;">确认</button>' +
  253. '<button type="button" id="reset" class="btn btn-default btn-embossed" style="margin-left: 10px; position: relative; z-index: 10; cursor: pointer;" onclick="layer.closeAll();">取消</button>' +
  254. '</div>' +
  255. '</div>';
  256. var layero_l = layer.open({
  257. type: 1,
  258. title: '自动打码(大件)',
  259. area: ['400px','260px'],
  260. content: html,
  261. cancel: function(index, layero) {
  262. // 点击右上角 X 关闭时也清理 LODOP
  263. if(typeof LODOP !== 'undefined' && LODOP) {
  264. try {
  265. LODOP.On_Return = null;
  266. } catch(e) {}
  267. }
  268. return true;
  269. },
  270. success: function(layero) {
  271. // 先检查 LODOP 是否可用
  272. var lodopAvailable = false;
  273. try {
  274. if(typeof getLodop === 'function') {
  275. var checkLODOP = getLodop();
  276. if(checkLODOP) {
  277. lodopAvailable = true;
  278. }
  279. }
  280. } catch(e) {
  281. lodopAvailable = false;
  282. }
  283. if(!lodopAvailable) {
  284. Toastr.warning('LODOP 打印控件未加载成功,请检查打印服务是否已启动');
  285. }
  286. // 在弹窗中绑定事件处理程序 - 确保取消按钮事件优先绑定
  287. console.log('开始绑定取消按钮事件,layero:', layero);
  288. var $resetBtn = $(layero).find('#reset');
  289. console.log('找到取消按钮:', $resetBtn.length, '个');
  290. $resetBtn.on('click', function(e) {
  291. console.log('取消按钮被点击!');
  292. e.preventDefault();
  293. e.stopPropagation();
  294. try {
  295. if(typeof LODOP !== 'undefined' && LODOP) {
  296. LODOP.On_Return = null;
  297. }
  298. } catch(e) {
  299. console.error('清理 LODOP 出错:', e);
  300. }
  301. console.log('准备关闭弹窗,layero_l:', layero_l);
  302. layer.close(layero_l);
  303. console.log('弹窗已关闭');
  304. });
  305. console.log('取消按钮事件绑定完成');
  306. $(layero).find('#btn').on('click', function(e) {
  307. e.preventDefault();
  308. var type = $('#type').val();
  309. var numn = $('#numn').val();
  310. if(numn=='' || numn==0){
  311. Toastr.error('请填写打印数量');
  312. return false;
  313. }
  314. // 检查 LODOP 是否可用
  315. if(typeof LODOP === 'undefined' || !LODOP) {
  316. Toastr.error('LODOP 打印控件未加载,请检查打印服务是否已启动');
  317. return false;
  318. }
  319. $.post('qcode_bach/print_l', {'ids':ids, 'type':type, 'numn':numn}, function (res) {
  320. if(res.code==1){
  321. var p = 0;
  322. var flage = 0;
  323. for(i in res.data.rows) {
  324. if (!flage) {
  325. //判断预览情况
  326. if (res.data.type == 'v010'){
  327. print_l(res.data.rows[i], 1)
  328. }
  329. LODOP.On_Return = function (TaskID, Value) {
  330. if (Value == 1) {
  331. p = 1;
  332. }
  333. }
  334. flage++;
  335. }else{
  336. break;
  337. }
  338. }
  339. var cint = setInterval(function () {
  340. if (p == 1) {
  341. clearInterval(cint);
  342. flage = 0;
  343. //修改打印数量
  344. $.post('qcode_bach/set_num', {'status':1,'num':res.data.numn, 'ids':res.data.ids}, function (response) {})
  345. for(i in res.data.rows) {
  346. for(j=0;j<res.data.numn;j++){
  347. if (!flage){
  348. flage++;
  349. }else{
  350. if (res.data.type == 'v010'){
  351. print_l(res.data.rows[i]);//打印
  352. }
  353. flage++;
  354. }
  355. }
  356. }
  357. }
  358. },2000)
  359. return false
  360. }else{
  361. Toastr.error(res.msg);
  362. }
  363. }).fail(function() {
  364. Toastr.error('网络请求失败,请检查网络连接');
  365. })
  366. });
  367. }
  368. });
  369. })
  370. //自动打码(小件)
  371. $('#print_s').click(function (e) {
  372. var rows = $('#table2').bootstrapTable('getSelections');
  373. var ids = rows.map(function(item) {
  374. return item.id;
  375. });
  376. var html = '<div style="margin-top: 20px">' +
  377. '<label class="col-xs-5 col-sm-3" style="text-align: right;">标签类型:</label>' +
  378. '<select class="selectpicker" style="height: 30px;" name="row[type]" id="type">' +
  379. '<option value="v001" datatype="">小件通用型卷烟纸(10cmX2.5cm)</option>' +
  380. '<option value="v002" datatype="">小件细支型卷烟纸(10cmX1.8cm)</option>' +
  381. '<option value="v003" datatype="">小件接装纸(10cmX4cm)</option>' +
  382. '<option value="v003" datatype="">小件内衬纸(10cmX4cm)</option>' +
  383. '<option value="v003" datatype="">小件盒包装膜(10cmX4cm)</option>' +
  384. '<option value="v003" datatype="">小件框架纸(10cmX4cm)</option>' +
  385. '<option value="v003" datatype="">小件拉线(10cmX4cm)</option>' +
  386. '<option value="v004" datatype="">小件条包装膜(10cmX5cm)</option>' +
  387. '<option value="v005" datatype="">小件盒包装纸(10cmX6cm)</option>' +
  388. '<option value="v005" datatype="">小件条包装纸(10cmX6cm)</option>' +
  389. '</select>' +
  390. '</div>' +
  391. '<div>' +
  392. '<label class="col-xs-5 col-sm-3" style="text-align: right;">打印数量:</label>' +
  393. '<input id="numn" style="width: 200px;margin-bottom: 2px;" name="row[numn]" type="text" value="1">' +
  394. '</div>' +
  395. '<div class="form-group layer-footer" style="margin-top: 15px;margin-bottom: 10px">' +
  396. '<div style="text-align: center">' +
  397. '<button type="button" id="btn" class="btn btn-primary btn-embossed">确认</button>' +
  398. '<button type="button" id="reset" class="btn btn-default btn-embossed" style="margin-left: 10px;" onclick="layer.closeAll();">取消</button>' +
  399. '</div>' +
  400. '</div>';
  401. var layero_s = layer.open({
  402. type: 1,
  403. title: '自动打码(小件)',
  404. area: ['400px','260px'],
  405. content: html,
  406. cancel: function(index, layero) {
  407. // 点击右上角 X 关闭时也清理 LODOP
  408. if(typeof LODOP !== 'undefined' && LODOP) {
  409. try {
  410. LODOP.On_Return = null;
  411. } catch(e) {}
  412. }
  413. return true;
  414. },
  415. success: function(layero) {
  416. // 先检查 LODOP 是否可用
  417. var lodopAvailable = false;
  418. try {
  419. if(typeof getLodop === 'function') {
  420. var checkLODOP = getLodop();
  421. if(checkLODOP) {
  422. lodopAvailable = true;
  423. }
  424. }
  425. } catch(e) {
  426. lodopAvailable = false;
  427. }
  428. if(!lodopAvailable) {
  429. Toastr.warning('LODOP 打印控件未加载成功,请检查打印服务是否已启动');
  430. }
  431. // 在弹窗中绑定事件处理程序 - 确保取消按钮事件优先绑定
  432. $(layero).find('#reset').on('click', function(e) {
  433. e.preventDefault();
  434. e.stopPropagation();
  435. try {
  436. if(typeof LODOP !== 'undefined' && LODOP) {
  437. LODOP.On_Return = null;
  438. }
  439. } catch(e) {}
  440. layer.close(layero_s);
  441. });
  442. $(layero).find('#btn').on('click', function(e) {
  443. e.preventDefault();
  444. var type = $('#type').val();
  445. var numn = $('#numn').val();
  446. if(numn=='' || numn==0){
  447. Toastr.error('请填写打印数量');
  448. return false;
  449. }
  450. // 检查 LODOP 是否可用
  451. if(typeof LODOP === 'undefined' || !LODOP) {
  452. Toastr.error('LODOP 打印控件未加载,请检查打印服务是否已启动');
  453. return false;
  454. }
  455. $.post('qcode_bach/print_s', {'ids':ids, 'type':type, 'numn':numn}, function (res) {
  456. if(res.code==1){
  457. var p = 0;
  458. var flage = 0;
  459. for(i in res.data.rows) {
  460. if (!flage) {
  461. //判断预览情况
  462. if (res.data.type == 'v001'){
  463. print1(res.data.rows[i], 1)
  464. }else if(res.data.type == 'v002'){
  465. print2(res.data.rows[i], 1)
  466. }else if(res.data.type == 'v003'){
  467. print3(res.data.rows[i], 1)
  468. }else if(res.data.type == 'v004'){
  469. print4(res.data.rows[i], 1)
  470. }else if(res.data.type == 'v005'){
  471. print5(res.data.rows[i], 1)
  472. }
  473. LODOP.On_Return = function (TaskID, Value) {
  474. if (Value == 1) {
  475. p = 1;
  476. }
  477. }
  478. flage++;
  479. }else{
  480. break;
  481. }
  482. }
  483. var cint = setInterval(function () {
  484. if (p == 1) {
  485. clearInterval(cint);
  486. flage = 0;
  487. //修改打印数量
  488. $.post('qcode_bach/set_num', {'status':2,'num':res.data.numn, 'ids':res.data.ids}, function (response) {})
  489. for(i in res.data.rows) {
  490. for(j=0;j<res.data.numn;j++){
  491. if (!flage){
  492. flage++;
  493. }else{
  494. if (res.data.type == 'v001'){
  495. print1(res.data.rows[i])
  496. }else if(res.data.type == 'v002'){
  497. print2(res.data.rows[i])
  498. }else if(res.data.type == 'v003'){
  499. print3(res.data.rows[i])
  500. }else if(res.data.type == 'v004'){
  501. print4(res.data.rows[i])
  502. }else if(res.data.type == 'v005'){
  503. print5(res.data.rows[i])
  504. }
  505. flage++;
  506. }
  507. }
  508. }
  509. }
  510. },2000)
  511. return false
  512. }else{
  513. Toastr.error(res.msg);
  514. }
  515. }).fail(function() {
  516. Toastr.error('网络请求失败,请检查网络连接');
  517. })
  518. });
  519. }
  520. });
  521. // Fast.api.open("qcode_bach/print_s?ids="+ids, "自动打码(小件)", {
  522. // shadeClose: true,
  523. // shade: [0.5,'#393D49'],
  524. // area: ['400px','400px'],
  525. // callback:function(value){
  526. // return false;
  527. // // 在这里可以接收弹出层中使用`Fast.api.close(data)`进行回传数据
  528. // }
  529. // });
  530. })
  531. //修改
  532. $('#edit').click(function (e) {
  533. var rows = $('#table2').bootstrapTable('getSelections');
  534. var ids = rows.map(function(item) {
  535. return item.id;
  536. });
  537. Fast.api.open("qcode_bach/edit?ids="+ids, "修改", {
  538. shadeClose: true,
  539. shade: [0.5,'#393D49'],
  540. area: ['400px','200px'],
  541. callback:function(value){
  542. return false;
  543. // 在这里可以接收弹出层中使用`Fast.api.close(data)`进行回传数据
  544. }
  545. });
  546. })
  547. },
  548. table: {
  549. first: function () {
  550. // 表格1
  551. var table1 = $("#table1");
  552. table1.bootstrapTable({
  553. url: 'qcode_bach/bach',
  554. extend: {
  555. index_url: 'qcode_bach/bach' + location.search,
  556. add_url: 'qcode_bach/add',
  557. edit_url: 'qcode_bach/edit',
  558. del_url: 'qcode_bach/del',
  559. table: 'qcode_bach',
  560. },
  561. onClickRow:function(row, $element, field)
  562. {
  563. $("#myTabContent2 .form-commonsearch input[name='bach_id']").val(row.id);
  564. $("#myTabContent2 .btn-refresh").trigger("click");
  565. },
  566. toolbar: '#toolbar1',
  567. pk: 'id',
  568. sortName: 'id',
  569. pageSize: 8,
  570. pageList: [8, 20, 50, 'All'],
  571. search: true,
  572. showExport: true,
  573. singleSelect: true,
  574. columns: [
  575. [
  576. {checkbox: true},
  577. {field: 'matter_name', title: __('Matter_name'), operate: 'LIKE', searchable: true},
  578. {field: 'l_flow', title: __('L_flow'), operate: false},
  579. {field: 'large_endnum', title: __('Large_endnum'), operate: false},
  580. {field: 'bach_num', title: __('Bach_num'), operate: 'LIKE'},
  581. {field: 'larger_num', title: __('Larger_num'), operate: false},
  582. {field: 'print_date', title: __('Print_date'), operate: 'LIKE'},
  583. {field: 'supplier_name', title: __('Company_name'), operate: 'LIKE', searchable: true},
  584. {field: 'matter_no', title: __('Matter_no'), operate: 'LIKE'},
  585. // {field: 'notes', title: __('Notes')},
  586. // {field: 'operate', title: __('Operate'), table: table1, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
  587. ]
  588. ]
  589. });
  590. // $(document).ready(function() {
  591. // // 自动触发搜索按钮的点击事件
  592. // $('.btn-default').click();
  593. // });
  594. $(document).ready(function() {
  595. // 自动触发搜索按钮的点击事件
  596. $('.btn-default').click();
  597. // 隐藏文字中包含"提交"的按钮
  598. $('button').filter(function() {
  599. return $(this).text().indexOf('提交') !== -1; // 判断按钮文字是否包含"提交"
  600. }).eq(0).hide();
  601. // 隐藏文字中包含"重置"的按钮
  602. $('button').filter(function() {
  603. return $(this).text().indexOf('重置') !== -1; // 判断按钮文字是否包含"重置"
  604. }).eq(0).hide();
  605. });
  606. // 为表格1绑定事件
  607. Table.api.bindevent(table1);
  608. },
  609. second: function () {
  610. // 表格2
  611. var table2 = $("#table2");
  612. table2.bootstrapTable({
  613. url: 'qcode_bach/large',
  614. extend: {
  615. index_url: '',
  616. add_url: '',
  617. edit_url: '',
  618. del_url: '',
  619. multi_url: '',
  620. table: '',
  621. },
  622. onClickRow:function(row, $element, field)
  623. {
  624. Fast.api.open("qcode_bach/small?large_id="+row.id+'&l_flow='+row.l_flow, "小件列表", {
  625. shadeClose: true,
  626. shade: [0.5,'#393D49'],
  627. area: ['80%','80%'],
  628. callback:function(value){
  629. return false;
  630. // 在这里可以接收弹出层中使用`Fast.api.close(data)`进行回传数据
  631. }
  632. });
  633. },
  634. sortOrder: 'asc',
  635. toolbar: '#toolbar2',
  636. pk: 'id',
  637. sortName: 'id',
  638. pagination: false,
  639. search: false,
  640. showExport: false,
  641. columns: [
  642. [
  643. {checkbox: true},
  644. {field: 'l_flow', title: __('当前托盘'), operate: false},
  645. {field: 'code', title: __('Code'), operate: 'LIKE'},
  646. {field: 'print_date', title: __('Print_date'), operate: false},
  647. {field: 'p_nums', title: __('P_nums'), operate: false},
  648. {field: 'small_num', title: __('Small_num'), operate: false},
  649. {field: 'l_weight', title: __('L_weight'), operate: false},
  650. {field: 'l_num', title: __('Large_num'), operate: false},
  651. {field: 'l_print', title: __('L_print'), operate: false, formatter:function (value, row, index) {
  652. if(value==1){
  653. return '<span style="color: green">已打印</span>';
  654. }else{
  655. return '<span>未打印</span>';
  656. }
  657. }},
  658. {field: 'l_status', title: __('L_status'), operate: false, formatter:function (value, row, index) {
  659. if(value==1){
  660. return '<span style="color: green">已导出</span>';
  661. }else{
  662. return '<span style="color: red">未导出</span>';
  663. }
  664. }},
  665. {field: 'bach_id', title: __('bach_id'), visible:false, operate: 'LIKE'},
  666. // {field: 'notes', title: __('Notes')},
  667. // {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
  668. ]
  669. ],
  670. onLoadSuccess:function(data){
  671. if (data.rows[0]!=undefined){
  672. if(data.rows[0].l_num == null || data.rows[0].l_num == 0){
  673. $("#table2").bootstrapTable("hideColumn", "l_num"); // 设置隐藏列
  674. $("#table2").bootstrapTable("showColumn", "l_weight"); // 设置显示列
  675. }else{
  676. $("#table2").bootstrapTable("hideColumn", "l_weight"); // 设置隐藏列
  677. $("#table2").bootstrapTable("showColumn", "l_num"); // 设置显示列
  678. }
  679. }
  680. },
  681. });
  682. // 为表格2绑定事件
  683. Table.api.bindevent(table2);
  684. }
  685. },
  686. small: function () {
  687. // 初始化表格参数配置
  688. Table.api.init();
  689. //小件码打印(10mmx2.5mm)
  690. function print1(data,qrcode){
  691. //打印二维码
  692. var html = "<style>.tg {font-weight:500;}.tg td{font-family:宋体,楷体;font-size:10px;overflow:hidden;word-break:break-all;border-color:black;}</style> " +
  693. "<table class=\"tg\"> <tr> <td>" + data.company_name + "</td> </tr> " +
  694. "<tr> <td >规格:" + data.product_name + "</td> </tr> " +
  695. "<tr> <td>生产批号:" + data.batch + "</td> </tr> " +
  696. "<tr> <td>日期:" + data.date + "</td> </tr></table>";
  697. var LODOP=getLodop();
  698. LODOP.PRINT_INIT("小件(10mmx2.5mm)");
  699. LODOP.SET_LICENSES("", "152A06E8F6CBD6AC1F213ABFCB0D8604", "C94CEE276DB2187AE6B65D56B3FC2848", "");
  700. LODOP.SET_PRINT_PAGESIZE(1, 1000, 250, "CreateCustomPage");
  701. LODOP.ADD_PRINT_HTM(15, 10, 270, 160,html);
  702. LODOP.ADD_PRINT_TEXT(70,200,100,20,data.l_flow);
  703. LODOP.SET_PRINT_STYLEA(0,"FontName","宋体");
  704. LODOP.SET_PRINT_STYLEA(0,"FontSize",10);
  705. LODOP.SET_PRINT_STYLEA(0,"FontColor","#000000");
  706. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  707. LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M");
  708. LODOP.ADD_PRINT_BARCODE(4,280,'25mm','25mm',"QRCode",data.qrcode);
  709. if (qrcode){
  710. LODOP.PREVIEW() //打印预览
  711. }else{
  712. LODOP.PRINT() // 直接打印
  713. }
  714. }
  715. //小件码打印(10mmx1.8mm)
  716. function print2(data,qrcode){
  717. //打印二维码
  718. var html = "<style>.tg {border-collapse:collapse;border-spacing:0;font-weight:500;}.tg td{font-family:宋体,楷体;font-size:9px;overflow:hidden;word-break:break-all;border-color:black;}</style>" +
  719. "<table class=\"tg\"> <tr> <td>" + data.company_name + "</td> </tr> " +
  720. "<tr> <td >规格:" + data.product_name + "</td> </tr> " +
  721. "<tr> <td>生产批号:" + data.batch + "</td> </tr> " +
  722. "<tr> <td>日期:" + data.date + "</td> </tr></table>";
  723. var LODOP=getLodop();
  724. LODOP.PRINT_INIT("小件(10mmx2.5mm)");
  725. LODOP.SET_LICENSES("", "152A06E8F6CBD6AC1F213ABFCB0D8604", "C94CEE276DB2187AE6B65D56B3FC2848", "");
  726. LODOP.SET_PRINT_PAGESIZE(1, 1000, 180, "CreateCustomPage");
  727. LODOP.ADD_PRINT_HTM(3, 5, 300, 160, html);
  728. LODOP.ADD_PRINT_TEXT(50,200,100,18,data.l_flow);
  729. LODOP.SET_PRINT_STYLEA(0,"FontName","宋体");
  730. LODOP.SET_PRINT_STYLEA(0,"FontSize",10);
  731. LODOP.SET_PRINT_STYLEA(0,"FontColor","#000000");
  732. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  733. LODOP.SET_PRINT_STYLE("QRCodeVersion",10);
  734. LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M");
  735. LODOP.ADD_PRINT_BARCODE(5,310,'25mm','25mm',"QRCode",data.qrcode);
  736. if (qrcode){
  737. LODOP.PREVIEW() //打印预览
  738. }else{
  739. LODOP.PRINT() // 直接打印
  740. }
  741. }
  742. //小件码打印(10mmx4mm)
  743. function print3(data,qrcode){
  744. //打印二维码
  745. var html = "<style>" +
  746. ".tg {border-collapse:collapse;border-spacing:0;font-weight:500;}" +
  747. ".tg td{font-family:宋体, 楷体;font-size:14px;overflow:hidden;word-break:break-all;border-color:black;}" +
  748. "</style>" +
  749. "<table class=\"tg\"> <tr> <td>" + data.company_name + "</td> </tr> " +
  750. "<tr> <td >规格:" + data.product_name + "</td> </tr> " +
  751. "<tr> <td>生产批号:" + data.batch + "</td> </tr> " +
  752. "<tr> <td>日期:" + data.date + "</td> </tr></table>";
  753. var LODOP=getLodop();
  754. LODOP.PRINT_INIT("小件(10mmx4mm)");
  755. LODOP.SET_LICENSES("", "152A06E8F6CBD6AC1F213ABFCB0D8604", "C94CEE276DB2187AE6B65D56B3FC2848", "");
  756. LODOP.SET_PRINT_PAGESIZE(1, 1000, 400, "CreateCustomPage");
  757. LODOP.ADD_PRINT_HTM(9, 5, 230, 160, html);
  758. LODOP.ADD_PRINT_TEXT(130,110,100,20,data.l_flow);
  759. LODOP.SET_PRINT_STYLEA(0,"FontName","宋体");
  760. LODOP.SET_PRINT_STYLEA(0,"FontSize",14);
  761. LODOP.SET_PRINT_STYLEA(0,"FontColor","#000000");
  762. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  763. LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M");
  764. LODOP.ADD_PRINT_BARCODE(9,240,'45mm','45mm',"QRCode",data.qrcode);
  765. if (qrcode){
  766. LODOP.PREVIEW() //打印预览
  767. }else{
  768. LODOP.PRINT() // 直接打印
  769. }
  770. }
  771. //小件码打印(10mmx5mm)
  772. function print4(data,qrcode){
  773. //打印二维码
  774. var html = "<style>" +
  775. ".tg {font-weight:500;}" +
  776. ".tg td{font-family:宋体, 楷体;font-size:14px;overflow:hidden;word-break:break-all;border-color:black;}" +
  777. "</style>" +
  778. "<table class=\"tg\"> <tr> <td>" + data.company_name + "</td> </tr> " +
  779. "<tr> <td >规格:" + data.product_name + "</td> </tr> " +
  780. "<tr> <td>生产批号:" + data.batch + "</td> </tr> " +
  781. "<tr> <td>日期:" + data.date + "</td> </tr></table>";
  782. var LODOP=getLodop();
  783. LODOP.PRINT_INIT("小件(10mmx5mm)");
  784. LODOP.SET_LICENSES("", "152A06E8F6CBD6AC1F213ABFCB0D8604", "C94CEE276DB2187AE6B65D56B3FC2848", "");
  785. LODOP.SET_PRINT_PAGESIZE(1, 1000, 500, "CreateCustomPage");
  786. LODOP.ADD_PRINT_HTM(20, 10, 230, 160,html);
  787. LODOP.ADD_PRINT_TEXT(160, 100, 100, 20,data.l_flow);
  788. LODOP.SET_PRINT_STYLEA(0,"FontName","宋体");
  789. LODOP.SET_PRINT_STYLEA(0,"FontSize",16);
  790. LODOP.SET_PRINT_STYLEA(0,"FontColor","#000000");
  791. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  792. LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M");
  793. LODOP.ADD_PRINT_BARCODE(25, 235, '45mm', '45mm',"QRCode",data.qrcode);
  794. if (qrcode){
  795. LODOP.PREVIEW() //打印预览
  796. }else{
  797. LODOP.PRINT() // 直接打印
  798. }
  799. }
  800. //小件码打印(10mmx6mm)
  801. function print5(data,qrcode){
  802. //打印二维码
  803. var html = "<style>.tg {font-weight:500;}.tg td{font-family:宋体, 楷体;font-size:14px;padding:2px 2px;overflow:hidden;word-break:break-all;border-color:black;}</style> " +
  804. "<table class=\"tg\"> <tr> <td>" + data.company_name + "</td> </tr> " +
  805. "<tr> <td >规格:" + data.product_name + "</td> </tr> " +
  806. "<tr> <td>生产批号:" + data.batch + "</td> </tr> " +
  807. "<tr> <td>日期:" + data.date + "</td> </tr></table>";
  808. var LODOP=getLodop();
  809. LODOP.PRINT_INIT("小件(10mmx6mm)");
  810. LODOP.SET_LICENSES("", "152A06E8F6CBD6AC1F213ABFCB0D8604", "C94CEE276DB2187AE6B65D56B3FC2848", "");
  811. LODOP.SET_PRINT_PAGESIZE(1, 1000, 600, "CreateCustomPage");
  812. LODOP.ADD_PRINT_HTM(25, 10, 180, 160, html);
  813. LODOP.ADD_PRINT_TEXT(180, 100, 100, 20,data.l_flow);
  814. LODOP.SET_PRINT_STYLEA(0,"FontName","宋体");
  815. LODOP.SET_PRINT_STYLEA(0,"FontSize",16);
  816. LODOP.SET_PRINT_STYLEA(0,"FontColor","#000000");
  817. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  818. LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M");
  819. LODOP.ADD_PRINT_BARCODE(25, 190, '55mm', '55mm',"QRCode",data.qrcode);
  820. if (qrcode){
  821. LODOP.PREVIEW() //打印预览
  822. }else{
  823. LODOP.PRINT() // 直接打印
  824. }
  825. }
  826. var table = $("#table");
  827. table.bootstrapTable({
  828. url: 'qcode_bach/small' + location.search,
  829. sortOrder: 'asc',
  830. toolbar: '#toolbar',
  831. pk: 'id',
  832. sortName: 'id',
  833. search: false,
  834. showExport: false,
  835. singleSelect: true,
  836. columns: [
  837. [
  838. // {checkbox: true},
  839. {field: 'l_flows', title: __('序号'), width:80, operate: false},
  840. {field: 'code', title: __('Code'), cellStyle: function () {return {css: {"max-width": "200px","overflow":"hidden",}}}, operate: 'LIKE'},
  841. {field: 'l_flow', title: __('Flow'), width:80, operate: false},
  842. {field: 'p_nums', title: __('P_nums'), width:80, operate: false},
  843. {field: 'status', title: __('Status'), width:80, formatter:function (value, row, index) {
  844. if(value==1){
  845. return '<span style="color: red">已删除</span>';
  846. }else{
  847. return '<span style="color: green">正常</span>';
  848. }
  849. }, operate: false},
  850. {field: 'buttons', width: "120px", title: __('是否导出'), table: table, operate: false, events: Table.api.events.operate,
  851. buttons: [
  852. {
  853. name: 'click',
  854. text: __('切换'),
  855. title: __('切换'),
  856. classname: 'btn btn-xs btn-success btn-click',
  857. icon: 'fa',
  858. click: function (data,row,index) {
  859. $.get('qcode_bach/small_status',{'ids':row.id},function (res){
  860. if (res.code==1){
  861. //修改成功
  862. //1. 提示
  863. Toastr.success(res.msg)
  864. //2. 刷新页面
  865. table.bootstrapTable('refresh');
  866. }
  867. })
  868. }
  869. }
  870. ],
  871. formatter: Table.api.formatter.buttons
  872. },
  873. // {field: 'notes', title: __('Notes')},
  874. {field: 'operate', title: __('Operate'), table: table, operate: false, events: Table.api.events.operate, formatter: Table.api.formatter.operate,
  875. buttons: [
  876. {
  877. name: 'click',
  878. text: __('打印'),
  879. title: __('打印'),
  880. classname: 'btn btn-xs btn-success btn-click',
  881. icon: 'fa fa-print',
  882. click: function (data,row,index) {
  883. //自动打码(小件)
  884. var ids = row.id;
  885. var html = '<div style="margin-top: 20px">' +
  886. '<label class="col-xs-5 col-sm-3" style="text-align: right;">标签类型:</label>' +
  887. '<select class="selectpicker" style="height: 30px;" name="row[type]" id="type">' +
  888. '<option value="v001" datatype="">小件通用型卷烟纸(10cmX2.5cm)</option>' +
  889. '<option value="v002" datatype="">小件细支型卷烟纸(10cmX1.8cm)</option>' +
  890. '<option value="v003" datatype="">小件接装纸(10cmX4cm)</option>' +
  891. '<option value="v003" datatype="">小件内衬纸(10cmX4cm)</option>' +
  892. '<option value="v003" datatype="">小件盒包装膜(10cmX4cm)</option>' +
  893. '<option value="v003" datatype="">小件框架纸(10cmX4cm)</option>' +
  894. '<option value="v003" datatype="">小件拉线(10cmX4cm)</option>' +
  895. '<option value="v004" datatype="">小件条包装膜(10cmX5cm)</option>' +
  896. '<option value="v005" datatype="">小件盒包装纸(10cmX6cm)</option>' +
  897. '<option value="v005" datatype="">小件条包装纸(10cmX6cm)</option>' +
  898. '</select>' +
  899. '</div>' +
  900. '<div>' +
  901. '<label class="col-xs-5 col-sm-3" style="text-align: right;">打印数量:</label>' +
  902. '<input id="numn" style="width: 200px;margin-bottom: 2px;" name="row[numn]" type="text" value="1">' +
  903. '</div>' +
  904. '<div class="form-group" style="margin-top: 15px;margin-bottom: 10px">' +
  905. '<div style="text-align: center">' +
  906. '<button type="button" id="btn" class="btn btn-primary btn-embossed">确认</button>' +
  907. '<button type="button" id="reset" class="btn btn-default btn-embossed" style="margin-left: 10px;" onclick="layer.closeAll();">取消</button>' +
  908. '</div>' +
  909. '</div>';
  910. var layero_ls = layer.open({
  911. type: 1,
  912. title: '打码(小件)',
  913. area: ['400px','200px'],
  914. content: html,
  915. cancel: function(index, layero) {
  916. // 点击右上角 X 关闭时也清理 LODOP
  917. if(typeof LODOP !== 'undefined' && LODOP) {
  918. try {
  919. LODOP.On_Return = null;
  920. } catch(e) {}
  921. }
  922. return true;
  923. },
  924. success: function(layero) {
  925. // 先检查 LODOP 是否可用
  926. var lodopAvailable = false;
  927. try {
  928. if(typeof getLodop === 'function') {
  929. var checkLODOP = getLodop();
  930. if(checkLODOP) {
  931. lodopAvailable = true;
  932. }
  933. }
  934. } catch(e) {
  935. lodopAvailable = false;
  936. }
  937. if(!lodopAvailable) {
  938. Toastr.warning('LODOP 打印控件未加载成功,请检查打印服务是否已启动');
  939. }
  940. // 在弹窗中绑定事件处理程序 - 确保取消按钮事件优先绑定
  941. $(layero).find('#reset').on('click', function(e) {
  942. e.preventDefault();
  943. e.stopPropagation();
  944. try {
  945. if(typeof LODOP !== 'undefined' && LODOP) {
  946. LODOP.On_Return = null;
  947. }
  948. } catch(e) {}
  949. layer.close(layero_ls);
  950. });
  951. $(layero).find('#btn').on('click', function(e) {
  952. e.preventDefault();
  953. var type = $('#type').val();
  954. var numn = $('#numn').val();
  955. if(numn=='' || numn==0){
  956. Toastr.error('请填写打印数量');
  957. return false;
  958. }
  959. // 检查 LODOP 是否可用
  960. if(typeof LODOP === 'undefined' || !LODOP) {
  961. Toastr.error('LODOP 打印控件未加载,请检查打印服务是否已启动');
  962. return false;
  963. }
  964. $.post('qcode_bach/print_ls', {'ids':ids, 'type':type, 'numn':numn}, function (res) {
  965. if(res.code==1){
  966. var p = 0;
  967. var flage = 0;
  968. for(i in res.data.rows) {
  969. if (!flage) {
  970. //判断预览情况
  971. if (res.data.type == 'v001'){
  972. print1(res.data.rows[i], 1)
  973. }else if(res.data.type == 'v002'){
  974. print2(res.data.rows[i], 1)
  975. }else if(res.data.type == 'v003'){
  976. print3(res.data.rows[i], 1)
  977. }else if(res.data.type == 'v004'){
  978. print4(res.data.rows[i], 1)
  979. }else if(res.data.type == 'v005'){
  980. print5(res.data.rows[i], 1)
  981. }
  982. LODOP.On_Return = function (TaskID, Value) {
  983. if (Value == 1) {
  984. p = 1;
  985. }
  986. }
  987. flage++;
  988. }else{
  989. break;
  990. }
  991. }
  992. var cint = setInterval(function () {
  993. if (p == 1) {
  994. clearInterval(cint);
  995. flage = 0;
  996. //修改打印数量
  997. $.post('qcode_bach/set_num', {'status':3,'num':res.data.numn, 'ids':res.data.ids}, function (response) {})
  998. for(i in res.data.rows) {
  999. for(j=0;j<res.data.numn;j++){
  1000. if (!flage){
  1001. flage++;
  1002. }else{
  1003. if (res.data.type == 'v001'){
  1004. print1(res.data.rows[i])
  1005. }else if(res.data.type == 'v002'){
  1006. print2(res.data.rows[i])
  1007. }else if(res.data.type == 'v003'){
  1008. print3(res.data.rows[i])
  1009. }else if(res.data.type == 'v004'){
  1010. print4(res.data.rows[i])
  1011. }else if(res.data.type == 'v005'){
  1012. print5(res.data.rows[i])
  1013. }
  1014. flage++;
  1015. }
  1016. }
  1017. }
  1018. }
  1019. },2000)
  1020. return false
  1021. }else{
  1022. Toastr.error(res.msg);
  1023. }
  1024. }).fail(function() {
  1025. Toastr.error('网络请求失败,请检查网络连接');
  1026. })
  1027. });
  1028. }
  1029. });
  1030. // Fast.api.open("qcode_bach/print_ls?ids="+row.id, "打码(小件)", {
  1031. // shadeClose: true,
  1032. // shade: [0.5,'#393D49'],
  1033. // area: ['400px','400px'],
  1034. // callback:function(value){
  1035. // return false;
  1036. // // 在这里可以接收弹出层中使用`Fast.api.close(data)`进行回传数据
  1037. // }
  1038. // });
  1039. }
  1040. }
  1041. ],formatter: Table.api.formatter.buttons}
  1042. ]
  1043. ]
  1044. });
  1045. // 导出按钮:范围内保持正常,范围外设为已删除
  1046. $('#btn_yes').on('click', function () {
  1047. const start = parseInt($('#small_start').val());
  1048. const end = parseInt($('#small_end').val());
  1049. batchUpdateLabels(start, end, 'export');
  1050. });
  1051. // 不导出按钮:范围内设为已删除,范围外保持正常
  1052. $('#btn_no').on('click', function () {
  1053. const start = parseInt($('#small_start').val());
  1054. const end = parseInt($('#small_end').val());
  1055. batchUpdateLabels(start, end, 'noexport');
  1056. });
  1057. // 批量状态更新函数
  1058. function batchUpdateLabels(start, end, mode) {
  1059. if (isNaN(start) || isNaN(end)) {
  1060. alert("请输入正确的序号范围");
  1061. return;
  1062. }
  1063. const table = $('#table');
  1064. const rows = table.bootstrapTable('getData');
  1065. const idsToToggle = [];
  1066. rows.forEach(function (row) {
  1067. const seq = row.l_flows; // 确保这是序号列
  1068. const inRange = (seq >= start && seq <= end);
  1069. if (mode === 'export') {
  1070. // 如果在范围内且当前状态是已删除,加入待更新列表
  1071. if (inRange && row.status === 1) { // 假设状态1是已删除
  1072. idsToToggle.push(row.id);
  1073. }
  1074. } else if (mode === 'noexport') {
  1075. // 如果在范围内且当前状态是正常,加入待更新列表
  1076. if (inRange && row.status === 0) { // 假设状态0是正常
  1077. idsToToggle.push(row.id);
  1078. }
  1079. }
  1080. });
  1081. // 批量发送请求
  1082. if (idsToToggle.length > 0) {
  1083. $.get('qcode_bach/small_status', { ids: idsToToggle.join(',') }, function (res) {
  1084. if (res.code == 1) {
  1085. Toastr.success(res.msg);
  1086. table.bootstrapTable('refresh');
  1087. }
  1088. });
  1089. } else {
  1090. Toastr.info("没有需要更新的行");
  1091. }
  1092. }
  1093. $(document).ready(function() {
  1094. // 自动触发搜索按钮的点击事件
  1095. $('.btn-default').click();
  1096. // 隐藏第一个文字中包含"重置"的按钮
  1097. // $('button').filter(function() {
  1098. // return $(this).text().indexOf('提交') !== -1;
  1099. // }).eq(0).hide(); // 只隐藏第一个匹配的按钮
  1100. // // 隐藏第一个文字中包含"重置"的按钮
  1101. // $('button').filter(function() {
  1102. // return $(this).text().indexOf('重置') !== -1;
  1103. // }).eq(0).hide(); // 只隐藏第一个匹配的按钮
  1104. });
  1105. // 为表格1绑定事件
  1106. Table.api.bindevent(table);
  1107. Controller.api.bindevent();
  1108. },
  1109. add: function () {
  1110. Controller.api.bindevent();
  1111. },
  1112. edit: function () {
  1113. $('.content').css('min-height','100px');
  1114. $("#type").change(function (e){
  1115. if(this.value==0){
  1116. $("#msg").text('')
  1117. $("#numn").prop('disabled',true)
  1118. }
  1119. if(this.value==1){
  1120. $("#msg").text('重量必填(不能大于4位数)')
  1121. $("#numn").prop('disabled',false)
  1122. }
  1123. if(this.value==2){
  1124. $("#msg").text('总张数必填不能有小数点,且不大于10位')
  1125. $("#numn").prop('disabled',false)
  1126. }
  1127. })
  1128. $("#btn").click(function (e) {
  1129. e.preventDefault();
  1130. var data = $("form").serialize();
  1131. $.post('qcode_bach/edit', {data}, function (res) {
  1132. if(res.code==1){
  1133. Toastr.success(res.msg)
  1134. Fast.api.close(1);
  1135. parent.$("#toolbar2 .btn-refresh").trigger("click"); // 触发窗体的父页面刷新
  1136. }else{
  1137. Toastr.error(res.msg);
  1138. }
  1139. })
  1140. })
  1141. Controller.api.bindevent();
  1142. },
  1143. print_l: function () {
  1144. //大件码打印
  1145. function print(data,qrcode){
  1146. //打印二维码
  1147. var html = '<style type="text/css">' +
  1148. '.tg {border-collapse:collapse;border-spacing:0;font-weight:500;}' +
  1149. '.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}' +
  1150. '.tg .tg-s6z2{text-align:center;}</style>' +
  1151. '<div width="340px"><table class="tg" width="340px">' +
  1152. '<caption style="width: 300px;">'+data.company_name+'</caption>' +
  1153. '<tr><td style="width: 70px;">规格:</td><td colspan="5" style="word-break:break-all;border-color:black;">'+data.product_name+'</td>' +
  1154. '<tr><td>配盘数:</td><td colspan="2">'+data.sqrcd+'</td><td>辅单位:</td><td colspan="2">'+data.sec_unit+'</td></tr>' +
  1155. '<tr><td>数量:</td><td colspan="2">'+data.num+'</td><td>主单位:</td><td colspan="2">'+data.main_unit+'</td></tr>' +
  1156. '<tr><td>生产日期:</td><td colspan="5">'+data.date+'</td></tr>' +
  1157. '<tr><td>生产批号:</td><td colspan="5">'+data.batch+'</td></tr>' +
  1158. '<tr><td colspan="6" style="word-break:break-all; border-color:black; font-size: 13px;">'+data.qrcode+'</td></table>' +
  1159. '<div style="position:absolute;top: 300px;left: 47px"><img src="'+data.pCode+'" > </td></div>' +
  1160. '<div style="position:absolute;top: 400px;left: 300px;width: 50px;text-align: center;"><span style="font-weight: 500;word-break:normal;font-size: 16px">大件号'+data.l_flow+'</span></div>\n' +
  1161. '</div>';
  1162. var printPdf = (html,qrcode) => {
  1163. var LODOP=getLodop();
  1164. LODOP.SET_LICENSES("","152A06E8F6CBD6AC1F213ABFCB0D8604","C94CEE276DB2187AE6B65D56B3FC2848","");
  1165. LODOP.PRINT_INIT("河南中烟大件二维码打码");
  1166. LODOP.SET_PRINT_STYLE("FontSize",16);
  1167. LODOP.SET_PRINT_STYLE("Bold",1);
  1168. LODOP.SET_PRINT_PAGESIZE(1, 100, 150, "CreateCustomPage");
  1169. LODOP.ADD_PRINT_HTM(15,20,350,545,html);
  1170. // LODOP.SET_PRINT_STYLEA(0,"QRCodeVersion",14);
  1171. // LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M");
  1172. // LODOP.ADD_PRINT_BARCODE(18,715,'27mm','27mm',"QRCode",qrcode);
  1173. // LODOP.PRINT() // 直接打印
  1174. // LODOP.PRINT_DESIGN() // 设计模式
  1175. if (qrcode){
  1176. LODOP.PREVIEW() //打印预览
  1177. }else{
  1178. LODOP.PRINT() // 直接打印
  1179. }
  1180. }
  1181. printPdf(html,qrcode)
  1182. }
  1183. $('.content').css('min-height','100px');
  1184. $("#btn").click(function (e) {
  1185. e.preventDefault();
  1186. var data = $("form").serialize();
  1187. $.post('qcode_bach/print_l', {data}, function (res) {
  1188. if(res.code==1){
  1189. var p = 0;
  1190. var flage = 0;
  1191. for(i in res.data.rows) {
  1192. if (!flage) {
  1193. //判断预览情况
  1194. if (res.data.type == 'v010'){
  1195. print(res.data.rows[i], 1)
  1196. }
  1197. LODOP.On_Return = function (TaskID, Value) {
  1198. if (Value == 1) {
  1199. p = 1;
  1200. }
  1201. }
  1202. flage++;
  1203. }else{
  1204. break;
  1205. }
  1206. }
  1207. var cint = setInterval(function () {
  1208. if (p == 1) {
  1209. clearInterval(cint);
  1210. flage = 0;
  1211. //修改打印数量
  1212. $.post('qcode_bach/set_num', {'status':1,'num':res.data.numn, 'ids':res.data.ids}, function (response) {})
  1213. for(i in res.data.rows) {
  1214. for(j=0;j<res.data.numn;j++){
  1215. if (!flage){
  1216. flage++;
  1217. }else{
  1218. if (res.data.type == 'v010'){
  1219. print(res.data.rows[i]);//打印
  1220. }
  1221. flage++;
  1222. }
  1223. }
  1224. }
  1225. }
  1226. },2000)
  1227. return false
  1228. }else{
  1229. Toastr.error(res.msg);
  1230. }
  1231. })
  1232. })
  1233. Controller.api.bindevent();
  1234. },
  1235. print_s: function () {
  1236. //小件码打印(10mmx2.5mm)
  1237. function print1(data,qrcode){
  1238. //打印二维码
  1239. var html = "<style>.tg {font-weight:500;}.tg td{font-family:宋体,楷体;font-size:10px;overflow:hidden;word-break:break-all;border-color:black;}</style> " +
  1240. "<table class=\"tg\"> <tr> <td>" + data.company_name + "</td> </tr> " +
  1241. "<tr> <td >规格:" + data.product_name + "</td> </tr> " +
  1242. "<tr> <td>生产批号:" + data.batch + "</td> </tr> " +
  1243. "<tr> <td>日期:" + data.date + "</td> </tr></table>";
  1244. var LODOP=getLodop();
  1245. LODOP.PRINT_INIT("小件(10mmx2.5mm)");
  1246. LODOP.SET_LICENSES("", "152A06E8F6CBD6AC1F213ABFCB0D8604", "C94CEE276DB2187AE6B65D56B3FC2848", "");
  1247. LODOP.SET_PRINT_PAGESIZE(1, 1000, 250, "CreateCustomPage");
  1248. LODOP.ADD_PRINT_HTM(15, 10, 270, 160,html);
  1249. LODOP.ADD_PRINT_TEXT(70,200,100,20,data.l_flow);
  1250. LODOP.SET_PRINT_STYLEA(0,"FontName","宋体");
  1251. LODOP.SET_PRINT_STYLEA(0,"FontSize",10);
  1252. LODOP.SET_PRINT_STYLEA(0,"FontColor","#000000");
  1253. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  1254. LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M");
  1255. LODOP.ADD_PRINT_BARCODE(4,280,'25mm','25mm',"QRCode",data.qrcode);
  1256. if (qrcode){
  1257. LODOP.PREVIEW() //打印预览
  1258. }else{
  1259. LODOP.PRINT() // 直接打印
  1260. }
  1261. }
  1262. //小件码打印(10mmx1.8mm)
  1263. function print2(data,qrcode){
  1264. //打印二维码
  1265. var html = "<style>.tg {border-collapse:collapse;border-spacing:0;font-weight:500;}.tg td{font-family:宋体,楷体;font-size:9px;overflow:hidden;word-break:break-all;border-color:black;}</style>" +
  1266. "<table class=\"tg\"> <tr> <td>" + data.company_name + "</td> </tr> " +
  1267. "<tr> <td >规格:" + data.product_name + "</td> </tr> " +
  1268. "<tr> <td>生产批号:" + data.batch + "</td> </tr> " +
  1269. "<tr> <td>日期:" + data.date + "</td> </tr></table>";
  1270. var LODOP=getLodop();
  1271. LODOP.PRINT_INIT("小件(10mmx2.5mm)");
  1272. LODOP.SET_LICENSES("", "152A06E8F6CBD6AC1F213ABFCB0D8604", "C94CEE276DB2187AE6B65D56B3FC2848", "");
  1273. LODOP.SET_PRINT_PAGESIZE(1, 1000, 180, "CreateCustomPage");
  1274. LODOP.ADD_PRINT_HTM(3, 5, 300, 160, html);
  1275. LODOP.ADD_PRINT_TEXT(50,200,100,18,data.l_flow);
  1276. LODOP.SET_PRINT_STYLEA(0,"FontName","宋体");
  1277. LODOP.SET_PRINT_STYLEA(0,"FontSize",10);
  1278. LODOP.SET_PRINT_STYLEA(0,"FontColor","#000000");
  1279. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  1280. LODOP.SET_PRINT_STYLE("QRCodeVersion",10);
  1281. LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M");
  1282. LODOP.ADD_PRINT_BARCODE(5,310,'25mm','25mm',"QRCode",data.qrcode);
  1283. if (qrcode){
  1284. LODOP.PREVIEW() //打印预览
  1285. }else{
  1286. LODOP.PRINT() // 直接打印
  1287. }
  1288. }
  1289. //小件码打印(10mmx4mm)
  1290. function print3(data,qrcode){
  1291. //打印二维码
  1292. var html = "<style>" +
  1293. ".tg {border-collapse:collapse;border-spacing:0;font-weight:500;}" +
  1294. ".tg td{font-family:宋体, 楷体;font-size:14px;overflow:hidden;word-break:break-all;border-color:black;}" +
  1295. "</style>" +
  1296. "<table class=\"tg\"> <tr> <td>" + data.company_name + "</td> </tr> " +
  1297. "<tr> <td >规格:" + data.product_name + "</td> </tr> " +
  1298. "<tr> <td>生产批号:" + data.batch + "</td> </tr> " +
  1299. "<tr> <td>日期:" + data.date + "</td> </tr></table>";
  1300. var LODOP=getLodop();
  1301. LODOP.PRINT_INIT("小件(10mmx4mm)");
  1302. LODOP.SET_LICENSES("", "152A06E8F6CBD6AC1F213ABFCB0D8604", "C94CEE276DB2187AE6B65D56B3FC2848", "");
  1303. LODOP.SET_PRINT_PAGESIZE(1, 1000, 400, "CreateCustomPage");
  1304. LODOP.ADD_PRINT_HTM(9, 5, 230, 160, html);
  1305. LODOP.ADD_PRINT_TEXT(130,110,100,20,data.l_flow);
  1306. LODOP.SET_PRINT_STYLEA(0,"FontName","宋体");
  1307. LODOP.SET_PRINT_STYLEA(0,"FontSize",14);
  1308. LODOP.SET_PRINT_STYLEA(0,"FontColor","#000000");
  1309. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  1310. LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M");
  1311. LODOP.ADD_PRINT_BARCODE(9,240,'45mm','45mm',"QRCode",data.qrcode);
  1312. if (qrcode){
  1313. LODOP.PREVIEW() //打印预览
  1314. }else{
  1315. LODOP.PRINT() // 直接打印
  1316. }
  1317. }
  1318. //小件码打印(10mmx5mm)
  1319. function print4(data,qrcode){
  1320. //打印二维码
  1321. var html = "<style>" +
  1322. ".tg {font-weight:500;}" +
  1323. ".tg td{font-family:宋体, 楷体;font-size:14px;overflow:hidden;word-break:break-all;border-color:black;}" +
  1324. "</style>" +
  1325. "<table class=\"tg\"> <tr> <td>" + data.company_name + "</td> </tr> " +
  1326. "<tr> <td >规格:" + data.product_name + "</td> </tr> " +
  1327. "<tr> <td>生产批号:" + data.batch + "</td> </tr> " +
  1328. "<tr> <td>日期:" + data.date + "</td> </tr></table>";
  1329. var LODOP=getLodop();
  1330. LODOP.PRINT_INIT("小件(10mmx5mm)");
  1331. LODOP.SET_LICENSES("", "152A06E8F6CBD6AC1F213ABFCB0D8604", "C94CEE276DB2187AE6B65D56B3FC2848", "");
  1332. LODOP.SET_PRINT_PAGESIZE(1, 1000, 500, "CreateCustomPage");
  1333. LODOP.ADD_PRINT_HTM(20, 10, 230, 160,html);
  1334. LODOP.ADD_PRINT_TEXT(160, 100, 100, 20,data.l_flow);
  1335. LODOP.SET_PRINT_STYLEA(0,"FontName","宋体");
  1336. LODOP.SET_PRINT_STYLEA(0,"FontSize",16);
  1337. LODOP.SET_PRINT_STYLEA(0,"FontColor","#000000");
  1338. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  1339. LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M");
  1340. LODOP.ADD_PRINT_BARCODE(25, 235, '45mm', '45mm',"QRCode",data.qrcode);
  1341. if (qrcode){
  1342. LODOP.PREVIEW() //打印预览
  1343. }else{
  1344. LODOP.PRINT() // 直接打印
  1345. }
  1346. }
  1347. //小件码打印(10mmx6mm)
  1348. function print5(data,qrcode){
  1349. //打印二维码
  1350. var html = "<style>.tg {font-weight:500;}.tg td{font-family:宋体, 楷体;font-size:14px;padding:2px 2px;overflow:hidden;word-break:break-all;border-color:black;}</style> " +
  1351. "<table class=\"tg\"> <tr> <td>" + data.company_name + "</td> </tr> " +
  1352. "<tr> <td >规格:" + data.product_name + "</td> </tr> " +
  1353. "<tr> <td>生产批号:" + data.batch + "</td> </tr> " +
  1354. "<tr> <td>日期:" + data.date + "</td> </tr></table>";
  1355. var LODOP=getLodop();
  1356. LODOP.PRINT_INIT("小件(10mmx6mm)");
  1357. LODOP.SET_LICENSES("", "152A06E8F6CBD6AC1F213ABFCB0D8604", "C94CEE276DB2187AE6B65D56B3FC2848", "");
  1358. LODOP.SET_PRINT_PAGESIZE(1, 1000, 600, "CreateCustomPage");
  1359. LODOP.ADD_PRINT_HTM(25, 10, 180, 160, html);
  1360. LODOP.ADD_PRINT_TEXT(180, 100, 100, 20,data.l_flow);
  1361. LODOP.SET_PRINT_STYLEA(0,"FontName","宋体");
  1362. LODOP.SET_PRINT_STYLEA(0,"FontSize",16);
  1363. LODOP.SET_PRINT_STYLEA(0,"FontColor","#000000");
  1364. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  1365. LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M");
  1366. LODOP.ADD_PRINT_BARCODE(25, 190, '55mm', '55mm',"QRCode",data.qrcode);
  1367. if (qrcode){
  1368. LODOP.PREVIEW() //打印预览
  1369. }else{
  1370. LODOP.PRINT() // 直接打印
  1371. }
  1372. }
  1373. $('.content').css('min-height','100px');
  1374. $("#btn").click(function (e) {
  1375. e.preventDefault();
  1376. var data = $("form").serialize();
  1377. $.post('qcode_bach/print_s', {data}, function (res) {
  1378. if(res.code==1){
  1379. var p = 0;
  1380. var flage = 0;
  1381. for(i in res.data.rows) {
  1382. if (!flage) {
  1383. //判断预览情况
  1384. if (res.data.type == 'v001'){
  1385. print1(res.data.rows[i], 1)
  1386. }else if(res.data.type == 'v002'){
  1387. print2(res.data.rows[i], 1)
  1388. }else if(res.data.type == 'v003'){
  1389. print3(res.data.rows[i], 1)
  1390. }else if(res.data.type == 'v004'){
  1391. print4(res.data.rows[i], 1)
  1392. }else if(res.data.type == 'v005'){
  1393. print5(res.data.rows[i], 1)
  1394. }
  1395. LODOP.On_Return = function (TaskID, Value) {
  1396. if (Value == 1) {
  1397. p = 1;
  1398. }
  1399. }
  1400. flage++;
  1401. }else{
  1402. break;
  1403. }
  1404. }
  1405. var cint = setInterval(function () {
  1406. if (p == 1) {
  1407. clearInterval(cint);
  1408. flage = 0;
  1409. //修改打印数量
  1410. $.post('qcode_bach/set_num', {'status':2,'num':res.data.numn, 'ids':res.data.ids}, function (response) {})
  1411. for(i in res.data.rows) {
  1412. for(j=0;j<res.data.numn;j++){
  1413. if (!flage){
  1414. flage++;
  1415. }else{
  1416. if (res.data.type == 'v001'){
  1417. print1(res.data.rows[i])
  1418. }else if(res.data.type == 'v002'){
  1419. print2(res.data.rows[i])
  1420. }else if(res.data.type == 'v003'){
  1421. print3(res.data.rows[i])
  1422. }else if(res.data.type == 'v004'){
  1423. print4(res.data.rows[i])
  1424. }else if(res.data.type == 'v005'){
  1425. print5(res.data.rows[i])
  1426. }
  1427. flage++;
  1428. }
  1429. }
  1430. }
  1431. }
  1432. },2000)
  1433. return false
  1434. }else{
  1435. Toastr.error(res.msg);
  1436. }
  1437. })
  1438. })
  1439. Controller.api.bindevent();
  1440. },
  1441. print_ls: function () {
  1442. //小件码打印(10mmx2.5mm)
  1443. function print1(data,qrcode){
  1444. //打印二维码
  1445. var html = "<style>.tg {font-weight:500;}.tg td{font-family:宋体,楷体;font-size:10px;overflow:hidden;word-break:break-all;border-color:black;}</style> " +
  1446. "<table class=\"tg\"> <tr> <td>" + data.company_name + "</td> </tr> " +
  1447. "<tr> <td >规格:" + data.product_name + "</td> </tr> " +
  1448. "<tr> <td>生产批号:" + data.batch + "</td> </tr> " +
  1449. "<tr> <td>日期:" + data.date + "</td> </tr></table>";
  1450. var LODOP=getLodop();
  1451. LODOP.PRINT_INIT("小件(10mmx2.5mm)");
  1452. LODOP.SET_LICENSES("", "152A06E8F6CBD6AC1F213ABFCB0D8604", "C94CEE276DB2187AE6B65D56B3FC2848", "");
  1453. LODOP.SET_PRINT_PAGESIZE(1, 1000, 250, "CreateCustomPage");
  1454. LODOP.ADD_PRINT_HTM(15, 10, 270, 160,html);
  1455. LODOP.ADD_PRINT_TEXT(70,200,100,20,data.l_flow);
  1456. LODOP.SET_PRINT_STYLEA(0,"FontName","宋体");
  1457. LODOP.SET_PRINT_STYLEA(0,"FontSize",10);
  1458. LODOP.SET_PRINT_STYLEA(0,"FontColor","#000000");
  1459. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  1460. LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M");
  1461. LODOP.ADD_PRINT_BARCODE(4,280,'25mm','25mm',"QRCode",data.qrcode);
  1462. if (qrcode){
  1463. LODOP.PREVIEW() //打印预览
  1464. }else{
  1465. LODOP.PRINT() // 直接打印
  1466. }
  1467. }
  1468. //小件码打印(10mmx1.8mm)
  1469. function print2(data,qrcode){
  1470. //打印二维码
  1471. var html = "<style>.tg {border-collapse:collapse;border-spacing:0;font-weight:500;}.tg td{font-family:宋体,楷体;font-size:9px;overflow:hidden;word-break:break-all;border-color:black;}</style>" +
  1472. "<table class=\"tg\"> <tr> <td>" + data.company_name + "</td> </tr> " +
  1473. "<tr> <td >规格:" + data.product_name + "</td> </tr> " +
  1474. "<tr> <td>生产批号:" + data.batch + "</td> </tr> " +
  1475. "<tr> <td>日期:" + data.date + "</td> </tr></table>";
  1476. var LODOP=getLodop();
  1477. LODOP.PRINT_INIT("小件(10mmx2.5mm)");
  1478. LODOP.SET_LICENSES("", "152A06E8F6CBD6AC1F213ABFCB0D8604", "C94CEE276DB2187AE6B65D56B3FC2848", "");
  1479. LODOP.SET_PRINT_PAGESIZE(1, 1000, 180, "CreateCustomPage");
  1480. LODOP.ADD_PRINT_HTM(3, 5, 300, 160, html);
  1481. LODOP.ADD_PRINT_TEXT(50,200,100,18,data.l_flow);
  1482. LODOP.SET_PRINT_STYLEA(0,"FontName","宋体");
  1483. LODOP.SET_PRINT_STYLEA(0,"FontSize",10);
  1484. LODOP.SET_PRINT_STYLEA(0,"FontColor","#000000");
  1485. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  1486. LODOP.SET_PRINT_STYLE("QRCodeVersion",10);
  1487. LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M");
  1488. LODOP.ADD_PRINT_BARCODE(5,310,'25mm','25mm',"QRCode",data.qrcode);
  1489. if (qrcode){
  1490. LODOP.PREVIEW() //打印预览
  1491. }else{
  1492. LODOP.PRINT() // 直接打印
  1493. }
  1494. }
  1495. //小件码打印(10mmx4mm)
  1496. function print3(data,qrcode){
  1497. //打印二维码
  1498. var html = "<style>" +
  1499. ".tg {border-collapse:collapse;border-spacing:0;font-weight:500;}" +
  1500. ".tg td{font-family:宋体, 楷体;font-size:14px;overflow:hidden;word-break:break-all;border-color:black;}" +
  1501. "</style>" +
  1502. "<table class=\"tg\"> <tr> <td>" + data.company_name + "</td> </tr> " +
  1503. "<tr> <td >规格:" + data.product_name + "</td> </tr> " +
  1504. "<tr> <td>生产批号:" + data.batch + "</td> </tr> " +
  1505. "<tr> <td>日期:" + data.date + "</td> </tr></table>";
  1506. var LODOP=getLodop();
  1507. LODOP.PRINT_INIT("小件(10mmx4mm)");
  1508. LODOP.SET_LICENSES("", "152A06E8F6CBD6AC1F213ABFCB0D8604", "C94CEE276DB2187AE6B65D56B3FC2848", "");
  1509. LODOP.SET_PRINT_PAGESIZE(1, 1000, 400, "CreateCustomPage");
  1510. LODOP.ADD_PRINT_HTM(9, 5, 230, 160, html);
  1511. LODOP.ADD_PRINT_TEXT(130,110,100,20,data.l_flow);
  1512. LODOP.SET_PRINT_STYLEA(0,"FontName","宋体");
  1513. LODOP.SET_PRINT_STYLEA(0,"FontSize",14);
  1514. LODOP.SET_PRINT_STYLEA(0,"FontColor","#000000");
  1515. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  1516. LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M");
  1517. LODOP.ADD_PRINT_BARCODE(9,240,'45mm','45mm',"QRCode",data.qrcode);
  1518. if (qrcode){
  1519. LODOP.PREVIEW() //打印预览
  1520. }else{
  1521. LODOP.PRINT() // 直接打印
  1522. }
  1523. }
  1524. //小件码打印(10mmx5mm)
  1525. function print4(data,qrcode){
  1526. //打印二维码
  1527. var html = "<style>" +
  1528. ".tg {font-weight:500;}" +
  1529. ".tg td{font-family:宋体, 楷体;font-size:14px;overflow:hidden;word-break:break-all;border-color:black;}" +
  1530. "</style>" +
  1531. "<table class=\"tg\"> <tr> <td>" + data.company_name + "</td> </tr> " +
  1532. "<tr> <td >规格:" + data.product_name + "</td> </tr> " +
  1533. "<tr> <td>生产批号:" + data.batch + "</td> </tr> " +
  1534. "<tr> <td>日期:" + data.date + "</td> </tr></table>";
  1535. var LODOP=getLodop();
  1536. LODOP.PRINT_INIT("小件(10mmx5mm)");
  1537. LODOP.SET_LICENSES("", "152A06E8F6CBD6AC1F213ABFCB0D8604", "C94CEE276DB2187AE6B65D56B3FC2848", "");
  1538. LODOP.SET_PRINT_PAGESIZE(1, 1000, 500, "CreateCustomPage");
  1539. LODOP.ADD_PRINT_HTM(20, 10, 230, 160,html);
  1540. LODOP.ADD_PRINT_TEXT(160, 100, 100, 20,data.l_flow);
  1541. LODOP.SET_PRINT_STYLEA(0,"FontName","宋体");
  1542. LODOP.SET_PRINT_STYLEA(0,"FontSize",16);
  1543. LODOP.SET_PRINT_STYLEA(0,"FontColor","#000000");
  1544. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  1545. LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M");
  1546. LODOP.ADD_PRINT_BARCODE(25, 235, '45mm', '45mm',"QRCode",data.qrcode);
  1547. if (qrcode){
  1548. LODOP.PREVIEW() //打印预览
  1549. }else{
  1550. LODOP.PRINT() // 直接打印
  1551. }
  1552. }
  1553. //小件码打印(10mmx6mm)
  1554. function print5(data,qrcode){
  1555. //打印二维码
  1556. var html = "<style>.tg {font-weight:500;}.tg td{font-family:宋体, 楷体;font-size:14px;padding:2px 2px;overflow:hidden;word-break:break-all;border-color:black;}</style> " +
  1557. "<table class=\"tg\"> <tr> <td>" + data.company_name + "</td> </tr> " +
  1558. "<tr> <td >规格:" + data.product_name + "</td> </tr> " +
  1559. "<tr> <td>生产批号:" + data.batch + "</td> </tr> " +
  1560. "<tr> <td>日期:" + data.date + "</td> </tr></table>";
  1561. var LODOP=getLodop();
  1562. LODOP.PRINT_INIT("小件(10mmx6mm)");
  1563. LODOP.SET_LICENSES("", "152A06E8F6CBD6AC1F213ABFCB0D8604", "C94CEE276DB2187AE6B65D56B3FC2848", "");
  1564. LODOP.SET_PRINT_PAGESIZE(1, 1000, 600, "CreateCustomPage");
  1565. LODOP.ADD_PRINT_HTM(25, 10, 180, 160, html);
  1566. LODOP.ADD_PRINT_TEXT(180, 100, 100, 20,data.l_flow);
  1567. LODOP.SET_PRINT_STYLEA(0,"FontName","宋体");
  1568. LODOP.SET_PRINT_STYLEA(0,"FontSize",16);
  1569. LODOP.SET_PRINT_STYLEA(0,"FontColor","#000000");
  1570. LODOP.SET_PRINT_STYLEA(0,"Bold",1);
  1571. LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M");
  1572. LODOP.ADD_PRINT_BARCODE(25, 190, '55mm', '55mm',"QRCode",data.qrcode);
  1573. if (qrcode){
  1574. LODOP.PREVIEW() //打印预览
  1575. }else{
  1576. LODOP.PRINT() // 直接打印
  1577. }
  1578. }
  1579. $('.content').css('min-height','100px');
  1580. $("#btn").click(function (e) {
  1581. e.preventDefault();
  1582. var data = $("form").serialize();
  1583. $.post('qcode_bach/print_ls', {data}, function (res) {
  1584. if(res.code==1){
  1585. var p = 0;
  1586. var flage = 0;
  1587. for(i in res.data.rows) {
  1588. if (!flage) {
  1589. //判断预览情况
  1590. if (res.data.type == 'v001'){
  1591. print1(res.data.rows[i], 1)
  1592. }else if(res.data.type == 'v002'){
  1593. print2(res.data.rows[i], 1)
  1594. }else if(res.data.type == 'v003'){
  1595. print3(res.data.rows[i], 1)
  1596. }else if(res.data.type == 'v004'){
  1597. print4(res.data.rows[i], 1)
  1598. }else if(res.data.type == 'v005'){
  1599. print5(res.data.rows[i], 1)
  1600. }
  1601. LODOP.On_Return = function (TaskID, Value) {
  1602. if (Value == 1) {
  1603. p = 1;
  1604. }
  1605. }
  1606. flage++;
  1607. }else{
  1608. break;
  1609. }
  1610. }
  1611. var cint = setInterval(function () {
  1612. if (p == 1) {
  1613. clearInterval(cint);
  1614. flage = 0;
  1615. //修改打印数量
  1616. $.post('qcode_bach/set_num', {'status':3,'num':res.data.numn, 'ids':res.data.ids}, function (response) {})
  1617. for(i in res.data.rows) {
  1618. for(j=0;j<res.data.numn;j++){
  1619. if (!flage){
  1620. flage++;
  1621. }else{
  1622. if (res.data.type == 'v001'){
  1623. print1(res.data.rows[i])
  1624. }else if(res.data.type == 'v002'){
  1625. print2(res.data.rows[i])
  1626. }else if(res.data.type == 'v003'){
  1627. print3(res.data.rows[i])
  1628. }else if(res.data.type == 'v004'){
  1629. print4(res.data.rows[i])
  1630. }else if(res.data.type == 'v005'){
  1631. print5(res.data.rows[i])
  1632. }
  1633. flage++;
  1634. }
  1635. }
  1636. }
  1637. }
  1638. },2000)
  1639. return false
  1640. }else{
  1641. Toastr.error(res.msg);
  1642. }
  1643. })
  1644. })
  1645. Controller.api.bindevent();
  1646. },
  1647. reprint: function () {
  1648. $("#sel-n").data("params", function (obj) {
  1649. //obj为SelectPage对象
  1650. return {custom: {name: $("#sel-n").val()}};
  1651. });
  1652. $("#sel-p").data("params", function (obj) {
  1653. //obj为SelectPage对象
  1654. return {custom: {name: $("#sel-p").val()}};
  1655. });
  1656. $("#sel-c").data("params", function (obj) {
  1657. //obj为SelectPage对象
  1658. return {custom: {name: $("#sel-c").val()}};
  1659. });
  1660. $("#btn").click(function (e) {
  1661. e.preventDefault();
  1662. var data = $("form").serialize();
  1663. $.post('qcode_bach/reprint',{data},function (res) {
  1664. if (res.code==1){
  1665. //打印二维码
  1666. var html = '<style type="text/css">\n' +
  1667. '.tg {border-collapse:collapse;border-spacing:0;font-weight:500;}\n' +
  1668. '.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}\n' +
  1669. '.tg .tg-s6z2{text-align:center;}\n' +
  1670. '</style>\n' +
  1671. '<div width="340px">\n' +
  1672. '<table class="tg" width="340px">\n' +
  1673. '<caption style="width: 300px;">'+res.data.company_name+'</caption>\n' +
  1674. '<tr>\n' +
  1675. '<td style="width: 70px;">规格:</td>\n' +
  1676. '<td colspan="5" style="word-break:break-all;border-color:black;">'+res.data.product_name+'</td>\n' +
  1677. '</tr>\n' +
  1678. '<tr>\n' +
  1679. '<td>配盘数:</td>\n' +
  1680. '<td colspan="2">'+res.data.sqrcd+'</td>\n' +
  1681. '<td>辅单位:</td>\n' +
  1682. '<td colspan="2">'+res.data.sec_unit+'</td>\n' +
  1683. '</tr>\n' +
  1684. '<tr>\n' +
  1685. '<td>数量:</td>\n' +
  1686. '<td colspan="2">'+res.data.num+'</td>\n' +
  1687. '<td>主单位:</td>\n' +
  1688. '<td colspan="2">'+res.data.main_unit+'</td>\n' +
  1689. '</tr>\n' +
  1690. '<tr>\n' +
  1691. '<td>生产日期:</td>\n' +
  1692. '<td colspan="5">'+res.data.date+'</td>\n' +
  1693. '</tr>\n' +
  1694. '<tr>\n' +
  1695. '<td>生产批号:</td>\n' +
  1696. '<td colspan="5">'+res.data.batch+'</td>\n' +
  1697. '</tr>\n' +
  1698. '<tr>\n' +
  1699. '<td colspan="6" style="word-break:break-all; border-color:black; font-size: 13px;">'+res.data.qrcode+'</td>\n' +
  1700. '</tr>\n' +
  1701. '</table>\n' +
  1702. '<div style="position:absolute;top: 300px;left: 47px">\n' +
  1703. '<img src="'+res.data.pCode+'" > </td>\n' +
  1704. '</div>\n' +
  1705. '<div style="position:absolute;top: 400px;left: 300px;width: 50px;text-align: center;"><span style="font-weight: 500;word-break:normal;font-size: 16px">大件号'+res.data.l_flow+'</span></div>\n' +
  1706. '</div>';
  1707. var printPdf = (html,qrcode) => {
  1708. let LODOP=getLodop();
  1709. LODOP.SET_LICENSES("","152A06E8F6CBD6AC1F213ABFCB0D8604","C94CEE276DB2187AE6B65D56B3FC2848","");
  1710. LODOP.PRINT_INIT("河南中烟大件二维码打码");
  1711. LODOP.SET_PRINT_STYLE("FontSize",16);
  1712. LODOP.SET_PRINT_STYLE("Bold",1);
  1713. LODOP.SET_PRINT_PAGESIZE(1, 1000, 1500, "CreateCustomPage");
  1714. LODOP.ADD_PRINT_HTM(15,20,350,545,html);
  1715. // LODOP.SET_PRINT_STYLEA(0,"QRCodeVersion",14);
  1716. // LODOP.SET_PRINT_STYLEA(0,"QRCodeErrorLevel","M");
  1717. // LODOP.ADD_PRINT_BARCODE(18,715,'27mm','27mm',"QRCode",qrcode);
  1718. // LODOP.PRINT() // 直接打印
  1719. // LODOP.PRINT_DESIGN() // 设计模式
  1720. LODOP.PREVIEW() //打印预览
  1721. }
  1722. printPdf(html)
  1723. }else{
  1724. Toastr.error(res.msg);
  1725. }
  1726. })
  1727. })
  1728. Controller.api.bindevent();
  1729. },
  1730. api: {
  1731. bindevent: function () {
  1732. Form.api.bindevent($("form[role=form]"));
  1733. }
  1734. }
  1735. };
  1736. return Controller;
  1737. });