<!DOCTYPE html>
|
<html>
|
|
<head>
|
<meta charset="utf-8">
|
<title>添加托盘绑定</title>
|
<meta name="renderer" content="webkit">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
<meta name="viewport"
|
content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
<link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
|
<link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all">
|
<style>
|
.rightMargin {
|
margin-right: 0px;
|
}
|
|
.buJu {
|
margin-top: 10px;
|
display: flex;
|
flex-direction: row-reverse;
|
}
|
|
.beiJing {
|
background-color: #fafafa;
|
padding-top: 5px;
|
border-radius: 3px;
|
box-shadow: inset 0 0 3px 1px #ccc;
|
}
|
</style>
|
</head>
|
|
<body>
|
|
<div class="layui-fluid" style="padding: 3px;">
|
<div class="layui-card">
|
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
|
<div class="layui-form-item">
|
<div class="layui-inline" style="margin-right: 0;">
|
<label class="layui-form-label" style="width: 60px;">入库单</label>
|
<div class="layui-input-inline" style="margin-right: 0;">
|
<select name="BillCode" id="BillCode" lay-verify="required" lay-filter="BillCode"
|
lay-search>
|
<option value=""></option>
|
</select>
|
</div>
|
</div>
|
<div class="layui-inline" style="margin-right: 0;">
|
<label class="layui-form-label" style="width: 70px;">物料-批次</label>
|
<div class="layui-input-inline" style="margin-right: 0;">
|
<select name="detail" id="detail" lay-verify="required" lay-filter="detail" lay-search>
|
<option value=""></option>
|
</select>
|
</div>
|
</div>
|
<div class="layui-inline" style="margin-right: 0;">
|
<label class="layui-form-label" style="width: 60px;">托盘条码</label>
|
<div class="layui-input-inline" style="margin-right: 0;">
|
<div class="layui-input-inline" style="margin-right: 0;">
|
<input type="text" id="palletNo" name="palletNo" placeholder="托盘条码" autocomplete="off"
|
class="layui-input">
|
</div>
|
</div>
|
</div>
|
<div class="layui-inline" style="margin-right: 0;">
|
<label class="layui-form-label" style="width: 40px;">箱码</label>
|
<div class="layui-input-inline" style="margin-right: 0;">
|
<div class="layui-input-inline" style="margin-right: 0;">
|
<input type="text" id="palletNo" name="palletNo" placeholder="箱码" autocomplete="off"
|
class="layui-input">
|
</div>
|
</div>
|
</div>
|
<div class="layui-inline">
|
<button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit
|
lay-filter="confirm">
|
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>搜索
|
</button>
|
<!-- <button type="button" class="layui-btn layui-btn-sm" id="daoru">
|
导入
|
</button> -->
|
<button style="margin-right: 15px;" class="layui-btn layui-btn-sm layuiadmin-btn-list"
|
lay-submit id="Create" lay-filter="Create">提交</button>
|
</div>
|
</div>
|
</div>
|
<div class="layui-card-body">
|
<table id="Box-list" lay-filter="Box-list"></table>
|
<script type="text/html" id="bulkTank">
|
<p>{{d.BulkTank == 0? '否':'是'}}</p>
|
</script>
|
<script type="text/html" id="table-content-list">
|
<a class="layui-btn layui-btn-danger layui-btn-xs delClass" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
|
</script>
|
</div>
|
|
</div>
|
</div>
|
|
|
<script src="../../layuiadmin/layui/layui.js"></script>
|
<script src="../../js/jquery-3.5.1.min.js"></script>
|
<script src="../../js/jquery.cookie.js"></script>
|
<script src="../../js/public.js"></script>
|
<script>
|
layui.extend({
|
excel: '../../layuiadmin/layui/layui_exts/excel' // {/}的意思即代表采用自有路径,即不跟随 base 路径
|
})
|
|
layui.config({
|
base: '../../layuiadmin/' //静态资源所在路径
|
}).extend({
|
index: 'lib/index' //主入口模块
|
}).use(['index', 'form', 'layer', 'table', 'laydate', 'upload', 'excel'], function () {
|
var form = layui.form,
|
table = layui.table,
|
layer = layui.layer;
|
laydate = layui.laydate;
|
|
var param = {
|
Type: "0"
|
};
|
sendData(IP + "/PdaAsn/GetArrivalNotices", param, 'post', function (res) {
|
if (res.code == 0) { //成功
|
$("#BillCode").empty();
|
$("#BillCode").append("<option value =''></option>");
|
for (var i = 0; i < res.data.length; i++) {
|
$("#BillCode").append('<option value =' + res.data[i].ASNNo + '>' + res.data[i].ASNNo +
|
'</option>');
|
}
|
form.render('select');
|
} else { //不成功
|
layer.msg(res.msg, {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () { });
|
}
|
});
|
// 绑定入库单物料及批次
|
function updateGoodList() {
|
|
$("#detail").empty()
|
$("#detail").append('<option value =>' + '</option>');
|
|
var param = {
|
AsnNo: $("#BillCode").val(),
|
};
|
synData(IP + "/PdaAsn/GetArrivalNoticeDetails", param, 'post', function (res) {
|
if (res.code == 0) { //成功
|
asnDetails = res.data;
|
for (var i = 0; i < res.data.length; i++) {
|
if (i == 0) {
|
$("#detail").append('<option value =' + res.data[i].Id + ' selected>' + res.data[i]
|
.SkuName + "-" + res.data[i].LotNo +
|
'</option>');
|
} else {
|
$("#detail").append('<option value =' + res.data[i].Id + '>' + res.data[i]
|
.SkuName + "-" + res.data[i].LotNo +
|
'</option>');
|
}
|
|
}
|
form.render('select');
|
} else {
|
layer.msg(res.msg, {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () { });
|
}
|
});
|
}
|
form.on('select(BillCode)', function (data) {
|
updateGoodList();
|
});
|
|
|
//#endregion
|
laydate.render({
|
elem: '#StartTime'
|
, format: 'yyyy-MM-dd' //可任意组合
|
});
|
laydate.render({
|
elem: '#EndTime'
|
, format: 'yyyy-MM-dd' //可任意组合
|
});
|
renderTable();
|
|
function renderTable() {
|
var tableIns = table.render({
|
elem: '#Box-list',
|
height: 'full-195',
|
id: 'Box-list',
|
data: list,
|
page: true,
|
limit: 10, //默认多少页
|
limits: [10, 15], //默认数组[10,20,30,40,50]
|
cellMinWidth: 80, //全局定义常规单元格的最小宽度,layui 2.2.1 新增
|
even: true, //隔行换色
|
cols: [
|
[
|
{field: 'boxNo',title: '箱码',align: 'center',fixed: 'left',width:150},
|
{field: 'SkuNo',title: '物料编号',align: 'center',width:150},
|
{field: 'SkuName',title: '物料名称',align: 'center',width:150},
|
{field: 'LotNo',templet: '#buttonTpl',title: '批次号',align: 'center',width:150},
|
{field: 'Qty',title: '实际数量',align: 'center',width:150},
|
{field: 'Standard',title: '物品规格',align: 'center'},
|
{title: '操作',fixed: 'right',width: 100,align: 'center',toolbar: '#table-content-list'}
|
]],
|
|
});
|
}
|
|
|
//添加箱码集合
|
form.on('submit(confirm)', function (data) {
|
|
|
var result = true;
|
// str.replace(/\s/g,"") js去除string字符串左右中间的空格
|
list.forEach(item => {
|
if (item.GoodCode.replace(/\s/g, "") === data.field.GoodCode.replace(/\s/g, "") && item.LotNo.replace(/\s/g, "") === data.field.LotNo.replace(/\s/g, "")) {
|
layer.msg('物品和批次号已存在');
|
result = false;
|
return;
|
}
|
})
|
|
if (result) {
|
var param = {
|
boxNo: data.field.boxNo,
|
};
|
sendData(IP + "/ImportOrder/GetGoodsByCode", param, 'post', function (res) {
|
console.log(res);
|
if (res.code == 1) { //成功
|
|
list.push({
|
GoodCode: data.field.GoodCode,
|
GoodsName: res.data.GoodsName,
|
GoodsStandard: res.data.GoodsStandard,
|
UnitName: res.data.UnitName,
|
LotNo: data.field.LotNo,
|
Qty: data.field.Qty
|
})
|
console.log(list);
|
$("#GoodCode").val("");
|
$("#LotNo").val("");
|
$("#Qty").val("");
|
|
tableIns2.reload({
|
data: list,
|
page: {
|
curr: 1 //重新从第 1 页开始
|
}
|
});
|
} else { //不成功
|
layer.msg(res.msg, {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () { });
|
}
|
});
|
}
|
|
return false;
|
|
});
|
|
table.on('tool(Box-list)', function (obj) {
|
var data = obj.data;
|
// console.log(obj.event);
|
if (obj.event === 'del') {
|
layer.confirm('确定删除箱码信息?', { offset: ['20%', '35%'] }, function (index) {
|
console.log(data);
|
console.log(index);
|
for (let i = 0; i < list.length; i++) {
|
const ele = list[i];
|
if (ele.BoxCode == data.BoxCode) {
|
list.splice(i, 1)
|
}
|
}
|
console.log(list);
|
|
tableIns2.reload({
|
data: list,
|
page: {
|
curr: 1 //重新从第 1 页开始
|
}
|
});
|
layer.close(index);
|
});
|
|
}
|
});
|
var doing = true;
|
//提交箱码托盘关系
|
form.on('submit(Create)', function () {
|
|
|
if (!$.cookie('userId')) {
|
layer.msg('登陆失效,请重新登陆', {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () {
|
window.parent.location.href =
|
"../Login.html";
|
});
|
}
|
var result = true;
|
if ($("#BillCode").val().replace(/\s/g, "") == "") {
|
layer.msg("请填写入库单");
|
result = false;
|
return;
|
}
|
if ($("#StockCode").val().replace(/\s/g, "") == "") {
|
layer.msg("请填写托盘码");
|
result = false;
|
return;
|
}
|
|
// if (list.length == 0) {
|
// layer.msg('请填写箱码信息');
|
// result = false;
|
// return;
|
|
// }
|
if (result) {
|
var param = {
|
BillCode: $("#BillCode").val(),
|
StockCode: $("#StockCode").val(),
|
UserId: $.cookie('userId'), //当前登录人
|
List: list
|
}
|
|
if (doing) {
|
doing = false;
|
sendData(IP + "/ImportOrder/CreateBoxInfoNew2", param, 'post', function (res) {
|
console.log(res);
|
if (res.code == 1) { //成功
|
layer.msg(res.msg, {
|
icon: 1,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () {
|
var index = parent.layer.getFrameIndex(window.name);
|
parent.layer.close(index); //关闭弹层
|
parent.layui.table.reload('LAY-app-content-list');
|
doing = true;
|
});
|
} else { //不成功
|
layer.msg(res.msg, {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () { doing = true; });
|
}
|
});
|
|
}
|
}
|
|
return false;
|
|
});
|
|
// //关闭弹窗
|
// form.on('submit(Close)', function () {
|
|
// var index = parent.layer.getFrameIndex(window.name);
|
// parent.layer.close(index); //关闭弹层
|
|
// return false;
|
|
// });
|
|
var list = [
|
// {
|
// "BoxCode":"XM20220328001",
|
// "GoodCode":"100007",
|
// "LotNo":"PC1001",
|
// "Quant":100,
|
// "Qty":100,
|
// "BulkTank":0,
|
// "ProductionDate":"2022-03-14",
|
// "ValidateDay":"2022-09-14"
|
// }
|
];
|
|
//#region 导入文件测试
|
|
var upload = layui.upload;
|
|
//执行实例
|
var uploadInst = upload.render({
|
elem: '#daoru' //绑定元素
|
, url: '' //上传接口
|
, auto: false //是否选完文件后自动上传。如果设定 false,那么需要设置 bindAction 参数来指向一个其它按钮提交上传
|
, exts: 'slx|excel|xlsx' //允许上传的文件后缀
|
, accept: 'file' //指定允许上传时校验的文件类型
|
, bindAction: '#Create' //指向一个按钮触发上传
|
, choose: function (obj) {// 选择文件回调
|
console.log(obj);
|
var files = obj.pushFile(); //将每次选择的文件追加到文件队列
|
var fileArr = Object.values(files);// 注意这里的数据需要是数组,所以需要转换一下
|
console.log(fileArr)
|
// 用完就清理掉,避免多次选中相同文件时出现问题
|
for (var index in files) {
|
console.log(index);
|
if (files.hasOwnProperty(index)) {
|
delete files[index];
|
}
|
}
|
uploadExcel(fileArr); // 如果只需要最新选择的文件,可以这样写: uploadExcel([files.pop()])
|
}
|
, done: function (res) {
|
console.log(res);
|
//上传完毕回调
|
}
|
, error: function () {
|
//请求异常回调
|
}
|
});
|
|
function uploadExcel(files) {
|
try {
|
var excel = layui.excel;
|
excel.importExcel(files, {
|
// 读取数据的同时梳理数据
|
fields: {
|
'BoxCode': 'A',
|
'GoodCode': 'B',
|
'LotNo': 'C',
|
'Quant': 'D',
|
'Qty': 'E',
|
'BulkTank': 'F',
|
ProductionDate: 'G',
|
ValidateDay: 'H'
|
}
|
},
|
function (data) {
|
console.log(data);
|
// var arr = new Array();
|
//excel第一行不读取、设置为标题
|
for (i = 1; i < data[0].Sheet1.length; i++) {
|
var tt = {
|
BoxCode: data[0].Sheet1[i].BoxCode,
|
GoodCode: data[0].Sheet1[i].GoodCode,
|
LotNo: data[0].Sheet1[i].LotNo,
|
Quant: data[0].Sheet1[i].Quant,
|
Qty: data[0].Sheet1[i].Qty,
|
BulkTank: data[0].Sheet1[i].BulkTank,
|
ProductionDate: data[0].Sheet1[i].ProductionDate,
|
ValidateDay: data[0].Sheet1[i].ValidateDay,
|
};
|
list.push(tt);
|
}
|
// list.push(arr);
|
// console.log(list);
|
tableIns2.reload({
|
data: list,
|
page: {
|
curr: 1 //重新从第 1 页开始
|
}
|
});
|
});
|
} catch (e) {
|
layer.alert(e.message);
|
}
|
|
}
|
|
|
|
})
|
</script>
|
</body>
|
|
</html>
|