<!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 type="text/css">
|
.layui-form-item .layui-inline {
|
margin-bottom: 1px;
|
margin-right: 1px;
|
}
|
</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" style="margin-bottom: 0px;">
|
|
<div class="layui-inline ">
|
<label class="layui-form-label" style="width: 60px;">查询类型</label>
|
<div class="layui-input-inline" style="width: 170px; margin-right: 0px;">
|
<select name="SelectType" id="SelectType" lay-filter="SelectType" lay-search>
|
<option value="">正常</option>
|
<option value="0">物料信息</option>
|
<option value="1">批次信息</option>
|
<option value="2">质检信息</option>
|
<option value="3">货主信息</option>
|
</select>
|
</div>
|
</div>
|
<div class="layui-inline zongdan">
|
<label class="layui-form-label" style="width: 60px;">物料编码</label>
|
<div class="layui-input-inline" style="width: 170px; margin-right: 0px;">
|
<input type="text" id="SkuNo" name="SkuNo" placeholder="物料编码" autocomplete="off"
|
class="layui-input">
|
</div>
|
</div>
|
<div class="layui-inline zongdan">
|
<label class="layui-form-label" style="width: 60px;">物料名称</label>
|
<div class="layui-input-inline" style="width: 170px; margin-right: 0px;">
|
<input type="text" id="SkuName" name="SkuName" placeholder="物料名称" autocomplete="off"
|
class="layui-input">
|
</div>
|
</div>
|
<div class="layui-inline mingxi">
|
<label class="layui-form-label" style="width: 60px;">货主编码</label>
|
<div class="layui-input-inline" style="width: 170px; margin-right: 0px;">
|
<input type="text" id="OwnerNo" name="OwnerNo" placeholder="货主编码" autocomplete="off"
|
class="layui-input">
|
</div>
|
</div>
|
<div class="layui-inline mingxi">
|
<label class="layui-form-label" style="width: 60px;">货主名称</label>
|
<div class="layui-input-inline" style="width: 170px; margin-right: 0px;">
|
<input type="text" id="OwnerName" name="OwnerName" placeholder="货主名称" autocomplete="off"
|
class="layui-input">
|
</div>
|
</div>
|
<div class="layui-inline mingxi">
|
<label class="layui-form-label" style="width: 60px;">批次号</label>
|
<div class="layui-input-inline" style="width: 170px; margin-right: 0px;">
|
<input type="text" id="LotNo" name="LotNo" placeholder="批次号" autocomplete="off"
|
class="layui-input">
|
</div>
|
</div>
|
<!-- <div class="layui-inline mingxi">
|
<label class="layui-form-label" style="width: 60px;">储位地址</label>
|
<div class="layui-input-inline" style="width: 170px; margin-right: 0px;">
|
<input type="text" id="LocatNo" name="LocatNo" placeholder="储位地址" autocomplete="off"
|
class="layui-input">
|
</div>
|
</div>
|
<div class="layui-inline mingxi">
|
<label class="layui-form-label" style="width: 60px;">托盘号</label>
|
<div class="layui-input-inline" style="width: 170px; margin-right: 0px;">
|
<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" style="width: 170px; margin-right: 0px;">
|
<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>
|
</select>
|
</div>
|
</div>
|
<!-- <div class="layui-inline " style="display: none;">
|
<label class="layui-form-label" style="width: 60px;">抽检托</label>
|
<div class="layui-input-inline" style="width: 170px; margin-right: 0px;">
|
<select name="IsSamolingTray" id="IsSamolingTray" lay-filter="IsSamolingTray"
|
lay-search>
|
<option value=""></option>
|
<option value="0">否</option>
|
<option value="1">是</option>
|
</select>
|
</div>
|
</div> -->
|
<div class="layui-inline zhijian">
|
<label class="layui-form-label" style="width: 60px;">质检状态</label>
|
<div class="layui-input-inline" style="width: 170px; margin-right: 0px;">
|
<select name="InspectStatus" id="InspectStatus" lay-filter="InspectStatus" lay-search>
|
<option value=""></option>
|
<option value="0">待质检</option><!-- 待检验 -->
|
<option value="1">检验合格</option><!-- 合格品 -->
|
<option value="2">不合格</option><!-- 不合格 -->
|
<!-- <option value="3">放置期</option>不合格 -->
|
</select>
|
</div>
|
</div>
|
<!-- <div class="layui-inline zhijian">
|
<label class="layui-form-label" style="width: 60px;">开始时间</label>
|
<div class="layui-input-inline" style="width: 170px; margin-right: 0px;">
|
<input type="text" autocomplete="off" id="StartTime" class="layui-input"
|
placeholder="开始时间">
|
</div>
|
</div>
|
<div class="layui-inline zhijian">
|
<label class="layui-form-label" style="width: 60px;">结束时间</label>
|
<div class="layui-input-inline" style="width: 170px; margin-right: 0px;">
|
<input type="text" autocomplete="off" id="EndTime" class="layui-input"
|
placeholder="结束时间">
|
</div>
|
</div> -->
|
<div class="layui-inline sousuo">
|
<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 layui-btn-sm layuiadmin-btn-list" lay-submit lay-filter="daochu">
|
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>导出
|
</button>
|
</div>
|
|
|
</div>
|
</div>
|
|
<div id="center"></div>
|
<div class="layui-card-body">
|
<div style="position: relative;">
|
<div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
|
<!-- <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 -->
|
</div>
|
</div>
|
</div>
|
|
</div>
|
|
<script type="text/html" id="buttonTpl">
|
{{# if(d.Status=='0'){ }}
|
<button class="layui-btn layui-btn-radius layui-btn-danger layui-btn-xs">待分配</button>
|
{{# } else if(d.Status == '1') { }}
|
<button class="layui-btn layui-btn-radius layui-btn-xs">部分分配</button>
|
{{# } else if(d.Status == '2') { }}
|
<button class="layui-btn layui-btn-radius layui-btn-xs">已分配</button>
|
{{# } else if(d.Status == '3') { }}
|
<button class="layui-btn layui-btn-radius layui-btn-xs">盘点锁定</button>
|
{{# } else if(d.Status == '4') { }}
|
<button class="layui-btn layui-btn-radius layui-btn-xs">移库锁定</button>
|
{{# } else if(d.Status == '5') { }}
|
<button class="layui-btn layui-btn-radius layui-btn-xs layui-btn-danger">异常锁定</button>
|
{{# } }}
|
</script>
|
<script type="text/html" id="buttonTp2">
|
{{# if(d.InspectStatus == '0') { }}
|
<button class="layui-btn layui-btn-radius layui-btn-warm layui-btn-xs">待检验</button>
|
{{# } else if(d.InspectStatus == '1'){ }}
|
<button class="layui-btn layui-btn-radius layui-btn-xs">检验合格</button>
|
{{# } else if(d.InspectStatus == '2'){ }}
|
<button class="layui-btn layui-btn-radius layui-btn-danger layui-btn-xs">不合格</button>
|
{{# } else if(d.InspectStatus == '4') { }}
|
<button class="layui-btn layui-btn-radius layui-btn-danger layui-btn-xs">放置期</button>
|
{{# } }}
|
</script>
|
|
<script type="text/html" id="buttonTp7">
|
{{# if(d.AbnormalStatu=='0'){ }}
|
<button class="layui-btn layui-btn-radius layui-btn-xs">正常</button>
|
{{# } else { }}
|
<button class="layui-btn layui-btn-radius layui-btn-danger layui-btn-xs">异常</button>
|
{{# } }}
|
</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', 'element', 'laydate'], function () {
|
var table = layui.table,
|
form = layui.form,
|
laypage = layui.laypage,
|
layer = layui.layer;
|
element = layui.element;
|
laydate = layui.laydate;
|
|
var h1 = GetTableHeight();
|
|
laydate.render({
|
elem: '#StartTime',
|
format: 'yyyy-MM-dd' //可任意组合
|
});
|
laydate.render({
|
elem: '#EndTime',
|
format: 'yyyy-MM-dd' //可任意组合
|
});
|
//获取当前时间
|
function getNowTime() {
|
var date = new Date();
|
//年 getFullYear():四位数字返回年份
|
var year = date.getFullYear(); //getFullYear()代替getYear()
|
//月 getMonth():0 ~ 11
|
var month = date.getMonth() + 1;
|
//日 getDate():(1 ~ 31)
|
var day = date.getDate();
|
//时 getHours():(0 ~ 23)
|
var hour = date.getHours();
|
//分 getMinutes(): (0 ~ 59)
|
var minute = date.getMinutes();
|
//秒 getSeconds():(0 ~ 59)
|
var second = date.getSeconds();
|
|
var time = year + addZero(month) + addZero(day) + addZero(hour) + addZero(minute) + addZero(second);
|
return time;
|
|
//小于10的拼接上0字符串
|
|
};
|
function addZero(s) {
|
return s < 10 ? ('0' + s) : s;
|
};
|
|
var $ = layui.$;
|
var yemianid = 0;
|
refreshTable("", "", "", "", "", "", "", "");
|
|
// 表单需要的变量
|
var infoOptions;
|
|
//#region 自定义表头
|
var TotalColsArr = [[
|
{ field: '', title: '序号', type: 'numbers', align: 'center', fixed: 'left', "disabled": true },
|
{ field: 'SkuNo', title: '物料编码', align: 'center', totalRowText: "合计:", "disabled": true },
|
{ field: 'SkuName', title: '物料名称', align: 'center', "disabled": true },
|
{ field: 'Standard', title: '物料规格', align: 'center', "disabled": true },
|
{ field: 'LotNo', title: '批次号', align: 'center', "disabled": true },
|
{ field: 'LotText', title: '批次描述', align: 'center' },
|
{ field: 'OwnerNo', title: '货主编码', align: 'center' },
|
{ field: 'OwnerName', title: '货主名称', align: 'center' },
|
{ field: 'Status', title: '库存状态', align: 'center', templet: '#buttonTpl' },
|
{ field: 'InspectStatus', title: '质检状态', align: 'center', templet: '#buttonTp2' },
|
{ field: 'Qty', title: '库存数量', align: 'center', totalRow: true },
|
{ field: 'LockQty', title: '锁定数量', align: 'center', totalRow: true },
|
{ field: 'FrozenQty', title: '冻结数量', align: 'center', totalRow: true },
|
{ field: 'InspectQty', title: '可抽检数量', align: 'center', totalRow: true },
|
]];
|
var TotalColsSysArr = encodeURIComponent(encodeURIComponent(JSON.stringify(TotalColsArr)))//将表头数据进行url编码
|
//#endregion
|
//获取总量信息
|
function refreshTable(SelectType, SkuNo, SkuName, OwnerNo, OwnerName, LotNo, Status, InspectStatus) {
|
//#region 自定义表头
|
var colsJson
|
var param1 = {
|
Href: 'Statistical/GetInventoryList'
|
};
|
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
|
}
|
infoOptions = {
|
elem: '#LAY-app-content-list',
|
height: 'full-163',
|
id: 'LAY-app-content-list',
|
totalRow: true,
|
page: true,
|
limit: pageCnt,
|
limits: pageLimits,
|
even: true,
|
cellMinWidth: 80, //全局定义常规单元格的最小宽度,layui 2.2.1 新增
|
done: function () {
|
//自定义列宽
|
SetTableColW('LAY-app-content-list', 'Statistical/GetInventoryList', TotalColsSysArr);
|
},
|
cols: colsJson
|
};
|
var param = {
|
SelectType: SelectType, //查询类型
|
SkuNo: SkuNo, //物料号
|
SkuName: SkuName, //物料名称
|
OwnerNo: OwnerNo, //货主编码
|
OwnerName: OwnerName, //货主名称
|
LotNo: LotNo, //批次号
|
Status: Status, //库存状态 = $("#Status").val();
|
InspectStatus: InspectStatus, //质检状态 = $("#InspectStatus").val();
|
};
|
sendData(IP + "/Statistical/GetInventoryList", param, 'get', function (res) {
|
console.log(res)
|
if (res.code == 0) { //成功
|
var list = res.data;
|
$.extend(infoOptions, {
|
data: list
|
});
|
infoOptions.page = {
|
curr: 1
|
}
|
tableIns = table.render(infoOptions);
|
}
|
else { //不成功
|
layer.msg('获取总量列表信息失败!', {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () { });
|
}
|
});
|
});
|
//#endregion
|
}
|
|
//监听搜索
|
form.on('submit(LAY-app-contlist-search)', function (data) {
|
var SelectType = $("#SelectType").val();
|
var SkuNo = $("#SkuNo").val();
|
var SkuName = $("#SkuName").val();
|
var LotNo = $("#LotNo").val();
|
var OwnerNo = $("#OwnerNo").val();
|
var OwnerName = $("#OwnerName").val();
|
var Status = $("#Status").val();
|
var InspectStatus = $("#InspectStatus").val();
|
refreshTable(SelectType, SkuNo, SkuName, OwnerNo, OwnerName, LotNo, Status, InspectStatus);
|
|
});
|
|
form.on('submit(daochu)', function () {
|
layer.confirm('确定导出当前数据吗?', function (index) {
|
var param = {
|
SkuNo: $("#SkuNo").val(),
|
SkuName: $("#SkuName").val(),
|
};
|
sendData(IP + "/Statistical/GetInventoryListDaoChu", param, 'get', function (res) {
|
console.log(res);
|
if (res.code == 0) { //成功
|
var list = res.data;
|
table.exportFile(tableIns.config.id, list, 'xls', "库存信息" + getNowTime(),); //data 为该实例中的任意数量的数据
|
layer.msg('导出成功!', {
|
icon: 1,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () {
|
|
});
|
|
} else { //不成功
|
layer.msg('获取信息失败!', {
|
icon: 2,
|
time: 2000 //2秒关闭(如果不配置,默认是3秒)
|
}, function () { });
|
}
|
});
|
});
|
|
|
});
|
//#region 自定义表头
|
//自定义表头
|
active = {
|
customCols: function () {
|
layer.open({
|
type: 2,
|
title: '自定义列',
|
content: '../SystemSettings/HeaderSetting.html?Href=Statistical/GetInventoryList&ColsSysArr=' + TotalColsSysArr,
|
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>
|