库存统计
This commit is contained in:
parent
89b79aac3f
commit
9a4ef7e8ce
|
|
@ -81,6 +81,12 @@
|
||||||
"icon": "fa fa-tachometer",
|
"icon": "fa fa-tachometer",
|
||||||
"target": "_self"
|
"target": "_self"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"title": "工程统计",
|
||||||
|
"href": "page/accessory/inventory_statistics_list.html",
|
||||||
|
"icon": "fa fa-tachometer",
|
||||||
|
"target": "_self"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"title": "配件入库",
|
"title": "配件入库",
|
||||||
"href": "page/accessory/accessory_store_list.html",
|
"href": "page/accessory/accessory_store_list.html",
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,298 @@
|
||||||
|
let form, table, element;
|
||||||
|
let tableIns;
|
||||||
|
let pageNum = 1; // 定义分页
|
||||||
|
layui.use(["form", "table"], function () {
|
||||||
|
form = layui.form;
|
||||||
|
table = layui.table;
|
||||||
|
element = layui.element;
|
||||||
|
// 动态插入进度条元素
|
||||||
|
/* $("#num-progress").after(`
|
||||||
|
<div class="layui-progress layui-bg-red" lay-filter="demo-filter-progress" style="margin-top:10%;">
|
||||||
|
<div class="layui-progress-bar " lay-percent="30%"></div>
|
||||||
|
</div>
|
||||||
|
`);
|
||||||
|
$("#num-progress2").after(`
|
||||||
|
<div class="layui-progress" lay-filter="demo-filter-progress" style="margin-top:2%;">
|
||||||
|
<div class="layui-progress-bar layui-bg-red" lay-percent="30%"></div>
|
||||||
|
</div>
|
||||||
|
`);
|
||||||
|
$("#num-progress3").after(`
|
||||||
|
<div class="layui-progress" lay-filter="demo-filter-progress" style="margin-top:2%;">
|
||||||
|
<div class="layui-progress-bar" lay-percent="30%"></div>
|
||||||
|
</div>
|
||||||
|
`); */
|
||||||
|
element.render();
|
||||||
|
initTable();
|
||||||
|
getStatistics();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 数据概览
|
||||||
|
function getStatistics() {
|
||||||
|
let url = dataUrl + 'backstage/planOut/getStatistics';
|
||||||
|
ajaxRequest(url, "POST", null, true, function () {
|
||||||
|
}, function (result) {
|
||||||
|
console.log(result);
|
||||||
|
if (result.code === 200) {
|
||||||
|
setNum(result.data);
|
||||||
|
}
|
||||||
|
}, function (xhr, status, error) {
|
||||||
|
errorFn(xhr, status, error)
|
||||||
|
}, null);
|
||||||
|
|
||||||
|
// 数据概览赋值
|
||||||
|
function setNum(obj) {
|
||||||
|
$('#totalNum').html(obj.needNum);
|
||||||
|
$('#dfhNum').html(obj.dfhNum);
|
||||||
|
$('#fhNum').html(obj.fhNum);
|
||||||
|
$('#overNum').html(obj.overNum);
|
||||||
|
$('#noPlanNum').html(obj.noPlanNum);
|
||||||
|
/* $('#dfh').html(obj.dfh + '%');
|
||||||
|
$('#yfh').html(obj.yfh + '%');
|
||||||
|
let dfh = obj.dfh;
|
||||||
|
let yfh = obj.yfh;
|
||||||
|
$("#num-progress").after(`
|
||||||
|
<div class="layui-progress layui-bg-red" lay-filter="demo-filter-progress" style="margin-top:10%;">
|
||||||
|
<div class="layui-progress-bar " lay-percent="${yfh}%"></div>
|
||||||
|
</div>
|
||||||
|
`);
|
||||||
|
$("#num-progress2").after(`
|
||||||
|
<div class="layui-progress" lay-filter="demo-filter-progress" style="margin-top:2%;">
|
||||||
|
<div class="layui-progress-bar layui-bg-red" lay-percent="${dfh}%"></div>
|
||||||
|
</div>
|
||||||
|
`);
|
||||||
|
$("#num-progress3").after(`
|
||||||
|
<div class="layui-progress" lay-filter="demo-filter-progress" style="margin-top:2%;">
|
||||||
|
<div class="layui-progress-bar" lay-percent="${yfh}%"></div>
|
||||||
|
</div>
|
||||||
|
`); */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询/重置
|
||||||
|
function queryTable(type) {
|
||||||
|
if (type === 1) {
|
||||||
|
reloadTable(1);
|
||||||
|
} else if (type === 2) {
|
||||||
|
$('#proName').val('');
|
||||||
|
$('#status').val('0');
|
||||||
|
layui.form.render();
|
||||||
|
reloadTable(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 刷新页面数据
|
||||||
|
function reloadData() {
|
||||||
|
reloadData(pageNum);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 重载表格
|
||||||
|
function reloadTable(pageNum) {
|
||||||
|
table.reload("currentTableId", {
|
||||||
|
page: {
|
||||||
|
curr: pageNum ? pageNum : 1,
|
||||||
|
},
|
||||||
|
where: {
|
||||||
|
encryptedData: JSON.stringify({
|
||||||
|
'proName': $('#proName').val(),
|
||||||
|
'status': $('#status').val()
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化表格
|
||||||
|
function initTable() {
|
||||||
|
tableIns = table.render({
|
||||||
|
elem: "#currentTableId",
|
||||||
|
id: 'currentTableId',
|
||||||
|
headers: {
|
||||||
|
authorization: sessionStorage.getItem("gz-token"),
|
||||||
|
},
|
||||||
|
height: "full-350",
|
||||||
|
url: dataUrl + "backstage/planOut/getProPlanPage",
|
||||||
|
where: {
|
||||||
|
encryptedData: JSON.stringify({
|
||||||
|
'proName': $('#proName').val(),
|
||||||
|
'status': $('#status').val()
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
request: {
|
||||||
|
pageName: 'pageNum',
|
||||||
|
limitName: 'pageSize'
|
||||||
|
},
|
||||||
|
parseData: function (res) { // res 即为原始返回的数据
|
||||||
|
return {
|
||||||
|
"code": 0, // 解析接口状态
|
||||||
|
"msg": '获取成功', // 解析提示文本
|
||||||
|
"count": res.total, // 解析数据长度
|
||||||
|
"data": res.list // 解析数据列表
|
||||||
|
};
|
||||||
|
},
|
||||||
|
cols: [
|
||||||
|
[
|
||||||
|
{
|
||||||
|
width: '5%',
|
||||||
|
title: "序号",
|
||||||
|
align: "center",
|
||||||
|
templet: function (d) {
|
||||||
|
return d.LAY_NUM;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: "proName",
|
||||||
|
width: '20%',
|
||||||
|
title: "工程名称",
|
||||||
|
unresize: true,
|
||||||
|
align: "center",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: "planNum",
|
||||||
|
width: '10%',
|
||||||
|
title: "需求计划数量",
|
||||||
|
unresize: true,
|
||||||
|
align: "center",
|
||||||
|
templet: function (d) {
|
||||||
|
let html = "";
|
||||||
|
html += "<a onclick='view_plan(" + JSON.stringify(d) + ")'>" + setNumColor(d.planNum) + "</a>";
|
||||||
|
return html;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: "recordNum",
|
||||||
|
width: '10%',
|
||||||
|
title: "出库单数量 ",
|
||||||
|
unresize: true,
|
||||||
|
align: "center",
|
||||||
|
templet: function (d) {
|
||||||
|
return setNumColor(d.recordNum);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: "status",
|
||||||
|
title: "发货状态",
|
||||||
|
width: '10%',
|
||||||
|
unresize: true,
|
||||||
|
align: "center",
|
||||||
|
templet: function (d) {
|
||||||
|
return setStatusColor(d.status);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: "lastDay",
|
||||||
|
width: '15%',
|
||||||
|
title: "最后发货时间",
|
||||||
|
unresize: true,
|
||||||
|
align: "center",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: "progress",
|
||||||
|
width: '19.85%',
|
||||||
|
title: "进度",
|
||||||
|
unresize: true,
|
||||||
|
align: "center",
|
||||||
|
templet: schedule,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "操作",
|
||||||
|
width: '10%',
|
||||||
|
align: "center",
|
||||||
|
unresize: true,
|
||||||
|
templet: function (d) {
|
||||||
|
let html = "";
|
||||||
|
html += "<a onclick='deliveryDetail(" + JSON.stringify(d) + ")'>详情</a>";
|
||||||
|
html += "<div class='splitLine'>|</div><a onclick='sendGoods(" + JSON.stringify(d) + ")'>发货</a>";
|
||||||
|
return html;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
],
|
||||||
|
limits: [10, 15, 20, 25, 50, 100],
|
||||||
|
limit: 10,
|
||||||
|
page: true,
|
||||||
|
done: function (res, curr, count) {
|
||||||
|
pageNum = tableIns.config.page.curr;
|
||||||
|
element.render();
|
||||||
|
table.resize("currentTableId");
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 数量颜色
|
||||||
|
function setNumColor(value) {
|
||||||
|
return '<span style="color:#409Eff;font-weight:bold;">' + value + "</span>";
|
||||||
|
}
|
||||||
|
|
||||||
|
// 发货状态颜色
|
||||||
|
function setStatusColor(value) {
|
||||||
|
value = value ? parseInt(value) : 0;
|
||||||
|
let color = "#409Eff";
|
||||||
|
let name = ''
|
||||||
|
if (value === 0) {
|
||||||
|
color = "#f56c6c";
|
||||||
|
name = '未发货';
|
||||||
|
} else if (value === 1) {
|
||||||
|
color = "#ff9900";
|
||||||
|
name = '部分发货'
|
||||||
|
} else if (value === 2) {
|
||||||
|
color = "#19be6b";
|
||||||
|
name = '全部发货'
|
||||||
|
}
|
||||||
|
return '<span style="color:' + color + '">' + name + "</span>";
|
||||||
|
}
|
||||||
|
|
||||||
|
// 设置进度值
|
||||||
|
function schedule(d) {
|
||||||
|
d.progress = parseFloat(d.progress);
|
||||||
|
d.filter == undefined ? (d.filter = d.LAY_NUM) : d.filter;
|
||||||
|
d.progress == undefined ? (d.progress = 100) : d.progress;
|
||||||
|
var color = "layui-bg-orange";
|
||||||
|
if (d.progress < 100) {
|
||||||
|
color = "layui-bg-orange";
|
||||||
|
} else if (d.progress === 100) {
|
||||||
|
color = "layui-bg-primary";
|
||||||
|
} else if (d.progress > 100) {
|
||||||
|
color = "layui-bg-blue";
|
||||||
|
}
|
||||||
|
//设置页面进度条
|
||||||
|
return (
|
||||||
|
'<div class="layui-progress layui-progress-big" lay-showpercent="true" id="' + d.filter + '" lay-filter="progress' + d.filter + '">' +
|
||||||
|
'<div class="layui-progress-bar ' + color + '" lay-percent="' + d.progress + '%">' +
|
||||||
|
"</div></div>"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 导出
|
||||||
|
function exportExcel() {
|
||||||
|
let params = {
|
||||||
|
'proName': $('#proName').val(),
|
||||||
|
'status': $('#status').val()
|
||||||
|
}
|
||||||
|
let url = dataUrl + "backstage/export/exportFhList";
|
||||||
|
exportExcelUtil(url, '机具公司发货数据', JSON.stringify(params));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 发货详情
|
||||||
|
function deliveryDetail(obj) {
|
||||||
|
openIframeByParamObj("deliveryDetail", "详情", "../demandPlan/child/delivery_detail_list.html", "92%", "95%", obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 发货
|
||||||
|
function sendGoods(obj) {
|
||||||
|
openIframeByParamObj("sendGoods", "发货", "../demandPlan/child/send_goods_form.html", "92%", "95%", obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
// type 1.总需求量 2.待发货量 3.已发货量
|
||||||
|
function openViewData(type) {
|
||||||
|
openIframeByParam("viewData", "数据概览", "../demandPlan/child/view_data_list.html", "92%", "95%", type);
|
||||||
|
}
|
||||||
|
|
||||||
|
// type 1.超库存量 2.计划外量
|
||||||
|
function earlyInfo(type) {
|
||||||
|
openIframeByParam("viewData", "预警信息", "../demandPlan/child/early_info_list.html", "92%", "95%", type);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 需求计划
|
||||||
|
function view_plan(obj) {
|
||||||
|
openIframeByParamObj("view_plan", "需求计划", "../demandPlan/child/demand_plan_detail_list.html", "92%", "95%", obj);
|
||||||
|
}
|
||||||
|
|
@ -38,7 +38,7 @@
|
||||||
<img src="../../../images/svg/u418.svg">
|
<img src="../../../images/svg/u418.svg">
|
||||||
<div class="layout" style="flex-direction: column;align-items: start;margin-left: 10px;">
|
<div class="layout" style="flex-direction: column;align-items: start;margin-left: 10px;">
|
||||||
<p style="font-size: 18px;font-weight: bold;" id="titleName"></p>
|
<p style="font-size: 18px;font-weight: bold;" id="titleName"></p>
|
||||||
<p id="code"></p>
|
<p id="proStatus"></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,124 @@
|
||||||
|
<!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, maximum-scale=1">
|
||||||
|
<link rel="stylesheet" href="../../lib/layui-v2.9.18/layui/css/layui.css" media="all">
|
||||||
|
<link rel="stylesheet" href="../../css/font.css" media="all">
|
||||||
|
<link rel="stylesheet" href="../../css/public.css" media="all">
|
||||||
|
<link rel="stylesheet" href="../../css/demandPlan/delivery_list.css" media="all">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="layuimini-container">
|
||||||
|
<div class="layuimini-main">
|
||||||
|
<fieldset class="table-search-fieldset">
|
||||||
|
<legend>数据预览</legend>
|
||||||
|
<div id="data-overview" class="layout">
|
||||||
|
<div class="data-detail" onclick="openViewData(1)" style="cursor: pointer;">
|
||||||
|
<div class="layout" style="justify-content: space-between;" id="num-progress">
|
||||||
|
<div class="layout num-title">
|
||||||
|
<p>总需求计划量</p>
|
||||||
|
<p class="num-style" id="totalNum">0</p>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<img src="../../images/demandPlan/num_icon.png">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="data-detail" onclick="openViewData(2)" style="cursor: pointer;">
|
||||||
|
<div class="layout" style="justify-content: space-between;" id="num-progress2">
|
||||||
|
<div class="layout num-title">
|
||||||
|
<p>待发货量</p>
|
||||||
|
<p class="num-style" id="dfhNum"></p>
|
||||||
|
<!-- <p id="dfh">0%</p> -->
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<img src="../../images/demandPlan/num2_icon.png">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="data-detail" onclick="openViewData(3)" style="cursor: pointer;">
|
||||||
|
<div class="layout" style="justify-content: space-between;" id="num-progress3">
|
||||||
|
<div class="layout num-title">
|
||||||
|
<p>已发货量</p>
|
||||||
|
<p class="num-style" id="fhNum"></p>
|
||||||
|
<!-- <p id="yfh">0%</p> -->
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<img src="../../images/demandPlan/num3_icon.png">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layout data-detail" style="align-items: flex-start;justify-content: flex-start;">
|
||||||
|
<p style="font-size: 16px; font-weight: bold;">预警信息</p>
|
||||||
|
<div class="layout common-style" onclick="earlyInfo(1)">
|
||||||
|
<p>超库存量</p>
|
||||||
|
<p style="color: #F56C6C; font-weight: 700; font-size: 16px;" id="overNum">0</p>
|
||||||
|
</div>
|
||||||
|
<div class="layout common-style" onclick="earlyInfo(2)">
|
||||||
|
<p>计划外量</p>
|
||||||
|
<p style="color: #00BFBF; font-weight: 700; font-size: 16px;" id="noPlanNum">0</p>
|
||||||
|
</div>
|
||||||
|
<!-- <div class="layout common-style">
|
||||||
|
<p>据需用日期5日量</p>
|
||||||
|
<p style="color: rgb(255, 153, 0);; font-weight: 700; font-size: 16px;">0</p>
|
||||||
|
</div>
|
||||||
|
<div class="layout common-style">
|
||||||
|
<p>已超需用日期量</p>
|
||||||
|
<p style="color: #D9001B; font-weight: 700; font-size: 16px;">0</p>
|
||||||
|
</div> -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
<fieldset class="table-search-fieldset">
|
||||||
|
<legend>搜索信息</legend>
|
||||||
|
<div style="margin: 10px 10px 10px 10px">
|
||||||
|
<form class="layui-form layui-form-pane" action="#" onsubmit="return false;">
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<div class="layui-inline">
|
||||||
|
<div class="layui-input-inline" style="width: 300px;">
|
||||||
|
<input type="text" name="proName" id="proName" autocomplete="off" class="layui-input" lay-affix="clear"
|
||||||
|
placeholder="输入工程名称" maxlength="30">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-inline">
|
||||||
|
<div class="layui-input-inline">
|
||||||
|
<select id="status">
|
||||||
|
<option value="">请选择状态</option>
|
||||||
|
<option value="0">未发货</option>
|
||||||
|
<option value="1">部分发货</option>
|
||||||
|
<option value="2">全部发货</option>
|
||||||
|
</select>
|
||||||
|
</select>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-inline">
|
||||||
|
<button class="layui-btn layui-bg-blue" onclick="queryTable(1)"><i class="layui-icon"></i> 搜 索</button>
|
||||||
|
<button class="layui-btn layui-btn-primary" onclick="queryTable(2)"><i
|
||||||
|
class="layui-icon layui-icon-refresh"></i> 重 置</button>
|
||||||
|
<button class="layui-btn layui-btn-primary" onclick="exportExcel()"><i
|
||||||
|
class="layui-icon layui-icon-download-circle"></i> 导出</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
<div class="table-box" table-responsive style="z-index: 1;">
|
||||||
|
<table class="layui-hide" id="currentTableId" lay-filter="currentTableId2"></table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script src="../../lib/jquery-3.4.1/jquery-3.4.1.min.js" charset="utf-8"></script>
|
||||||
|
<script src="../../js/public.js" charset="utf-8"></script>
|
||||||
|
<script src="../../lib/layui-v2.9.18/layui/layui.js" charset="utf-8"></script>
|
||||||
|
<script src="../../js/demandPlan/delivery_list.js" charset="utf-8"></script>
|
||||||
|
<script src="../../js/openIframe.js" charset="utf-8"></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
Loading…
Reference in New Issue