| var initCountVal = 0; | 
| var initAnfmeVal = "-"; | 
| var matCodeData = []; | 
| var currLocNo; | 
| var matCodeLayerIdx; | 
| var data = []; | 
| var checkStatus = []; | 
| var dataCheck = []; | 
| var admin; | 
| var printData = []; | 
| var layDate; | 
| function getCol() { | 
|     var cols = [ | 
|         {field: 'id', title: 'id', align: 'center',hide:true} | 
|         ,{type: 'checkbox',totalRow:true} | 
|         ,{field:'id', width:80, title: '', sort: true, totalRowText: '合计:',hide: true} | 
|         ,{field: 'pakinTime$', title: '入库时间', align: 'center' , sort:true} | 
|         ,{field: 'matnr', align: 'center',title: '存货编码',hide:true,edit:true} | 
|         ,{field: 'brand', align: 'center',title: '牌号',edit:true} | 
|         ,{field: 'batch', align: 'center',title: '批号',edit:true, sort:true} | 
|         ,{field: 'packageNo', align: 'center',title: '包装号',edit:true, sort:true} | 
|         ,{field: 'proDate', align: 'center',title: '生产日期',edit:true, width: 100} | 
|         ,{field: 'weight', align: 'center',title: '重量KG',edit:true,totalRow:true} | 
|         ,{field: 'filmWrap', align: 'center',title: '缠膜',edit:true,hide:true} | 
|         ,{field: 'fingerMelting', align: 'center',title: '熔指,g/10min',edit:true} | 
|         ,{field: 'water', align: 'center',title: '水分,ppm', hide:true,edit:true} | 
|         ,{field: 'fusingPoint', align: 'center',title: '熔点,℃',edit:true} | 
|         ,{field: 'vadf1', align: 'center',title: '挥发段,%', hide:true,edit:true} | 
|         ,{field: 'vadf2', align: 'center',title: '分解段,%', hide:true,edit:true} | 
|         ,{field: 'yellowness', align: 'center',title: '黄度',edit:true} | 
|         ,{field: 'opacity', align: 'center',title: '不透明度,%',edit:true} | 
|         ,{field: 'lactideContent', align: 'center',title: '丙交酯含量,%',edit:true} | 
|         ,{field: 'l', align: 'center',title: 'L*', hide:true,edit:true} | 
|         ,{field: 'a', align: 'center',title: 'a*', hide:true,edit:true} | 
|         ,{field: 'b', align: 'center',title: 'b*', hide:true,edit:true} | 
|         ,{field: 'fillIn', align: 'center',title: '填充,%',hide:true,edit:true} | 
|         ,{field: 'str1', align: 'center',title: '拉伸强度,MPa',hide:true,edit:true} | 
|         ,{field: 'str2', align: 'center',title: '断裂伸长率,%',hide:true,edit:true} | 
|         ,{field: 'str3', align: 'center',title: '缺口冲击,KJ/m2',hide:true,edit:true} | 
|         ,{field: 'str4', align: 'center',title: '维卡,℃',hide:true,edit:true} | 
|         ,{field: 'str5', align: 'center',title: '半结晶时间,min',hide:true,edit:true} | 
|         ,{field: 'str6', align: 'center',title: '结晶度,%',hide:true,edit:true} | 
|         ,{field: 'packageType', align: 'center',title: '包装类型',edit:true} | 
|         ,{field: 'zpalletType', align: 'center',title: '托盘类型',edit:true} | 
|         ,{field: 'massState', align: 'center',title: '质量状态',edit:true} | 
|         ,{field: 'problem', align: 'center',title: '备注',edit:true,hide:true} | 
|         ,{field: 'direction', align: 'center',title: '应用方向',edit:true,hide:true} | 
|         ,{field: 'position', align: 'center',title: '存放位置',edit:true,hide:true} | 
|         ,{field: 'stash', align: 'center',title: '仓库',edit:true,hide:true} | 
|         ,{field: 'locNo', align: 'center',title: '库位',edit:true} | 
|         ,{field: 'owner', align: 'center',title: '主体',edit:true} | 
|         ,{field: 'type', align: 'center',title: '物资类别',hide:true,edit:true} | 
|         ,{field: 'proOrderNo', align: 'center',title: '生产订单编号',hide:true,edit:true} | 
|         ,{field: 'workshop', align: 'center',title: '生产车间',hide:true,edit:true} | 
|         ,{field: 'line', align: 'center',title: '生产线',hide:true,edit:true} | 
|         ,{field: 'weightAnfme', align: 'center',title: '剩余重量(KG)',edit:true,totalRow:true} | 
|         ,{field: 'qtyAnfme', align: 'center',title: '待出库重量(KG)',hide:true,edit:true} | 
|         ,{field: 'status', align: 'center',title: '状态', templet: setState ,edit:true} | 
|         ,{field: 'stockFreeze', align: 'center',title: '库存冻结', templet: '#stockFreezeTpl'} | 
|         ,{field: 'stockFreezeBy', align: 'center',title: '操作人员',hide:true} | 
|         ,{field: 'stockFreezeDate$', align: 'center',title: '操作日期',hide:true} | 
|         ,{align: 'center', title: '流转明细', toolbar: '#tbLook'} | 
|         ,{field: 'createTime$', title: '创建时间', align: 'center' , sort:true,hide:true} | 
|         ,{field: 'newBrand', align: 'center',title: '关联牌号',edit:true,hide:true} | 
|         ,{field: 'newBatch', align: 'center',title: '关联批号',edit:true, width: 150, sort:true,hide:true} | 
|         ,{field: 'newPackageNo', align: 'center',title: '关联包装号',edit:true, sort:true,hide:true} | 
|         // ,{field: 'orderNo', align: 'center',title: '单号', hide:true} | 
|         // ,{field: 'pakoutTime', align: 'center',title: '出库时间', hide:true} | 
|         // ,{field: 'orderWeight', align: 'center',title: '重量', hide:true} | 
|         // ,{field: 'handlerBy', align: 'center',title: '经办人', hide:true} | 
|         ,{field: 'transfer', align: 'center',title: '退货标识', hide:true} | 
|         ,{field: 'modifyUser', align: 'center',title: '退货人', hide:true} | 
|         ,{field: 'createUser', align: 'center',title: '退货备注', hide:true} | 
|         // ,{field: 'customer', align: 'center',title: '客户名称', hide:true} | 
|         // ,{field: 'allocate', align: 'center',title: '调拨到', hide:true} | 
|         // ,{field: 'memo', align: 'center',title: '备注', hide:true} | 
|     ]; | 
|     return cols; | 
| } | 
|   | 
| function setState(data){ | 
|     if(data.status === "待入库"){ | 
|         return  "<span style='color: orange'>待入库</span>" | 
|     }else if(data.status === "已入库"){ | 
|         return  "<span style='color: blue'>已入库</span>" | 
|     }else if(data.status === "待出库"){ | 
|         return  "<span style='color: red'>待出库</span>" | 
|     }else if(data.status === "部分出库"){ | 
|         return  "<span style='color: black'>部分出库</span>" | 
|     }else if(data.status === "全部出库"){ | 
|         return  "<span style='color: gray'>全部出库</span>" | 
|     }else if(data.status === "暂入库"){ | 
|         return  "<span style='color: purple'>暂入库</span>" | 
|     } | 
| } | 
|   | 
| layui.config({ | 
|     base: baseUrl + "/static/layui/lay/modules/" | 
| }).use(['table','laydate', 'form', 'admin', 'xmSelect', 'dropdown'], function() { | 
|     var dropdown = layui.dropdown; | 
|     var table = layui.table; | 
|     var $ = layui.jquery; | 
|     var layer = layui.layer; | 
|     laydate = layui.laydate; | 
|     var form = layui.form; | 
|     admin = layui.admin; | 
|   | 
|     // 模拟从后端接口获取数据 | 
|     $.ajax({ | 
|         url: baseUrl + "/pla/dropdownValues/list", | 
|         headers: {'token': localStorage.getItem('token')}, | 
|         method: 'GET', | 
|         success: function (res) { | 
|             if (res.code === 200) { | 
|                 var data = res.data | 
|   | 
|                 if (data.owner && Array.isArray(data.owner)) { | 
|                     data.owner.forEach(function(item) { | 
|                         $('#ownerSelect').append(new Option(item, item)); | 
|                     }); | 
|                 } | 
|   | 
|                 if (data.workshop && Array.isArray(data.workshop)) { | 
|                     data.workshop.forEach(function(item) { | 
|                         $('#workshopSelect').append(new Option(item, item)); | 
|                     }); | 
|                 } | 
|   | 
|                 // 重新渲染 LayUI 表单 | 
|                 form.render('select'); | 
|             } | 
|         } | 
|     }); | 
|   | 
|     // 日期时间范围 | 
|     laydate.render({ | 
|         elem: '#ID-laydate-range-datetime', | 
|         type: 'datetime', | 
|         range: true | 
|     }); | 
|   | 
|   | 
|     // 数据渲染 | 
|     tableIns = table.render({ | 
|         elem: '#plaDetl', | 
|         headers: {token: localStorage.getItem('token')}, | 
|         url: baseUrl+'/pla/list/auth?step=2', | 
|         page: true, | 
|         totalRow: true, // 开启合计行 | 
|         height: function(){ | 
|             var otherHeight = $('.function-area').outerHeight() + $('#search-box').outerHeight(); // 自定义其他区域的高度 | 
|             console.log($(window).height() - otherHeight); | 
|             return $(window).height() - otherHeight - 100; // 返回 number 类型 | 
|         }, | 
|         //height: 'full', | 
|         limit: 500, | 
|         limits: [16, 50, 100, 200, 500,], | 
|         even: true, | 
|         toolbar: '#toolbar', | 
|         cellMinWidth: 50, | 
|         cols: [function(){ | 
|             var arr = getCol(); | 
|   | 
|             // 初始化筛选状态 | 
|             var local = layui.data('table-filter-test'); // 获取对应的本地记录 | 
|             layui.each(arr, function(index, item){ | 
|                 if(item.field in local){ | 
|                     item.hide = local[item.field]; | 
|                 } | 
|             }); | 
|             return arr; | 
|         }() ], | 
|         where:{ | 
|             type: function() { | 
|                 const tabPosition = JSON.parse(sessionStorage.getItem('easyweb-iframe_tempData')).tabPosition | 
|                 return tabPosition.match(/\d+$/)[0] === '90646' ? '改性树脂' : | 
|                     (tabPosition.match(/\d+$/)[0] === '90657' ? '纯树脂' : '') | 
|                  } | 
|             }, | 
|         request: { | 
|             pageName: 'curr', | 
|             pageSize: 'limit' | 
|         }, | 
|         parseData: function (res) { | 
|             return { | 
|                 'code': res.code, | 
|                 'msg': res.msg, | 
|                 'count': res.data.total, | 
|                 'data': res.data.records, | 
|             } | 
|         }, | 
|         response: { | 
|             statusCode: 200 | 
|         }, | 
|         done: function(res, curr, count) { | 
|             // 记录筛选状态 | 
|             var that = this; | 
|             that.elem.next().on('mousedown', 'input[lay-filter="LAY_TABLE_TOOL_COLS"]+', function(){ | 
|                 var input = $(this).prev()[0]; | 
|                 // 此处表名可任意定义 | 
|                 layui.data('table-filter-test', { | 
|                     key: input.name | 
|                     ,value: input.checked | 
|                 }) | 
|             }); | 
|   | 
|             //$(".lavui-table-grid-down").hide(); | 
|             if (res.code === 403) { | 
|                 top.location.href = baseUrl+"/"; | 
|             } | 
|             tableData = table.cache.locDetl; | 
|             console.log(tableData); | 
|             pageCurr=curr; | 
|             limit(); | 
|             form.on('checkbox(tableCheckbox)', function (data) { | 
|                 var _index = $(data.elem).attr('table-index')||0; | 
|                 if(data.elem.checked){ | 
|                     res.data[_index][data.value] = 'Y'; | 
|                 }else{ | 
|                     res.data[_index][data.value] = 'N'; | 
|                 } | 
|             }); | 
|             let headerTop = $('.layui-table-header').offset().top; //获取表格头到文档顶部的距离 | 
|             let headerPage = $('.layui-table-page').offset().top; //获取表格底部文档顶部的距离 | 
|             $(window).scroll(function () { | 
|                 if ((headerTop - $(window).scrollTop()) < 0) { //超过了 | 
|                     $('.layui-table-header').addClass('table-header-fixed'); //添加样式,固定住表头 | 
|                 } else { //没超过 | 
|                     $('.layui-table-header').removeClass('table-header-fixed'); //移除样式 | 
|                 } | 
|             }); | 
|         } | 
|     }); | 
|   | 
|     // 渲染物料选择 | 
|     var matXmSelect = xmSelect.render({ | 
|         el: '#mat', | 
|         style: { | 
|             width: '270px', | 
|         }, | 
|         autoRow: true, | 
|         toolbar: { show: true }, | 
|         filterable: true, | 
|         remoteSearch: true, | 
|         remoteMethod: function(val, cb, show){ | 
|             $.ajax({ | 
|                 url: baseUrl+"/pla/batch/all/get/kv", | 
|                 headers: {'token': localStorage.getItem('token')}, | 
|                 data: { | 
|                     condition: val | 
|                 }, | 
|                 method: 'POST', | 
|                 success: function (res) { | 
|                     if (res.code === 200){ | 
|                         cb(res.data) | 
|                     } else { | 
|                         cb([]); | 
|                         layer.msg(res.msg, {icon: 2}); | 
|                     } | 
|                 } | 
|             }); | 
|         } | 
|     }) | 
|   | 
|     // 复选框事件 | 
|     table.on('checkbox(plaDetl)', function(obj){ | 
|         // console.log(obj); // 查看对象所有成员 | 
|         // console.log(obj.checked); // 当前是否选中状态 | 
|         // console.log(obj.data); // 选中行的相关数据 | 
|         // console.log(obj.type); // 若触发的是全选,则为:all;若触发的是单选,则为:one | 
|         var checkStatus = table.checkStatus(obj.config.id) | 
|         var selectedNum = checkStatus.data.length; | 
|         var weightAll = 0; | 
|         var weightAnfmeAll = 0; | 
|   | 
|         for (var i in checkStatus.data){ | 
|             weightAll += checkStatus.data[i].weight; | 
|             weightAnfmeAll += checkStatus.data[i].weightAnfme; | 
|         } | 
|   | 
|         $('.layui-table-total').find('.laytable-cell-1-0-1').text(selectedNum); | 
|         $('.layui-table-total').find('.laytable-cell-1-0-9').text(weightAll); | 
|         $('.layui-table-total').find('.laytable-cell-1-0-41').text(weightAnfmeAll); | 
|   | 
|     }); | 
|   | 
|     // 行单击事件( 双击事件为: rowDouble ) | 
|     table.on('row(plaDetl)', function(obj){ | 
|   | 
|     }); | 
|   | 
|     table.on('tool(plaDetl)', function (obj) { | 
|         var data = obj.data; | 
|         var layEvent = obj.event; | 
|         if (layEvent === 'look') { | 
|             var $a = $(obj.tr).find('a[lay-event="look"]'); | 
|             var offset = $a.offset(); | 
|             var top = offset.top; | 
|             var left = offset.left; | 
|             layer.open({ | 
|                 type: 1, | 
|                 title: false, | 
|                 area: '1200px', | 
|                 offset: ['600px', (left - 1200 + $a.outerWidth()) + 'px'], | 
|                 shade: .01, | 
|                 shadeClose: true, | 
|                 fixed: false, | 
|                 content: '<table id="lookSSXMTable" lay-filter="lookSSXMTable"></table>', | 
|                 success: function (layero) { | 
|                     table.render({ | 
|                         elem: '#lookSSXMTable', | 
|                         headers: {token: localStorage.getItem('token')}, | 
|                         url: baseUrl+'/plaQty/list/auth', | 
|                         where: { | 
|                             brand: data.brand, | 
|                             batch: data.batch, | 
|                             package_no: data.packageNo | 
|                         }, | 
|                         page: true, | 
|                         cellMinWidth: 100, | 
|                         cols: [[ | 
|                             {type: 'numbers'}, | 
|                             {field: 'orderNo', title: '单号'}, | 
|                             {field: 'pakoutTime', title: '出库时间'}, | 
|                             {field: 'orderWeight', title: '重量'}, | 
|                             {field: 'handlerBy', title: '经办人'}, | 
|                             {field: 'transfer', title: '流转形式'}, | 
|                             {field: 'customer', title: '客户名称'}, | 
|                             {field: 'allocate', title: '调拨到'}, | 
|                             {field: 'memo', title: '备注'}, | 
|                         ]], | 
|                         request: { | 
|                             pageName: 'curr', | 
|                             pageSize: 'limit' | 
|                         }, | 
|                         parseData: function (res) { | 
|                             return { | 
|                                 'code': res.code, | 
|                                 'msg': res.msg, | 
|                                 'count': res.data.total, | 
|                                 'data': res.data.records | 
|                             } | 
|                         }, | 
|                         response: { | 
|                             statusCode: 200 | 
|                         }, | 
|                         done: function () { | 
|                             $(layero).find('.layui-table-view').css('margin', '0'); | 
|                         }, | 
|                         size: '' | 
|                     }); | 
|                 } | 
|             }); | 
|         } | 
|   | 
|     }) | 
|   | 
|     // 监听头工具栏事件 | 
|     table.on('toolbar(plaDetl)', function (obj) { | 
|         var checkStatus = table.checkStatus(obj.config.id) | 
|         printData = checkStatus; | 
|         switch(obj.event) { | 
|             case 'updateData': | 
|                 var data = checkStatus.data; | 
|                 if (data.length === 0){ | 
|                     layer.msg('请选择数据'); | 
|                 } else { | 
|                     layer.confirm('确定修改'+(data.length===1?'此':data.length)+'条数据吗', function(){ | 
|                         $.ajax({ | 
|                             url: baseUrl+"/pla/update/auth", | 
|                             headers: {'token': localStorage.getItem('token')}, | 
|                             data: JSON.stringify(data), | 
|                             contentType:'application/json;charset=UTF-8', | 
|                             method: 'POST', | 
|                             traditional:true, | 
|                             success: function (res) { | 
|                                 if (res.code === 200){ | 
|                                     layer.closeAll(); | 
|                                     tableReload(false); | 
|                                 } else if (res.code === 403){ | 
|                                     top.location.href = baseUrl+"/"; | 
|                                 } else { | 
|                                     layer.msg(res.msg) | 
|                                 } | 
|                             } | 
|                         }) | 
|                     }); | 
|                 } | 
|                 break; | 
|             case "deleteData": | 
|                 var data = checkStatus.data; | 
|                 if (data.length === 0){ | 
|                     layer.msg('请选择数据'); | 
|                 } else { | 
|                     layer.confirm('确定删除'+(data.length===1?'此':data.length)+'条数据吗', function(){ | 
|                         $.ajax({ | 
|                             url: baseUrl+"/pla/delete/auth", | 
|                             headers: {'token': localStorage.getItem('token')}, | 
|                             data: JSON.stringify(data), | 
|                             contentType:'application/json;charset=UTF-8', | 
|                             method: 'POST', | 
|                             traditional:true, | 
|                             success: function (res) { | 
|                                 if (res.code === 200){ | 
|                                     layer.closeAll(); | 
|                                     tableReload(false); | 
|                                 } else if (res.code === 403){ | 
|                                     top.location.href = baseUrl+"/"; | 
|                                 } else { | 
|                                     layer.msg(res.msg) | 
|                                 } | 
|                             } | 
|                         }) | 
|                     }); | 
|                 } | 
|                 break; | 
|             case "viladate": | 
|                 var data = checkStatus.data; | 
|                 if (data.length === 0){ | 
|                     layer.msg('请选择数据'); | 
|                 } else { | 
|                     layer.confirm('确定校验'+(data.length===1?'此':data.length)+'条数据吗', function(){ | 
|                         $.ajax({ | 
|                             url: baseUrl+"/pla/viladate/auth", | 
|                             headers: {'token': localStorage.getItem('token')}, | 
|                             data: JSON.stringify(data), | 
|                             contentType:'application/json;charset=UTF-8', | 
|                             method: 'POST', | 
|                             traditional:true, | 
|                             success: function (res) { | 
|                                 if (res.code === 200){ | 
|                                     layer.closeAll(); | 
|                                     tableReload(false); | 
|                                 } else if (res.code === 403){ | 
|                                     top.location.href = baseUrl+"/"; | 
|                                 } else { | 
|                                     layer.msg(res.msg) | 
|                                 } | 
|                             } | 
|                         }) | 
|                     }); | 
|                 } | 
|                 break; | 
|             case 'freezeData': | 
|                 var data = checkStatus.data; | 
|                 if (data.length === 0){ | 
|                     layer.msg('请选择数据'); | 
|                 } else { | 
|                     layer.confirm('确定冻结'+(data.length===1?'此':data.length)+'条数据吗', function(){ | 
|                         $.ajax({ | 
|                             url: baseUrl+"/pla/updateStockFreeze", | 
|                             headers: {'token': localStorage.getItem('token')}, | 
|                             data: JSON.stringify(data), | 
|                             contentType:'application/json;charset=UTF-8', | 
|                             method: 'POST', | 
|                             traditional:true, | 
|                             success: function (res) { | 
|                                 if (res.code === 200){ | 
|                                     layer.closeAll(); | 
|                                     tableReload(false); | 
|                                     layer.msg(res.msg,{icon:1}) | 
|                                 } else if (res.code === 403){ | 
|                                     top.location.href = baseUrl+"/"; | 
|                                 } else { | 
|                                     layer.msg(res.msg,{icon:2}) | 
|                                 } | 
|                             } | 
|                         }) | 
|                     }); | 
|                 } | 
|                 break; | 
|             case 'disFreezeData': | 
|                 var data = checkStatus.data; | 
|                 if (data.length === 0){ | 
|                     layer.msg('请选择数据'); | 
|                 } else { | 
|                     layer.confirm('确定解除'+(data.length===1?'此':data.length)+'条数据的冻结吗', function(){ | 
|                         $.ajax({ | 
|                             url: baseUrl+"/pla/updateStockDisFreeze", | 
|                             headers: {'token': localStorage.getItem('token')}, | 
|                             data: JSON.stringify(data), | 
|                             contentType:'application/json;charset=UTF-8', | 
|                             method: 'POST', | 
|                             traditional:true, | 
|                             success: function (res) { | 
|                                 if (res.code === 200){ | 
|                                     layer.closeAll(); | 
|                                     tableReload(false); | 
|                                     layer.msg(res.msg,{icon:1}) | 
|                                 } else if (res.code === 403){ | 
|                                     top.location.href = baseUrl+"/"; | 
|                                 } else { | 
|                                     layer.msg(res.msg,{icon:2}) | 
|                                 } | 
|                             } | 
|                         }) | 
|                     }); | 
|                 } | 
|                 break; | 
|             // 批量打印 | 
|             case "btnPrintBatch": | 
|                 printMatCodeNos = []; | 
|                 var data = checkStatus.data; | 
|                 if (data.length === 0){ | 
|                     layer.msg('请选择打印数据'); | 
|                 } else { | 
|                     layer.open({ | 
|                         type: 1, | 
|                         area: ['600px', '750px'], | 
|                         title: '批量打印 [数量'+ data.length +']', | 
|                         shadeClose: true, | 
|                         content: $('#printDataDiv'), | 
|                         success: function(layero, index){ | 
|                             for (var i = 0; i<data.length;i++) { | 
|                                 printMatCodeNos.push(data[i].matnr); | 
|                             } | 
|                         }, | 
|                         end: function () { | 
|                         } | 
|                     }); | 
|                 } | 
|                 break; | 
|         } | 
|     }) | 
|   | 
|     // 模板选择 | 
|     form.on('radio(selectTemplateRadio)', function (data) { | 
|         $('.template-preview').hide(); | 
|         $('#template-preview-'+data.value).show(); | 
|     }); | 
|   | 
|     // 开始打印 | 
|     form.on('submit(doPrint)', function (data) { | 
|         var templateNo = data.field.selectTemplate; | 
|         var templateDom = $("#templatePreview"+templateNo); | 
|         var className = templateDom.attr("class"); | 
|         layer.closeAll(); | 
|         for (let i=0;i<printData.data.length;i++){ | 
|             if (className === 'template-barcode') { | 
|                 printData.data[i]["barcodeUrl"]=baseUrl+"/mac/code/auth?type=1¶m="+(printData.data[i].brand+";"+printData.data[i].batch+";"+printData.data[i].packageNo+";"+printData.data[i].line) | 
|             } else { | 
|                 printData.data[i]["barcodeUrl"]=baseUrl+"/mac/code/auth?type=2¶m="+(printData.data[i].brand+";"+printData.data[i].batch+";"+printData.data[i].packageNo+";"+printData.data[i].line) | 
|             } | 
|         } | 
|         var tpl = templateDom.html(); | 
|         var template = Handlebars.compile(tpl); | 
|         var html = template(printData); | 
|         var box = $("#box"); | 
|         box.html(html);box.show(); | 
|         box.print({mediaPrint:true}); | 
|         box.hide(); | 
|         // $.ajax({ | 
|         //     url: baseUrl+"/pla/print/auth", | 
|         //     headers: {'token': localStorage.getItem('token')}, | 
|         //     data: JSON.stringify(printData.data), | 
|         //     contentType:'application/json;charset=UTF-8', | 
|         //     method: 'POST', | 
|         //     async: false, | 
|         //     success: function (res) { | 
|         //         if (res.code === 200){ | 
|         //             layer.closeAll(); | 
|         //             for (let i=0;i<res.data.length;i++){ | 
|         //                 var templateDom = $("#templatePreview"+templateNo); | 
|         //                 var className = templateDom.attr("class"); | 
|         //                 if (className === 'template-barcode') { | 
|         //                     res.data[i]["barcodeUrl"]=baseUrl+"/mac/code/auth?type=1¶m="+res.data[i].matnr; | 
|         //                 } else { | 
|         //                     res.data[i]["barcodeUrl"]=baseUrl+"/mac/code/auth?type=2¶m="+res.data[i].matnr; | 
|         //                 } | 
|         //             } | 
|         //             var tpl = templateDom.html(); | 
|         //             var template = Handlebars.compile(tpl); | 
|         //             var html = template(res); | 
|         //             var box = $("#box"); | 
|         //             box.html(html);box.show(); | 
|         //             box.print({mediaPrint:true}); | 
|         //             box.hide(); | 
|         //         } else if (res.code === 403){ | 
|         //             top.location.href = baseUrl+"/"; | 
|         //         }else { | 
|         //             layer.msg(res.msg) | 
|         //         } | 
|         //     } | 
|         // }) | 
|     }); | 
|   | 
|     // 搜索栏搜索事件 | 
|     form.on('submit(search)', function (data) { | 
|         pageCurr = 1; | 
|         tableReload(false); | 
|     }); | 
|   | 
|     // 用来标识搜索重置时,改性树脂和纯树脂从点击事件传过来名称,进行物质类别限定 | 
|     let customValue = undefined | 
|     // 重置事件 | 
|     form.on('submit(reset)', function (data) { | 
|         customValue = $(this).attr('data-value'); | 
|         reset(); | 
|     }); | 
|   | 
|     function reset() { | 
|         clearFormVal($('#search-box')); | 
|         matCodeData = []; | 
|         tableReload(); | 
|   | 
|         // locTips(false); | 
|     } | 
|   | 
|     // 重载表格 | 
|     // function tableReload() { | 
|     //     tableIns.reload({data: matCodeData}); | 
|     // } | 
|     function tableReload(child) { | 
|         var searchData = { | 
|         }; | 
|         $.each($('#search-box [name]').serializeArray(), function() { | 
|             searchData[this.name] = this.value; | 
|         }); | 
|         if(customValue !== undefined){ | 
|             searchData['type'] = customValue | 
|         } | 
|         if(searchData.select){ | 
|             searchData.batch = searchData.select; | 
|             searchData.select = null; | 
|         } | 
|         (child ? parent.tableIns : tableIns).reload({ | 
|             where: searchData, | 
|             page: { | 
|                 curr: pageCurr | 
|             }, | 
|             done: function (res, curr, count) { | 
|                 if (res.code === 403) { | 
|                     top.location.href = baseUrl+"/"; | 
|                 } | 
|                 pageCurr=curr; | 
|                 if (res.data.length === 0 && count !== 0) { | 
|                     tableIns.reload({ | 
|                         where: searchData, | 
|                         page: { | 
|                             curr: pageCurr-1 | 
|                         } | 
|                     }); | 
|                     pageCurr -= 1; | 
|                 } | 
|                 limit(child); | 
|             } | 
|         }); | 
|     } | 
|   | 
|     $(document).on('click','#updateZpallet',function (){ | 
|         debugger; | 
|     }) | 
|     $("[name='layTableCheckbox']").click(function(){ // 通过name属性选取元素,并添加点击事件 | 
|         alert("Hello World!"); // 在控制台输出提示信息 | 
|         debugger | 
|     }); | 
|   | 
|   | 
|   | 
|     $(document).on('click','#add', function () { | 
|         var now = dateToStr(new Date()) | 
|         var newRow = {ioTime : now}; | 
|         data = table.cache.plaDetl; | 
|         data.push(newRow); | 
|         table.reload('plaDetl',{ | 
|             data: data | 
|         }) | 
|     }) | 
|   | 
|     $(document).on('click','#delete', function () { | 
|         let dataNew = []; | 
|         let data = table.cache.plaDetl; | 
|         for(var i=0; i<data.length; i++){ | 
|             if(!data[i].LAY_CHECKED){ | 
|                 dataNew.push(data[i]); | 
|             } | 
|         } | 
|         table.reload('plaDetl',{ | 
|             data: dataNew | 
|         }) | 
|     }) | 
|   | 
|     $(document).on('click','#submit', function () { | 
|         let data = table.cache.plaDetl; | 
|         let dataSave = []; | 
|         let dataOld = []; | 
|         for(var i=0; i<data.length; i++){ | 
|             if(data[i].LAY_CHECKED){ | 
|                 if(!data[i].batch){ | 
|                     layer.msg("有未填写字段"); | 
|                     return; | 
|                 } | 
|                 dataSave.push(data[i]); | 
|             }else { | 
|                 dataOld.push(data[i]); | 
|             } | 
|         } | 
|         $.ajax({ | 
|             url: baseUrl+"/pla/update/auth", | 
|             headers: {'token': localStorage.getItem('token')}, | 
|             data: JSON.stringify(dataSave), | 
|             contentType:'application/json;charset=UTF-8', | 
|             method: 'POST', | 
|             async: false, | 
|             success: function (res) { | 
|                 if (res.code === 200){ | 
|                     layer.msg("提交成功"); | 
|                     table.reload('plaDetl',{ | 
|                         data: dataOld | 
|                     }) | 
|                 } else if (res.code === 403){ | 
|   | 
|                 }else { | 
|                     layer.msg(res.msg, {icon: 2}) | 
|                 } | 
|             } | 
|         }) | 
|     }) | 
|   | 
|     $(document).on('click','#rework', function () { | 
|         let data = table.cache.plaDetl; | 
|         let dataSave = []; | 
|         let dataOld = []; | 
|         for(var i=0; i<data.length; i++){ | 
|             if(data[i].LAY_CHECKED){ | 
|                 dataSave.push(data[i]); | 
|             }else { | 
|                 dataOld.push(data[i]); | 
|             } | 
|         } | 
|   | 
|         if(!dataSave || dataSave.length < 1){ | 
|             layer.msg("未勾选,请先勾选需要重做的库存"); | 
|             return; | 
|         } | 
|   | 
|         layer.confirm('确定重做选中的库存吗?', { | 
|             shade: .1, | 
|             skin: 'layui-layer-admin' | 
|         }, function (i) { | 
|             layer.close(i); | 
|             $.ajax({ | 
|                 url: baseUrl+"/pla/rework/auth", | 
|                 headers: {'token': localStorage.getItem('token')}, | 
|                 data: JSON.stringify(dataSave), | 
|                 contentType:'application/json;charset=UTF-8', | 
|                 method: 'POST', | 
|                 async: false, | 
|                 success: function (res) { | 
|                     if (res.code === 200){ | 
|                         layer.msg("提交成功"); | 
|                         table.reload('productionInfoTable',{ | 
|                             data: dataOld | 
|                         }) | 
|                     } else if (res.code === 403){ | 
|   | 
|                     }else { | 
|                         layer.msg(res.msg, {icon: 2}) | 
|                     } | 
|                 } | 
|             }) | 
|         }) | 
|     }) | 
|   | 
|     $(document).on('click','#updateZpallet', function () { | 
|         let data = table.cache.plaDetl; | 
|         let dataSave = []; | 
|         let dataOld = []; | 
|         for(var i=0; i<data.length; i++){ | 
|             if(data[i].LAY_CHECKED){ | 
|                 data[i].step = 1; | 
|                 dataSave.push(data[i]); | 
|             }else { | 
|                 dataOld.push(data[i]); | 
|             } | 
|         } | 
|         dataCheck = dataSave; | 
|   | 
|         if(!dataSave || dataSave.length < 1){ | 
|             layer.msg("未勾选,请先勾选需要更改的库存"); | 
|             return; | 
|         } | 
|   | 
|         layer.open({ | 
|             type: 2, | 
|             title: '换包装/托盘/缠膜', | 
|             maxmin: true, | 
|             area: ['500px', top.detailHeight], | 
|             shadeClose: false, | 
|             content: 'update.html', | 
|             success: function(layero, index){ | 
|                 layer.getChildFrame('#data-detail-submit-edit', index).hide(); | 
|                 top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false); | 
|                 layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"}); | 
|   | 
|                 var iframe = window['layui-layer-iframe' + index]; | 
|                 iframe.child(dataSave) | 
|             } | 
|         }); | 
|     }) | 
|   | 
|     $(document).on('click','#sellout', function () { | 
|   | 
|         var data = table.cache.plaDetl; | 
|         var dataSave = []; | 
|         var dataOld = []; | 
|         var brand; | 
|   | 
|         for(var i=0; i<data.length; i++){ | 
|             if(data[i].LAY_CHECKED){ | 
|                 if(data[i].status === "暂入库" || data[i].status === "待入库" || data[i].status === "全部出库"|| data[i].weightAnfme < data[i].qtyAnfme){ | 
|                     layer.msg("选中的明细还未入库或者已全部出库或者没有剩余可出重量,请重新选择"); | 
|                     return; | 
|                 } | 
|   | 
|                 brand = brand ? brand : data[i].brand; | 
|   | 
|                 if(brand != data[i].brand){ | 
|                     layer.msg("选中的明细中含有多种牌号,请重新选择"); | 
|                     return; | 
|                 } | 
|                 //if (data[i].zpalletType == null && data[i].packageType == null && data[i].massState == null) { | 
|                 if (typeof data[i].massState === 'undefined' || data[i].massState === null || data[i].massState.trim().length === 0){ | 
|                     layer.msg("质量指标未上传"); | 
|                     return; | 
|                 } | 
|                 // if(data[i].stockFreeze === 0){ | 
|                 //     layer.msg("选中的明细中含有冻结的库存,请解冻后操作"); | 
|                 //     return; | 
|                 // } | 
|                 dataSave.push(data[i]); | 
|             }else { | 
|                 dataOld.push(data[i]); | 
|             } | 
|         } | 
|         dataCheck = dataSave; | 
|   | 
|         if(!dataSave || dataSave.length < 1){ | 
|             layer.msg("未勾选,请先勾选需要更改的库存"); | 
|             return; | 
|         } | 
|   | 
|         layer.open({ | 
|             type: 2, | 
|             title: '出库', | 
|             maxmin: true, | 
|             area: ['800px', top.detailHeight], | 
|             shadeClose: false, | 
|             content: 'sellout.html', | 
|             success: function(layero, index){ | 
|                 //layer.getChildFrame('#data-detail-submit-edit', index).hide(); | 
|                 top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false); | 
|                 layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"}); | 
|   | 
|                 var iframe = window['layui-layer-iframe' + index]; | 
|                 iframe.child(dataSave) | 
|             }, | 
|             end: function() { | 
|                 // ✅ 子页面关闭时刷新表格 | 
|                 tableReload(false); // 或根据实际情况传 true/false | 
|             } | 
|         }); | 
|     }) | 
|   | 
|     $(document).on('click','#pickup', function () { | 
|   | 
|         let data = table.cache.plaDetl; | 
|         let dataSave = []; | 
|         let dataOld = []; | 
|         for(var i=0; i<data.length; i++){ | 
|             if(data[i].LAY_CHECKED){ | 
|                 if(data[i].status === "暂入库" || data[i].status === "待入库" || data[i].status === "全部出库"){ | 
|                     layer.msg("选中的明细还未入库或者已全部出库,请重新选择"); | 
|                     return; | 
|                 } | 
|                 dataSave.push(data[i]); | 
|             }else { | 
|                 dataOld.push(data[i]); | 
|             } | 
|         } | 
|         dataCheck = dataSave; | 
|   | 
|         if(!dataSave || dataSave.length < 1){ | 
|             layer.msg("未勾选,请先勾选需要更改的库存"); | 
|             return; | 
|         } | 
|         if(dataSave.length > 1){ | 
|             layer.msg("请勾选一条库存明细"); | 
|             return; | 
|         } | 
|   | 
|         layer.open({ | 
|             type: 2, | 
|             title: '卖出', | 
|             maxmin: true, | 
|             area: ['800px', top.detailHeight], | 
|             shadeClose: false, | 
|             content: 'pickup.html', | 
|             success: function(layero, index){ | 
|                 //layer.getChildFrame('#data-detail-submit-edit', index).hide(); | 
|                 top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false); | 
|                 layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"}); | 
|   | 
|                 var iframe = window['layui-layer-iframe' + index]; | 
|                 iframe.child(dataSave) | 
|             } | 
|         }); | 
|     }) | 
|   | 
|     $(document).on('click','#returned', function () { | 
|   | 
|         layer.open({ | 
|             type: 2, | 
|             title: '退回', | 
|             maxmin: true, | 
|             area: ['800px', '800px'], | 
|             shadeClose: false, | 
|             content: 'returned.html', | 
|             success: function(layero, index){ | 
|                 layer.getChildFrame('#data-detail-submit-edit', index).hide(); | 
|                 top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false); | 
|   | 
|             } | 
|         }); | 
|     }) | 
|     $(document).on('click','#updateOwner', function () { | 
|         let data = table.cache.plaDetl; | 
|         let dataSave = []; | 
|         let dataOld = []; | 
|         for(var i=0; i<data.length; i++){ | 
|             if(data[i].LAY_CHECKED){ | 
|                 data[i].step = 1; | 
|                 dataSave.push(data[i]); | 
|             }else { | 
|                 dataOld.push(data[i]); | 
|             } | 
|         } | 
|         dataCheck = dataSave; | 
|   | 
|         if(!dataSave || dataSave.length < 1){ | 
|             layer.msg("未勾选,请先勾选需要更改的库存"); | 
|             return; | 
|         } | 
|   | 
|         layer.open({ | 
|             type: 2, | 
|             title: '变更主体', | 
|             maxmin: true, | 
|             area: ['500px', top.detailHeight], | 
|             shadeClose: false, | 
|             content: 'updateOwner.html', | 
|             success: function(layero, index){ | 
|                 layer.getChildFrame('#data-detail-submit-edit', index).hide(); | 
|                 top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false); | 
|                 layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"}); | 
|   | 
|                 var iframe = window['layui-layer-iframe' + index]; | 
|                 iframe.child(dataSave) | 
|             } | 
|         }); | 
|     }) | 
|   | 
| }) | 
|   | 
| // 关闭动作 | 
| $(document).on('click','#data-detail-close', function () { | 
|     parent.layer.closeAll(); | 
| }); | 
|   | 
| // excel导入模板下载 | 
| function excelMouldDownload(){ | 
|     layer.load(1, {shade: [0.1,'#fff']}); | 
|     location.href = baseUrl + "/pla/excel/import/mould"; | 
|     layer.closeAll('loading'); | 
| } | 
|   | 
| // excel导入 | 
| function importExcel() { | 
|     $("#importExcel").trigger("click"); | 
| } | 
| function upload(obj){ | 
|     if(!obj.files) { | 
|         return; | 
|     } | 
|     var file = obj.files[0]; | 
|     admin.confirm('确认同步 [' + file.name +'] 文件吗?', function (index) { | 
|         layer.load(1, {shade: [0.1,'#fff']}); | 
|         var url = baseUrl + "/pla/excel/import/auth"; | 
|         var form = new FormData(); | 
|         form.append("file", file); | 
|         xhr = new XMLHttpRequest(); | 
|         xhr.open("post", url, true); //post方式,url为服务器请求地址,true 该参数规定请求是否异步处理。 | 
|         xhr.setRequestHeader('token', localStorage.getItem('token')); | 
|         xhr.onload = uploadComplete; //请求完成 | 
|         xhr.onerror =  uploadFailed; //请求失败 | 
|         xhr.onloadend = function () { // // 上传完成重置文件流 | 
|             layer.closeAll('loading'); | 
|             $("#importExcel").val(""); | 
|         }; | 
|         // xhr.upload.onprogress = progressFunction;//【上传进度调用方法实现】 | 
|         xhr.upload.onloadstart = function(){//上传开始执行方法 | 
|             ot = new Date().getTime();   //设置上传开始时间 | 
|             oloaded = 0;//设置上传开始时,以上传的文件大小为0 | 
|         }; | 
|         xhr.send(form); | 
|     }, function(index){ | 
|         $("#importExcel").val(""); | 
|     }); | 
| } | 
| function uploadComplete(evt) { | 
|     var res = JSON.parse(evt.target.responseText); | 
|     if(res.code === 200) { | 
|         layer.msg(res.msg, {icon: 1}); | 
|         loadTree(""); | 
|     } else { | 
|         layer.msg(res.msg, {icon: 2}); | 
|     } | 
| } | 
| function uploadFailed(evt) { | 
|     var res = JSON.parse(evt.target.responseText); | 
|     layer.msg(res.msg, {icon: 2}); | 
| } | 
| function clearTable(){ | 
|   | 
| } |