<!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>
|
.layui-table-tool-panel{
|
top: auto;
|
bottom: 29px;
|
}
|
.layui-table-tool{
|
padding-left: 5px;
|
}
|
/* 表格下拉小箭头隐藏 */
|
.layui-table-grid-down {
|
display: none;
|
}
|
</style>
|
</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="CRNo" name="CRNo" 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>
|
</select>
|
</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" >物料信息</label>
|
<div class="layui-input-inline">
|
<select name="SkuNo" id="SkuNo" lay-verify="" 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="SkuNo" name="SkuNo" 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="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" 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>
|
<!-- <button class="layui-btn layuiadmin-btn-list layui-btn-sm addClass" lay-event="add">
|
<i class="layui-icon"></i>添加
|
</button> -->
|
<button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit
|
lay-filter="LAY-app-contlist-add" id="add">
|
<i class="layui-icon layui-icon-add layuiadmin-button-btn"></i>添加
|
</button>
|
</div>
|
</div>
|
</div>
|
<div id="center"></div>
|
<div class="layui-card-body">
|
<div>
|
<table id="LAY-app-content-list" lay-filter="LAY-app-content-list" ></table>
|
</div>
|
<div>
|
<!-- <table id="LAY-app-content-list2" lay-filter="LAY-app-content-list2" ></table> -->
|
</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-normal layui-btn-xs editClass" lay-event="edit"> <i class="layui-icon layui-icon-ok"></i>编辑
|
</a>`;
|
html += `<a class="layui-btn layui-btn-danger layui-btn-xs delClass" lay-event="del">
|
<i class="layui-icon layui-icon-ok"></i>删除
|
</a>`;
|
html += `<a class="layui-btn layui-btn-xs checkOut" lay-event="outbound">
|
<i class="layui-icon layui-icon-ok"></i>出库
|
</a>`;
|
}
|
if(d.Status == 2){
|
html += `<a class="layui-btn layui-btn-xs addAdjust" lay-event="finish">
|
<i class="layui-icon layui-icon-ok"></i>调整
|
</a>`;
|
html += `<a class="layui-btn layui-btn-xs addzuofei" style="background-color: red;" lay-event="zuofei">
|
<i ></i>作废
|
</a>`;
|
}
|
return html;
|
}
|
}}
|
{{ GetBtn1(d) }}
|
|
</script>
|
|
<script type="text/html" id="toolbarDemo">
|
|
<button class="layui-btn layuiadmin-btn-list layui-btn-sm addClass" lay-event="add">
|
<i class="layui-icon"></i>添加
|
</button>
|
<button class="layui-btn layui-btn-sm layuiadmin-btn-list layui-hide layui-btn-danger" >
|
<i class="layui-icon"></i>隐藏按钮
|
</button>
|
</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', '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();
|
|
//获取物料信息
|
sendData(IP + "/basis/GetMateList", {}, 'get', function(res) {
|
var html = '';
|
if (res.code == 0) //成功
|
{
|
var list = res.data;
|
for (var i = 0; i < list.length; i++) {
|
//判断空托盘
|
if (list[i].SkuNo != "100099" && list[i].SkuNo != "100098" && list[i].SkuNo != "100097" && list[i].SkuNo != "100096" && list[i].SkuNo != "100095")
|
{
|
html += '<option value = "' + list[i].SkuNo + '">' + list[i].SkuName + '</option>';
|
}
|
}
|
$("#SkuNo").append(html);
|
form.render('select');
|
}
|
else //不成功
|
{
|
layer.msg('获取物料信息失败!', {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function() {});
|
}
|
});
|
|
laydate.render({
|
elem: '#StartTime'
|
, format: 'yyyy-MM-dd' //可任意组合
|
});
|
laydate.render({
|
elem: '#EndTime'
|
, format: 'yyyy-MM-dd' //可任意组合
|
});
|
var isChongFu = true;
|
var xqid = "kong";
|
refreshTable();
|
// refreshTablemx(xqid);
|
|
//渲染盘点总单
|
function refreshTable() {
|
var param = {
|
CrNo: $("#CrNo").val(),
|
Status: $("#Status").val(),
|
|
PalletNo: $("#PalletNo").val(),
|
SkuNo: $("#SkuNo").val(),
|
// SkuName: $("#SkuName").val(),
|
LotNo: $("#LotNo").val(),
|
StartTime: $("#StartTime").val(),
|
EndTime: $("#EndTime").val(),
|
};
|
|
table.render({
|
elem: '#LAY-app-content-list',
|
url: IP+"/BllCheck/GetStockCheckList",
|
method: 'post',
|
height: 'full-137',//'full-'+hei1
|
id: 'LAY-app-content-list',
|
where: param,
|
contentType: 'application/json',
|
headers:{ToKen:$.cookie('token')},
|
page: true,
|
even: true,
|
limit: pageCnt,
|
limits: pageLimits,
|
cellMinWidth: 60, //全局定义常规单元格的最小宽度,layui 2.2.1 新增
|
done: function(res){
|
initMenu();
|
var soCode = "res.data[0].SONo";
|
if (res.data.length != 0) {
|
soCode = res.data[0].SONo;
|
}
|
// refreshTablemx(soCode)
|
},
|
cols: [
|
[
|
{title: '序号', type: 'numbers', width: 65, fixed: 'left', },
|
{field: 'CrNo', title: '盘点单号', align: 'center', fixed: 'left', width: 165, },
|
{field:'PalletNo', title:'托盘号', align:'center', fixed:'left', width: 165, },
|
{field:'SkuNo', title:'物料编码', align:'center', width:105, },
|
{field:'SkuName', title:'物料名称', align:'center', width:125, },
|
{field:'Standard', title:'规格', align:'center', width:225, },
|
{field:'LotNo', title:'批次号', align:'center', width:105, sort: true,},
|
{field:'LotText', title:'批次描述', align:'center', width:105, },
|
{field: 'Status',title: '执行状态',align: 'center', width: 105,
|
templet: function(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-normal layui-btn-xs">调整库存</button>`;
|
case 4:
|
return `<button class="layui-btn layui-btn-radius layui-btn-normal layui-btn-xs" style="background-color: red;">已作废</button>`;
|
default:
|
return "";
|
}
|
}
|
},
|
{field:'Qty', title:'库存数量', align:'center', width: 105, },
|
{field:'RealQty', title:'实际数量', align:'center', width: 105, },
|
{field:'ZStatus', title:'执行状态', align:'center', width: 105,
|
templet: function(d){
|
switch (d.ZStatus) {
|
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-normal layui-btn-xs">已盘点</button>`;
|
case 4:
|
return `<button class="layui-btn layui-btn-radius layui-btn-normal layui-btn-xs">已调整</button>`;
|
default:
|
return "";
|
}
|
}
|
},
|
{field:'CheckResult', title:'盘点结果', align:'center', width:105,
|
templet: function(d){
|
switch (d.CheckResult) {
|
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-danger 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-warm layui-btn-xs">实物不符</button>`;
|
default:
|
return "";
|
}
|
}
|
},
|
{field: 'CheckDate',title: '开始时间',align: 'center',
|
templet: function(d) {
|
return formatDate(d.CheckDate);
|
},
|
},
|
{field: 'AuditStatusNo',title: '审核状态',align: 'center',width: 130,hide:true,
|
templet: function(d){
|
switch (d.AuditStatusNo) {
|
case "0":
|
return "待审核";
|
case "9":
|
return "已通过";
|
default:
|
return "";
|
}
|
}
|
},
|
{field: 'IsDoubleCheck', title: '是否复盘', align: 'center', width: 180, hide:true,
|
templet: function(d){
|
switch (d.AuditStatusNo) {
|
case "0":
|
return "否";
|
case "1":
|
return "是";
|
default:
|
return "";
|
}
|
}
|
},
|
{field: 'AuditUserName',title: '审核人',align: 'center',width: 180,hide:true},
|
{field: 'AuditTime',title: '审核时间',align: 'center',width: 95,hide:true,
|
templet: function (d) {
|
return formatDate(d.AuditTime);
|
},
|
},
|
{field: 'CreateUserName', title:'创建人', align:'center', },
|
{field: 'CreateTime',title: '创建时间',align: 'center',
|
templet: function(d) {
|
return formatDate(d.CreateTime);
|
},
|
},
|
{field: 'UpdateUserName',title: '修改人',align: 'center',width: 120,hide:true},
|
{field: 'UpdateTime',title: '修改时间',align: 'center',width: 160,hide:true,
|
templet: function(d) {
|
return formatDate(d.UpdateTime);
|
},
|
},
|
{title: '操作',fixed: 'right',align: 'center',toolbar: '#table-content-list',width: 240 }
|
]]
|
});
|
}
|
//渲染出库单明细
|
function refreshTablemx(crNo) {
|
var param = {
|
CrNo: crNo,
|
};
|
table.render({
|
elem: '#LAY-app-content-list2',
|
url: IP + "/BllCheck/GetStockCheckDetailList",
|
method: 'POST',
|
height: h2,
|
id: 'LAY-app-content-list2',
|
where: param,
|
contentType: 'application/json',
|
headers:{ToKen:$.cookie('token')},
|
// toolbar:'#toolbarDemo',
|
defaultToolbar: ['filter'], //'print', 'exports'
|
page: true,
|
limit: pageCnt,
|
limits: pageLimits,
|
cellMinWidth: 60, //全局定义常规单元格的最小宽度,layui 2.2.1 新增
|
done: function(){
|
initMenu();
|
},
|
cols: [
|
[
|
{title:'序号', type:'numbers', width:65, fixed:'left', },
|
{field:'CrNo', title:'盘点单号', align:'center', fixed:'left', width: 165, },
|
{field:'PalletNo', title:'托盘号', align:'center', fixed:'left', width: 165, },
|
{field:'Qty', title:'库存数量', align:'center', fixed:'left', width: 105, },
|
{field:'RealQty', title:'实际数量', align:'center', width: 105, },
|
{field:'Status', title:'执行状态', align:'center', width: 105,
|
templet: function(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-normal layui-btn-xs">已盘点</button>`;
|
case 4:
|
return `<button class="layui-btn layui-btn-radius layui-btn-normal layui-btn-xs">已调整</button>`;
|
default:
|
return "";
|
}
|
}
|
},
|
{field:'CheckResult', title:'盘点结果', align:'center', width:105,
|
templet: function(d){
|
switch (d.CheckResult) {
|
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-danger 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-warm layui-btn-xs">实物不符</button>`;
|
default:
|
return "";
|
}
|
}
|
},
|
|
{field:'SkuNo', title:'物料编码', align:'center', width:105, },
|
{field:'SkuName', title:'物料名称', align:'center', width:125, },
|
{field:'Standard', title:'规格', align:'center', width:225, },
|
{field:'LotNo', title:'批次号', align:'center', width:105, },
|
{field:'LotText', title:'批次描述', align:'center', width:105, },
|
{field:'SupplierLot', title:'供货批次', align:'center', width:105, },
|
|
{field: 'CreateUserName', title:'创建人', align:'center', width:100, },
|
{field: 'CreateTime',title: '创建时间',align: 'center',width: 160,
|
templet: function(d) {
|
return formatDate(d.CreateTime);
|
},
|
},
|
{field: 'UpdateUserName',title: '修改人',align: 'center',width: 120,hide:true},
|
{field: 'UpdateTime',title: '修改时间',align: 'center',width: 160,hide:true,
|
templet: function(d) {
|
return formatDate(d.UpdateTime);
|
},
|
},
|
]]
|
});
|
}
|
//搜索
|
form.on('submit(LAY-app-contlist-search)', function(data) {
|
refreshTable();
|
// refreshTablemx(xqid);
|
});
|
|
//添加
|
form.on('submit(LAY-app-contlist-add)', function (data) {
|
// refreshTable();
|
// refreshTablemx("单号");
|
layer.open({
|
type: 2,
|
title: '添加盘点单',
|
content: 'StockCheckFrom.html',
|
maxmin: true,
|
area: ['1200px', '90%'],
|
});
|
|
});
|
|
//权限
|
function initMenu() {
|
$(function() {
|
$(".addClass").hide();
|
$(".editClass").hide();
|
$(".delClass").hide();
|
$(".checkOut").hide();
|
$(".addAdjust").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].MenuName == "添加盘点单") {
|
$(function() {
|
$(".addClass").show();
|
});
|
}
|
if (res.data[k].MenuName == "编辑盘点单") {
|
$(function() {
|
$(".editClass").show();
|
});
|
}
|
if (res.data[k].MenuName == "删除盘点单") {
|
$(function() {
|
$(".delClass").show();
|
});
|
}
|
if (res.data[k].MenuName == "盘点出库") {
|
$(function() {
|
$(".checkOut").show();
|
});
|
}
|
if (res.data[k].MenuName == "调整库存") {
|
$(function() {
|
$(".addAdjust").show();
|
});
|
}
|
}
|
} else { //不成功
|
layer.msg('获取权限信息失败', {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function() {});
|
}
|
});
|
}
|
//触发行单击事件
|
table.on('row(LAY-app-content-list)', function(obj) {
|
// refreshTablemx(obj.data.CrNo);
|
xqid = "obj.data.CrNo";
|
});
|
|
|
|
//--------------------------------------------------------------------------------------------
|
//头工具栏事件
|
table.on('toolbar(LAY-app-content-list2)', function(obj){
|
var checkStatus = table.checkStatus(obj.config.id);
|
if (obj.event == "add") {
|
console.log(123123);
|
layer.open({
|
type: 2,
|
title: '添加盘点单',
|
content: 'StockCheckFrom.html',
|
maxmin: true,
|
area: ['1200px', '90%'],
|
});
|
}
|
});
|
//监听数据操作
|
table.on('tool(LAY-app-content-list)', function(obj) {
|
var data = obj.data;
|
console.log(data);
|
Id = data.Id;
|
CrNo = data.CrNo;
|
if (obj.event === 'del') {//删除
|
layer.confirm('确定删除此单据吗?', function(index) {
|
var param = {
|
Id: parseInt(Id),
|
};
|
sendData(IP + "/BllCheck/DelStockCheck", param, 'post', function(res) {
|
console.log(res);
|
if (res.code == 0) { //成功
|
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 === 'finish') {//生成调整单
|
layer.confirm('确定调整此单据吗?', function(index) {
|
var param = {
|
Id: parseInt(Id),
|
};
|
sendData(IP + "/UpApi/FinishCr", param, 'post', function(res) {
|
console.log(res);
|
if (res.code == 0) { //成功
|
layer.msg(res.msg, {
|
icon: 1,
|
time: 1000 //1秒关闭(如果不配置,默认是3秒)
|
}, function() {
|
refreshTable();
|
});
|
} else { //不成功
|
layer.msg(res.msg, {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function() {
|
refreshTable();
|
});
|
}
|
});
|
});
|
}
|
else if (obj.event === 'zuofei') {//作废盘点单
|
layer.confirm('确定作废此单据吗?', function(index) {
|
var param = {
|
Id: parseInt(Id),
|
};
|
sendData(IP + "/UpApi/ZuofeiCr", param, 'post', function(res) {
|
console.log(res);
|
if (res.code == 0) { //成功
|
layer.msg(res.msg, {
|
icon: 1,
|
time: 1000 //1秒关闭(如果不配置,默认是3秒)
|
}, function() {
|
refreshTable();
|
});
|
}
|
else { //不成功
|
layer.msg(res.msg, {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function() {
|
refreshTable();
|
});
|
}
|
});
|
});
|
}
|
else if(obj.event === 'edit'){//编辑
|
layer.open({
|
type: 2,
|
title: '编辑盘点单',
|
content: 'StockCheckFrom.html?crNo='+CrNo,
|
maxmin: true,
|
area: ['1200px', '90%'],
|
});
|
}else if(obj.event === 'outbound'){
|
layer.confirm('确定此单据出库吗?', function(index) {
|
if (isChongFu== true) {
|
isChongFu= false;
|
|
var param = {
|
crNo: data.CrNo,
|
};
|
sendData(IP + "/DownApi/CheckOutHouse", param, 'get', function(res) {
|
console.log(res);
|
if (res.code == 0) { //成功
|
layer.msg(res.msg, {
|
icon: 1,
|
time: 3000 //1秒关闭(如果不配置,默认是3秒)
|
}, function() {
|
refreshTable();
|
isChongFu= true;
|
});
|
} else { //不成功
|
layer.msg(res.msg, {
|
icon: 2,
|
time: 3000 //2秒关闭(如果不配置,默认是3秒)
|
}, function() {
|
refreshTable();
|
isChongFu= true;
|
});
|
}
|
});
|
}else{
|
layer.msg("请勿重复点击", {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
});
|
}
|
});
|
}
|
});
|
|
|
});
|
</script>
|
</body>
|
</html>
|