Browse Source

修改移动端库存查询跳转到出库申请页面

lwx_dev
erdanergou 3 years ago
parent
commit
1df9a4ce3b
  1. 2
      src/main/java/com/dreamchaser/depository_manage/controller/PageController.java
  2. 569
      src/main/resources/templates/pages/application/application-out_scanQrCode.html
  3. 56
      src/main/resources/templates/pages/application/application-out_temporaryValue.html
  4. 569
      target/classes/templates/pages/application/application-out_scanQrCode.html

2
src/main/java/com/dreamchaser/depository_manage/controller/PageController.java

@ -2823,7 +2823,7 @@ public class PageController {
} }
mv.addObject("inventoryList", JSONObject.toJSONString(result)); mv.addObject("inventoryList", JSONObject.toJSONString(result));
mv.setViewName("pages/application/application-out_scanQrCode"); mv.setViewName("pages/application/application-out_temporaryValue");
Integer role = userToken.getIsadmin(); Integer role = userToken.getIsadmin();
if (role == null) { if (role == null) {
role = 1; role = 1;

569
src/main/resources/templates/pages/application/application-out_scanQrCode.html

@ -1,569 +0,0 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<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="/static/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
<link rel="stylesheet" href="/static/js/lay-module/step-lay/step.css" media="all">
</head>
<body>
<style>
.inputdiv{
display:flex;background-color: #fff;height: 38px;line-height: 38px;border: 1px solid rgb(238, 238, 238);
}
.layui-form-label{
padding: 9px 0px;
text-align: left;
}
.layui-input-block{
margin-left: 80px;
}
.lay-step{
display: none;
}
.layui-form-select .layui-input{
border-style: none;
}
</style>
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-fluid">
<!-- 出库申请-->
<div class="layui-carousel" id="stepForm" lay-filter="stepForm" style="margin: 0 auto;">
<input th:value="${place}" style="display: none" id="scanValue_placeId">
<div carousel-item style="overflow: inherit">
<div>
<form class="layui-form layui-form-pane" style="margin: 0 auto;max-width: 460px;padding-top: 40px;">
<div class="layui-card" id="cardParent">
<!-- 提交按钮-->
<div class="layui-form-item" id="btn_sub">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formStep" style="margin-bottom: 30px;margin-left: 15%">
&emsp;提交申请&emsp;
</button>
</div>
</div>
</div>
</form>
</div>
<div>
<form class="layui-form" style="margin: 0 auto;max-width: 460px;padding-top: 40px;">
<div style="text-align: center;margin-top: 90px;">
<i class="layui-icon layui-circle"
style="color: white;font-size:30px;font-weight:bold;background: #52C41A;padding: 20px;line-height: 80px;">&#xe605;</i>
<div style="font-size: 24px;color: #333;font-weight: 500;margin-top: 30px;">
提交申请成功
</div>
<div style="font-size: 14px;color: #666;margin-top: 20px;">预计审核时间为1天</div>
</div>
<div style="text-align: center;margin-top: 50px;">
<button class="layui-btn next">再申请一次</button>
</div>
</form>
</div>
</div>
</div>
<hr>
<div style="color: #666;margin-top: 30px;margin-bottom: 40px;padding-left: 30px;">
<h3>说明</h3><br>
申请提交后,24小时内审核完毕
</div>
</div>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="/static/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script>
// 用于添加标签
function addItem(obj){}
// 用于删除标签
function deleteItem(obj){}
// 用于编码查询
function selectCode(obj){}
// 用于点击搜索按钮
function selectMaterial(obj){}
// 用于物料名称查询
function selectMaterialByName(obj){}
// 用于暂存卡片个数
var params = [];
// 用于页面初始化时的卡片构造
function initForm(num,obj) {}
// 用于卡片编号
var NewIdNumber = 1;
// 用于标志是否为第一次提交
let flagForForm = false;
layui.use(['form', 'step', 'layer', 'jquery'], function () {
var $ = layui.$,
form = layui.form,
step = layui.step;
// 用于分步表单加载
step.render({
elem: '#stepForm',
filter: 'stepForm',
width: '100%', //设置容器宽度
height: '600px',
stepItems: [{
title: '填写信息'
}, {
title: '提交成功'
}]
});
let scanValue = {}; // 用于暂存扫描得到的结果
// 页面初始化
$(function () {
let depository = $("#scanValue_depositoryId").val();
let place = $("#scanValue_placeId").val();
let materialList = $("#scanValue_materialList").val();
materialList = JSON.parse(materialList);
if(depository !== undefined && depository !== null && depository !== ""){
// 如果扫描到仓库
depository = JSON.parse(depository);
scanValue.depository = depository;
}
if(place !== undefined && place !== null && place !== ""){
// 如果扫描到库位
place = JSON.parse(place);
scanValue.place = place;
}
for (let i = 0; i < materialList.length; i++) {
initForm(i,materialList[i]);
}
});
//用于页面初始化时的卡片构造
initForm = function(num,obj){
var parent = $("#cardParent");
// 获取待添加父类
NewIdNumber = num;
var isPlace = false;
if(num === 0){ // 如果是第一个
NewIdNumber = "";
}
let depositoryItem = `
<div class="layui-form-item">
<label class="layui-form-label">所处库位:</label>
<div class="layui-input-block">
<select name=`+"placeId"+NewIdNumber +` id=`+"place"+NewIdNumber+`></select>
</div>
</div>
`;
var firstItem = `
<div class="layui-card-body" id=`+"cardItem"+NewIdNumber+`>
<hr>
<i class="layui-icon layui-icon-subtraction" style="display: inline" onclick="deleteItem(this)"></i>
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">物料名称</label>
<div class="layui-input-block">
<div class="inputdiv">
<input type="text" placeholder="请选择物料" class="layui-input" style="border-style: none" value="${obj.mname}"
id="openSonByMaterial" lay-verify="required" onblur="selectMaterialByName(this)"/>
<i class="layui-icon layui-icon-search" style="display: inline" id="selectMaterial" onclick="selectMaterial(this)"></i>
</div>
<input type="text" name=`+"mid"+NewIdNumber+` class="layui-input" id="mid" value="${obj.mid}"
style="display: none" lay-verify="required" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料编码:</label>
<div class="layui-input-block">
<input id="code" name=`+"code"+NewIdNumber+` type="text" placeholder="请填写入物料编码" value="${obj.code}" onblur="selectCode(this)"
class="layui-input" lay-verify="required">
</div>
</div>`;
var lastItem = `<div class="layui-form-item">
<label class="layui-form-label">物料数量:</label>
<div class="layui-input-block">
<input name=`+"quantity"+NewIdNumber+` type="number" placeholder="请填写入物料数量" value=""
class="layui-input" lay-verify="number">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注说明:</label>
<div class="layui-input-block">
<input name=`+"applyRemark"+NewIdNumber+` placeholder="请填写相关原因及申请原因" value=""
class="layui-input"/>
</div>
</div>
<i class="layui-icon layui-icon-addition" style="display: inline" onclick="addItem(this)"></i>
</div>`;
if(scanValue.depository !== undefined && scanValue.depository !== null && scanValue.depository !== ""){
// 如果扫描了仓库
var depository = scanValue.depository;
var req = {};
req.depositoryId = depository.did;
req.code = obj.code;
$.ajax({
url: "/place/findPlaceByMcodeAndDid",
type: "post",
dataType: 'json',
data:JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
if(d.data.length === 0){
initDeleteCard(NewIdNumber)
}else {
$('#place' + NewIdNumber).empty();
$.each(d.data, function (index, item) {
$('#place' + NewIdNumber).append(new Option(item.depositoryName + "-" + item.code, item.did));//往下拉菜单里添加元素
});
form.render();
}
}
})
}
if(scanValue.place !== undefined && scanValue.place !== null && scanValue.place !== ""){
// 如果扫描了库位
var place = scanValue.place;
var midlist = place.midList;
if(midlist.indexOf(obj.mid) !== -1){ // 如果当前库位存在该物料
isPlace = true;
}
}
// 获取当前高度
var height = parseInt(($("#stepForm").css('height')).split("px")[0]);
if (NewIdNumber !== "") {
params.push(NewIdNumber)
}
$("#stepForm").css("height",height+475 +'px');
var materialItem = firstItem + depositoryItem + lastItem;
$("#btn_sub").prepend(materialItem);
if(isPlace) {
// 如果当前库位存在
$('#place' + NewIdNumber).empty();
$('#place' + NewIdNumber).append(new Option(place.dname + "-" + place.code, place.pid));//往下拉菜单里添加元素
form.render();
}
};
// 初始化时删除卡片
initDeleteCard = function(NewIdNumber){
// 待删除结点
var delItem = $("#cardItem"+NewIdNumber)[0];
var parentId = 0;
if(NewIdNumber !== ""){
parentId = parseInt(NewIdNumber);
}
// 获取祖父节点
// console.log(delItem)
var reparent = delItem.parentNode;
var height = parseInt(($("#stepForm").css('height')).split("px")[0]);
$("#stepForm").css("height",height-430 +'px');
params = remove(params,parentId);
reparent.removeChild(delItem);
};
// 提交
form.on('submit(formStep)', function (data) {
if(!flagForForm){
flagForForm = true;
data = data.field;
data.params = params;
$.ajax({
url: "/depositoryRecord/applicationOut",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(data),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("申请提交成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
step.next('#stepForm');
});
}
},
complete: function () {
layer.close(this.layerIndex);
}
})
}
return false;
});
form.on('submit(formStep2)', function (data) {
step.next('#stepForm');
return false;
});
$('.pre').click(function () {
step.pre('#stepForm');
});
$('.next').click(function () {
step.next('#stepForm');
});
// 实现卡片添加
addItem = function (obj) {
// 获取父元素id
var parentId = obj.parentNode.id;
NewIdNumber = NewIdNumber + 1;
// 物料名称栏目
var materialItem = `
<div class="layui-card-body" id=`+"cardItem"+NewIdNumber+`>
<hr>
<i class="layui-icon layui-icon-subtraction" style="display: inline" onclick="deleteItem(this)"></i>
<div class="layui-form-item">
<label class="layui-form-label">物料名称</label>
<div class="layui-input-block">
<div class="inputdiv">
<input type="text" placeholder="请选择物料" class="layui-input" style="border-style: none"
id="openSonByMaterial" lay-verify="required" onblur="selectMaterialByName(this)"/>
<i class="layui-icon layui-icon-search" style="display: inline" id="selectMaterial" onclick="selectMaterial(this)"></i>
</div>
<input type="text" name=`+"mid"+NewIdNumber+` class="layui-input" id="mid"
style="display: none" lay-verify="required" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料编码:</label>
<div class="layui-input-block">
<input id="code" name=`+"code"+NewIdNumber+` type="text" placeholder="请填写入物料编码" value="" onblur="selectCode(this)"
class="layui-input" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">所处库位:</label>
<div class="layui-input-block">
<select name=`+"placeId"+NewIdNumber +` id="place"></select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料数量:</label>
<div class="layui-input-block">
<input name=`+"quantity"+NewIdNumber+` type="number" placeholder="请填写入物料数量" value=""
class="layui-input" lay-verify="number">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注说明:</label>
<div class="layui-input-block">
<input name=`+"applyRemark"+NewIdNumber+` placeholder="请填写相关原因及申请原因" value=""
class="layui-input"/>
</div>
</div>
<i class="layui-icon layui-icon-addition" style="display: inline" onclick="addItem(this)"></i>
</div>`;
// 获取当前高度
var height = parseInt(($("#stepForm").css('height')).split("px")[0]);
params.push(NewIdNumber)
$("#stepForm").css("height",height+430 +'px');
$("#"+parentId).after(materialItem);
};
// 实现卡片删除
deleteItem = function (obj) {
// 获取父节点
var parent = obj.parentNode;
var parentId = parent.id;
parentId = parseInt(parentId.split("cardItem")[1]);
// 获取祖父节点
var reparent = parent.parentNode;
var height = parseInt(($("#stepForm").css('height')).split("px")[0]);
$("#stepForm").css("height",height-430 +'px');
params = remove(params,parentId);
reparent.removeChild(parent);
};
//删除数组中指定元素
function remove(arr, item) {
var result = [];
for (let i = 0; i < arr.length; i++) {
if(arr[i] === item){
continue;
}
result.push(arr[i]);
}
return result;
}
// 用于实现通过编码查询物料
selectCode = function(obj){
// 输入code
var code = obj.value;
// 获取对应元素
var parent = obj.parentNode.parentNode.parentNode;
var children = parent.childNodes[5];
var materialItem = children.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1];
var materialId = materialName.parentNode.parentNode.childNodes[3];
var req = {};
req.code = code;
req.type = "out";
if(code !== ""){
$.ajax({
url: "/material/findMatrialByCode",
type: "get",
dataType: 'json',
data:(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var d = d.data;
if(d == null){
layer.msg("没有该编码,请确认是否输入正确");
materialName.value = "";
materialId.value = "";
obj.value = "";
$('#place').empty();
}else{
req.mid = d.id;
$.ajax({
url: "/place/findPlaceByMid",
type: "post",
dataType: 'json',
data:JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success:function (res) {
$('#place').empty();
$.each(res.data, function (index, item) {
$('#place').append(new Option(item.depositoryName+"-"+item.code, item.id));//往下拉菜单里添加元素
});
form.render();
materialName.value = d.mname;
materialId.value = d.id;
}
});
}
}
});
}
};
// 用于实现点击搜索按钮
selectMaterial = function (obj) {
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var parentId = parent.id;
var codeChildren = parent.childNodes[7];
var materialChildren = parent.childNodes[5];
var codeItem = codeChildren.childNodes[3].childNodes;
var codeValue = codeItem[1];
var materialItem = materialChildren.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1];
var materialId = materialName.parentNode.parentNode.childNodes[3];
var mname = materialName.value;
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
// content: '/selectMaterialByCard?mname='+mname+'&type=2&clickObj='+parentId,
content: '/getMaterialAll?mname='+mname+'&type=2&clickObj='+parentId,
success: function(layero, index){
var children = layero.children();
var content = $(children[1]);
var iframeChildren = $(content.children());
content.css('height','100%');
iframeChildren.css('height','100%');
},
move : '.layui-layer-title',
fixed:false,
end: function () {
var mid = materialId.value;
$.ajax({
url: "/material/findMatrialById?mid=" + mid,
type: "get",
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (d) {
var material = d.data.materialById;
var placeList = d.data.placeList;
var code = material.code;
if(code === undefined){
code = "";
}
codeValue.value = code;
$('#place').empty();
$.each(placeList, function (index, item) {
$('#place').append(new Option(item.depositoryName+"-"+item.code, item.id));//往下拉菜单里添加元素
});
form.render();
}
});
}
});
};
//用于实现物料名称搜索
selectMaterialByName = function (obj) {
// 输入code
var data = obj.value;
// 获取对应元素
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var materialChildren = parent.childNodes[5];
var codeChildren = parent.childNodes[7];
var codeItem = codeChildren.childNodes[3].childNodes;
var codeValue = codeItem[1];
var materialItem = materialChildren.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1];
var materialId = materialName.parentNode.parentNode.childNodes[3];
var req = {};
req.mname = data;
$.ajax({
url: "/material/findInventoryByCondition",
type: "post",
dataType: 'json',
data:JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
if(d.count > 1){
layer.msg("请点击右侧搜索确定物品");
materialId.value = "";
codeValue.value = "";
return false;
}else if(d.count === 0){
layer.msg("没有该物品,请确认输入是否正确");
materialId.value = "";
codeValue.value = "";
materialName.value = "";
return false;
}
else{
var material = d.data[0];
materialName.value = material.mname;
materialId.value = material.id;
codeValue.value = material.code;
}
}
});
};
})
</script>
</body>
</html>

56
target/classes/templates/pages/applicationForStorageCenter/application-out_scanQrCode.html → src/main/resources/templates/pages/application/application-out_temporaryValue.html

@ -44,54 +44,6 @@
<div> <div>
<form class="layui-form layui-form-pane" style="margin: 0 auto;max-width: 460px;"> <form class="layui-form layui-form-pane" style="margin: 0 auto;max-width: 460px;">
<div class="layui-card" id="cardParent"> <div class="layui-card" id="cardParent">
<div class="layui-form-item">
<label class="layui-form-label">部门:</label>
<div class="layui-input-block">
<input type="text" placeholder="请选择部门" class="layui-input"
readonly
id="openCompanyAdminorg"
onclick="selectPost(this)"
/>
<input type="text" name="adminorgId" class="layui-input"
id="adminorgId"
style="display: none"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">施工单位:</label>
<div class="layui-input-block">
<input type="text" placeholder="请选择施工单位" class="layui-input"
readonly
id="openConstructionUnit"
onclick="selectConstructionUnit(this)"
/>
<input type="text" name="constructionUnitId" class="layui-input"
id="constructionUnitId"
style="display: none"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">摘要:</label>
<div class="layui-input-block">
<input name="abstract" placeholder="请填写摘要" value=""
class="layui-input"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">出库类别:</label>
<div class="layui-input-block">
<input name="outType" placeholder="请填写相关原因及申请原因" value=""
class="layui-input"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注说明:</label>
<div class="layui-input-block">
<input name="applyRemark" placeholder="请填写相关原因及申请原因" value=""
class="layui-input"/>
</div>
</div>
<!-- 提交按钮--> <!-- 提交按钮-->
<div class="layui-form-item" id="btn_sub"> <div class="layui-form-item" id="btn_sub">
@ -263,9 +215,9 @@
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">项目:</label> <label class="layui-form-label">备注说明:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input id=` + "project" + NewIdNumber + ` name=` + "project" + NewIdNumber + ` placeholder="请填写相关项目" value="" <input id=` + "applyRemark" + NewIdNumber + ` name=` + "applyRemark" + NewIdNumber + ` placeholder="请填写相关原因及申请原因" value=""
class="layui-input"/> class="layui-input"/>
</div> </div>
</div> </div>
@ -425,9 +377,9 @@
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">项目:</label> <label class="layui-form-label">备注说明:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input id=` + "project" + NewIdNumber + ` name=` + "project" + NewIdNumber + ` placeholder="请填写相关项目" value="" <input id=` + "applyRemark" + NewIdNumber + ` name=` + "applyRemark" + NewIdNumber + ` placeholder="请填写相关原因及申请原因" value=""
class="layui-input"/> class="layui-input"/>
</div> </div>
</div> </div>

569
target/classes/templates/pages/application/application-out_scanQrCode.html

@ -1,569 +0,0 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<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="/static/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
<link rel="stylesheet" href="/static/js/lay-module/step-lay/step.css" media="all">
</head>
<body>
<style>
.inputdiv{
display:flex;background-color: #fff;height: 38px;line-height: 38px;border: 1px solid rgb(238, 238, 238);
}
.layui-form-label{
padding: 9px 0px;
text-align: left;
}
.layui-input-block{
margin-left: 80px;
}
.lay-step{
display: none;
}
.layui-form-select .layui-input{
border-style: none;
}
</style>
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-fluid">
<!-- 出库申请-->
<div class="layui-carousel" id="stepForm" lay-filter="stepForm" style="margin: 0 auto;">
<input th:value="${place}" style="display: none" id="scanValue_placeId">
<div carousel-item style="overflow: inherit">
<div>
<form class="layui-form layui-form-pane" style="margin: 0 auto;max-width: 460px;padding-top: 40px;">
<div class="layui-card" id="cardParent">
<!-- 提交按钮-->
<div class="layui-form-item" id="btn_sub">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formStep" style="margin-bottom: 30px;margin-left: 15%">
&emsp;提交申请&emsp;
</button>
</div>
</div>
</div>
</form>
</div>
<div>
<form class="layui-form" style="margin: 0 auto;max-width: 460px;padding-top: 40px;">
<div style="text-align: center;margin-top: 90px;">
<i class="layui-icon layui-circle"
style="color: white;font-size:30px;font-weight:bold;background: #52C41A;padding: 20px;line-height: 80px;">&#xe605;</i>
<div style="font-size: 24px;color: #333;font-weight: 500;margin-top: 30px;">
提交申请成功
</div>
<div style="font-size: 14px;color: #666;margin-top: 20px;">预计审核时间为1天</div>
</div>
<div style="text-align: center;margin-top: 50px;">
<button class="layui-btn next">再申请一次</button>
</div>
</form>
</div>
</div>
</div>
<hr>
<div style="color: #666;margin-top: 30px;margin-bottom: 40px;padding-left: 30px;">
<h3>说明</h3><br>
申请提交后,24小时内审核完毕
</div>
</div>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="/static/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script>
// 用于添加标签
function addItem(obj){}
// 用于删除标签
function deleteItem(obj){}
// 用于编码查询
function selectCode(obj){}
// 用于点击搜索按钮
function selectMaterial(obj){}
// 用于物料名称查询
function selectMaterialByName(obj){}
// 用于暂存卡片个数
var params = [];
// 用于页面初始化时的卡片构造
function initForm(num,obj) {}
// 用于卡片编号
var NewIdNumber = 1;
// 用于标志是否为第一次提交
let flagForForm = false;
layui.use(['form', 'step', 'layer', 'jquery'], function () {
var $ = layui.$,
form = layui.form,
step = layui.step;
// 用于分步表单加载
step.render({
elem: '#stepForm',
filter: 'stepForm',
width: '100%', //设置容器宽度
height: '600px',
stepItems: [{
title: '填写信息'
}, {
title: '提交成功'
}]
});
let scanValue = {}; // 用于暂存扫描得到的结果
// 页面初始化
$(function () {
let depository = $("#scanValue_depositoryId").val();
let place = $("#scanValue_placeId").val();
let materialList = $("#scanValue_materialList").val();
materialList = JSON.parse(materialList);
if(depository !== undefined && depository !== null && depository !== ""){
// 如果扫描到仓库
depository = JSON.parse(depository);
scanValue.depository = depository;
}
if(place !== undefined && place !== null && place !== ""){
// 如果扫描到库位
place = JSON.parse(place);
scanValue.place = place;
}
for (let i = 0; i < materialList.length; i++) {
initForm(i,materialList[i]);
}
});
//用于页面初始化时的卡片构造
initForm = function(num,obj){
var parent = $("#cardParent");
// 获取待添加父类
NewIdNumber = num;
var isPlace = false;
if(num === 0){ // 如果是第一个
NewIdNumber = "";
}
let depositoryItem = `
<div class="layui-form-item">
<label class="layui-form-label">所处库位:</label>
<div class="layui-input-block">
<select name=`+"placeId"+NewIdNumber +` id=`+"place"+NewIdNumber+`></select>
</div>
</div>
`;
var firstItem = `
<div class="layui-card-body" id=`+"cardItem"+NewIdNumber+`>
<hr>
<i class="layui-icon layui-icon-subtraction" style="display: inline" onclick="deleteItem(this)"></i>
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">物料名称</label>
<div class="layui-input-block">
<div class="inputdiv">
<input type="text" placeholder="请选择物料" class="layui-input" style="border-style: none" value="${obj.mname}"
id="openSonByMaterial" lay-verify="required" onblur="selectMaterialByName(this)"/>
<i class="layui-icon layui-icon-search" style="display: inline" id="selectMaterial" onclick="selectMaterial(this)"></i>
</div>
<input type="text" name=`+"mid"+NewIdNumber+` class="layui-input" id="mid" value="${obj.mid}"
style="display: none" lay-verify="required" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料编码:</label>
<div class="layui-input-block">
<input id="code" name=`+"code"+NewIdNumber+` type="text" placeholder="请填写入物料编码" value="${obj.code}" onblur="selectCode(this)"
class="layui-input" lay-verify="required">
</div>
</div>`;
var lastItem = `<div class="layui-form-item">
<label class="layui-form-label">物料数量:</label>
<div class="layui-input-block">
<input name=`+"quantity"+NewIdNumber+` type="number" placeholder="请填写入物料数量" value=""
class="layui-input" lay-verify="number">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注说明:</label>
<div class="layui-input-block">
<input name=`+"applyRemark"+NewIdNumber+` placeholder="请填写相关原因及申请原因" value=""
class="layui-input"/>
</div>
</div>
<i class="layui-icon layui-icon-addition" style="display: inline" onclick="addItem(this)"></i>
</div>`;
if(scanValue.depository !== undefined && scanValue.depository !== null && scanValue.depository !== ""){
// 如果扫描了仓库
var depository = scanValue.depository;
var req = {};
req.depositoryId = depository.did;
req.code = obj.code;
$.ajax({
url: "/place/findPlaceByMcodeAndDid",
type: "post",
dataType: 'json',
data:JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
if(d.data.length === 0){
initDeleteCard(NewIdNumber)
}else {
$('#place' + NewIdNumber).empty();
$.each(d.data, function (index, item) {
$('#place' + NewIdNumber).append(new Option(item.depositoryName + "-" + item.code, item.did));//往下拉菜单里添加元素
});
form.render();
}
}
})
}
if(scanValue.place !== undefined && scanValue.place !== null && scanValue.place !== ""){
// 如果扫描了库位
var place = scanValue.place;
var midlist = place.midList;
if(midlist.indexOf(obj.mid) !== -1){ // 如果当前库位存在该物料
isPlace = true;
}
}
// 获取当前高度
var height = parseInt(($("#stepForm").css('height')).split("px")[0]);
if (NewIdNumber !== "") {
params.push(NewIdNumber)
}
$("#stepForm").css("height",height+475 +'px');
var materialItem = firstItem + depositoryItem + lastItem;
$("#btn_sub").prepend(materialItem);
if(isPlace) {
// 如果当前库位存在
$('#place' + NewIdNumber).empty();
$('#place' + NewIdNumber).append(new Option(place.dname + "-" + place.code, place.pid));//往下拉菜单里添加元素
form.render();
}
};
// 初始化时删除卡片
initDeleteCard = function(NewIdNumber){
// 待删除结点
var delItem = $("#cardItem"+NewIdNumber)[0];
var parentId = 0;
if(NewIdNumber !== ""){
parentId = parseInt(NewIdNumber);
}
// 获取祖父节点
// console.log(delItem)
var reparent = delItem.parentNode;
var height = parseInt(($("#stepForm").css('height')).split("px")[0]);
$("#stepForm").css("height",height-430 +'px');
params = remove(params,parentId);
reparent.removeChild(delItem);
};
// 提交
form.on('submit(formStep)', function (data) {
if(!flagForForm){
flagForForm = true;
data = data.field;
data.params = params;
$.ajax({
url: "/depositoryRecord/applicationOut",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(data),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
return;
} else {
layer.msg("申请提交成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
step.next('#stepForm');
});
}
},
complete: function () {
layer.close(this.layerIndex);
}
})
}
return false;
});
form.on('submit(formStep2)', function (data) {
step.next('#stepForm');
return false;
});
$('.pre').click(function () {
step.pre('#stepForm');
});
$('.next').click(function () {
step.next('#stepForm');
});
// 实现卡片添加
addItem = function (obj) {
// 获取父元素id
var parentId = obj.parentNode.id;
NewIdNumber = NewIdNumber + 1;
// 物料名称栏目
var materialItem = `
<div class="layui-card-body" id=`+"cardItem"+NewIdNumber+`>
<hr>
<i class="layui-icon layui-icon-subtraction" style="display: inline" onclick="deleteItem(this)"></i>
<div class="layui-form-item">
<label class="layui-form-label">物料名称</label>
<div class="layui-input-block">
<div class="inputdiv">
<input type="text" placeholder="请选择物料" class="layui-input" style="border-style: none"
id="openSonByMaterial" lay-verify="required" onblur="selectMaterialByName(this)"/>
<i class="layui-icon layui-icon-search" style="display: inline" id="selectMaterial" onclick="selectMaterial(this)"></i>
</div>
<input type="text" name=`+"mid"+NewIdNumber+` class="layui-input" id="mid"
style="display: none" lay-verify="required" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料编码:</label>
<div class="layui-input-block">
<input id="code" name=`+"code"+NewIdNumber+` type="text" placeholder="请填写入物料编码" value="" onblur="selectCode(this)"
class="layui-input" lay-verify="required">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">所处库位:</label>
<div class="layui-input-block">
<select name=`+"placeId"+NewIdNumber +` id="place"></select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料数量:</label>
<div class="layui-input-block">
<input name=`+"quantity"+NewIdNumber+` type="number" placeholder="请填写入物料数量" value=""
class="layui-input" lay-verify="number">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注说明:</label>
<div class="layui-input-block">
<input name=`+"applyRemark"+NewIdNumber+` placeholder="请填写相关原因及申请原因" value=""
class="layui-input"/>
</div>
</div>
<i class="layui-icon layui-icon-addition" style="display: inline" onclick="addItem(this)"></i>
</div>`;
// 获取当前高度
var height = parseInt(($("#stepForm").css('height')).split("px")[0]);
params.push(NewIdNumber)
$("#stepForm").css("height",height+430 +'px');
$("#"+parentId).after(materialItem);
};
// 实现卡片删除
deleteItem = function (obj) {
// 获取父节点
var parent = obj.parentNode;
var parentId = parent.id;
parentId = parseInt(parentId.split("cardItem")[1]);
// 获取祖父节点
var reparent = parent.parentNode;
var height = parseInt(($("#stepForm").css('height')).split("px")[0]);
$("#stepForm").css("height",height-430 +'px');
params = remove(params,parentId);
reparent.removeChild(parent);
};
//删除数组中指定元素
function remove(arr, item) {
var result = [];
for (let i = 0; i < arr.length; i++) {
if(arr[i] === item){
continue;
}
result.push(arr[i]);
}
return result;
}
// 用于实现通过编码查询物料
selectCode = function(obj){
// 输入code
var code = obj.value;
// 获取对应元素
var parent = obj.parentNode.parentNode.parentNode;
var children = parent.childNodes[5];
var materialItem = children.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1];
var materialId = materialName.parentNode.parentNode.childNodes[3];
var req = {};
req.code = code;
req.type = "out";
if(code !== ""){
$.ajax({
url: "/material/findMatrialByCode",
type: "get",
dataType: 'json',
data:(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var d = d.data;
if(d == null){
layer.msg("没有该编码,请确认是否输入正确");
materialName.value = "";
materialId.value = "";
obj.value = "";
$('#place').empty();
}else{
req.mid = d.id;
$.ajax({
url: "/place/findPlaceByMid",
type: "post",
dataType: 'json',
data:JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success:function (res) {
$('#place').empty();
$.each(res.data, function (index, item) {
$('#place').append(new Option(item.depositoryName+"-"+item.code, item.id));//往下拉菜单里添加元素
});
form.render();
materialName.value = d.mname;
materialId.value = d.id;
}
});
}
}
});
}
};
// 用于实现点击搜索按钮
selectMaterial = function (obj) {
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var parentId = parent.id;
var codeChildren = parent.childNodes[7];
var materialChildren = parent.childNodes[5];
var codeItem = codeChildren.childNodes[3].childNodes;
var codeValue = codeItem[1];
var materialItem = materialChildren.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1];
var materialId = materialName.parentNode.parentNode.childNodes[3];
var mname = materialName.value;
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
// content: '/selectMaterialByCard?mname='+mname+'&type=2&clickObj='+parentId,
content: '/getMaterialAll?mname='+mname+'&type=2&clickObj='+parentId,
success: function(layero, index){
var children = layero.children();
var content = $(children[1]);
var iframeChildren = $(content.children());
content.css('height','100%');
iframeChildren.css('height','100%');
},
move : '.layui-layer-title',
fixed:false,
end: function () {
var mid = materialId.value;
$.ajax({
url: "/material/findMatrialById?mid=" + mid,
type: "get",
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (d) {
var material = d.data.materialById;
var placeList = d.data.placeList;
var code = material.code;
if(code === undefined){
code = "";
}
codeValue.value = code;
$('#place').empty();
$.each(placeList, function (index, item) {
$('#place').append(new Option(item.depositoryName+"-"+item.code, item.id));//往下拉菜单里添加元素
});
form.render();
}
});
}
});
};
//用于实现物料名称搜索
selectMaterialByName = function (obj) {
// 输入code
var data = obj.value;
// 获取对应元素
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var materialChildren = parent.childNodes[5];
var codeChildren = parent.childNodes[7];
var codeItem = codeChildren.childNodes[3].childNodes;
var codeValue = codeItem[1];
var materialItem = materialChildren.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1];
var materialId = materialName.parentNode.parentNode.childNodes[3];
var req = {};
req.mname = data;
$.ajax({
url: "/material/findInventoryByCondition",
type: "post",
dataType: 'json',
data:JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
if(d.count > 1){
layer.msg("请点击右侧搜索确定物品");
materialId.value = "";
codeValue.value = "";
return false;
}else if(d.count === 0){
layer.msg("没有该物品,请确认输入是否正确");
materialId.value = "";
codeValue.value = "";
materialName.value = "";
return false;
}
else{
var material = d.data[0];
materialName.value = material.mname;
materialId.value = material.id;
codeValue.value = material.code;
}
}
});
};
})
</script>
</body>
</html>
Loading…
Cancel
Save