<!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">
|
|
<script>
|
// 这里是需要在页面渲染之前执行的代码
|
document.addEventListener("DOMContentLoaded", function () {
|
//获取table默认显示数
|
pageCntFirst();
|
//判断是否开启table列表列宽调整功能。
|
GetIsSetColW();
|
});
|
</script>
|
<link rel="stylesheet" href="../../css/public.css" media="all">
|
</head>
|
|
<body id="body">
|
|
<div class="layui-fluid" style="padding-bottom: 0;">
|
<div class="layui-card">
|
<div class="layui-form layui-card-header layuiadmin-card-header-auto" id="top">
|
<div class="layui-form-item">
|
|
<div class="layui-inline">
|
<label class="layui-form-label" style="width: 60px;">出库单号</label>
|
<div class="layui-input-inline">
|
<input type="text" id="SoNo" name="SoNo" placeholder="出库单号" autocomplete="off"
|
class="layui-input">
|
</div>
|
</div>
|
<!-- <div class="layui-inline">
|
<label class="layui-form-label" style="width: 60px;">波次单号</label>
|
<div class="layui-input-inline">
|
<input type="text" id="WaveNo" name="WaveNo" placeholder="波次单号" autocomplete="off"
|
class="layui-input">
|
</div>
|
</div> -->
|
<div class="layui-inline">
|
<label class="layui-form-label" style="width: 60px;">托盘号</label>
|
<div class="layui-input-inline">
|
<input type="text" id="PalletNo" name="PalletNo" placeholder="托盘号" autocomplete="off"
|
class="layui-input">
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label" style="width: 60px;">物料编码</label>
|
<div class="layui-input-inline">
|
<input type="text" id="SkuNo" name="SkuNo" placeholder="物料编码" autocomplete="off"
|
class="layui-input">
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label" style="width: 60px;">物料名称</label>
|
<div class="layui-input-inline">
|
<input type="text" id="SkuName" name="SkuName" placeholder="物料名称" autocomplete="off"
|
class="layui-input">
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label" style="width: 60px;">进厂编号</label>
|
<div class="layui-input-inline">
|
<input type="text" id="LotNo" name="LotNo" placeholder="进厂编号" autocomplete="off"
|
class="layui-input">
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label" style="width: 60px;">箱号</label>
|
<div class="layui-input-inline">
|
<input type="text" id="BoxNo" name="BoxNo" placeholder="箱号" autocomplete="off"
|
class="layui-input">
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label" style="width: 60px;">状态</label>
|
<div class="layui-input-inline">
|
<select name="Status" id="Status" lay-filter="Status" lay-search>
|
<option value=""></option>
|
<option value="0">待下发 </option>
|
<option value="1">任务下发</option>
|
<option value="2">待拣货</option>
|
<option value="3">部分拣货</option>
|
<!-- <option value="4">待回库</option> -->
|
<option value="5">已完成</option>
|
<option value="6">异常取消</option>
|
</select>
|
</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="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="LAY-app-contlist-search">
|
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>搜索
|
</button>
|
</div>
|
</div>
|
</div>
|
<div class="layui-card-body">
|
<div>
|
<div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
|
<ul class="layui-tab-title" id="tab">
|
<li class="layui-this">托盘信息</li>
|
<li>箱码信息</li>
|
</ul>
|
|
<div id="center"></div>
|
|
<div class="layui-tab-content">
|
<div class="layui-tab-item layui-show">
|
<div class="position-relative"><!-- class="position-relative" --><!-- 自定义表头加上 -->
|
<table id="LAY-app-content-list" lay-filter="LAY-app-content-list"></table>
|
<!-- #region 自定义表头 -->
|
<div class="headerSetIcon">
|
<button class="layui-btn layui-btn-primary layui-btn-sm" data-type="customCols">
|
<i class="layui-icon"></i>
|
</button>
|
</div>
|
<!-- #endregion -->
|
|
<!-- #region 自定义表头 -->
|
<script type="text/html" id="templetStatus">
|
{{# function GetBtn3(d){
|
switch (d.Status) {
|
case "0":
|
return `<button class="layui-btn layui-btn-radius layui-btn-xs">待下发</button>`;
|
case "1":
|
return `<button class="layui-btn layui-btn-radius layui-btn-warm layui-btn-xs">任务下发</button>`;
|
case "2":
|
return `<button class="layui-btn layui-btn-radius layui-btn-normal layui-btn-xs">待拣货</button>`;
|
case "3":
|
return `<button class="layui-btn layui-btn-radius layui-btn-warm layui-btn-xs">部分拣货</button>`;
|
case "4":
|
return "";
|
case "5":
|
return `<button class="layui-btn layui-btn-radius layui-btn-danger layui-btn-xs">已完成</button>`;
|
case "6":
|
return `<button class="layui-btn layui-btn-radius layui-btn-danger layui-btn-xs">异常取消</button>`;
|
default:
|
return "";
|
}
|
}
|
}}
|
{{ GetBtn3(d) }}
|
</script>
|
|
<script type="text/html" id="templetIsAdvance">
|
{{# function GetBtn4(d){
|
switch (d.IsAdvance) {
|
case "0":
|
return "出库";
|
case "1":
|
return "预拣";
|
default:
|
return "";
|
}
|
}
|
}}
|
{{ GetBtn4(d) }}
|
</script>
|
|
<script type="text/html" id="templetIsBale">
|
{{# function GetBtn5(d){
|
switch (d.IsBale) {
|
case "0":
|
return "不裹包";
|
case "1":
|
return "裹包";
|
default:
|
return "";
|
}
|
}
|
}}
|
{{ GetBtn5(d) }}
|
</script>
|
|
<script type="text/html" id="templetIsBelt">
|
{{# function GetBtn6(d){
|
switch (d.IsBelt) {
|
case "0":
|
return "不打带";
|
case "1":
|
return "打带";
|
default:
|
return "";
|
}
|
}
|
}}
|
{{ GetBtn6(d) }}
|
</script>
|
|
<script type="text/html" id="templetCreateTime">
|
{{# function GetBtn7(d){
|
return formatDate(d.CreateTime);
|
}
|
}}
|
{{ GetBtn7(d) }}
|
</script>
|
<script type="text/html" id="templetUpdateTime">
|
{{# function GetBtn71(d){
|
return formatDate(d.UpdateTime);
|
}
|
}}
|
{{ GetBtn71(d) }}
|
</script>
|
<script type="text/html" id="templetUnstackingMode">
|
{{# function GetBtn8(d){
|
switch (d.UnstackingMode) {
|
case "0":
|
return "机器人拆垛";
|
case "1":
|
return "人工拆垛";
|
default:
|
return "";
|
}
|
}
|
}}
|
{{ GetBtn8(d) }}
|
</script>
|
|
<!-- #endregion -->
|
</div>
|
</div>
|
<div class="layui-tab-item">
|
<div class="position-relative"><!-- class="position-relative" --><!-- 自定义表头加上 -->
|
<table id="LAY-app-content-list2" lay-filter="LAY-app-content-list2"></table>
|
<!-- #region 自定义表头 -->
|
<div class="headerSetIcon">
|
<button class="layui-btn layui-btn-primary layui-btn-sm"
|
data-type="customCols2">
|
<i class="layui-icon"></i>
|
</button>
|
</div>
|
<!-- #endregion -->
|
|
<!-- #region 自定义表头 -->
|
<script type="text/html" id="templetCreateTime2">
|
{{# function GetBtn8(d){
|
return formatDate(d.CreateTime);
|
}
|
}}
|
{{ GetBtn8(d) }}
|
</script>
|
<!-- #endregion -->
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
<script type="text/html" id="table-content-list">
|
{{# function GetBtn1(d){
|
var html = '';
|
if(d.Status == "0"){
|
html =`<a class="layui-btn layui-btn-danger layui-btn-xs chexiaoClass" lay-event="del">
|
<i class="layui-icon layui-icon-delete"></i>撤销
|
</a>`;
|
}
|
return html;
|
}
|
}}
|
{{ GetBtn1(d) }}
|
</script>
|
<script type="text/html" id="table-content-list2">
|
{{# function GetBtn2(d){
|
var html = '';
|
if(d.SkuNo != "100099" && d.BoxNo != ''){
|
html =`<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="sel">
|
<i class="layui-icon layui-icon-edit"></i>详情</a>`;
|
}
|
return html;
|
}
|
}}
|
{{ GetBtn2(d) }}
|
</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.config({
|
base: '../../layuiadmin/' //静态资源所在路径
|
}).extend({
|
index: 'lib/index' //主入口模块
|
}).use(['index', 'table', 'laypage', 'element', 'layer', 'laydate'], function () {
|
var table = layui.table,
|
form = layui.form,
|
element = layui.element;
|
laypage = layui.laypage,
|
layer = layui.layer,
|
laydate = layui.laydate;
|
var $ = layui.$;
|
var h1 = GetTableTabHeight();
|
|
// var h1 = GetTableTopHeight();
|
// var h2 = GetTableBottomHeight();
|
// laydate.render({
|
// elem: '#StartTime'
|
// , format: 'dd-MM-yyyy' //可任意组合
|
// });
|
// laydate.render({
|
// elem: '#EndTime'
|
// , format: 'dd-MM-yyyy' //可任意组合
|
// });
|
var mxId = "0";
|
var yemianid = 0;
|
refreshTable();
|
refreshTablemx(mxId)
|
//渲染出库分配table
|
//#region 自定义表头
|
var TotalColsArr = [[
|
{ field: '', title: '序号', type: 'numbers', width: 60, align: 'center', fixed: 'left', "disabled": true },
|
{ field: 'SONo', title: '出库单号', align: 'center', fixed: 'left', width: 180, "disabled": true },
|
{ field: 'WaveNo', title: '波次单号', align: 'center', width: 180 },
|
{ field: 'PalletNo', title: '托盘号', align: 'center', width: 95, },
|
{ field: 'SkuNo', title: '物料编码', align: 'center', minWidth: 120 },
|
{ field: 'SkuName', title: '物料名称', align: 'center', width: 150 },
|
{ field: 'LotNo', title: '进厂编号', align: 'center', width: 125 },
|
{ field: 'Status', align: 'center', title: '状态', width: 90, templet: '#templetStatus' },
|
{ field: 'Qty', title: '出库数量', align: 'center', width: 90, },
|
{ field: 'CompleteQty', title: '拣货数量', align: 'center', width: 90 },
|
{ field: 'UnstackingMode', title: '拆垛方式', align: 'center', width: 90, templet: '#templetUnstackingMode' },
|
{ field: 'OutMode', title: '出库口', align: 'center', width: 90, templet: '#outType', },
|
{ field: 'LoadingAddre', title: '装车口', align: 'center', width: 90, templet: '#outType', },
|
{ field: 'IsAdvance', title: '拣货类型', align: 'center', width: 90, templet: '#templetIsAdvance' },
|
{ field: 'SupplierLot', title: '原厂批号', align: 'center', width: 110 },
|
{ field: 'LotText', title: '批次描述', align: 'center', width: 150 },
|
{ field: 'Standard', title: '物料规格', align: 'center', minWidth: 120, },
|
{ field: 'IsBale', title: '是否裹包', align: 'center', templet: '#templetIsBale', width: 90 },
|
{ field: 'IsBelt', title: '是否打带', align: 'center', templet: '#templetIsBelt', width: 90 },
|
{ field: 'CreateTime', align: 'center', title: '创建时间', width: 160, templet: '#templetCreateTime' },
|
{ field: 'UpdateTime', align: 'center', title: '完成时间', width: 160, templet: '#templetUpdateTime' },
|
{ field: 'caozuo', title: '操作', fixed: 'right', width: 100, align: 'center', toolbar: '#table-content-list', "disabled": true }
|
]];
|
var TotalColsSysArr = encodeURIComponent(encodeURIComponent(JSON.stringify(TotalColsArr)))//将表头数据进行url编码
|
//#endregion
|
function refreshTable() {
|
|
//#region 自定义表头
|
var colsJson
|
var param1 = {
|
Href: 'BllSo/GetExportAllotList'
|
};
|
sendData(IP + "/Sys/GetTableColsByUserId", param1, 'post', function (res) {
|
if (res.code == 0) {
|
if (res.data == '' || res.data == undefined || res.data == null) {
|
colsJson = TotalColsArr
|
} else {
|
colsJson = eval(res.data);
|
}
|
} else {
|
colsJson = TotalColsArr
|
}
|
var param = {
|
SoNo: $("#SoNo").val(),
|
// WaveNo:$("#WaveNo").val(),
|
PalletNo: $("#PalletNo").val(),
|
SkuNo: $("#SkuNo").val(),
|
SkuName: $("#SkuName").val(),
|
LotNo: $("#LotNo").val(),
|
Status: $("#Status").val(),
|
BoxNo: $("#BoxNo").val(),
|
};
|
table.render({
|
elem: '#LAY-app-content-list',
|
url: IP + "/BllSo/GetExportAllotList",
|
method: 'POST',
|
height: h1,
|
id: 'LAY-app-content-list',
|
where: param,
|
contentType: 'application/json',
|
headers: { ToKen: $.cookie('token') },
|
page: true,
|
limit: pageCnt,
|
limits: pageLimits,
|
cellMinWidth: 60, //全局定义常规单元格的最小宽度,layui 2.2.1 新增
|
done: function () {
|
initMenu();
|
//自定义列宽
|
SetTableColW('LAY-app-content-list', 'BllSo/GetExportAllotList', TotalColsSysArr);
|
},
|
cols: colsJson
|
});
|
});
|
//#endregion
|
|
}
|
//渲染拣货明细table
|
//#region 自定义表头
|
var DetailColsArr = [[
|
{ field: '', title: '序号', type: 'numbers', width: 60, align: 'center', fixed: 'left', "disabled": true },
|
{ field: 'SONo', title: '出库单号', align: 'center', fixed: 'left', width: 180, "disabled": true },
|
{ field: 'PalletNo', title: '托盘号', align: 'center', width: 95 },
|
{ field: 'BoxNo', title: '箱号', align: 'center', width: 220 },
|
//{field: 'BoxNo2',title: '盒号',align: 'center',width: 115},
|
//{field: 'BoxNo3',title: '支号',align: 'center',width: 115},
|
{ field: 'SkuNo', title: '物料编码', align: 'center', width: 120, },
|
{ field: 'SkuName', title: '物料名称', align: 'center' },
|
{ field: 'LotNo', title: '进厂编号', align: 'center', width: 125, },
|
{ field: 'CompleteQty', title: '拣货数量', align: 'center', width: 90, },
|
{ field: 'NowPalletNo', title: '新托盘', align: 'center', width: 95, },
|
{ field: 'LotText', title: '批次描述', align: 'center', width: 150, },
|
{ field: 'SupplierLot', title: '原厂批号', align: 'center', width: 110, },
|
{ field: 'Standard', title: '物料规格', align: 'center', width: 120, },
|
//{field: 'CreateTime',align: 'center',title: '拣货时间',width: 165,templet: '#templetCreateTime2'},
|
{ field: 'caozuo', title: '操作', fixed: 'right', width: 100, align: 'left', toolbar: '#table-content-list2', "disabled": true }
|
]];
|
var DetailColsSysArr = encodeURIComponent(encodeURIComponent(JSON.stringify(DetailColsArr)))//将表头数据进行url编码
|
//#endregion
|
function refreshTablemx(val) {
|
|
//#region 自定义表头
|
var colsJson2
|
var param1 = {
|
Href: 'BllSo/GetCompleteDetailList'
|
};
|
sendData(IP + "/Sys/GetTableColsByUserId", param1, 'post', function (res) {
|
if (res.code == 0) {
|
if (res.data == '' || res.data == undefined || res.data == null) {
|
colsJson2 = DetailColsArr
|
} else {
|
colsJson2 = eval(res.data);
|
}
|
} else {
|
colsJson2 = DetailColsArr
|
}
|
var param = {
|
Id: parseInt(val)
|
};
|
table.render({
|
elem: '#LAY-app-content-list2',
|
url: IP + "/BllSo/GetCompleteDetailList",
|
method: 'POST',
|
height: h1,
|
id: 'LAY-app-content-list2',
|
where: param,
|
contentType: 'application/json',
|
headers: { ToKen: $.cookie('token') },
|
page: true,
|
limit: pageCnt,
|
limits: pageLimits,
|
cellMinWidth: 60, //全局定义常规单元格的最小宽度,layui 2.2.1 新增
|
done: function () {
|
initMenu();
|
//自定义列宽
|
SetTableColW('LAY-app-content-list2', 'BllSo/GetCompleteDetailList', DetailColsSysArr);
|
},
|
cols: colsJson2
|
});
|
});
|
//#endregion
|
}
|
|
//监听搜索
|
form.on('submit(LAY-app-contlist-search)', function (data) {
|
|
refreshTable();
|
//refreshTablemx(mxId)
|
});
|
//权限
|
function initMenu() {
|
$(function () {
|
$(".chexiaoClass").hide(); //撤销
|
});
|
sendData(IP + "/Basis/GetRoleRightList", {}, 'get', function (res) {
|
if (res.code == 0) { //成功
|
for (var k = 0; k < res.data.length; k++) {
|
if (res.data[k].ParentNo == "2400") {
|
if (res.data[k].MenuName == "撤销") {
|
console.log(res.data[k].MenuName);
|
$(function () {
|
$(".chexiaoClass").show();
|
});
|
}
|
}
|
}
|
} else { //不成功
|
layer.msg('获取权限信息失败', {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () { });
|
}
|
});
|
}
|
|
//监听Tab切换,以改变地址hash值
|
element.on('tab(docDemoTabBrief)', function (data) {
|
yemianid = data.index
|
if (yemianid == 0) {
|
refreshTable();
|
} else if (yemianid == 1) {
|
// refreshTablemx(mxId)
|
}
|
});
|
|
//触发行双击事件
|
table.on('rowDouble(LAY-app-content-list)', function (obj) {
|
$(".layui-tab-title>li").attr("class", "");
|
$('.layui-tab-title>li').eq(1).attr('class', 'layui-this');
|
$('.layui-tab-content .layui-tab-item').attr('class', 'layui-tab-item')
|
$('.layui-tab-content .layui-tab-item').eq(1).attr('class', 'layui-tab-item layui-show')
|
|
refreshTablemx(obj.data.Id);
|
mxId = "0";
|
yemianid = 1;
|
});
|
var doing = true;
|
//撤销
|
table.on('tool(LAY-app-content-list)', function (obj) {
|
console.log(obj);
|
if (obj.event === 'del') {
|
layer.confirm('确定撤销选中的分配信息吗?', function (index) {
|
if (doing) {
|
doing = false;
|
|
var param = {
|
Id: parseInt(obj.data.Id)
|
};
|
sendData(IP + "/BllSo/DelExportAllot", param, 'post', function (res) {
|
console.log(res);
|
if (res.code == 0) { //成功
|
layer.msg(res.msg, {
|
icon: 1,
|
time: 1000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () {
|
refreshTable();
|
doing = true;
|
});
|
} else { //不成功
|
layer.msg(res.msg, {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () {
|
doing = true;
|
});
|
}
|
});
|
}
|
|
});
|
}
|
});
|
|
table.on('tool(LAY-app-content-list2)', function (obj) {
|
console.log(obj);
|
var data = obj.data;
|
if (obj.event === 'sel') {
|
BoxNo = data.BoxNo;
|
console.log(data)
|
layer.open({
|
type: 2,
|
title: '箱支详情信息',
|
content: 'ComBoxInfo.html?BoxNo=' + BoxNo,
|
maxmin: true,
|
area: ['80%', '85%'],
|
btn: ['关闭'],
|
yes: function (index, layero) {
|
var iframeWindow = window['layui-layer-iframe' + index],
|
submitID = 'layuiadmin-app-form-edit',
|
submit = layero.find('iframe').contents().find('#' + submitID);
|
if (doing) {
|
doing = false;
|
|
layer.close(index); //关闭弹层
|
refreshTable();
|
doing = true;
|
|
|
}
|
}
|
});
|
}
|
});
|
|
//#region 自定义表头
|
//自定义表头
|
active = {
|
customCols: function () {
|
layer.open({
|
type: 2,
|
title: '自定义列',
|
content: '../SystemSettings/HeaderSetting.html?Href=BllSo/GetExportAllotList&ColsSysArr=' + TotalColsSysArr,
|
maxmin: false,
|
resize: false,
|
area: ['970px', '650px']
|
});
|
},
|
customCols2: function () {
|
layer.open({
|
type: 2,
|
title: '自定义列',
|
content: '../SystemSettings/HeaderSetting.html?Href=BllSo/GetCompleteDetailList&ColsSysArr=' + DetailColsSysArr,
|
maxmin: false,
|
resize: false,
|
area: ['970px', '650px']
|
});
|
}
|
|
};
|
$('.layui-btn').on('click', function () {
|
var type = $(this).data('type');
|
active[type] ? active[type].call(this) : '';
|
});
|
//#endregion
|
});
|
</script>
|
</body>
|
|
</html>
|