<!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{
|
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;">
|
<input type="text" id="BillCode" name="BillCode" placeholder="入库单" autocomplete="off"
|
class="layui-input">
|
</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;">
|
<input type="text" id="StockCode" name="StockCode" placeholder="托盘条码" autocomplete="off"
|
class="layui-input ">
|
</div>
|
</div>
|
</div>
|
<div class="layui-form-item beiJing" >
|
<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;">
|
<input type="text" id="BoxCode" name="BoxCode" placeholder="箱码编号"
|
autocomplete="off" class="layui-input" lay-verify="required">
|
</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;">
|
<input type="text" id="GoodCode" name="GoodCode" placeholder="物品编号"
|
autocomplete="off" class="layui-input" lay-verify="required">
|
</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;">
|
<input type="text" id="LotNo" name="LotNo" placeholder="批次号" autocomplete="off"
|
class="layui-input" lay-verify="required">
|
</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;">
|
<input type="number" id="Quant" name="Quant" placeholder="满箱数量"
|
autocomplete="off" class="layui-input" min="0" value="0" lay-verify="required" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')">
|
</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;">
|
<input type="number" id="Qty" name="Qty" placeholder="实际数量"
|
autocomplete="off" class="layui-input" min="0" value="0" lay-verify="required" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')">
|
</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;">
|
<input type="text" autocomplete="off" name="StartTime" id="StartTime" class="layui-input"
|
placeholder="生产日期">
|
</div>
|
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label" style="width: 60px;">过期日期</label>
|
<div class="layui-input-inline">
|
<input type="text" autocomplete="off" name="EndTime" id="EndTime" class="layui-input"
|
placeholder="过期日期">
|
</div>
|
</div>
|
<div class="layui-inline">
|
<button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit lay-filter="confirm">添加</button>
|
<button type="button" class="layui-btn layui-btn-sm" id="daoru">
|
导入
|
</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 class="buJu">
|
<button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit lay-filter="Close">取消</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>
|
|
|
<script src="../../../layuiadmin/layui/layui.js"></script>
|
<script src="../../../js/public.js"></script>
|
<script src="../../../js/jquery-3.5.1.min.js"></script>
|
<script src="../../../js/jquery.cookie.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 tableIns;
|
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();
|
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 页开始
|
}
|
});
|
|
// $.ajax({
|
// async: false,
|
// url: basePath + 'PowerUser/importPowerUserData.action',
|
// type: 'post',
|
// dataType: "json",
|
// contentType: "application/x-www-form-urlencoded",
|
// data: {
|
// data : JSON.stringify(arr)
|
// },
|
// success: function (data) {
|
// if(data.success){
|
// layer.msg(data.message);
|
// setTimeout(function () {
|
// layer.closeAll(); //疯狂模式,关闭所有层
|
// },1000);
|
// //表格导入成功后,重载表格
|
// tableIns.reload('testTerminalConfigReload',{
|
// url : basePath + 'PowerUser/PowerUserDataTable.action',
|
// page : {
|
// limit : 10, // 初始 每页几条数据
|
// limits : [ 10, 20, 30 ]
|
// // 可以选择的 每页几条数据
|
// },
|
// where : {
|
// cId : selectConcentrator,
|
// tId : selectTerminal
|
// },
|
// parseData: function(res){ //res 即为原始返回的数据
|
// return {
|
// "code": 0, //解析接口状态
|
// "msg": res.message, //解析提示文本
|
// "count": res.total, //解析数据长度
|
// "data": res.data //解析数据列表
|
// };
|
// }
|
// }, 'data');
|
// }else{
|
// //表格导入失败后,重载文件上传
|
// layer.alert(data.error+"请重新上传",{icon : 2});
|
// }
|
// },
|
// error: function (msg) {
|
// layer.msg('请联系管理员!!!');
|
// }
|
// });
|
});
|
} catch (e) {
|
layer.alert(e.message);
|
}
|
|
}
|
|
//#endregion
|
laydate.render({
|
elem: '#StartTime'
|
,format: 'yyyy-MM-dd' //可任意组合
|
});
|
laydate.render({
|
elem: '#EndTime'
|
,format: 'yyyy-MM-dd' //可任意组合
|
});
|
|
|
|
|
var tableIns2 =table.render({
|
elem: '#Box-list',
|
height: 'full-220',
|
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: 'BoxCode',
|
title: '箱码编号',
|
align: 'center',
|
fixed: 'left',
|
edit: 'text',
|
}, {
|
field: 'GoodCode',
|
title: '物品编号',
|
align: 'center',
|
fixed: 'left'
|
},
|
{
|
field: 'LotNo',
|
templet: '#buttonTpl',
|
title: '批次号',
|
|
align: 'center',
|
fixed: 'left'
|
},
|
{
|
field: 'Quant',
|
title: '满箱数量',
|
align: 'center',
|
width: 110,
|
fixed: 'left'
|
},{
|
field: 'Qty',
|
title: '实际数量',
|
align: 'center',
|
width: 110,
|
fixed: 'left'
|
},
|
{
|
field: 'BulkTank',
|
title: '零头箱',
|
align: 'center',
|
width: 90,
|
fixed: 'left',
|
templet: '#bulkTank'
|
},
|
{
|
field: 'ProductionDate',
|
title: '生产时间',
|
align: 'center',
|
fixed: 'left',
|
},{
|
field: 'ValidateDay',
|
title: '过期时间',
|
align: 'center',
|
fixed: 'left',
|
},{
|
title: '操作',
|
fixed: 'right',
|
width: 100,
|
align: 'center',
|
toolbar: '#table-content-list'
|
}]
|
],
|
|
});
|
|
//添加箱码集合
|
form.on('submit(confirm)', function(data) {
|
|
// console.log(data.field);
|
|
var result = true;
|
// str.replace(/\s/g,"") js去除string字符串左右中间的空格
|
list.forEach( item=>{
|
if(item.BoxCode.replace(/\s/g,"") === data.field.BoxCode.replace(/\s/g,"")){
|
layer.msg('箱码编号已存在');
|
result = false;
|
return;
|
}
|
})
|
if (parseInt(data.field.Quant)<=0) {
|
layer.msg('箱内满箱数量不能为0');
|
result = false;
|
return;
|
}
|
if (parseInt(data.field.Qty)<=0) {
|
layer.msg('箱内实际数量不能为0');
|
result = false;
|
return;
|
|
}
|
if (result) {
|
list.push({
|
BoxCode: data.field.BoxCode,
|
GoodCode: data.field.GoodCode,
|
LotNo: data.field.LotNo,
|
Qty: data.field.Qty,
|
Quant: data.field.Quant,
|
BulkTank: parseInt(data.field.Qty) < parseInt(data.field.Quant)? 1:0,
|
ProductionDate: data.field.StartTime,
|
ValidateDay: data.field.EndTime
|
})
|
console.log(list);
|
$("#BoxCode").val("") ;
|
$("#GoodCode").val("") ;
|
$("#LotNo").val("");
|
$("#Qty").val("");
|
$("#Quant").val("");
|
$("#BulkTank").val("");
|
$("#StartTime").val("");
|
$("#EndTime").val("");
|
|
tableIns2.reload({
|
data:list,
|
page: {
|
curr: 1 //重新从第 1 页开始
|
}
|
});
|
}
|
|
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);
|
});
|
|
}
|
else if (obj.event === 'edit') {
|
alert("点击修改了");
|
// cusId = data.Id;
|
// layer.open({
|
// type: 2,
|
// title: '编辑入库流水信息',
|
// content: 'ImportOrderEditForm.html?id=' + cusId,
|
// maxmin: true,
|
// area: ['330px', '200px'],
|
// btn: ['确定', '取消'],
|
|
// });
|
}
|
});
|
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,"") == "") {
|
// alert("请填写入库单");
|
// result = false;
|
// return;
|
// }
|
// if ($("#StockCode").val().replace(/\s/g,"") == "") {
|
// alert("请填写托盘码");
|
// 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,
|
}
|
console.log(param);
|
if (doing) {
|
doing = false;
|
sendData(IP + "/ImportOrder/CreateBoxInfoNew", 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;
|
|
});
|
|
|
|
})
|
</script>
|
</body>
|
</html>
|