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

库存盘点重构完成

上级 fba06b0e
......@@ -17,7 +17,13 @@ layui.config({
done: function(page, next) { //到达临界点(默认滚动触发),触发下一页
var lis = [];
//以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对象
$.each(json.rows, function(index, bean) {
bean.showClass = 'date02';
......@@ -26,8 +32,6 @@ layui.config({
};
lis.push(getDataUseHandlebars($("#treeHistory").html(), jsonStr));
});
//执行下一页渲染,第二参数为:满足“加载更多”的条件,即后面仍有分页
//pages为Ajax返回的总页数,只有当前页小于总页数的情况下,才会继续出现加载更多
next(lis.join(''), (page * 1000) < json.total);
}});
}
......
......@@ -10,35 +10,54 @@ layui.config({
version: skyeyeVersion
}).extend({
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();
var $ = layui.$,
form = layui.form,
table = layui.table,
fsTree = layui.fsTree,
soulTable = layui.soulTable;
var selOption = getFileContent('tpl/template/select-option-must.tpl');
initDepotHtml();
// 初始化仓库
function initDepotHtml() {
AjaxPostUtil.request({url: sysMainMation.erpBasePath + "storehouse009", params: {}, type: 'json', method: "GET", callback: function(json) {
$("#depotId").html(getDataUseHandlebars(selOption, json));
form.render();
if(json.rows.length > 0){
initTable();
} else {
winui.window.msg("您还未分配仓库,请联系管理员分配.", {icon: 2, time: 2000});
}
}});
/********* tree 处理 start *************/
var ztree;
fsTree.render({
id: "treeDemo",
url: sysMainMation.erpBasePath + "storehouse009",
checkEnable: false,
showLine: false,
showIcon: true,
addDiyDom: ztreeUtil.addDiyDom,
clickCallback: onClickTree,
onDblClick: onClickTree
}, 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(){
table.render({
id: 'messageTable',
elem: '#messageTable',
method: 'post',
url: flowableBasePath + 'erpstockinventory002',
url: sysMainMation.erpBasePath + 'erpstockinventory002',
where: getTableParams(),
even: true,
page: true,
......@@ -52,60 +71,77 @@ layui.config({
limit: getLimit(),
cols: [[
{ title: systemLanguage["com.skyeye.serialNumber"][languageType], rowspan: '2', type: 'numbers' },
{ field: 'materialName', title: '商品名称', rowspan: '2', align: 'left', width: 150, templet: function (d) {
return '<a lay-event="details" class="notice-title-click">' + d.materialName + '</a>';
}},
{ field: 'materialModel', title: '型号', rowspan: '2', align: 'left', width: 150 },
{ field: 'materialCategoryName', title: '所属类型', rowspan: '2', align: 'center', width: 100 },
{ field: 'materialTypeName', title: '商品来源', rowspan: '2', align: 'left', width: 100 },
{ title: '库存', colspan: '4', align: 'center', width: 80},
{ field: 'name', title: '产品名称', rowspan: '2', align: 'left', width: 150 },
{ field: 'model', title: '型号', rowspan: '2', align: 'left', width: 150 },
{ field: 'type', title: '产品类型', rowspan: '2', align: 'left', width: 100, templet: function (d) {
return skyeyeClassEnumUtil.getEnumDataNameByCodeAndKey("materialType", 'id', d.type, 'name');
}},
{ field: 'fromType', title: '产品来源', rowspan: '2', align: 'center', width: 100, templet: function (d) {
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) {
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) {
if(d.enabled == '0'){
return "<span class='state-down'>禁用</span>";
} else if (d.enabled == '1'){
return "<span class='state-up'>启用</span>";
}
}}
],[
{ field: 'unitName', title: '规格', align: 'center', width: 80 },
{ field: 'allStock', title: '总库存', align: 'center', width: 80 },
{ field: 'initialTock', title: '初始库存', align: 'center', width: 80 },
{ field: 'stockNum', title: '可盘点库存', align: 'center', width: 120, edit: 'text' }
{ field: 'enabled', title: '规格状态', rowspan: '2', align: 'center', width: 80, templet: function (d) {
return skyeyeClassEnumUtil.getEnumDataNameByCodeAndKey("commonEnable", 'id', d.materialNorms.enabled, 'name');
}}
], [
{ field: 'materialNorms', title: '规格', align: 'left', width: 140, templet: function (d) {
return d.materialNorms.name;
}},
{ field: 'allStock', title: '总库存', align: 'center', width: 80, templet: function (d) {
if (isNull(d.materialNorms.depotTock)) {
return '0';
}
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) {
matchingLanguage();
soulTable.render(this);
initTableSearchUtil.initAdvancedSearch(this, json.searchFilter, form, "请输入名称", function () {
table.reloadData("messageTable", {page: {curr: 1}, where: getTableParams()});
});
}
});
table.on('tool(messageTable)', function (obj) {
var data = obj.data;
var layEvent = obj.event;
if (layEvent === 'details') { //详情
details(data);
} else if (layEvent === 'historyDetails'){ // 盘点历史
if (layEvent === 'historyDetails') { // 盘点历史
historyDetails(data);
}
});
table.on('edit(messageTable)', function(obj){
var data = obj.data; //得到所在行所有键值
var value = obj.value //得到修改后的值
if(isNull(value)){
var data = obj.data;
var value = obj.value;
if (isNull(value)) {
winui.window.msg("请填写盘点数量.", {icon: 2, time: 2000});
} else {
if((/^(\+|-)?\d+$/.test(value)) && value >= 0){
if ((/^(\+|-)?\d+$/.test(value)) && value >= 0) {
var params = {
materialId: data.id,
normsId: data.normsId,
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});
loadTable();
}});
} else {
winui.window.msg("请填写盘点数量.", {icon: 2, time: 2000});
......@@ -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) {
normsId = data.normsId;
depotId = data.depotId;
_openNewWindows({
url: "../../tpl/storeHouseInventory/storeHouseInventoryHistory.html",
title: "盘点历史",
......@@ -146,27 +161,19 @@ layui.config({
callBack: function (refreshCode) {
}});
}
// 刷新数据
$("body").on("click", "#reloadTable", function() {
loadTable();
});
function loadTable() {
table.reloadData("messageTable", {where: getTableParams()});
}
function refreshloadTable() {
table.reloadData("messageTable", {page: {curr: 1}, where: getTableParams()});
}
function getTableParams() {
return {
typeFrom: $("#typeFrom").val(),
enabled: $("#enabled").val(),
depotId: $("#depotId").val()
};
}
form.render();
$("body").on("click", "#reloadTable", function() {
loadTable();
});
function loadTable() {
table.reloadData("messageTable", {where: getTableParams()});
}
function getTableParams() {
return $.extend(true, {depotId: depotId}, initTableSearchUtil.getSearchValue("messageTable"));
}
exports('storeHouseInventoryList', {});
});
......@@ -36,11 +36,11 @@
<ul>
<li class="green">
<h3>
<a>{{materialName}}[{{materialModel}}] {{unitName}}</a>
<span>盘点人{{userName}}</span>
<a>{{materialMation.name}}[{{materialMation.model}}] {{normsMation.name}}</a>
<span>盘点人{{createName}}</span>
</h3>
<div>
盘点前数量{{originalNumber}} -> 盘点后数量{{currentNumber}}
盘点前数量{{originalNumber}} -> 盘点后数量{{number}}
<br/>
盘点时间{{{createTime}}}
</div>
......
......@@ -5,6 +5,8 @@
<title></title>
<link href="../../assets/lib/layui/css/layui.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>
.layui-table-cell {
height: auto;
......@@ -16,51 +18,29 @@
</style>
</head>
<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-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 style="margin:auto 10px;">
<table id="messageTable" lay-filter="messageTable"></table>
<script type="text/html" id="tableBar">
</script>
<div style="margin: auto 10px;">
<div style="width: 240px; float: left; height: 100%; overflow: auto; padding: 5px;">
<input type="text" id="name" name="name" placeholder="请输入要搜索的节点" class="layui-input" />
<ul id="treeDemo" class="ztree fsTree" method="get" isRoot="0"
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>
<script src="../../assets/lib/layui/layui.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">
layui.config({base: '../../js/storeHouseInventory/'}).use('storeHouseInventoryList');
</script>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册