提交 dfb3dc43 编写于 作者: Skyeye云's avatar Skyeye云

库存盘点重构完成

上级 fba06b0e
...@@ -17,7 +17,13 @@ layui.config({ ...@@ -17,7 +17,13 @@ layui.config({
done: function(page, next) { //到达临界点(默认滚动触发),触发下一页 done: function(page, next) { //到达临界点(默认滚动触发),触发下一页
var lis = []; var lis = [];
//以jQuery的Ajax请求为例,请求下一页数据(注意:page是从2开始返回) //以jQuery的Ajax请求为例,请求下一页数据(注意:page是从2开始返回)
AjaxPostUtil.request({url: flowableBasePath + "erpstockinventory003", params: {page: page, limit: 15, normsId: parent.normsId, depotId: parent.depotId}, type: 'json', callback: function (json) { var params = {
page: page,
limit: 15,
normsId: parent.normsId,
depotId: parent.depotId
};
AjaxPostUtil.request({url: sysMainMation.erpBasePath + "erpstockinventory003", params: params, type: 'json', method: 'POST', callback: function (json) {
var jsonStr = "";//实体json对象 var jsonStr = "";//实体json对象
$.each(json.rows, function(index, bean) { $.each(json.rows, function(index, bean) {
bean.showClass = 'date02'; bean.showClass = 'date02';
...@@ -26,8 +32,6 @@ layui.config({ ...@@ -26,8 +32,6 @@ layui.config({
}; };
lis.push(getDataUseHandlebars($("#treeHistory").html(), jsonStr)); lis.push(getDataUseHandlebars($("#treeHistory").html(), jsonStr));
}); });
//执行下一页渲染,第二参数为:满足“加载更多”的条件,即后面仍有分页
//pages为Ajax返回的总页数,只有当前页小于总页数的情况下,才会继续出现加载更多
next(lis.join(''), (page * 1000) < json.total); next(lis.join(''), (page * 1000) < json.total);
}}); }});
} }
......
...@@ -10,35 +10,54 @@ layui.config({ ...@@ -10,35 +10,54 @@ layui.config({
version: skyeyeVersion version: skyeyeVersion
}).extend({ }).extend({
window: 'js/winui.window' window: 'js/winui.window'
}).define(['window', 'table', 'jquery', 'winui', 'form', 'soulTable'], function (exports) { }).define(['window', 'table', 'jquery', 'winui', 'form', 'soulTable', 'fsTree'], function (exports) {
winui.renderColor(); winui.renderColor();
var $ = layui.$, var $ = layui.$,
form = layui.form, form = layui.form,
table = layui.table, table = layui.table,
fsTree = layui.fsTree,
soulTable = layui.soulTable; soulTable = layui.soulTable;
var selOption = getFileContent('tpl/template/select-option-must.tpl'); /********* tree 处理 start *************/
var ztree;
initDepotHtml(); fsTree.render({
// 初始化仓库 id: "treeDemo",
function initDepotHtml() { url: sysMainMation.erpBasePath + "storehouse009",
AjaxPostUtil.request({url: sysMainMation.erpBasePath + "storehouse009", params: {}, type: 'json', method: "GET", callback: function(json) { checkEnable: false,
$("#depotId").html(getDataUseHandlebars(selOption, json)); showLine: false,
form.render(); showIcon: true,
if(json.rows.length > 0){ addDiyDom: ztreeUtil.addDiyDom,
initTable(); clickCallback: onClickTree,
} else { onDblClick: onClickTree
winui.window.msg("您还未分配仓库,请联系管理员分配.", {icon: 2, time: 2000}); }, function(id) {
} ztree = $.fn.zTree.getZTreeObj(id);
}}); var zTreeChecked = ztree.getCheckedNodes(false);
if (zTreeChecked.length == 0) {
return false;
}
ztree.selectNode(zTreeChecked[0], true, true);
fuzzySearch(id, '#name', null, true);
depotId = zTreeChecked[0].id;
initTable();
ztreeUtil.initEventListener(id);
});
//异步加载的方法
function onClickTree(event, treeId, treeNode) {
if(treeNode == undefined) {
depotId = "";
} else {
depotId = treeNode.id;
}
loadTable();
} }
function initTable(){ function initTable(){
table.render({ table.render({
id: 'messageTable', id: 'messageTable',
elem: '#messageTable', elem: '#messageTable',
method: 'post', method: 'post',
url: flowableBasePath + 'erpstockinventory002', url: sysMainMation.erpBasePath + 'erpstockinventory002',
where: getTableParams(), where: getTableParams(),
even: true, even: true,
page: true, page: true,
...@@ -52,60 +71,77 @@ layui.config({ ...@@ -52,60 +71,77 @@ layui.config({
limit: getLimit(), limit: getLimit(),
cols: [[ cols: [[
{ title: systemLanguage["com.skyeye.serialNumber"][languageType], rowspan: '2', type: 'numbers' }, { title: systemLanguage["com.skyeye.serialNumber"][languageType], rowspan: '2', type: 'numbers' },
{ field: 'materialName', title: '商品名称', rowspan: '2', align: 'left', width: 150, templet: function (d) { { field: 'name', title: '产品名称', rowspan: '2', align: 'left', width: 150 },
return '<a lay-event="details" class="notice-title-click">' + d.materialName + '</a>'; { field: 'model', title: '型号', rowspan: '2', align: 'left', width: 150 },
}}, { field: 'type', title: '产品类型', rowspan: '2', align: 'left', width: 100, templet: function (d) {
{ field: 'materialModel', title: '型号', rowspan: '2', align: 'left', width: 150 }, return skyeyeClassEnumUtil.getEnumDataNameByCodeAndKey("materialType", 'id', d.type, 'name');
{ field: 'materialCategoryName', title: '所属类型', rowspan: '2', align: 'center', width: 100 }, }},
{ field: 'materialTypeName', title: '商品来源', rowspan: '2', align: 'left', width: 100 }, { field: 'fromType', title: '产品来源', rowspan: '2', align: 'center', width: 100, templet: function (d) {
{ title: '库存', colspan: '4', align: 'center', width: 80}, return skyeyeClassEnumUtil.getEnumDataNameByCodeAndKey("materialFromType", 'id', d.fromType, 'name');
}},
{ title: '库存', colspan: '4', align: 'center', width: 80},
{ field: 'id', title: '盘点历史', rowspan: '2', align: 'center', width: 80, templet: function (d) { { field: 'id', title: '盘点历史', rowspan: '2', align: 'center', width: 80, templet: function (d) {
return '<a lay-event="historyDetails" class="notice-title-click">盘点历史</a>'; return '<a lay-event="historyDetails" class="notice-title-click">盘点历史</a>';
}}, }},
{ field: 'enabled', title: '状态', rowspan: '2', align: 'center', width: 60, templet: function (d) { { field: 'enabled', title: '规格状态', rowspan: '2', align: 'center', width: 80, templet: function (d) {
if(d.enabled == '0'){ return skyeyeClassEnumUtil.getEnumDataNameByCodeAndKey("commonEnable", 'id', d.materialNorms.enabled, 'name');
return "<span class='state-down'>禁用</span>"; }}
} else if (d.enabled == '1'){ ], [
return "<span class='state-up'>启用</span>"; { field: 'materialNorms', title: '规格', align: 'left', width: 140, templet: function (d) {
} return d.materialNorms.name;
}} }},
],[ { field: 'allStock', title: '总库存', align: 'center', width: 80, templet: function (d) {
{ field: 'unitName', title: '规格', align: 'center', width: 80 }, if (isNull(d.materialNorms.depotTock)) {
{ field: 'allStock', title: '总库存', align: 'center', width: 80 }, return '0';
{ field: 'initialTock', title: '初始库存', align: 'center', width: 80 }, }
{ field: 'stockNum', title: '可盘点库存', align: 'center', width: 120, edit: 'text' } return d.materialNorms.depotTock.allStock;
}},
{ field: 'initialTock', title: '初始库存', align: 'center', width: 80, templet: function (d) {
if (isNull(d.materialNorms.depotTock)) {
return '0';
}
return d.materialNorms.depotTock.initialTock;
}},
{ field: 'stockNum', title: '可盘点库存', align: 'center', width: 120, edit: 'text', templet: function (d) {
if (isNull(d.materialNorms.depotTock)) {
return '0';
}
return d.materialNorms.depotTock.inventoryTock;
}}
]], ]],
done: function(json) { done: function(json) {
matchingLanguage(); matchingLanguage();
soulTable.render(this); soulTable.render(this);
initTableSearchUtil.initAdvancedSearch(this, json.searchFilter, form, "请输入名称", function () {
table.reloadData("messageTable", {page: {curr: 1}, where: getTableParams()});
});
} }
}); });
table.on('tool(messageTable)', function (obj) { table.on('tool(messageTable)', function (obj) {
var data = obj.data; var data = obj.data;
var layEvent = obj.event; var layEvent = obj.event;
if (layEvent === 'details') { //详情 if (layEvent === 'historyDetails') { // 盘点历史
details(data);
} else if (layEvent === 'historyDetails'){ // 盘点历史
historyDetails(data); historyDetails(data);
} }
}); });
table.on('edit(messageTable)', function(obj){ table.on('edit(messageTable)', function(obj){
var data = obj.data; //得到所在行所有键值 var data = obj.data;
var value = obj.value //得到修改后的值 var value = obj.value;
if(isNull(value)){ if (isNull(value)) {
winui.window.msg("请填写盘点数量.", {icon: 2, time: 2000}); winui.window.msg("请填写盘点数量.", {icon: 2, time: 2000});
} else { } else {
if((/^(\+|-)?\d+$/.test(value)) && value >= 0){ if ((/^(\+|-)?\d+$/.test(value)) && value >= 0) {
var params = { var params = {
materialId: data.id, materialId: data.id,
normsId: data.normsId, normsId: data.normsId,
number: value, number: value,
depotId: data.depotId depotId: depotId
}; };
AjaxPostUtil.request({url: flowableBasePath + "erpstockinventory001", params: params, type: 'json', callback: function(json) { AjaxPostUtil.request({url: sysMainMation.erpBasePath + "erpstockinventory001", params: params, type: 'json', method: 'POST', callback: function(json) {
winui.window.msg("盘点成功", {icon: 1, time: 2000}); winui.window.msg("盘点成功", {icon: 1, time: 2000});
loadTable();
}}); }});
} else { } else {
winui.window.msg("请填写盘点数量.", {icon: 2, time: 2000}); winui.window.msg("请填写盘点数量.", {icon: 2, time: 2000});
...@@ -114,30 +150,9 @@ layui.config({ ...@@ -114,30 +150,9 @@ layui.config({
}); });
} }
form.render();
form.on('submit(formSearch)', function (data) {
if (winui.verifyForm(data.elem)) {
refreshloadTable();
}
return false;
});
// 详情
function details(data) {
rowId = data.id;
_openNewWindows({
url: "../../tpl/material/materialDetails.html",
title: systemLanguage["com.skyeye.detailsPageTitle"][languageType],
pageId: "materialDetails",
area: ['90vw', '90vh'],
callBack: function (refreshCode) {
}});
}
// 盘点历史详情 // 盘点历史详情
function historyDetails(data) { function historyDetails(data) {
normsId = data.normsId; normsId = data.normsId;
depotId = data.depotId;
_openNewWindows({ _openNewWindows({
url: "../../tpl/storeHouseInventory/storeHouseInventoryHistory.html", url: "../../tpl/storeHouseInventory/storeHouseInventoryHistory.html",
title: "盘点历史", title: "盘点历史",
...@@ -146,27 +161,19 @@ layui.config({ ...@@ -146,27 +161,19 @@ layui.config({
callBack: function (refreshCode) { callBack: function (refreshCode) {
}}); }});
} }
// 刷新数据 form.render();
$("body").on("click", "#reloadTable", function() { $("body").on("click", "#reloadTable", function() {
loadTable(); loadTable();
}); });
function loadTable() { function loadTable() {
table.reloadData("messageTable", {where: getTableParams()}); table.reloadData("messageTable", {where: getTableParams()});
} }
function refreshloadTable() { function getTableParams() {
table.reloadData("messageTable", {page: {curr: 1}, where: getTableParams()}); return $.extend(true, {depotId: depotId}, initTableSearchUtil.getSearchValue("messageTable"));
} }
function getTableParams() {
return {
typeFrom: $("#typeFrom").val(),
enabled: $("#enabled").val(),
depotId: $("#depotId").val()
};
}
exports('storeHouseInventoryList', {}); exports('storeHouseInventoryList', {});
}); });
...@@ -36,11 +36,11 @@ ...@@ -36,11 +36,11 @@
<ul> <ul>
<li class="green"> <li class="green">
<h3> <h3>
<a>{{materialName}}[{{materialModel}}] {{unitName}}</a> <a>{{materialMation.name}}[{{materialMation.model}}] {{normsMation.name}}</a>
<span>盘点人{{userName}}</span> <span>盘点人{{createName}}</span>
</h3> </h3>
<div> <div>
盘点前数量{{originalNumber}} -> 盘点后数量{{currentNumber}} 盘点前数量{{originalNumber}} -> 盘点后数量{{number}}
<br/> <br/>
盘点时间{{{createTime}}} 盘点时间{{{createTime}}}
</div> </div>
......
...@@ -5,6 +5,8 @@ ...@@ -5,6 +5,8 @@
<title></title> <title></title>
<link href="../../assets/lib/layui/css/layui.css" rel="stylesheet" /> <link href="../../assets/lib/layui/css/layui.css" rel="stylesheet" />
<link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" /> <link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" />
<link href="../../assets/lib/layui/lay/modules/ztree/css/zTreeStyle/zTreeStyle.css" rel="stylesheet" />
<link href="../../assets/lib/winui/css/customer/ztree/common-tree.css" rel="stylesheet" />
<style> <style>
.layui-table-cell { .layui-table-cell {
height: auto; height: auto;
...@@ -16,51 +18,29 @@ ...@@ -16,51 +18,29 @@
</style> </style>
</head> </head>
<body> <body>
<div class="txtcenter" style="margin:0 auto;padding-top:10px;">
<form class="layui-form layui-form-pane" action="" autocomplete="off">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">仓库</label>
<div class="layui-input-inline">
<select id="depotId" name="depotId" lay-search="" win-verify="required">
</select>
</div>
<label class="layui-form-label">商品来源</label>
<div class="layui-input-inline">
<select lay-filter="typeFrom" lay-search="" id="typeFrom">
<option value="">全部</option>
<option value="1">自产</option>
<option value="2">外购</option>
</select>
</div>
<label class="layui-form-label">状态</label>
<div class="layui-input-inline">
<select lay-filter="enabled" lay-search="" id="enabled">
<option value="">全部</option>
<option value="0">禁用</option>
<option value="1">启用</option>
</select>
</div>
<button type="reset" class="layui-btn layui-btn-primary list-form-search"><language showName="com.skyeye.reset"></language></button>
<button class="layui-btn list-form-search" lay-submit lay-filter="formSearch"><language showName="com.skyeye.search2"></language></button>
</div>
</div>
</form>
</div>
<div class="winui-toolbar"> <div class="winui-toolbar">
<div class="winui-tool"> <div class="winui-tool">
<button id="reloadTable" class="winui-toolbtn"><i class="fa fa-refresh" aria-hidden="true"></i><language showName="com.skyeye.refreshDataBtn"></language></button> <button id="reloadTable" class="winui-toolbtn search-table-btn-right"><i class="fa fa-refresh" aria-hidden="true"></i><language showName="com.skyeye.refreshDataBtn"></language></button>
</div> </div>
</div> </div>
<div style="margin:auto 10px;"> <div style="margin: auto 10px;">
<table id="messageTable" lay-filter="messageTable"></table> <div style="width: 240px; float: left; height: 100%; overflow: auto; padding: 5px;">
<script type="text/html" id="tableBar"> <input type="text" id="name" name="name" placeholder="请输入要搜索的节点" class="layui-input" />
<ul id="treeDemo" class="ztree fsTree" method="get" isRoot="0"
</script> treeIdKey="id" inputs="parentId" treePIdKey="pId" clickCallbackInputs="parentId:$id" treeName="name"></ul>
</div>
<div style="width: calc(100% - 250px); float: left;">
<div style="margin:auto 10px;">
<table id="messageTable" lay-filter="messageTable"></table>
</div>
</div>
</div> </div>
<script src="../../assets/lib/layui/layui.js"></script> <script src="../../assets/lib/layui/layui.js"></script>
<script src="../../assets/lib/layui/custom.js"></script> <script src="../../assets/lib/layui/custom.js"></script>
<script type="text/javascript" src="../../assets/lib/layui/lay/modules/jquery-min.js"></script>
<script type="text/javascript" src="../../assets/lib/layui/lay/modules/ztree/js/jquery.ztree.all.min.js"></script>
<script type="text/javascript" src="../../assets/lib/layui/lay/modules/ztree/js/jquery.ztree.exhide.min.js"></script>
<script type="text/javascript" src="../../assets/lib/layui/lay/modules/ztree/js/fuzzysearch.js"></script>
<script type="text/javascript"> <script type="text/javascript">
layui.config({base: '../../js/storeHouseInventory/'}).use('storeHouseInventoryList'); layui.config({base: '../../js/storeHouseInventory/'}).use('storeHouseInventoryList');
</script> </script>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册