<!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">
|
</head>
|
<body>
|
<div class="layui-fluid" style="padding-bottom: 0;">
|
<div class="layui-card">
|
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
|
<div class="layui-form-item">
|
<div class="layui-inline">
|
<label class="layui-form-label">出库单号</label>
|
<div class="layui-input-inline">
|
<input type="text" id="WaveBillCode" name="WaveBillCode" 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="ExecuteFlag" id="ExecuteFlag" lay-filter="ExecuteFlag" lay-search>
|
<option value=""></option>
|
<option value="0">等待执行</option>
|
<option value="1">正在分配</option>
|
<option value="2">正在执行</option>
|
<option value="3">执行完毕</option>
|
<option value="5">上传完毕</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="ExportBillType" id="ExportBillType" lay-filter="ExportBillType" lay-search>
|
<option value=""></option>
|
</select>
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label">物品编码</label>
|
<div class="layui-input-inline">
|
<input type="text" id="GoodsCode" name="GoodsCode" 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="GoodsName" name="GoodsName" 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" autocomplete="off" id="StartTime" class="layui-input"
|
placeholder="开始时间">
|
</div>
|
</div>
|
<div class="layui-inline">
|
<label class="layui-form-label">结束时间</label>
|
<div class="layui-input-inline">
|
<input type="text" autocomplete="off" 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 style="position: relative;">
|
<div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
|
<ul class="layui-tab-title">
|
<li class="layui-this">总单</li>
|
<li>明细</li>
|
</ul>
|
<div class="layui-tab-content">
|
<div class="layui-tab-item layui-show">
|
<table id="LAY-app-content-list" lay-filter="LAY-app-content-list"></table>
|
</div>
|
<div class="layui-tab-item">
|
<table id="LAY-app-content-list2" lay-filter="LAY-app-content-list2"></table>
|
</div>
|
</div>
|
</div>
|
|
</div>
|
<script type="text/html" id="buttonTpl">
|
{{# if(d.ExportExecuteFlag=='0'){ }}
|
<button class="layui-btn layui-btn-radius layui-btn-xs">等待执行</button>
|
{{# } else if(d.ExportExecuteFlag=='1') { }}
|
<button class="layui-btn layui-btn-radius layui-btn-warm layui-btn-xs">正在分配</button>
|
{{# } else if(d.ExportExecuteFlag=='2') { }}
|
<button class="layui-btn layui-btn-radius layui-btn-danger layui-btn-xs">正在执行</button>
|
{{# } else if(d.ExportExecuteFlag=='3') { }}
|
<button class="layui-btn layui-btn-radius layui-btn-normal layui-btn-xs">执行完毕</button>
|
{{# } else{ }}
|
<button class="layui-btn layui-btn-radius layui-btn-normal layui-btn-xs">上传完毕</button>
|
{{# } }}
|
</script>
|
<script type="text/html" id="table-content-list">
|
{{# if(d.ExportExecuteFlag == '0' ){ }}
|
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="auto">
|
<i class="layui-icon layui-icon-ok"></i>自动分配
|
</a>
|
{{# } }}
|
{{# if(d.ExportExecuteFlag == '1'){ }}
|
<!-- <a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="yuOutKu">
|
<i class="layui-icon layui-icon-ok"></i>预拣
|
</a> -->
|
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="outKu">
|
<i class="layui-icon layui-icon-ok"></i>出库
|
</a>
|
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="cancel">
|
<i class="layui-icon layui-icon-delete"></i>取消分配
|
</a>
|
|
{{# } }}
|
{{# if(d.ExportExecuteFlag == '2'){ }}
|
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="outKu">
|
<i class="layui-icon layui-icon-ok"></i>出库
|
</a>
|
{{# } }}
|
</script>
|
<!-- <script type="text/html" id="table-content-list2">
|
{{# if(d.Status == 0){ }}
|
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="wan">
|
<i class="layui-icon layui-icon-ok"></i>手动分配
|
</a>
|
{{# } }}
|
</script> -->
|
</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>
|
var uid = $.cookie('userId');
|
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;
|
|
laydate.render({
|
elem: '#StartTime'
|
, format: 'dd-MM-yyyy' //可任意组合
|
});
|
laydate.render({
|
elem: '#EndTime'
|
, format: 'dd-MM-yyyy' //可任意组合
|
});
|
|
var xqid = "";
|
initPage();
|
refreshTable();
|
refreshTablemx(xqid);
|
var tableIns;
|
//单据类型
|
function initPage(){
|
var param = { userId: uid}
|
sendData(IP + "/Export/GetExportNotifyInit", param, 'post', function(res) {
|
var html = '';
|
if (res.code == 1) { //成功
|
for (var i = 0; i < res.BillType.length; i++) {
|
html += '<option value =' + res.BillType[i].BillTypeCode +
|
'>' + res.BillType[i].BillTypeName +
|
'</option>';
|
}
|
$("#ExportBillType").append(html);
|
form.render('select');
|
} else { //不成功
|
layer.msg('获取信息失败!', {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function() {});
|
}
|
});
|
|
}
|
//渲染波次出库总单
|
function refreshTable() {
|
var param = {
|
WaveBillCode: $("#WaveBillCode").val(),
|
ExecuteFlag: $("#ExecuteFlag").val(),
|
LotNo: $("#LotNo").val(),
|
GoodsCode: $("#GoodsCode").val(),
|
GoodsName: $("#GoodsName").val(),
|
StartTime: $("#StartTime").val(),
|
EndTime: $("#EndTime").val(),
|
BillType: $("#ExportBillType").val(),
|
};
|
var url = IP + "/Export/GetExportWaveCodeList";
|
table.render({
|
elem: '#LAY-app-content-list',
|
url: url,
|
method: 'POST',
|
height: 'full-210',
|
id: 'LAY-app-content-list',
|
where: param,
|
contentType: 'application/json',
|
page: true,
|
even: true,
|
limit: pageCnt,
|
limits: pageLimits,
|
response: {
|
statusCode: 1 //规定成功的状态码,默认:0
|
},
|
cellMinWidth: 60, //全局定义常规单元格的最小宽度,layui 2.2.1 新增
|
done: function(){
|
$("a[lay-event ='auto']").hide();
|
$("a[lay-event ='edit']").hide();
|
$("a[lay-event ='finish']").hide();
|
$("a[lay-event ='delete']").hide();
|
initPermission();
|
},
|
cols: [
|
[ {
|
title: '序号',
|
type: 'numbers',
|
width: 60,
|
fixed: 'left',
|
},{
|
field: 'ExportWaveCode',
|
title: '波次单号',
|
align: 'center',
|
fixed: 'left',
|
width: 200,
|
},{
|
field: 'TypeName',
|
title: '单据类型',
|
align: 'center',
|
width: 130
|
},{
|
field: 'ExportExecuteFlag',
|
title: '执行状态',
|
templet: '#buttonTpl',
|
align: 'center',
|
width: 130
|
},{
|
field: 'PickingAreaName',
|
title: '拣货区',
|
align: 'center',
|
width: 130
|
},{
|
field: 'CarrierName',
|
title: '承运商',
|
align: 'center',
|
},{
|
field: 'CreateName',
|
title: '创建人',
|
width: 160,
|
align: 'center',
|
},{
|
field: 'CreateTime',
|
title: '创建时间',
|
align: 'center',
|
width: 180,
|
templet: function(d) {
|
return formatDate(d.CreateTime);
|
},
|
},{
|
title: '操作',
|
fixed: 'right',
|
align: 'center',
|
toolbar: '#table-content-list',
|
width: 120
|
}
|
]
|
]
|
});
|
}
|
//渲染波次出库单明细
|
function refreshTablemx(billCode) {
|
var param = {
|
WaveBillCode: billCode,
|
};
|
var url = IP + "/Export/GetExportWaveDetail";
|
table.render({
|
elem: '#LAY-app-content-list2',
|
url: url,
|
method: 'POST',
|
height: 'full-210',
|
id: 'LAY-app-content-list2',
|
where: param,
|
contentType: 'application/json',
|
page: true,
|
even: true,
|
limit: pageCnt,
|
limits: pageLimits,
|
response: {
|
statusCode: 1 //规定成功的状态码,默认:0
|
},
|
cellMinWidth: 60, //全局定义常规单元格的最小宽度,layui 2.2.1 新增
|
done: function(){
|
$("a[lay-event ='wan']").hide();
|
$("a[lay-event ='del']").hide();
|
initPermission();
|
},
|
cols: [
|
[ {
|
field: 'Id',
|
hide: true
|
},{
|
title: '序号',
|
type: 'numbers',
|
width: 60,
|
fixed: 'left',
|
}, {
|
field: 'ExportWaveBillCode',
|
title: '出库单号',
|
align: 'center',
|
fixed: 'left',
|
width: 180
|
}, {
|
field: 'GoodsCode',
|
title: '物品编码',
|
align: 'center',
|
width: 140
|
}, {
|
field: 'GoodsName',
|
title: '物品名称',
|
align: 'center',
|
}, {
|
field: 'LotNo',
|
title: '批次',
|
align: 'center',
|
width: 180
|
}, {
|
field: 'ProductionDate',
|
title: '生产日期',
|
align: 'center',
|
templet: function(d) {
|
return formatDate(d.ProductionDate);
|
},
|
hide: true
|
}, {
|
field: 'ExportQuantity',
|
title: '计划数量',
|
align: 'center',
|
fixed: 'right',
|
width: 120
|
}, {
|
field: 'AllocateQuantity',
|
title: '分配数量',
|
align: 'center',
|
fixed: 'right',
|
width: 120
|
}, {
|
field: 'FactQuantity',
|
title: '已下发数量',
|
fixed: 'right',
|
align: 'center',
|
width: 120
|
}, {
|
field: 'CompleteQuantity',
|
title: '完成数量',
|
fixed: 'right',
|
align: 'center',
|
width: 120
|
},
|
// {
|
// title: '操作',
|
// fixed: 'right',
|
// width: 200,
|
// align: 'center',
|
// toolbar: '#table-content-list2'
|
// }
|
]
|
]
|
});
|
}
|
|
form.on('submit(LAY-app-contlist-search)', function(data) {
|
if ($(".layui-tab-title>li[class='layui-this']").html() == "总单") {
|
refreshTable();
|
}
|
if ($(".layui-tab-title>li[class='layui-this']").html() == "明细") {
|
refreshTablemx(xqid);
|
}
|
});
|
//
|
var active = {
|
add: function() {
|
layer.open({
|
type: 2,
|
title: '添加出库单',
|
content: 'ExportBillListForm.html',
|
maxmin: true,
|
area: ['1020px', '90%'],
|
//btn: ['确定', '取消'],
|
yes: function(index, layero) {
|
var iframeWindow = window['layui-layer-iframe' + index],
|
submitID = 'layuiadmin-app-form-submit',
|
submit = layero.find('iframe').contents().find('#' + submitID);
|
//监听提交
|
iframeWindow.layui.form.on('submit(' + submitID + ')', function(data) {
|
var field = data.field; //获取提交的字段
|
console.log(field);
|
//提交 Ajax 成功后,静态更新表格中的数据
|
var param = {
|
GoodId: 0,
|
GoodsCode: field.goodsCode,
|
GoodsName: field.goodsName,
|
GoodsStandard: field.goodsStandard,
|
GoodsStockHigh: field.goodsStockHigh,
|
GoodsStockLow: field.goodsStockLow,
|
GoodsValidityDay: field.goodsValidityDay,
|
GoodsAlarmDay: field.goodsAlarmDay,
|
GoodsRemark: field.goodsRemark,
|
GoodsAreaId: field.goodsArea,
|
GoodsUnit: field.goodsUnit
|
};
|
});
|
submit.trigger('click');
|
}
|
});
|
},
|
};
|
$('.layui-btn.layuiadmin-btn-list').on('click', function() {
|
var type = $(this).data('type');
|
active[type] ? active[type].call(this) : '';
|
});
|
|
var houseId = 0;
|
var userId = $.cookie('userId');
|
var param = {
|
Id: userId
|
}
|
initPermission();
|
//初始化权限
|
function initPermission(){
|
sendData(IP + "/Menu/GetPermission", param, 'post', function(res) {
|
if (res.code == 1) { //成功
|
|
for (var k = 0; k < res.data.length; k++) {
|
if (res.data[k].ModuleId == "327d4f1e8d3e4d1ba9eca601b32073b5") {
|
$(function() {
|
$("#approvalBtn").show();
|
});
|
}
|
if (res.data[k].ModuleId == "47da9d7de59f40c684e0962346ae780d") {
|
$("a[lay-event ='auto']").show();
|
}
|
if (res.data[k].ModuleId == "831f816113164f4688dbb9c7ddb9c358") {
|
$("a[lay-event ='edit']").show();
|
}
|
if (res.data[k].ModuleId == "42e870ef2e1f496eb9839a89c1f8408a") {
|
$("a[lay-event ='finish']").show();
|
}
|
if (res.data[k].ModuleId == "a82f8187d7f1481ab7373f50bc2c704a") {
|
$("a[lay-event ='delete']").show();
|
}
|
if (res.data[k].ModuleId == "1faa8489850f455eabb5717dbe4fe127") {
|
$("a[lay-event ='wan']").show();
|
}
|
if (res.data[k].ModuleId == "2914cb83e38145feb76445ff22ee0403") {
|
$("a[lay-event ='del']").show();
|
}
|
}
|
} else { //不成功
|
layer.msg('获取信息失败', {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function() {
|
//回调
|
});
|
}
|
});
|
}
|
|
var ExportId = "";
|
table.on('tool(LAY-app-content-list)', function(obj) {
|
var data = obj.data;
|
ExportId = data.ExportWaveCode;
|
console.log(data);
|
if(obj.event === 'auto'){
|
layer.confirm('确定要将选中的波次单据自动分配吗?', function() {
|
var param = {
|
id: ExportId,
|
userId:$.cookie('userId')
|
};
|
sendData(IP + "/Export/AddWaveExportTaskAuto", param, 'post', function(res) {
|
console.log(res);
|
if (res.code == 1) { //成功
|
layer.msg("操作成功!", {
|
icon: 1,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function() {
|
refreshTable();
|
});
|
} else { //不成功
|
layer.msg(res.msg, {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function() {});
|
}
|
});
|
});
|
}else if(obj.event === 'cancel'){
|
layer.confirm('确定取消此单据已经分配的货物吗?', function(index) {
|
var param = {
|
Id: ExportId,
|
userId: $.cookie('userId')
|
};
|
sendData(IP + "/Export/WaveCancelAllocate", param, 'post', function(res) {
|
if (res.code == 1) { //成功
|
layer.msg(res.msg, {
|
icon: 1,
|
time: 1000 //1秒关闭(如果不配置,默认是3秒)
|
}, function() {
|
refreshTable();
|
});
|
} else { //不成功
|
layer.msg(res.msg, {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function() {});
|
}
|
});
|
});
|
}else if(obj.event === 'outKu'){
|
layer.confirm('确定此单据出库吗?', function(index) {
|
var param = {
|
waveBillCode: ExportId,
|
userId: userId
|
};
|
sendData(IP + "/Export/WaveOutBound", param, 'post', function(res) {
|
console.log(res);
|
if (res.code == 1) { //成功
|
layer.msg(res.msg, {
|
icon: 1,
|
time: 1000 //1秒关闭(如果不配置,默认是3秒)
|
}, function() {
|
refreshTable();
|
});
|
} else { //不成功
|
layer.msg(res.msg, {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function() {});
|
}
|
});
|
});
|
}
|
});
|
table.on('tool(LAY-app-content-list2)', function(obj) {
|
var data = obj.data;
|
var id = data.Id;
|
var houseId = data.WarehouseId;
|
if(obj.event === 'wan'){
|
layer.open({
|
type: 2,
|
title: '手动挑选出库',
|
content: 'ExportBillStockListForm.html?Id='+id+'&houseId='+houseId,
|
maxmin: true,
|
area: ['1300px', '700px'],
|
//btn: ['确定', '取消'],
|
yes: function(index, layero) {
|
var iframeWindow = window['layui-layer-iframe' + index],
|
submitID = 'layuiadmin-app-form-submit',
|
submit = layero.find('iframe').contents().find('#' + submitID);
|
//监听提交
|
iframeWindow.layui.form.on('submit(' + submitID + ')', function(data) {
|
var field = data.field; //获取提交的字段
|
console.log(field);
|
//提交 Ajax 成功后,静态更新表格中的数据
|
var param = {
|
GoodId: 0,
|
GoodsCode: field.goodsCode,
|
GoodsName: field.goodsName,
|
GoodsStandard: field.goodsStandard,
|
GoodsStockHigh: field.goodsStockHigh,
|
GoodsStockLow: field.goodsStockLow,
|
GoodsValidityDay: field.goodsValidityDay,
|
GoodsAlarmDay: field.goodsAlarmDay,
|
GoodsRemark: field.goodsRemark,
|
GoodsAreaId: field.goodsArea,
|
GoodsUnit: field.goodsUnit
|
};
|
});
|
submit.trigger('click');
|
}
|
});
|
}
|
|
});
|
|
//触发行双击事件
|
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.ExportWaveCode);
|
xqid = obj.data.ExportWaveCode;
|
console.log(obj);
|
});
|
});
|
</script>
|
</body>
|
</html>
|