add.html 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352
  1. <form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
  2. <div class="form-group">
  3. <label class="control-label col-xs-12 col-sm-2" style="width:8%;!important;">工单号:</label>
  4. <div class="col-xs-12 col-sm-8" style="width:22.23%;!important;">
  5. <input class="form-control " id="order" type="text" value="{$result['gd_gdbh']}" disabled>
  6. </div>
  7. <label class="control-label col-xs-12 col-sm-2" style="width:9%;!important;">产品名称:</label>
  8. <div class="col-xs-12 col-sm-8" style="width:22.23%;!important;">
  9. <input class="form-control " id="product" type="text" value="{$result['成品名称']}" disabled>
  10. </div>
  11. <label class="control-label col-xs-12 col-sm-2" style="width:12%;!important;">订单数量(万张):</label>
  12. <div class="col-xs-12 col-sm-8" style="width:22.23%;!important;">
  13. <input class="form-control " id="number" type="text" value="{$result['订单数量']}" disabled>
  14. </div>
  15. </div>
  16. <div class="form-group">
  17. <label class="control-label col-xs-12 col-sm-2" style="width:9.5%;!important;">配方选择:</label>
  18. <div class="col-xs-12 col-sm-8" style="width:22.23%;!important;">
  19. {foreach name="formulaData" item="vo"}
  20. <label style="margin-top: 2px;"><input type="radio" name="formula" value="{$vo}" class="color"/>{$vo}</label>
  21. {/foreach}
  22. </div>
  23. </div>
  24. <div class="form-group">
  25. <label class="control-label col-xs-12 col-sm-2" style="width:15%;!important;">本次配置大盒数量:</label>
  26. <div class="col-xs-12 col-sm-8" style="width:20%;!important;">
  27. <input class="form-control bigBox" id="bigBox" name="" type="text" value="" data-rule="number">
  28. </div>
  29. <label class="control-label col-xs-12 col-sm-2" style="width:15%;!important;">本次配置小盒数量:</label>
  30. <div class="col-xs-12 col-sm-8" style="width:20%;!important;">
  31. <input class="form-control smallBox" id="smallBox" name="" type="text" value="" data-rule="number">
  32. </div>
  33. </div>
  34. <div class="form-group" >
  35. <div class="control-label col-xs-12 col-sm-2" style="width:50%;!important;">
  36. <div id="formula" style="margin-left:15px;">
  37. </div>
  38. </div>
  39. <div class="control-label col-xs-12 col-sm-2" style="width:50%;!important;">
  40. <div id="consume" >
  41. </div>
  42. </div>
  43. </div>
  44. <div id="print" style="display: none;">
  45. <div id="print_area">
  46. <div id="qrcode" style="margin-left: 80px;">
  47. <img src="" id="myImage" alt=""/>
  48. </div>
  49. <div id="time" style="margin-left: 450px;margin-top: -25px;"></div>
  50. <div style="height: 2px;"></div>
  51. <div id="print_base">
  52. <table border="1" cellspacing="0" style="text-align: center;width: 550px;margin-left: 80px;">
  53. <tr>
  54. <td colspan="7" id="print_input_formula"></td>
  55. </tr>
  56. <tr>
  57. <td style="width: 135px;">生产批次号</td>
  58. <td colspan="2" id="print_input_order" style="width: 100px;"></td>
  59. <td style="width: 100px;">数量</td>
  60. <td id="print_input_big" style="width: 100px;"></td>
  61. <td id="print_input_small" style="width: 100px;"></td>
  62. </tr>
  63. </table>
  64. <div style="height: 1px;"></div>
  65. <div id="print_formula" style="margin-left: 80px;">
  66. </div>
  67. <div style="height: 1px;"></div>
  68. <div id="print_consume" style="margin-left: 80px;">
  69. </div>
  70. </div>
  71. </div>
  72. </div>
  73. <div class="form-group layer-footer">
  74. <label class="control-label col-xs-12 col-sm-2"></label>
  75. <div class="col-xs-12 col-sm-8" style="margin-left:100px;">
  76. <button class="btn btn-default btn-embossed print-link">打印</button>
  77. <button class="btn btn-success btn-embossed print">保存</button>
  78. </div>
  79. </div>
  80. </form>
  81. <script src="__CDN__/assets/js/jquery3.4.1.js"></script>
  82. <script>
  83. //获取专色墨配方
  84. $('.color').click(function () {
  85. var formula = $('input[name="formula"]:checked').val();
  86. $.ajax({
  87. type: "POST",
  88. url: "{:url('admin/Order/getFormula')}",
  89. data: {formula: formula},
  90. dataType: "json",
  91. success: function (data) {
  92. if (data.status == 1) {
  93. var str = '<table border="1" cellspacing="0" style="text-align: center;width: 550px;">';
  94. str += '<tbody>';
  95. $.each(data.data,function (key,value) {
  96. str += '<tr>';
  97. var rowspan = -1;
  98. $.each(data.colorNumber,function (k,v) {
  99. if (key == v.beginRow){
  100. rowspan = v.rowSpan;
  101. }
  102. })
  103. if (rowspan != -1){
  104. str += '<td rowspan="'+rowspan+'" style="width: 100px;">'+value.color+'</td>';
  105. str += '<td style="width: 100px;">'+value.ink+'</td>';
  106. str += '<td style="width: 60px;">'+value.ink_number+'</td>';
  107. str += '<td style="width: 100px;"></td>';
  108. str += '<td rowspan="'+rowspan+'" style="width: 100px;">'+value.number+'</td>';
  109. str += '<td style="width: 80px;">'+value.total+'</td>';
  110. }else {
  111. str += '<td style="width: 100px;">'+value.ink+'</td>';
  112. str += '<td style="width: 60px;">'+value.ink_number+'</td>';
  113. str += '<td style="width: 100px;"></td>';
  114. str += '<td style="width: 80px;">'+value.total+'</td>';
  115. }
  116. str += '</tr>';
  117. })
  118. str += '</tbody>';
  119. str += '</table>';
  120. $('#formula').empty();
  121. $('#formula').append(str);
  122. getConsume(formula,0,0,0);
  123. }else {
  124. alert(data.msg)
  125. }
  126. }
  127. })
  128. })
  129. //获取大小盒计划消耗,formula->配方名称,number->数量(万张),boxModel->盒型(1.大盒,2.小盒)
  130. function getConsume(formula,bigNumber,smallNumber,boxModel){
  131. if (bigNumber == 0 && smallNumber == 0){
  132. $.ajax({
  133. type: "POST",
  134. url: "{:url('admin/Order/getConsume')}",
  135. data: {formula: formula,bigNumber:bigNumber,smallNumber:smallNumber,boxModel:boxModel},
  136. dataType: "json",
  137. success: function (data) {
  138. if (data.status == 1) {
  139. var str = '<table border="1" cellspacing="0" style="text-align: center;width: 550px;">';
  140. str += '<tbody class="consume">';
  141. $.each(data.data,function (key,value) {
  142. str += '<tr>';
  143. if (key == 0){
  144. str += '<td rowspan="'+data.rowSpan+'" style="width: 100px;">大盒计划消耗</td>';
  145. str += '<td style="width: 100px;">'+value.big_ink+'</td>';
  146. str += '<td style="width: 60px;">'+value.big_num+'</td>';
  147. str += '<td rowspan="'+data.rowSpan+'" style="width: 100px;">小盒计划消耗</td>';
  148. str += '<td style="width: 100px;">'+value.small_ink+'</td>';
  149. str += '<td style="width: 60px;">'+value.small_num+'</td>';
  150. }else{
  151. str += '<td style="width: 100px;">'+value.big_ink+'</td>';
  152. str += '<td style="width: 60px;">'+value.big_num+'</td>';
  153. str += '<td style="width: 100px;">'+value.small_ink+'</td>';
  154. str += '<td style="width: 60px;">'+value.small_num+'</td>';
  155. }
  156. str += '</tr>';
  157. })
  158. str += '</tbody>';
  159. str += '</table>';
  160. $('#consume').empty();
  161. $('#consume').append(str);
  162. }
  163. }
  164. })
  165. }else{
  166. $.ajax({
  167. type: "POST",
  168. url: "{:url('admin/Order/getConsume')}",
  169. data: {formula: formula,bigNumber:bigNumber,smallNumber:smallNumber,boxModel:boxModel},
  170. dataType: "json",
  171. success: function (data) {
  172. if (data.status == 1) {
  173. var str = '<table border="1" cellspacing="0" style="text-align: center;width: 550px;">';
  174. str += '<tbody class="consume">';
  175. $.each(data.data,function (key,value) {
  176. str += '<tr>';
  177. if (key == 0){
  178. str += '<td rowspan="'+data.rowSpan+'" style="width: 100px;">大盒计划消耗</td>';
  179. str += '<td style="width: 60px;">'+value.big_ink+'</td>';
  180. str += '<td style="width: 60px;">'+value.big_num+'</td>';
  181. str += '<td rowspan="'+data.rowSpan+'" style="width: 100px;">小盒计划消耗</td>';
  182. str += '<td style="width: 60px;">'+value.small_ink+'</td>';
  183. str += '<td style="width: 60px;">'+value.small_num+'</td>';
  184. }else{
  185. str += '<td style="width: 60px;">'+value.big_ink+'</td>';
  186. str += '<td style="width: 60px;">'+value.big_num+'</td>';
  187. str += '<td style="width: 60px;">'+value.small_ink+'</td>';
  188. str += '<td style="width: 60px;">'+value.small_num+'</td>';
  189. }
  190. str += '</tr>';
  191. })
  192. str += '</tbody>';
  193. str += '</table>';
  194. $('#consume').empty();
  195. $('#consume').append(str);
  196. $('#print_consume').empty();
  197. $('#print_consume').append(str);
  198. var html = '<table border="1" cellspacing="0" style="text-align: center;width: 550px;">';
  199. html += '<tbody>';
  200. $.each(data.formulaData,function (k1,val) {
  201. html += '<tr>';
  202. var rowspan = -1;
  203. $.each(data.colorNumber,function (k,v) {
  204. if (k1 == v.beginRow){
  205. rowspan = v.rowSpan;
  206. }
  207. })
  208. if (rowspan != -1){
  209. html += '<td rowspan="'+rowspan+'" style="width: 100px;">'+val.color+'</td>';
  210. html += '<td style="width: 100px;">'+val.ink+'</td>';
  211. html += '<td style="width: 60px;">'+val.ink_number+'</td>';
  212. html += '<td style="width: 50px;"></td>';
  213. html += '<td rowspan="'+rowspan+'" style="width: 50px;">'+val.number+'</td>';
  214. html += '<td style="width: 60px;">'+val.total+'</td>';
  215. }else {
  216. html += '<td style="width: 100px;">'+val.ink+'</td>';
  217. html += '<td style="width: 60px;">'+val.ink_number+'</td>';
  218. html += '<td style="width: 50px;"></td>';
  219. html += '<td style="width: 60px;">'+val.total+'</td>';
  220. }
  221. html += '</tr>';
  222. })
  223. html += '</tbody>';
  224. html += '</table>';
  225. $('#formula').empty();
  226. $('#formula').append(html);
  227. $('#print_formula').empty();
  228. $('#print_formula').append(html);
  229. }
  230. }
  231. })
  232. }
  233. }
  234. $('.bigBox').blur(function () {
  235. var bigNumber = $(this).val();
  236. var formula = $('input[name="formula"]:checked').val();
  237. var smallNumber = $('.smallBox').val();
  238. console.log(smallNumber)
  239. if (formula != '') {
  240. if (smallNumber == ''){
  241. getConsume(formula,bigNumber,0,1);
  242. }else{
  243. getConsume(formula,bigNumber,smallNumber,0);
  244. }
  245. }
  246. })
  247. $('.smallBox').blur(function () {
  248. var smallNumber = $(this).val();
  249. // var formula = $(".color").val();
  250. var formula = $('input[name="formula"]:checked').val();
  251. var bigNumber = $('.bigBox').val();
  252. console.log(bigNumber)
  253. if (formula != '') {
  254. if (bigNumber == ''){
  255. getConsume(formula,0,smallNumber,2);
  256. }else {
  257. getConsume(formula,bigNumber,smallNumber,0);
  258. }
  259. }
  260. })
  261. </script>
  262. <!--<script type='text/javascript' src='http://cdn.staticfile.org/jquery/2.1.1/jquery.min.js'></script>-->
  263. <script type='text/javascript' src='__CDN__/assets/js/jquery2.1.1.min.js'></script>
  264. <!--<script type="text/javascript" src="http://cdn.staticfile.org/jquery.qrcode/1.0/jquery.qrcode.min.js"></script>-->
  265. <script type="text/javascript" src="__CDN__/assets/js/jquery.qrcode.min.js"></script>
  266. <script type="text/javascript" src="__CDN__/assets/js/jQuery.print.js"></script>
  267. <script type="text/javascript" src="__CDN__/assets/js/jQuery.print.js"></script>
  268. <script >
  269. jQuery(function($) { 'use strict';
  270. var order = $('#order').val();
  271. $.ajax({
  272. type: "POST",
  273. url: "{:url('admin/Order/getBach')}",
  274. data: {order: order},
  275. dataType: "json",
  276. success: function (data) {
  277. if(data.status == 1){
  278. createQrcode(data.bach,100,100);
  279. }
  280. }
  281. })
  282. $(".print-link").on('click', function() {
  283. var formula = $('input[name="formula"]:checked').val();
  284. var bigBoxNumber = $('#bigBox').val();
  285. var smallBoxNumber = $('#smallBox').val();
  286. if (order == '' || formula == ''){
  287. return false;
  288. }
  289. if (bigBoxNumber == '' && smallBoxNumber == ''){
  290. return false;
  291. }
  292. var mydate = new Date();
  293. var year = mydate.getFullYear();
  294. var mouth = mydate.getMonth() + 1;
  295. if (parseInt(mouth)<10){
  296. mouth = '0'+mouth;
  297. }
  298. var date = mydate.getDate();
  299. if (parseInt(date)<10){
  300. date = '0'+date;
  301. }
  302. var hours = mydate.getHours();
  303. if (parseInt(hours)<10){
  304. hours = '0'+hours;
  305. }
  306. var minutes = mydate.getMinutes();
  307. if (parseInt(minutes)<10){
  308. minutes = '0'+minutes;
  309. }
  310. var seconds = mydate.getSeconds();
  311. if (parseInt(seconds)<10){
  312. seconds = '0'+seconds;
  313. }
  314. var now_time = year+'-'+mouth+'-'+date+' '+hours+':'+minutes+':'+seconds;
  315. var img = document.getElementById("myImage"); /// get image element
  316. var canvas = document.getElementsByTagName('canvas')[0];
  317. img.src = canvas.toDataURL(); /// update image
  318. $('#time').html(now_time);
  319. $('#print_input_formula').html(formula);
  320. $('#print_input_order').html(order);
  321. $('#print_input_big').html(bigBoxNumber);
  322. $('#print_input_small').html(smallBoxNumber);
  323. $.print("#print_area");
  324. return false;
  325. });
  326. function createQrcode(txt,width,height) {
  327. $("#qrcode").qrcode({
  328. render: "canvas",//canvas和table两种渲染方式
  329. width: width,
  330. height: height,
  331. correctLevel:2,//二维码纠错级别
  332. background:"#ffffff",//背景颜色
  333. foreground:"#000000", //二维码颜色
  334. text:txt
  335. });
  336. }
  337. });
  338. </script>