|  |  |  | 
|---|
|  |  |  | padding: 5px 20px; | 
|---|
|  |  |  | color: darkred; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /**绿色勾*/ | 
|---|
|  |  |  | #node-ok { | 
|---|
|  |  |  | float: left; | 
|---|
|  |  |  | width: 15px; | 
|---|
|  |  |  | height: 15px; | 
|---|
|  |  |  | border-radius: 50%; | 
|---|
|  |  |  | margin-top: 13px; | 
|---|
|  |  |  | background-color: #2ac845; | 
|---|
|  |  |  | display: none; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </style> | 
|---|
|  |  |  | </head> | 
|---|
|  |  |  | <body> | 
|---|
|  |  |  | 
|---|
|  |  |  | <header> | 
|---|
|  |  |  | <div class="layui-input-inline" style="margin-top: 0px"> | 
|---|
|  |  |  | <label class="layui-form-label">货位</label> | 
|---|
|  |  |  | <input class="layui-input" id="locNo" onkeyup="find(this)" placeholder="扫码 / 输入" autocomplete="off" style="width: 75%; height: 40px; margin-right: 0;"> | 
|---|
|  |  |  | <input class="layui-input" id="locNo" onkeyup="find(this)" placeholder="扫码 / 输入" autocomplete="off" style="width: 65%; height: 40px; margin-right: 0;float: left"> | 
|---|
|  |  |  | <span id="node-ok"></span> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <div style="margin: 5px 5px"> | 
|---|
|  |  |  | <button id="replenish-btn" type="button" class="layui-btn layui-btn-normal" onclick="replenish()"><i class="layui-icon">+</i>补充</button> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </header> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | <footer> | 
|---|
|  |  |  | <div class="layui-btn-container"> | 
|---|
|  |  |  | <button type="button" id="reset-btn" class="layui-btn layui-btn-primary" onclick="reset()">重置</button> | 
|---|
|  |  |  | <button type="button" id="comb-btn" class="layui-btn layui-btn-normal " onclick="comb()" style="margin-left: 20px">组托</button> | 
|---|
|  |  |  | <button type="button" id="comb-btn" class="layui-btn layui-btn-normal " onclick="check()" style="margin-left: 20px">确认</button> | 
|---|
|  |  |  | <span id="tips"></span> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </footer> | 
|---|
|  |  |  | 
|---|
|  |  |  | <div class="form-item" style="margin-top: 5px"> | 
|---|
|  |  |  | <span style="vertical-align: middle">数量</span> | 
|---|
|  |  |  | <div class="number-tool" style="vertical-align: middle"> | 
|---|
|  |  |  | <button onclick="reduce()">-</button><input id="anfme" type="number"><button onclick="add()">+</button> | 
|---|
|  |  |  | <button onclick="reduce()">-</button><input id="count" type="number"><button onclick="add()">+</button> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | <button id="remove" onclick="remove()">移除</button> | 
|---|
|  |  |  | 
|---|
|  |  |  | limit: 500, | 
|---|
|  |  |  | cellMinWidth: 50, | 
|---|
|  |  |  | cols: [[ | 
|---|
|  |  |  | {fixed: 'left', align: 'center', field: 'anfme', title: '数量', event: 'modify', style:'cursor: pointer;color: blue', width:50}, | 
|---|
|  |  |  | {field: 'matnr', align: 'center', title: '商品编号'}, | 
|---|
|  |  |  | {field: 'maktx', align: 'center', title: '商品名称'} | 
|---|
|  |  |  | {fixed: 'left', align: 'center', field: 'count', title: '数量', event: 'modify', style:'font-weight: bold;', width:50}, | 
|---|
|  |  |  | // {field: 'matnr', align: 'center', title: '商品编号', event: 'modify'}, | 
|---|
|  |  |  | {field: 'maktx', align: 'center', title: '商品名称', event: 'modify'} | 
|---|
|  |  |  | ]], | 
|---|
|  |  |  | done: function (res, curr, count) { | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | success: function (layero, index) { | 
|---|
|  |  |  | $('#matnr').val(data.matnr); | 
|---|
|  |  |  | $('#maktx').val(data.maktx); | 
|---|
|  |  |  | $('#anfme').val(data.anfme); | 
|---|
|  |  |  | maxAnfme = data.anfme; | 
|---|
|  |  |  | $('#count').val(data.count); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 添加表格数据 | 
|---|
|  |  |  | var matData = []; | 
|---|
|  |  |  | function addTableData(data) { | 
|---|
|  |  |  | for (var i=0;i<data.length;i++) { | 
|---|
|  |  |  | var toPush = true; | 
|---|
|  |  |  | for (var j=0;j<matData.length;j++){ | 
|---|
|  |  |  | if (data[i].matnr === matData[j].matnr) { | 
|---|
|  |  |  | matData[j].anfme = Number(matData[j].anfme) + Number(data[i].anfme); | 
|---|
|  |  |  | toPush  = false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (toPush) { | 
|---|
|  |  |  | matData.push(data[i]); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | tableIns.reload({data: matData}); | 
|---|
|  |  |  | // $("#comb-btn").focus(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据通知单号查询物料详情 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | function find(el){ | 
|---|
|  |  |  | if (isEmpty(el.value)) { | 
|---|
|  |  |  | $('#node-ok').hide(); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | $.ajax({ | 
|---|
|  |  |  | 
|---|
|  |  |  | method: 'GET', | 
|---|
|  |  |  | success: function (res) { | 
|---|
|  |  |  | if (res.code === 200) { | 
|---|
|  |  |  | if (res.data != null) { | 
|---|
|  |  |  | addTableData(res.data); | 
|---|
|  |  |  | locDetlData = []; | 
|---|
|  |  |  | initTableData(res.data); | 
|---|
|  |  |  | if (res.data != null && res.data.length > 0) { | 
|---|
|  |  |  | $('#node-ok').show(); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | $('#node-ok').hide(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else if (res.code === 403) { | 
|---|
|  |  |  | top.location.href = baseUrl + "/pda"; | 
|---|
|  |  |  | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /*************************************  数量  ****************************************/ | 
|---|
|  |  |  | var countDom = $('#count'); | 
|---|
|  |  |  | var minCount = 1; | 
|---|
|  |  |  | var maxCount = 1; | 
|---|
|  |  |  | function add() { | 
|---|
|  |  |  | if (countDom.val() >= maxCount) { | 
|---|
|  |  |  | // 添加表格数据 | 
|---|
|  |  |  | var locDetlData = []; | 
|---|
|  |  |  | function initTableData(data) { | 
|---|
|  |  |  | for (var i=0;i<data.length;i++) { | 
|---|
|  |  |  | var toPush = true; | 
|---|
|  |  |  | for (var j=0;j<locDetlData.length;j++){ | 
|---|
|  |  |  | if (data[i].matnr === locDetlData[j].matnr) { | 
|---|
|  |  |  | toPush  = false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (toPush) { | 
|---|
|  |  |  | locDetlData.push(data[i]); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | tableIns.reload({data: locDetlData}); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | function addTableData(data) { | 
|---|
|  |  |  | if (isEmpty(data.matnr)){ | 
|---|
|  |  |  | tips("提取失败", true); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | var toPush = true; | 
|---|
|  |  |  | for (var j=0;j<locDetlData.length;j++){ | 
|---|
|  |  |  | if (data.matnr === locDetlData[j].matnr) { | 
|---|
|  |  |  | toPush  = false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (toPush) { | 
|---|
|  |  |  | locDetlData.push(data); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | tableIns.reload({data: locDetlData}); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /*************************************  数量  ****************************************/ | 
|---|
|  |  |  | var countDom = $('#count'); | 
|---|
|  |  |  | var minCount = 0; | 
|---|
|  |  |  | function add() { | 
|---|
|  |  |  | countDom.val(Number(countDom.val()) + 1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | function reduce() { | 
|---|
|  |  |  | 
|---|
|  |  |  | // 修改数量 | 
|---|
|  |  |  | function confirm(){ | 
|---|
|  |  |  | var matnr = $('#matnr').val(); | 
|---|
|  |  |  | var anfme = $('#anfme').val(); | 
|---|
|  |  |  | for (var j=0;j<matData.length;j++){ | 
|---|
|  |  |  | if (matnr === matData[j].matnr) { | 
|---|
|  |  |  | if (anfme > maxCount || anfme < minCount) { | 
|---|
|  |  |  | tips("数量不能超过范围", true); | 
|---|
|  |  |  | var count = $('#count').val(); | 
|---|
|  |  |  | for (var j=0;j<locDetlData.length;j++){ | 
|---|
|  |  |  | if (matnr === locDetlData[j].matnr) { | 
|---|
|  |  |  | if (count < minCount) { | 
|---|
|  |  |  | tips("数量必须大于0", true); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | matData[j].anfme = Number(anfme); | 
|---|
|  |  |  | locDetlData[j].count = Number(count); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | tableIns.reload({data: matData}); | 
|---|
|  |  |  | tableIns.reload({data: locDetlData}); | 
|---|
|  |  |  | layer.close(anfmeLayer); | 
|---|
|  |  |  | tips("修改成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | // 移除物料 | 
|---|
|  |  |  | function remove() { | 
|---|
|  |  |  | var matnr = $('#matnr').val(); | 
|---|
|  |  |  | for (var j=0;j<matData.length;j++){ | 
|---|
|  |  |  | if (matnr === matData[j].matnr) { | 
|---|
|  |  |  | matData.splice(j, 1); | 
|---|
|  |  |  | for (var j=0;j<locDetlData.length;j++){ | 
|---|
|  |  |  | if (matnr === locDetlData[j].matnr) { | 
|---|
|  |  |  | locDetlData.splice(j, 1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | tableIns.reload({data: matData}); | 
|---|
|  |  |  | tableIns.reload({data: locDetlData}); | 
|---|
|  |  |  | layer.close(anfmeLayer); | 
|---|
|  |  |  | tips("移除成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /*************************************  补充  ****************************************/ | 
|---|
|  |  |  | var matCodeLayerIdx; | 
|---|
|  |  |  | function replenish() { | 
|---|
|  |  |  | matCodeLayerIdx = layer.open({ | 
|---|
|  |  |  | type: 2, | 
|---|
|  |  |  | title: '补充商品', | 
|---|
|  |  |  | shade: [0.3,'#000'], | 
|---|
|  |  |  | area: ['90%', '80%'], | 
|---|
|  |  |  | content: 'matQuery.html', | 
|---|
|  |  |  | success: function(layero, index){ | 
|---|
|  |  |  | $('.layui-layer-title').css('font-size', '16px'); | 
|---|
|  |  |  | $('.layui-layer.layui-layer-iframe').css('border-radius', '8px'); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | end: function () { | 
|---|
|  |  |  | // $('#mat-btn').focus(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 重置 | 
|---|
|  |  |  | function reset() { | 
|---|
|  |  |  | $('#code').val(""); | 
|---|
|  |  |  | $('#billNo').val(""); | 
|---|
|  |  |  | matData = []; | 
|---|
|  |  |  | tableIns.reload({data: matData}); | 
|---|
|  |  |  | $('#locNo').val(""); | 
|---|
|  |  |  | $('#node-ok').hide(); | 
|---|
|  |  |  | locDetlData = []; | 
|---|
|  |  |  | tableIns.reload({data: locDetlData}); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 组托 | 
|---|
|  |  |  | function comb() { | 
|---|
|  |  |  | var barcode = $('#code').val(); | 
|---|
|  |  |  | if (isEmpty(barcode)) { | 
|---|
|  |  |  | tips("托盘条码为空", true); | 
|---|
|  |  |  | // document.getElementById("code").focus(); | 
|---|
|  |  |  | // 确认 | 
|---|
|  |  |  | function check() { | 
|---|
|  |  |  | var locNo = $('#locNo').val(); | 
|---|
|  |  |  | if (isEmpty(locNo)) { | 
|---|
|  |  |  | tips("货位不能为空", true); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (barcode.length !== 7) { | 
|---|
|  |  |  | tips("条码必须为7位", true); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | if (locDetlData.length > 0) { | 
|---|
|  |  |  | for (var i = 0; i<locDetlData.length; i++) { | 
|---|
|  |  |  | if (locDetlData[i].count === null || locDetlData[i].count === 0) { | 
|---|
|  |  |  | tips(locDetlData[i].matnr + "商品数量错误", true); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (matData.length === 0) { | 
|---|
|  |  |  | tips("请提取物料", true); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | var billNo = $('#billNo').val(); | 
|---|
|  |  |  | $.ajax({ | 
|---|
|  |  |  | url: baseUrl+"/mobile/comb/auth", | 
|---|
|  |  |  | url: baseUrl+"/work/stock/check", | 
|---|
|  |  |  | headers: {'token': localStorage.getItem('token')}, | 
|---|
|  |  |  | data: JSON.stringify({ | 
|---|
|  |  |  | barcode: barcode, | 
|---|
|  |  |  | combMats: matData, | 
|---|
|  |  |  | billNo: billNo | 
|---|
|  |  |  | locNo: locNo, | 
|---|
|  |  |  | dtos: locDetlData | 
|---|
|  |  |  | }), | 
|---|
|  |  |  | contentType:'application/json;charset=UTF-8', | 
|---|
|  |  |  | method: 'POST', | 
|---|
|  |  |  | 
|---|
|  |  |  | success: function (res) { | 
|---|
|  |  |  | if (res.code === 200) { | 
|---|
|  |  |  | reset(); | 
|---|
|  |  |  | tips("组托成功") | 
|---|
|  |  |  | tips("盘点成功") | 
|---|
|  |  |  | } else if (res.code === 403) { | 
|---|
|  |  |  | top.location.href = baseUrl + "/pda"; | 
|---|
|  |  |  | } else { | 
|---|