define(['jquery', 'bootstrap', 'backend', 'table', 'form','jQuery.print','jquery.qrcode.min'], function ($, undefined, Backend, Table, Form) { var Controller = { index: function () { // 初始化表格参数配置 Table.api.init({ extend: { index_url: 'feeding/index' + location.search, add_url: 'feeding/add', edit_url: 'feeding/edit', del_url: 'feeding/del', multi_url: 'feeding/multi', import_url: 'feeding/import', table: 'feeding', } }); var table = $("#table"); // 初始化表格 table.bootstrapTable({ url: $.fn.bootstrapTable.defaults.extend.index_url, pk: 'id', sortName: 'id', fixedColumns: true, fixedRightNumber: 1, columns: [ [ {checkbox: true}, {field: 'id', title: __('Id')}, {field: 'bach', title: __('Bach'), operate: 'LIKE'}, {field: 'material', title: __('Material'), operate: 'LIKE'}, {field: 'no', title: __('No'), operate: 'LIKE'}, {field: 'nweight', title: __('Nweight'), operate: 'LIKE'}, {field: 'weight', title: __('Weight'), operate: 'LIKE'}, {field: 'gy_num', title: __('Gy_num')}, {field: 'date', title: __('Date'), operate: 'LIKE'}, {field: 'operator', title: __('Operator'), operate: 'LIKE'}, // {field: 'tid', title: __('Tid')}, {field: 'inspector', title: __('Inspector'), operate: 'LIKE'}, {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate} ] ] }); table.on('post-body.bs.table',function(){ $(".btn-add").data("area",["100%","100%"]); }); // 进入页面全屏 if(document.documentElement){ document.documentElement.webkitRequestFullScreen(); document.body.onkeyup = function (e) { e = e || window.event; // console.log(e.keyCode); if(e.keyCode == 27){//Esc全屏或退出全屏 document.documentElement.webkitRequestFullScreen(); } if(e.keyCode==116){//F5 document.documentElement.webkitRequestFullScreen(); } if (e.keyCode == 82 && e.ctrlKey) {//Ctrl+R document.documentElement.webkitRequestFullScreen(); } }; } // 为表格绑定事件 Table.api.bindevent(table); }, add: function () { // 进入页面全屏 // document.documentElement.webkitRequestFullScreen(); $('#c-bach').focus(); var num=0; $('#c-bach').keydown((e)=>{ let key = e.which; if(key == 13){ $("#wuliao").focus(); if(num === 0){ var bach = $("#c-bach").val(); if (bach == ''){ layer.confirm('批次号不能为空',{ title:'操作提示', btn:[], // icon:2, closeBtn:0, time:2000 }); return false; } $.ajax({ method:"POST", data:{bach:bach},//批次号 url:"feeding/get_task", success(res){ $("#table").append(""); //批次号重复/做下拉选择 if(res.data.length>1){ // let str = ''; // str+='请选择对应的生产量'; // for(var i=0;i'+res.data[i].create+' 生产量:'+res.data[i].number+''; // } // str+='确认'; // $('#c-bach').parent('#c_bach').append(str); // $("#bach").change(()=>{ // $("#c-name").val(res.data[$("#bach").val()].name); // $("#c-specifications").val(res.data[$("#bach").val()].drawer_name); // $("#c-unit").val(res.data[$("#bach").val()].examine_name); // }); // $("#btn").click(()=>{ // //只读->已扫描过批次号 // if($("#c-bach").attr('readonly')==='readonly'){ // return false; // } // $("#bach").css('cssText','display:none! important');//隐藏按钮,下拉菜单 // $("#btn").css('display','none'); // // $.ajax({ // method:"POST", // url:"feeding/get_formula", // data:{ // bach:$("#c-bach").val(), // num:res.data[$("#bach").val()].number// 选定批次号的生产量,精确查找 // }, // success(result){ // var str = '';//页面table // var html = '';// html:需打印的表格 // for(var i=0;i"; // str += ""; // str += ""; // str += ""; // str += ""; // str += ""; // html += `${result.data[i].material} // ${result.data[i].nweight}`; // if (result.data[i].weight) { // html += parseFloat(result.data[i].weight); // } // html += `${result.data[i].gy_name}`; // // } // html+= ` // 总计 // // // // `;//${res.data.number} // $("#print_gy").append(html); // $("#table").append(str); // $("#c-bach").attr('readonly','readonly');//批次号输入框变为只读 // // $("#wuliao").keydown((e)=>{ // let key = e.which; // var error = 0; // if(key === 13){ // var wuliao = $("#wuliao").val(); // for(var i=0;i"; str += ""; str += ""; str += ""; if(result.data[i].weight == 0){ str += "保存"; str += ""; }else{ str += "已保存"; str += ""; } // if(result.data[i].material_bach){ // str += ""; // }else{ // str += ""; // } str += ""; str += ""; html += `${result.data[i].material} ${result.data[i].nweight}`; if (result.data[i].weight) { html += parseFloat(result.data[i].weight); } html += `${result.data[i].gy_name}`; } html+= ` 总计 `;//${res.data[0].number} $("#print_gy").append(html); $("#table").append(str); $("#c-bach").attr('readonly','readonly');//批次号输入框变为只读 $("#wuliao").keydown((e)=>{ let key = e.which; var error = 0; if(key === 13){ var string = $("#wuliao").val(); if(string.substr(0,string.indexOf('_'))){ var wuliao = string.substr(0,string.indexOf('_')); //原材料 var bach = string.substr(string.indexOf('_')+1); //原材料批次号 }else{ var wuliao = string; var bach = ''; } $('#input').html(); $.ajax({ method: "POST", url: "feeding/get_material", data: { bach: $("#c-bach").val(), material:wuliao }, success(data) { if (data.total > 0){ wuliao = data.string; $('#input').html(wuliao); for (var i=0;i result.process){ Layer.confirm("此物料不在当前工序,请确认!",{ area: ['60%', '60%'], }); //语音播报 var msg = new SpeechSynthesisUtterance("此物料不在当前工序,请确认!"); window.speechSynthesis.speak(msg); error++; // }else{ // Layer.confirm("此物料已经投料,请确认此工序是否有此物料!",{ // area: ['60%', '60%'], // }); // //语音播报 // var msg = new SpeechSynthesisUtterance("此物料不在当前工序,请确认!"); // window.speechSynthesis.speak(msg); // error++; } } //替代料变扫描的物料 if(result.data[i].material.indexOf('/')!==-1) { var arr = result.data[i].material.split('/'); if (arr.indexOf($("#wuliao").val()) !== -1 && result.data[i].gy_num == result.process) { $(".material")[i].value = wuliao; if (result.data[i].weight == 0) { $(".material")[i].setAttribute('style','color:red'); $(".nweight")[i].setAttribute('style','color:red'); } var the_bach = document.getElementsByClassName('bach')[i]; the_bach.value = bach; $(".number")[i].focus(); error++; } else if (arr.indexOf($("#wuliao").val()) !== -1) { Layer.confirm("此物料不在当前工序,请确认!", { area: ['60%', '60%'], }); //语音播报 var msg = new SpeechSynthesisUtterance("此物料不在当前工序,请确认!"); window.speechSynthesis.speak(msg); error++; } } } } if(error===0){ layer.confirm("此物料不在配方中,且没有替代料,请确认!", {//物料不存在提示错误信息 title: ['信息'], btn: ['确认'], area: ['60%', '60%'], }); var synth = window.speechSynthesis; var msg = new window.SpeechSynthesisUtterance('此物料不在配方中,且没有替代料,请确认!'); window.speechSynthesis.cancel(); synth.speak(msg); } }else{ //没有在数据库查到,直接去比较物料与配方 $('#input').html(wuliao); for (var i=0;i result.process){ Layer.confirm("此物料不在当前工序,请确认!",{ area: ['60%', '60%'], }); //语音播报 var msg = new SpeechSynthesisUtterance("此物料不在当前工序,请确认!"); window.speechSynthesis.speak(msg); error++; } // else { // Layer.confirm("此物料已经投料,请确认此工序是否有此物料!",{ // area: ['60%', '60%'], // }); // //语音播报 // var msg = new SpeechSynthesisUtterance("此物料不在当前工序,请确认!"); // window.speechSynthesis.speak(msg); // error++; // } } //替代料变扫描的物料 if(result.data[i].material.indexOf('/')!==-1) { var arr = result.data[i].material.split('/'); var spanValue = document.getElementById("input").innerHTML; if (arr.indexOf(spanValue) !== -1 && result.data[i].gy_num == result.process) { $(".material")[i].value = wuliao; if (result.data[i].weight == 0) { $(".material")[i].setAttribute('style','color:red'); $(".nweight")[i].setAttribute('style','color:red'); } var the_bach = document.getElementsByClassName('bach')[i]; if(the_bach.readOnly == false){ the_bach.value = bach; $(".number")[i].focus(); var msg = new SpeechSynthesisUtterance("应投入物料"+result.data[i].material+"应投入重量"+result.data[i].nweight+"千克"); window.speechSynthesis.speak(msg); } error++; } else if (arr.indexOf($("#wuliao").val()) !== -1) { Layer.confirm("此物料不在当前工序,请确认!", { area: ['60%', '60%'], }); //语音播报 var msg = new SpeechSynthesisUtterance("此物料不在当前工序,请确认!"); window.speechSynthesis.speak(msg); error++; } } } if(error===0){ layer.confirm("此物料不在配方中,且没有替代料,请确认!", {//物料不存在提示错误信息 title: ['信息'], btn: ['确认'], area: ['60%', '60%'], }); var synth = window.speechSynthesis; var msg = new window.SpeechSynthesisUtterance('此物料不在配方中,且没有替代料,请确认!'); window.speechSynthesis.cancel(); synth.speak(msg); } } } }); //清空物料扫描后的值,下次直接重新扫描即可 $("#wuliao").val(''); } }); } }); } } }); num++; }else{ // return false; } } }); $(document).on('click','.submit',function () { if($("#c-operator").val() == "" || $("#c-inspector").val() == ""){ layer.confirm('请选择 操作人员 或 检验人员',{ title:'操作提示', btn:[], area: ['60%','60%'], closeBtn:0, time:3000 }); //语音播报 var msg = new SpeechSynthesisUtterance("请选择 操作人员 或 检验人员"); window.speechSynthesis.speak(msg); }else{ // console.log("批次号"+$("#c-bach").val()); // console.log("日期"+$("#c-date").val()); // console.log("操作人员"+$("#c-operator").val()); // console.log("检验人员"+$("#c-inspector").val()); // console.log("原材料"+$(this).parent().siblings().eq(0).children('input').val()); // console.log("应投重量"+$(this).parent().siblings().eq(1).children('input').val()); // console.log("工艺序号:"+$(this).parent().siblings().eq(2).children('input').val()); // console.log("投料重量"+$(this).parent().siblings().eq(3).children('input').val()); // console.log("原材料_批次号"$(this).parent().siblings().eq(4).children('input').val()); // console.log("操作记录"+$(this).parent().siblings().eq(5).children('input').val()); // if($(this).parent().siblings().eq(2).children('input').attr('readonly') == true){ // layer.confirm('此原材料已经保存',{ // title:'操作提示', // btn:[], // closeBtn:0, // time:2000 // }); // return false; // } //批次号 var bach = $("#c-bach").val(); //日期 var date = $("#c-date").val(); //操作人员 var operator = $("#c-operator").val(); //检验人员 var inspector = $("#c-inspector").val(); //原材料 var material = $(this).parent().siblings().eq(0).children('input').val(); //应投重量 var nweight = $(this).parent().siblings().eq(1).children('input').val(); //工艺序号 var gy_num = $(this).parent().siblings().eq(2).children('input').val(); //投料重量 var weight = $(this).parent().siblings().eq(3).children('input').val(); //原材料批次号 var material_bach = $(this).parent().siblings().eq(4).children('input').val(); //操作记录 var gy_name = $(this).parent().siblings().eq(5).children('input').val(); if(weight == ""){ layer.confirm('请输入投料重量',{ title:'操作提示', btn:[], area: ['60%','60%'], closeBtn:0, time:2000 }); //语音播报 var msg = new SpeechSynthesisUtterance("请输入投料重量"); window.speechSynthesis.speak(msg); }else{ $(this).text('已保存'); $(this).parent().siblings().eq(3).children('input').attr('disabled',true); $(this).parent().siblings().eq(4).children('input').attr('disabled',true); $(this).attr('disabled',true); } $.ajax({ type: "POST", url: "feeding/add", data: { bach: bach, date: date, operator: operator, inspector: inspector, material: material, nweight: nweight, gy_num: gy_num, weight: weight, material_bach: material_bach, gy_name: gy_name, }, success:function(data) { // console.log("ajax"+data); } }); } }); $('input').keydown( function (e) { let key = e.which; if (key == 13) { return false; } }); $(document).ready(function($) { 'use strict'; $(".print-link").on('click', function() { var status = 1; var total = 0; var stotal = 0; //开票人 $("#specifications").html($('#c-specifications').val()); //审核 $("#unit").html($('#c-unit').val()); //批次号 var bach = $('#c-bach').val(); //写入到add页面 $("#bach").html(bach); $("#formula").val($("#name").val()); //添加重量,包装规格,机组到表格内 for(var i=0;i<$(".tablestr").length;i++){ var weight = parseFloat($(".tablestr:eq("+i+")").children("tr td:eq(2)").children().val()); if(weight){ $(".print:eq("+i+")").children("tr td:eq(2)").html(weight); total += weight; } var weight2 = parseFloat($(".tablestr:eq("+i+")").children("tr td:eq(1)").children().val()); if(weight2){ $(".print:eq("+i+")").children("tr td:eq(1)").html(weight2); stotal += weight2; } } $("#stotal").html(stotal.toFixed(2)); if(total>0){ $("#total").html(total.toFixed(2)); } if(!$("#c-pickor").val()){ status = 2; } if(!$("#c-warehouseor").val()){ status = 2; } /*if (status == 2){ layer.confirm('领料人或仓管人为空,请检查!');return false; }*/ createQrcode(bach,80,80); var img = document.getElementById("myImage"); /// get image element var canvas = document.getElementsByTagName('canvas')[0]; img.src = canvas.toDataURL(); /// update image $.print('#print_area'); return false; }); function createQrcode(txt,width,height) { $("#qrcode").qrcode({ render: "canvas",//canvas和table两种渲染方式 width: width, height: height, correctLevel:3,//二维码纠错级别 background:"#ffffff",//背景颜色 foreground:"#000000", //二维码颜色 text:txt }); } }); Controller.api.bindevent(); }, edit: function () { Controller.api.bindevent(); }, api: { bindevent: function () { Form.api.bindevent($("form[role=form]")); } } }; return Controller; });