<!DOCTYPE html>
|
<html>
|
|
<head>
|
<meta name="viewport" content="user-scalable=0,width=device-width,initial-scale=1.0" />
|
<meta charset="UTF-8" />
|
<!-- <meta name="viewport" content="width=device-width, initial-scale=0.665, minimum-scale=0.5, maximum-scale=1, user-scalable=no" /> -->
|
<!-- <meta name="viewport" content="width=device-width, initial-scale=0.665" /> -->
|
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
|
<title>Boxline PDA</title>
|
|
<link rel="stylesheet" href="/layui/css/layui.css" />
|
<link rel="stylesheet" href="/css/style.css" />
|
<script src="/js/adaptive.js"></script>
|
<link rel="stylesheet" href="/css/my.css" />
|
<style type="text/css">
|
td {
|
word-break: break-all;
|
word-wrap: break-word;
|
}
|
|
.layui-form-switch {
|
margin-top: 0;
|
}
|
</style>
|
<link rel="stylesheet" href="/css/adapter.css" />
|
</head>
|
|
<body>
|
<div id="" class="main-content">
|
<div id="" class="layout-title">
|
<table border="" cellspacing="" cellpadding="">
|
<tr>
|
<td class="img-back"><a href="../index.html"><img src="/assets/back.jpg"></a></td>
|
<td class="title-text" lang>产品组托</td>
|
<td class="title-menu-icon"><img id="menuImg" src="/assets/menu.jpg"></td>
|
</tr>
|
</table>
|
</div>
|
<div id="" class="layout-sub-content">
|
<div id="menuList" class="menu">
|
<ul class="" style="text-align: center;">
|
<li><a href="../index.html" lang>主页</a></li>
|
<!-- <li><a href="productEnterConfirm.html">入库信息确认</a></li> -->
|
<li><a href="../login.html" lang>重新登录</a></li>
|
</ul>
|
</div>
|
|
<div id="zongDiv" class="layout-bill-info" style="height: 255px;">
|
<form class="layui-form" action="">
|
<div id="" class="layui-form-item layout-dropdownlist">
|
<label class="layui-form-label" lang>入库单:</label>
|
<div class="layui-input-block" id="selectDiv">
|
<select id="bar" lay-filter="getbar" lay-search>
|
<option value=""></option>
|
</select>
|
<img src="/assets/down_arraw.png">
|
</div>
|
</div>
|
<div class="layui-form-item layout-dropdownlist" style="margin-top: 10px;">
|
<label class="layui-form-label">物料-批次:</label>
|
<div class="layui-input-block" id="goodDiv">
|
<select id="goodSelect" lay-filter="goodSelect" lay-search>
|
<option value=""></option>
|
</select>
|
<img src="/assets/down_arraw.png">
|
</div>
|
</div>
|
|
<div id="" class="layui-form-item layout-input">
|
<label class="layui-form-label" lang>托盘条码:</label>
|
<div class="layui-input-block">
|
<input id="STOCKCODE" type="text" lay-verify="stock" lang langholder placeholder="请扫描托盘条码"
|
autocomplete="off" class="layui-input">
|
</div>
|
</div>
|
<div id="BOX" class="layui-form-item layout-input">
|
<label class="layui-form-label" lang>外箱条码:</label>
|
<div class="layui-input-block">
|
<input id="BOXCODE" type="text" lay-verify="required" lang langholder placeholder="请扫描外箱条码"
|
autocomplete="off" class="layui-input">
|
</div>
|
</div>
|
<div id="" class="layui-form-item layout-input">
|
<label class="layui-form-label" lang>是否连组:</label>
|
<div class="layui-input-block">
|
<input type="checkbox" name="IsLianXu" id="IsLianXu" lay-skin="switch" lay-text="是|否"
|
lay-filter="IsLianXu">
|
</div>
|
</div>
|
<div id="BOX2" class="layui-form-item layout-input" style="display: none;">
|
<label class="layui-form-label" lang>尾箱条码:</label>
|
<div class="layui-input-block">
|
<input id="BOXCODE2" type="text" lang langholder placeholder="请扫描外箱条码" autocomplete="off"
|
class="layui-input">
|
</div>
|
</div>
|
|
<table class="layout-tbl-input" border="" cellspacing="" cellpadding="">
|
<tr>
|
<td>
|
<div id="" class="layui-form-item layout-boxinfo">
|
<label class="layui-form-label" lang>物料规格:</label>
|
<div class="layui-input-block">
|
<input id="Standard" type="text" disabled placeholder="" autocomplete="off"
|
class="layui-input">
|
</div>
|
</div>
|
</td>
|
<td>
|
<div id="" class="layui-form-item layout-boxinfo">
|
<label class="layui-form-label" lang>计划数量:</label>
|
<div class="layui-input-block">
|
<input id="ImportQuantity" type="text" disabled placeholder=""
|
autocomplete="off" class="layui-input">
|
</div>
|
</div>
|
</td>
|
|
</tr>
|
<tr>
|
<td>
|
<div id="" class="layui-form-item layout-boxinfo">
|
<label class="layui-form-label" lang>已组数量:</label>
|
<div class="layui-input-block">
|
<input id="ImportFactQuantity" type="text" disabled placeholder=""
|
autocomplete="off" class="layui-input">
|
</div>
|
</div>
|
</td>
|
<td>
|
<div id="" class="layui-form-item layout-boxinfo">
|
<label class="layui-form-label" lang>箱内数量:</label>
|
<div class="layui-input-block">
|
<input id="BoxQty" type="text" disabled placeholder="" autocomplete="off"
|
class="layui-input">
|
</div>
|
</div>
|
</td>
|
</tr>
|
|
</table>
|
|
<table class="layout-tbl-submit" border="" cellspacing="" cellpadding="">
|
<tr>
|
<td style="width: 23%;"></td>
|
<td>
|
<button class="layout-btn layout-btn-red" lang type="button" lay-submit
|
lay-filter="formBind">绑定到托盘</button>
|
</td>
|
<td style="width: 33%;"></td>
|
|
</tr>
|
</table>
|
</form>
|
</div>
|
|
<div id="" class="cut-line">
|
<img src="/assets/fengexian.png">
|
</div>
|
|
<div class="layout-tbl-paging" id="">
|
<div id="" class="tbl-title">
|
<table class="layout-tbl-input" border="0" cellspacing="" cellpadding="">
|
<tr>
|
<td>
|
<div class="layout-boxinfo">
|
<label class="layui-form-label" lang style="width: 30%;">托盘号</label>
|
<div class="layui-input-block" style="width: 70%;">
|
<input id="palletCode" type="text" disabled lay-verify="required" placeholder=""
|
autocomplete="off" class="layui-input"
|
style="margin-left: -35px;width: 100%;">
|
</div>
|
</div>
|
</td>
|
|
</tr>
|
</table>
|
</div>
|
<table id="tableBoxList" class="tbl-box-list" border="" cellspacing="" cellpadding="">
|
<tr>
|
<th lang style="width: 15%;">编码</th>
|
<th lang style="width: 35%;">名称</th>
|
<th lang style="width: 25%;">批次</th>
|
<th lang style="width: 15%;">数量</th>
|
<th lang style="width: 10%;">操作</th>
|
</tr>
|
<tr id="boxCell" style="display: none;">
|
<td name="code">AG000001</td>
|
<td name="name">疫苗名称名称名称</td>
|
<td name="lotNo">批次号</td>
|
<td name="num">30</td>
|
<td name="del">
|
<div id="" class="tbl-btn-del" lang>
|
删除
|
</div>
|
</td>
|
</tr>
|
</table>
|
</div>
|
</div>
|
</div>
|
<script src="/js/jquery-3.5.1.min.js"></script>
|
<script src="/layui/layui.js"></script>
|
<script src="/js/public.js"></script>
|
<script src="/js/language.js"></script>
|
<script src="/js/jquery.cookie.js"></script>
|
<script>
|
layui.use(['form', 'jquery'], function () {
|
var form = layui.form
|
|
initLanguage()
|
setLanguage()
|
|
//当前分页
|
var curPageIndex = 1;
|
//是否连续组托
|
isContinue = "0";
|
//清楚文本框中数据
|
function clear() {
|
$("#ImportQuantity").val("");
|
$("#GoodsCode").val("");
|
$("#Standard").val("");
|
$("#ImportFactQuantity").val("");
|
$("#ImportQty").val("");
|
$("#BoxQty").val("");
|
}
|
|
// 托盘码文本改变时触发
|
$("#STOCKCODE").on('input', function () {
|
|
if ($("#STOCKCODE").val() == "" || $("#STOCKCODE").val().length < 8) {
|
return
|
}
|
if ($("#STOCKCODE").val().length >= 8) {
|
$("#STOCKCODE").val($("#STOCKCODE").val().substr(-8))
|
}
|
checkPalletStat()
|
})
|
|
//箱码回车事件
|
$("#BOXCODE").keydown(function (e) {
|
if (e.keyCode === 13) {
|
if ($("#BOXCODE").val() == "") {
|
return
|
}
|
|
if ($("#STOCKCODE").val() == "") {
|
layer.msg('请先扫描托盘码', {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
});
|
$("#BOXCODE").val("");
|
$("#STOCKCODE").focus();
|
return;
|
}
|
checkBoxInfo()
|
}
|
});
|
|
//点击入库单据下拉框事件
|
$("#selectDiv").click(function () {
|
var input = $('select[id="bar"]').next().find('.layui-select-title input')
|
var val = input.val()
|
//先更新一下入库单
|
updateBillList(function (data) {
|
$('select[id="bar"]').next().addClass('layui-form-selected')
|
$('select[id="bar"]').next().find('.layui-select-title input').val(val)
|
})
|
})
|
|
//点击物料下拉框事件
|
$("#goodDiv").click(function () {
|
if ($("#bar").val() == null || $("#bar").val() == "" || $("#bar").val() == undefined) {
|
layer.msg("请先选择入库单", {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () { });
|
}
|
})
|
|
//选中入库单事件
|
form.on('select(getbar)', function (data) {
|
updateGoodList()
|
setOrderGoods();
|
});
|
|
//选中物料事件
|
form.on('select(goodSelect)', function (data) {
|
setOrderGoods();
|
});
|
|
//绑定到托盘事件
|
form.on('submit(formBind)', function (data) {
|
console.log(isContinue);
|
console.log($("#goodSelect").val());
|
if ($("#bar").val() == "") {
|
layer.msg('请选择入库单', {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
});
|
return;
|
}
|
if ($("#goodSelect").val() == "") {
|
layer.msg('请选择物料及明细', {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
});
|
return;
|
}
|
if ($("#STOCKCODE").val() == "") {
|
layer.msg('请扫描托盘条码', {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
});
|
return;
|
}
|
if ($("#BOXCODE").val() == "") {
|
layer.msg('请扫描外箱条码', {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
});
|
return;
|
}
|
var param = {
|
AsnNo: $("#bar").val(),
|
PalletNo: $("#STOCKCODE").val(),
|
AsnDetailId: parseInt($("#goodSelect").val()),
|
BoxNo: $("#BOXCODE").val(),
|
IsContinue: isContinue,
|
TailBoxNo: $("#BOXCODE2").val(),
|
Origin:"PDA"
|
}
|
//组盘
|
sendData(IP + "/PdaAsn/BindPallet", param, 'post', function (res) {
|
if (res.code == 0) { //成功
|
layer.msg(res.msg, {
|
icon: 1,
|
time: 1000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () {
|
setOrderGoods();
|
refreshTable();
|
$("#BOXCODE").val("");
|
$("#BOXCODE2").val("");
|
$("#QTY").val("");
|
});
|
} else { //不成功
|
layer.msg(res.msg, {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () {
|
//回调
|
});
|
}
|
});
|
return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。
|
});
|
|
|
// 根据入库明细ID 获取详细信息
|
function setOrderGoods() {
|
$("#ImportQuantity").val("");
|
$("#Standard").val("");
|
$("#ImportFactQuantity").val("");
|
|
var param = {
|
Id: parseInt($("#goodSelect").val())
|
};
|
|
synData(IP + "/PdaAsn/GetArrivalNoticeDetail", param, 'post', function (res) {
|
console.log(JSON.stringify(res))
|
if (res.code == 0 && res.data != null) { //成功
|
$("#ImportQuantity").val(res.data.Qty);
|
$("#Standard").val(res.data.Standard);
|
$("#ImportFactQuantity").val(res.data.FactQty + "");
|
}
|
});
|
}
|
|
// 绑定入库单信息
|
function updateBillList(callback) {
|
var input = $('select[id="bar"]').next().find('.layui-select-title input')
|
var val = input.val()
|
$("#bar").empty()
|
$("#bar").append('<option value =>' + '</option>');
|
form.render('select');
|
|
var param = {
|
Type: "0,1"
|
};
|
sendData(IP + "/PdaAsn/GetArrivalNotices", param, 'post', function (res) {
|
if (res.code == 0) { //成功
|
for (var i = 0; i < res.data.length; i++) {
|
$("#bar").append('<option value =' + res.data[i].ASNNo + '>' + res.data[i]
|
.ASNNo +
|
'</option>');
|
}
|
form.render('select');
|
|
if (!val) {
|
$('#bar').siblings("div.layui-form-select").find('dl').find('.layui-select-tips').addClass('layui-this')
|
} else {
|
var sel = 'dd[lay-value=' + val + ']';
|
$('#bar').siblings("div.layui-form-select").find('dl').find(sel).addClass('layui-this')
|
}
|
|
callback(res.data)
|
} else { //不成功
|
// layer.msg(res.msg, {
|
// icon: 2,
|
// time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
// }, function() {});
|
}
|
});
|
}
|
|
var asnDetails = "";
|
|
// 绑定入库单物料及批次
|
function updateGoodList() {
|
console.log("aaaa");
|
var input = $('select[id="goodSelect"]').next().find('.layui-select-title input')
|
var val = input.val()
|
|
$("#goodSelect").empty()
|
$("#goodSelect").append('<option value =>' + '</option>');
|
|
var param = {
|
AsnNo: $("#bar").val(),
|
};
|
synData(IP + "/PdaAsn/GetArrivalNoticeDetails", param, 'post', function (res) {
|
console.log("出库口:" + JSON.stringify(res))
|
if (res.code == 0) { //成功
|
asnDetails = res.data;
|
for (var i = 0; i < res.data.length; i++) {
|
if (i == 0) {
|
$("#goodSelect").append('<option value =' + res.data[i].Id + ' selected>' + res.data[i]
|
.SkuName + "-" + res.data[i].LotNo +
|
'</option>');
|
} else {
|
$("#goodSelect").append('<option value =' + res.data[i].Id + '>' + res.data[i]
|
.SkuName + "-" + res.data[i].LotNo +
|
'</option>');
|
}
|
|
}
|
form.render('select');
|
|
if (!val) {
|
$('#goodSelect').siblings("div.layui-form-select").find('dl').find('.layui-select-tips').addClass('layui-this')
|
} else {
|
var sel = 'dd[lay-value=' + val + ']';
|
$('#goodSelect').siblings("div.layui-form-select").find('dl').find(sel).addClass('layui-this')
|
}
|
} else {
|
}
|
});
|
}
|
|
// 渲染箱码信息
|
function refreshTable() {
|
//先清空一下箱子列表
|
let trs = $("#tableBoxList tr")
|
let len = trs.length
|
|
for (i = len - 1; i >= 2; i--) {
|
trs[i].remove();
|
}
|
|
//设置托盘号
|
$("#palletCode").val($.cookie('stockCode'))
|
|
var param = {
|
PalletNo: $.cookie('stockCode')
|
};
|
// 根据托盘号获取箱码信息
|
sendData(IP + "/PdaAsn/GetBoxInfos", param, 'post', function (res) {
|
if (res.code == 0) { //成功
|
var list = res
|
var arrTrs = new Array()
|
let idx = 0
|
for (var i in res.data) {
|
var tr = $("#boxCell").eq(0).clone();
|
tr.appendTo("#tableBoxList");
|
tr.attr('id', res.data[i].Id)
|
tr.attr('boxno', res.data[i].BoxNo)
|
tr.attr('BindNo', res.data[i].BindNo)
|
idx++;
|
tr.attr('index', idx)
|
tr.find("td[name='code']").html(res.data[i].BoxNo);
|
tr.find("td[name='name']").html(res.data[i].SkuName);
|
tr.find("td[name='lotNo']").html(res.data[i].LotNo);
|
tr.find("td[name='num']").html(res.data[i].Qty);
|
tr.find("td[name='del']").click(function () {
|
var elem = $(this).parent()
|
var boxno = elem.attr('boxno')
|
var BindNo = elem.attr('BindNo')
|
var Id = elem.attr('id')
|
layer.alert("确定要从托盘上删除这个箱物料吗?<br>" + boxno, {
|
icon: 2,
|
time: 0, //2秒关闭(如果不配置,默认是3秒)
|
btn: ['删除', '取消'],
|
yes: function () {
|
|
var param = {
|
Id: Id,
|
};
|
sendData(IP + "/PdaAsn/DelBoxInfo", param, 'post', function (res) {
|
if (res.code == 0) { //成功
|
layer.msg(res.msg, {
|
icon: 1,
|
time: 1000 //2秒关闭(如果不配置,默认是3秒)
|
});
|
elem.remove()
|
setOrderGoods();
|
refreshTable();
|
} else { //不成功
|
layer.msg(res.msg, {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () { });
|
}
|
});
|
}
|
})
|
})
|
tr.show();
|
arrTrs[i] = tr
|
}
|
|
|
} else { //不成功
|
layer.msg("无数据", {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () { });
|
$("#boxNum").val(0)
|
}
|
});
|
}
|
|
// 判断托盘码是否可用
|
function checkPalletStat() {
|
var param = {
|
"PalletNo": $("#STOCKCODE").val()
|
}
|
sendData(IP + "/PdaAsn/IsEnablePalletNo", param, 'post', function (res) {
|
if (res.code == 0) {
|
|
$.cookie('stockCode', $("#STOCKCODE").val());
|
refreshTable()
|
$("#BOXCODE").focus();
|
|
} else {
|
layer.msg(res.msg, {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () { });
|
}
|
});
|
}
|
|
function checkBoxInfo() {
|
var param = {
|
"BoxNo": $("#BOXCODE").val(),
|
}
|
sendData(IP + "/PdaAsn/GetBoxInfos", param, 'post', function (res) {
|
if (res.code == 0) { //成功
|
var bl = false; console.log(res.data);
|
if (res.data.length == 0) {
|
layer.msg("未查询到此箱物料信息,请核实!", {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
});
|
return;
|
}
|
asnDetails.forEach(element => {
|
console.log(element);
|
|
if (element.SkuNo == res.data[0].SkuNo && element.LotNo == res.data[0].LotNo) {
|
var sel = 'dd[lay-value=' + element.id + ']';
|
$('#goodSelect').siblings("div.layui-form-select").find('dl').find(sel).addClass('layui-this');
|
bl = true;
|
}
|
});
|
if (!bl) {
|
layer.msg("此箱物料不符合该入库单,请核实!", {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
});
|
} else {
|
$("#BoxQty").val(res.data[0].Qty);
|
}
|
|
} else { //不成功
|
layer.msg(res.msg, {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
});
|
}
|
});
|
|
}
|
|
form.on('switch(IsLianXu)', function (obj) {
|
if (obj.elem.checked) {
|
$('#BOX2').attr("style", "display:block")
|
$('#zongDiv').attr("style", "height: 285px;")
|
isContinue = "1";
|
} else {
|
$('#BOX2').attr("style", "display:none")
|
$('#zongDiv').attr("style", "height: 255px;")
|
isContinue = "0";
|
}
|
$('#BOXCODE2').val("");
|
});
|
|
$("#menuImg").click(function (e) {
|
//console.log("menuImg")
|
e.stopPropagation()
|
|
if ($("#menuList").is(":hidden")) {
|
$("#menuList").show()
|
} else {
|
$("#menuList").hide()
|
}
|
})
|
$('body').click(function () {
|
// //console.log("body")
|
$("#menuList").hide()
|
})
|
})
|
</script>
|
</body>
|
|
</html>
|