<!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">
|
<link rel="stylesheet" href="../../css/public.css" media="all">
|
<style>
|
.layui-table-tool-panel {
|
top: auto;
|
bottom: 29px;
|
}
|
|
.layui-table-tool {
|
padding-left: 5px;
|
}
|
|
/* 表格下拉小箭头隐藏 */
|
/* .layui-table-grid-down {
|
display: none;
|
}*/
|
</style>
|
|
<script>
|
// 这里是需要在页面渲染之前执行的代码
|
document.addEventListener("DOMContentLoaded", function () {
|
//获取table默认显示数
|
pageCntFirst();
|
//判断是否开启table列表列宽调整功能。
|
GetIsSetColW();
|
});
|
</script>
|
</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">波次单号</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">出库单号</label>
|
<div class="layui-input-inline">
|
<input type="text" id="No" name="No" placeholder="出库单号" autocomplete="off"
|
class="layui-input">
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label">单据类型</label>
|
<div class="layui-input-inline">
|
<select name="Type" id="Type" lay-filter="Type" lay-search>
|
<option value=""></option>
|
<!-- 23 -->
|
<option value="0">成品出库</option>
|
<option value="1">领料出库</option>
|
<option value="3">取样出库</option>
|
<option value="4">不合格品出库</option>
|
<option value="6">代储出库</option>
|
<option value="7">其他出库</option>
|
</select>
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label">执行状态</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">批次号</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">承运商</label>
|
<div class="layui-input-inline">
|
<select name="LogisticsId" id="LogisticsId" lay-search>
|
<option value=""></option>
|
</select>
|
</div>
|
</div>
|
<!-- <div class="layui-inline">
|
<label class="layui-form-label">是否波次</label>
|
<div class="layui-input-inline">
|
<select name="IsWave" id="IsWave" lay-search>
|
<option value=""></option>
|
<option value="0">否</option>
|
<option value="1">是</option>
|
</select>
|
</div>
|
</div> -->
|
<div class="layui-inline">
|
<label class="layui-form-label">是否发运</label>
|
<div class="layui-input-inline">
|
<select name="IsDespatch" id="IsDespatch" lay-search>
|
<option value=""></option>
|
<option value="0">否</option>
|
<option value="1">是</option>
|
</select>
|
</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 class="layui-inline" id="divPickingArea" style="display: none; padding-top: 10px;">
|
<div class="layui-inline">
|
<label class="layui-form-label">拆垛方式</label>
|
<div class="layui-input-inline" style="width: 220px;">
|
<select name="UnstackWay" id="UnstackWay" lay-filter="UnstackWay" lay-search>
|
<option value="0" selected>机器人拆垛</option>
|
<option value="1">PDA拆垛</option>
|
</select>
|
</div>
|
</div>
|
<div class="layui-inline DivLoadingArea" style="margin-top: 10px;">
|
<label class="layui-form-label">装车口</label>
|
<div class="layui-input-inline" style="width: 220px;">
|
<select name="LoadingArea" id="LoadingArea" lay-search>
|
<option value=""></option>
|
<option value="1">1</option>
|
<option value="2">2</option>
|
<option value="3">3</option>
|
<option value="4">4</option>
|
</select>
|
</div>
|
</div>
|
<div class="layui-inline DivPickingArea2" style="margin-top: 10px;">
|
<label class="layui-form-label">出库口</label>
|
<div class="layui-input-inline" style="width: 220px;">
|
<select name="PickingArea" id="PickingArea" lay-search>
|
<option value=""></option>
|
<option value="1">1</option>
|
<option value="2">2</option>
|
<option value="3">3</option>
|
<option value="4">4</option>
|
</select>
|
</div>
|
</div>
|
</div>
|
<!-- 维护备注弹框 -->
|
<div class="layui-inline" id="divEditDemo" style="display: none; padding-top: 10px;">
|
<label class="layui-form-label">备注</label>
|
<div class="layui-input-inline" style="width: 300px;height: 100%;">
|
<textarea placeholder="请输入内容" id="NoticeDemo" name="NoticeDemo"
|
class="layui-textarea"></textarea>
|
</div>
|
</div>
|
</div>
|
</div>
|
<div id="center"></div>
|
<div class="layui-card-body">
|
<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="templetType">
|
{{# function GetBtn3(d){
|
switch (d.Type) {
|
case "0":
|
return "成品出库";
|
case "1":
|
return "领料出库";
|
case "2":
|
return "抽检出库";
|
case "3":
|
return "取样出库";
|
case "4":
|
return "不合格品出库";
|
case "5":
|
return "中间品出库";
|
case "6":
|
return "代储出库";
|
case "7":
|
return "其他出库";
|
case "8":
|
return "寄存出库";
|
default:
|
return "";
|
}
|
}
|
}}
|
{{ GetBtn3(d) }}
|
</script>
|
|
<script type="text/html" id="templetStatus">
|
{{# function GetBtn4(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-warm layui-btn-xs">已分配</button>`;
|
case "3":
|
return `<button class="layui-btn layui-btn-radius layui-btn-danger layui-btn-xs">正在执行</button>`;
|
case "4":
|
return `<button class="layui-btn layui-btn-radius layui-btn-normal layui-btn-xs">执行完毕</button>`;
|
case "5":
|
return `<button class="layui-btn layui-btn-radius layui-btn-normal layui-btn-xs">订单关闭</button>`;
|
case "6":
|
return `<button class="layui-btn layui-btn-radius layui-btn-normal layui-btn-xs">上传完毕</button>`;
|
default:
|
return "";
|
}
|
}
|
}}
|
{{ GetBtn4(d) }}
|
</script>
|
|
<script type="text/html" id="templetIsDespatch">
|
{{# function GetBtn5(d){
|
switch (d.IsDespatch) {
|
case "0":
|
return "否";
|
case "1":
|
return "是";
|
default:
|
return "";
|
}
|
}
|
}}
|
{{ GetBtn5(d) }}
|
</script>
|
|
<script type="text/html" id="templetCreateTime">
|
{{# function GetBtn6(d){
|
return formatDate(d.CreateTime);
|
}
|
}}
|
{{ GetBtn6(d) }}
|
</script>
|
|
<script type="text/html" id="templetUpdateTime">
|
{{# function GetBtn7(d){
|
return formatDate(d.UpdateTime);
|
}
|
}}
|
{{ GetBtn7(d) }}
|
</script>
|
|
<script type="text/html" id="templetCheckTime">
|
{{# function GetBtn8(d){
|
return formatDate(d.CheckTime);
|
}
|
}}
|
{{ GetBtn8(d) }}
|
</script>
|
<!-- #endregion -->
|
</div>
|
<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="templetIsBale">
|
{{# function GetBtn8(d){
|
switch (d.IsBale) {
|
case "0":
|
return "不裹包";
|
case "1":
|
return "裹包";
|
default:
|
return "";
|
}
|
}
|
}}
|
{{ GetBtn8(d) }}
|
</script>
|
|
<script type="text/html" id="templetIsBelt">
|
{{# function GetBtn9(d){
|
switch (d.IsBelt) {
|
case "0":
|
return "不打带";
|
case "1":
|
return "打带";
|
default:
|
return "";
|
}
|
}
|
}}
|
{{ GetBtn9(d) }}
|
</script>
|
<!-- #endregion -->
|
</div>
|
</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', 'layer', 'laydate'], function () {
|
var table = layui.table,
|
form = layui.form,
|
laypage = layui.laypage,
|
layer = layui.layer;
|
laydate = layui.laydate;
|
var $ = layui.$;
|
var h1 = GetTableTopHeight();
|
var h2 = GetTableBottomHeight();
|
|
// laydate.render({
|
// elem: '#StartTime'
|
// , format: 'dd-MM-yyyy' //可任意组合
|
// });
|
// laydate.render({
|
// elem: '#EndTime'
|
// , format: 'dd-MM-yyyy' //可任意组合
|
// });
|
var isChongFu = true;
|
var xqid = "kong";
|
refreshTable();
|
// refreshTablemx(xqid);
|
//获取承运商物流
|
sendData(IP + "/Basis/GetLogisticsInfoSelect", {}, 'get', function (res) {
|
if (res.code == 0) { //成功
|
$("#LogisticsId").empty();
|
$("#LogisticsId").append('<option value =""></option>');
|
for (var i = 0; i < res.data.length; i++) {
|
$("#LogisticsId").append('<option value =' + res.data[i].Id + '>' +
|
res.data[i].CarrierName + '</option>');
|
}
|
|
form.render('select');
|
} else { //不成功
|
layer.msg(res.msg, {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () { });
|
}
|
});
|
//渲染出库总单
|
//#region 自定义表头
|
var TotalColsArr = [[
|
{ field: '', title: '序号', type: 'numbers', width: 50, align: 'center', fixed: 'left', "disabled": true },
|
{ field: 'SONo', title: '出库单号', align: 'center', fixed: 'left', width: 165, "disabled": true },
|
{ field: 'Type', title: '单据类型', align: 'center', templet: '#templetType' },
|
{ field: 'Status', title: '执行状态', align: 'center', templet: '#templetStatus' },
|
{ field: 'LogisticsName', title: '承运商', align: 'center' },
|
{ field: 'CustomerName', title: '客户名称', align: 'center' },
|
// { field: 'LotNo', title: '批次号', align: 'center' },
|
// { field: 'LotNoText', title: '批次描述', align: 'center' },
|
{ field: 'IsDespatch', title: '是否发运', align: 'center', templet: '#templetIsDespatch' },
|
{ field: 'SupplierLot', title: '供货批次', align: 'center' },
|
{ field: 'Origin', title: '来源', align: 'center' },
|
{ field: 'Demo', title: '备注', align: 'center', width: 180 },
|
{ field: 'CreateUserName', title: '创建人', align: 'center' },
|
{ field: 'CreateTime', title: '创建时间', align: 'center', templet: '#templetCreateTime' },
|
{ field: 'UpdateUserName', title: '修改人', align: 'center' },
|
{ field: 'UpdateTime', title: '修改时间', align: 'center', templet: '#templetUpdateTime' },
|
{ field: 'CheckUserName', title: '复核人', align: 'center', width: 110 },
|
{ field: 'CheckTime', title: '复核时间', align: 'center', templet: '#templetCheckTime' }
|
]];
|
var TotalColsSysArr = encodeURIComponent(encodeURIComponent(JSON.stringify(TotalColsArr)))//将表头数据进行url编码
|
//#endregion
|
function refreshTable() {
|
//#region 自定义表头
|
var colsJson
|
var param1 = {
|
Href: 'BllSo/GetArchivingExportNoticeList'
|
};
|
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 = {
|
No: $("#No").val(),
|
Type: $("#Type").val(),
|
Status: $("#Status").val(),
|
LotNo: $("#LotNo").val(),
|
LogisticsId: parseInt($("#LogisticsId").val()),
|
IsWave: $("#IsWave").val(),
|
IsDespatch: $("#IsDespatch").val(),
|
// WaveNo: $("#WaveNo").val(),
|
};
|
table.render({
|
elem: '#LAY-app-content-list',
|
url: IP + "/BllSo/GetArchivingExportNoticeList",
|
method: 'POST',
|
height: h1,//'full-'+hei1
|
id: 'LAY-app-content-list',
|
where: param,
|
contentType: 'application/json',
|
headers: { ToKen: $.cookie('token') },
|
page: true,
|
defaultToolbar: ['filter'], //'print', 'exports'
|
even: true,
|
limit: pageCnt,
|
limits: pageLimits,
|
cellMinWidth: 60, //全局定义常规单元格的最小宽度,layui 2.2.1 新增
|
even: true,
|
done: function (res) {
|
|
var soCode = "res.data[0].SONo";
|
if (res.data.length != 0) {
|
soCode = res.data[0].SONo;
|
}
|
refreshTablemx(soCode)
|
//自定义列宽
|
SetTableColW('LAY-app-content-list', 'BllSo/GetArchivingExportNoticeList', TotalColsSysArr);
|
},
|
cols: colsJson
|
});
|
});
|
//#endregion
|
}
|
//渲染出库单明细
|
//#region 自定义表头
|
var DetailColsArr = [[
|
{ field: '', title: '序号', type: 'numbers', width: 50, align: 'center', fixed: 'left', "disabled": true },
|
{ field: 'SONo', title: '出库单号', align: 'center', fixed: 'left', width: 165 },
|
{ field: 'SkuNo', title: '物料编码', align: 'center', width: 130 },
|
{ field: 'SkuName', title: '物料名称', align: 'center', width: 152 },
|
{ field: 'Standard', title: '物料规格', align: 'center', width: 270 },
|
{ field: 'LotNo', title: '批次号', align: 'center', width: 150 },
|
{ field: 'Qty', title: '计划数量', align: 'center', width: 100 },
|
{ field: 'AllotQty', title: '分配数量', align: 'center', width: 100 },
|
{ field: 'FactQty', title: '下架数量', align: 'center', width: 100 },
|
{ field: 'CompleteQty', title: '拣货数量', align: 'center', width: 100 },
|
{ field: 'IsBale', title: '是否裹包', align: 'center', templet: '#templetIsBale', width: 90 },
|
{ field: 'IsBelt', title: '是否打带', align: 'center', templet: '#templetIsBelt', width: 90 },
|
{ field: 'LotText', title: '批次描述', align: 'center', width: 100 },
|
{ field: 'PackagName', title: '包装名称', align: 'center', width: 120 },
|
{ field: 'SupplierLot', title: '供货批次', align: 'center', width: 120 },
|
{ field: 'Price', title: '单价', align: 'center', width: 80 },
|
{ field: 'Money', title: '总金额', align: 'center', width: 90 }
|
]];
|
var DetailColsSysArr = encodeURIComponent(encodeURIComponent(JSON.stringify(DetailColsArr)))//将表头数据进行url编码
|
//#endregion
|
function refreshTablemx(soNo) {
|
//#region 自定义表头
|
var colsJson2
|
var param1 = {
|
Href: 'BllSo/GetArchivingExportNoticeDetailList'
|
};
|
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 = {
|
SoNo: soNo,
|
};
|
table.render({
|
elem: '#LAY-app-content-list2',
|
url: IP + "/BllSo/GetArchivingExportNoticeDetailList",
|
method: 'POST',
|
height: h2,
|
id: 'LAY-app-content-list2',
|
where: param,
|
contentType: 'application/json',
|
headers: { ToKen: $.cookie('token') },
|
defaultToolbar: ['print'], //'print', 'exports'
|
page: true,
|
limit: pageCnt,
|
limits: pageLimits,
|
cellMinWidth: 60, //全局定义常规单元格的最小宽度,layui 2.2.1 新增
|
done: function () {
|
|
//自定义列宽
|
SetTableColW('LAY-app-content-list2', 'BllSo/GetArchivingExportNoticeDetailList', DetailColsSysArr);
|
},
|
cols: colsJson2
|
});
|
});
|
//#endregion
|
}
|
//搜索
|
form.on('submit(LAY-app-contlist-search)', function (data) {
|
refreshTable();
|
});
|
|
//触发行单击事件
|
table.on('row(LAY-app-content-list)', function (obj) {
|
refreshTablemx(obj.data.SONo);
|
xqid = "obj.data.SONo";
|
});
|
|
|
//#region 自定义表头
|
//自定义表头
|
active = {
|
customCols: function () {
|
layer.open({
|
type: 2,
|
title: '自定义列',
|
content: '../SystemSettings/HeaderSetting.html?Href=BllSo/GetArchivingExportNoticeList&ColsSysArr=' + TotalColsSysArr,
|
maxmin: false,
|
resize: false,
|
area: ['970px', '650px']
|
});
|
},
|
customCols2: function () {
|
layer.open({
|
type: 2,
|
title: '自定义列',
|
content: '../SystemSettings/HeaderSetting.html?Href=BllSo/GetArchivingExportNoticeDetailList&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>
|