| | |
| | | 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'} |
| | | ,{field: 'pakinTime', title: '入库时间', align: 'center'} |
| | | ,{field: 'batch', align: 'center',title: '批号'} |
| | | ,{field: 'packageNo', align: 'center',title: '包号'} |
| | | ,{field: 'brand', align: 'center',title: '牌号'} |
| | | ,{field: 'weight', align: 'center',title: '重量(KG)', hide:true} |
| | | ,{field: 'workshop', align: 'center',title: '生产车间', hide:true} |
| | | ,{field: 'line', align: 'center',title: '生产线', hide:true} |
| | | ,{field: 'packageType', align: 'center',title: '包装类型', hide:true} |
| | | ,{field: 'zpalletType', align: 'center',title: '托盘类型', hide:true} |
| | | ,{field: 'fingerMelting', align: 'center',title: '熔指(g/10min)'} |
| | | ,{field: 'fusingPoint', align: 'center',title: '熔点(℃)'} |
| | | ,{field: 'vadf1', align: 'center',title: '挥发份1(%)', hide:true} |
| | | ,{field: 'vadf2', align: 'center',title: '挥发份2(%)', hide:true} |
| | | ,{field: 'yellowness', align: 'center',title: '黄度', hide:true} |
| | | ,{field: 'opacity', align: 'center',title: '不透明度(0-100%)', hide:true} |
| | | ,{field: 'water', align: 'center',title: '水分(ppm)', hide:true} |
| | | ,{field: 'l', align: 'center',title: 'l值', edit: true} |
| | | ,{field: 'a', align: 'center',title: 'a值', edit: true} |
| | | ,{field: 'b', align: 'center',title: 'b值', edit: true} |
| | | ,{field: 'fillIn', align: 'center',title: '填充(%)', edit: true} |
| | | ,{field: 'massState', align: 'center',title: '质量状态', hide:true} |
| | | ,{field: 'problem', align: 'center',title: '质量问题', hide:true} |
| | | ,{field: 'stash', align: 'center',title: '仓库', edit:true} |
| | | ,{field: 'locNo', align: 'center',title: '库位', edit:true} |
| | | ,{field: 'weightAnfme', align: 'center',title: '剩余重量(KG)', edit:true} |
| | | ,{field: 'status', align: 'center',title: '状态', edit:true} |
| | | ,{field: 'createUser', align: 'center',title: '单号', edit:true} |
| | | ,{field: 'createUser', align: 'center',title: '出库时间', edit:true} |
| | | ,{field: 'createUser', align: 'center',title: '重量', edit:true} |
| | | ,{field: 'createUser', align: 'center',title: '经办人', edit:true} |
| | | ,{field: 'createUser', align: 'center',title: '流转形式', edit:true} |
| | | ,{field: 'createUser', align: 'center',title: '客户名称', edit:true} |
| | | ,{field: 'createUser', align: 'center',title: '调拨到', edit:true} |
| | | ,{field: 'createUser', align: 'center',title: '备注', edit: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, width: 150, 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} |
| | | ,{field: 'packageType', align: 'center',title: '包装类型',edit:true} |
| | | ,{field: 'zpalletType', align: 'center',title: '托盘类型',edit: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: '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: '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} |
| | | ,{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} |
| | | // ,{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: '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'], function() { |
| | | }).use(['table','laydate', 'form', 'admin', 'dropdown'], function() { |
| | | var table = layui.table; |
| | | var $ = layui.jquery; |
| | | var layer = layui.layer; |
| | | var layDate = layui.laydate; |
| | | laydate = layui.laydate; |
| | | var form = layui.form; |
| | | var admin = layui.admin; |
| | | admin = layui.admin; |
| | | |
| | | // 日期时间范围 |
| | | 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=3', |
| | | 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: 16, |
| | | limits: [16, 30, 50, 100, 200, 500], |
| | | even: true, |
| | |
| | | 'code': res.code, |
| | | 'msg': res.msg, |
| | | 'count': res.data.total, |
| | | 'data': res.data.records |
| | | 'data': res.data.records, |
| | | } |
| | | }, |
| | | response: { |
| | | statusCode: 200 |
| | | }, |
| | | done: function(res, curr, count) { |
| | | //$(".lavui-table-grid-down").hide(); |
| | | if (res.code === 403) { |
| | | top.location.href = baseUrl+"/"; |
| | | } |
| | |
| | | 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'); //移除样式 |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | 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: { |
| | | 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, |
| | | title: '批量打印 [数量'+ data.length +']', |
| | | area: ['500px'], |
| | | 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].batch+";"+printData.data[i].packageNo) |
| | | } else { |
| | | printData.data[i]["barcodeUrl"]=baseUrl+"/mac/code/auth?type=2¶m="+(printData.data[i].batch+";"+printData.data[i].packageNo) |
| | | } |
| | | } |
| | | 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); |
| | | }); |
| | | |
| | | // 重置事件 |
| | | form.on('submit(reset)', function (data) { |
| | |
| | | } |
| | | |
| | | // 重载表格 |
| | | function tableReload() { |
| | | tableIns.reload({data: matCodeData}); |
| | | // function tableReload() { |
| | | // tableIns.reload({data: matCodeData}); |
| | | // } |
| | | function tableReload(child) { |
| | | var searchData = { |
| | | }; |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | searchData[this.name] = this.value; |
| | | }); |
| | | (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); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | |
| | |
| | | layer.msg("有未填写字段"); |
| | | return; |
| | | } |
| | | data[i].step = 3; |
| | | dataSave.push(data[i]); |
| | | }else { |
| | | dataOld.push(data[i]); |
| | |
| | | }) |
| | | }) |
| | | |
| | | $(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].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) |
| | | } |
| | | }); |
| | | }) |
| | | |
| | | $(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}); |
| | | } |
| | | |
| | | |