4 changed files with 2542 additions and 7 deletions
File diff suppressed because it is too large
@ -0,0 +1,395 @@ |
|||||
|
<!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; |
||||
|
} |
||||
|
|
||||
|
</style> |
||||
|
<div class="layuimini-container"> |
||||
|
<div class="layuimini-main"> |
||||
|
<div class="layui-fluid"> |
||||
|
<div class="layui-card"> |
||||
|
<div class="layui-card-body" style="padding-top: 40px;"> |
||||
|
<div class="layui-carousel" id="stepForm" lay-filter="stepForm" style="margin: 0 auto;"> |
||||
|
<div carousel-item> |
||||
|
<div> |
||||
|
<form class="layui-form layui-form-pane" |
||||
|
style="margin: 0 auto;max-width: 460px;padding-top: 40px;"> |
||||
|
<div class="layui-card-body" id="cardItem"> |
||||
|
<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" |
||||
|
th:value="${materialById.getMname()}" |
||||
|
id="mname" style="border-style: none" |
||||
|
lay-verify="required"/> |
||||
|
<i class="layui-icon layui-icon-search" style="display: inline" |
||||
|
id="selectMaterial" onclick="selectMaterial(this)"></i> |
||||
|
</div> |
||||
|
<input type="text" name="mid" class="layui-input" id="mid" |
||||
|
th:value="${materialById.getId()}" |
||||
|
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" type="text" placeholder="请填写入物料编码" value="" |
||||
|
th:value="${materialById.getCode()}" |
||||
|
class="layui-input" lay-verify="required"> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="layui-form-item"> |
||||
|
<label class="layui-form-label">物料数量:</label> |
||||
|
<div class="layui-input-block"> |
||||
|
<input name="quantity" id="quantity" |
||||
|
onblur="MaterialQuantityIsTrue(this)" type="number" |
||||
|
placeholder="请填写入物料数量" value="" class="layui-input" |
||||
|
lay-verify="number" required> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="layui-form-item"> |
||||
|
<label class="layui-form-label">计量单位:</label> |
||||
|
<div class="layui-input-block"> |
||||
|
<select id="unit" name="unit"> |
||||
|
<option value="-1" th:text="${materialById.getUnit()}"></option> |
||||
|
<option th:each="splitInfo,iterStar:${materialById.getSplitInfoList()}" |
||||
|
th:value="${splitInfo?.getNewUnit()}" |
||||
|
th:text="${splitInfo?.getNewUnit()}"></option> |
||||
|
</select> |
||||
|
</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"> |
||||
|
<div class="layui-input-block"> |
||||
|
<button class="layui-btn" lay-submit lay-filter="formStep"> |
||||
|
 提交  |
||||
|
</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;"></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> |
||||
|
</div> |
||||
|
<hr> |
||||
|
<div style="color: #666;margin-top: 30px;margin-bottom: 40px;padding-left: 30px;"> |
||||
|
<h3>说明</h3><br> |
||||
|
申请提交后,24小时内审核完毕 |
||||
|
</div> |
||||
|
</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 MaterialQuantityIsTrue() { |
||||
|
} |
||||
|
|
||||
|
function selectMaterial() { |
||||
|
} |
||||
|
|
||||
|
layui.use(['form', 'step', 'layer', 'jquery'], function () { |
||||
|
var $ = layui.$, |
||||
|
form = layui.form, |
||||
|
step = layui.step; |
||||
|
var temp = {}; |
||||
|
temp.mid = $("#mid").val(); |
||||
|
|
||||
|
|
||||
|
$("#code").blur(function () { |
||||
|
var code = $(this).val(); |
||||
|
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("没有该编码,请确认是否输入正确"); |
||||
|
$("#mname").val(""); |
||||
|
$("#mid").val(""); |
||||
|
} else { |
||||
|
req.mid = d.id; |
||||
|
let unitItem = $("#unit"); |
||||
|
unitItem.empty(); |
||||
|
unitItem.append(new Option(d.baseUnit, "-1")); |
||||
|
$.each(d.splitInfoList, function (index, item) { |
||||
|
$("#unit").append(new Option(item.newUnit, item.newUnit)); |
||||
|
}); |
||||
|
$("#mname").val(d.mname); |
||||
|
$("#mid").val(d.id); |
||||
|
form.render(); |
||||
|
} |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
$("#mname").blur(function () { |
||||
|
var data = $(this).val(); |
||||
|
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("请点击右侧搜索确定物品"); |
||||
|
$("#mid").val(""); |
||||
|
$("#code").val(""); |
||||
|
return false; |
||||
|
} else if (d.count === 0) { |
||||
|
layer.msg("没有该物品,请确认输入是否正确"); |
||||
|
$("#mid").val(""); |
||||
|
$("#code").val(""); |
||||
|
return false; |
||||
|
} else { |
||||
|
var material = d.data[0]; |
||||
|
$("#mname").val(material.mname); |
||||
|
$("#mid").val(material.id); |
||||
|
$("#code").val(material.code); |
||||
|
$("#unit").empty(); |
||||
|
$("#unit").append(new Option(material.baseUnit, "-1")); |
||||
|
$.each(material.splitInfoList, function (index, item) { |
||||
|
$("#unit").append(new Option(item.newUnit, item.newUnit)); |
||||
|
}); |
||||
|
form.render(); |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
}); |
||||
|
|
||||
|
$('#openSonByDepository').on('click', function () { |
||||
|
layer.open({ |
||||
|
type: 2, |
||||
|
title: '弹窗内容', |
||||
|
skin: 'layui-layer-rim', |
||||
|
maxmin: true, |
||||
|
shadeClose: true, //点击遮罩关闭层 |
||||
|
area: ['70%', '70%'], |
||||
|
move: '.layui-layer-title', |
||||
|
fixed: false, |
||||
|
content: '/selectDepository?type=2', |
||||
|
success: function (layero, index) { |
||||
|
var children = layero.children(); |
||||
|
var content = $(children[1]); |
||||
|
var iframeChildren = $(content.children()); |
||||
|
content.css('height', '100%'); |
||||
|
iframeChildren.css('height', '100%'); |
||||
|
} |
||||
|
}); |
||||
|
}); |
||||
|
|
||||
|
|
||||
|
$('#selectMaterial').on('click', function () { |
||||
|
var mname = $("#mname").val(); |
||||
|
mname = mname.split(",")[0]; |
||||
|
layer.open({ |
||||
|
type: 2, |
||||
|
title: '弹窗内容', |
||||
|
skin: 'layui-layer-rim', |
||||
|
maxmin: true, |
||||
|
shadeClose: true, //点击遮罩关闭层 |
||||
|
area: ['70%', '70%'], |
||||
|
move: '.layui-layer-title', |
||||
|
fixed: false, |
||||
|
content: '/selectMaterial?mname=' + mname, |
||||
|
success: function (layero, index) { |
||||
|
var children = layero.children(); |
||||
|
var content = $(children[1]); |
||||
|
var iframeChildren = $(content.children()); |
||||
|
content.css('height', '100%'); |
||||
|
iframeChildren.css('height', '100%'); |
||||
|
}, |
||||
|
end: function () { |
||||
|
var mid = $("#mid").val(); |
||||
|
$.ajax({ |
||||
|
url: "/material/findMatrialById?mid=" + mid, |
||||
|
type: "get", |
||||
|
dataType: 'json', |
||||
|
contentType: "application/json;charset=utf-8", |
||||
|
success: function (d) { |
||||
|
var code = d.data.materialById.code; |
||||
|
if (code === undefined) { |
||||
|
code = ""; |
||||
|
} |
||||
|
$("#code").val(code); |
||||
|
$("#unit").empty(); |
||||
|
$("#unit").append(new Option(d.data.materialById.baseUnit, "-1")); |
||||
|
$.each(d.data.materialById.splitInfoList, function (index, item) { |
||||
|
$("#unit").append(new Option(item.newUnit, item.newUnit)); |
||||
|
}); |
||||
|
form.render(); |
||||
|
|
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
} |
||||
|
}); |
||||
|
}); |
||||
|
// 用于分步表单加载 |
||||
|
step.render({ |
||||
|
elem: '#stepForm', |
||||
|
filter: 'stepForm', |
||||
|
width: '100%', //设置容器宽度 |
||||
|
height: '600px', |
||||
|
stepItems: [{ |
||||
|
title: '填写信息' |
||||
|
}, { |
||||
|
title: '提交成功' |
||||
|
}] |
||||
|
}); |
||||
|
|
||||
|
|
||||
|
form.on('submit(formStep)', function (data) { |
||||
|
data = data.field; |
||||
|
var params = []; |
||||
|
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'); |
||||
|
}); |
||||
|
|
||||
|
//用于判断当前物料数量是否合适 |
||||
|
MaterialQuantityIsTrue = function (obj) { |
||||
|
var mcode = $("#code").val(); // 获取到当前输入的物料编码 |
||||
|
var unit = $("#unit").val(); |
||||
|
if (mcode === "" || mcode === undefined || mcode === null) { |
||||
|
layer.msg("请输入物料的正确编码!", {icon: 0, time: 500}, function () { |
||||
|
$("#quantity").val("") |
||||
|
}); |
||||
|
} else { |
||||
|
let val = $("#quantity").val(); |
||||
|
if (val !== null && val !== undefined && val !== '') { |
||||
|
var req = {}; |
||||
|
req.mcode = mcode; |
||||
|
req.quantity = val; |
||||
|
req.unit = unit; |
||||
|
req.placeId = -1; |
||||
|
$.ajax({ |
||||
|
url: "/material/MaterialQuantityIsTrue", |
||||
|
type: "post", |
||||
|
data: JSON.stringify(req), |
||||
|
dataType: 'json', |
||||
|
contentType: "application/json;charset=utf-8", |
||||
|
success: function (res) { |
||||
|
var flag = res.data; |
||||
|
if (!flag) { // 如果当前数目不合适 |
||||
|
layer.msg("当前单仓库中物料数量不足", {icon: 0, time: 500}, function () { |
||||
|
$("#quantity").val(""); |
||||
|
}); |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
}) |
||||
|
</script> |
||||
|
</body> |
||||
|
</html> |
||||
@ -0,0 +1,600 @@ |
|||||
|
<!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="${materialList}" style="display:none;" id="scanValue_materialList"> |
||||
|
<input th:value="${depository}" style="display: none" id="scanValue_depositoryId"> |
||||
|
<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%"> |
||||
|
 提交申请  |
||||
|
</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;"></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; |
||||
|
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 = {}; // 用于暂存扫描得到的结果 |
||||
|
let materialOnPlaceList = []; // 用于保存当前物料所处的库位 |
||||
|
let materialIsExist = ''; // 用于判断当前物料是否存在 |
||||
|
// 页面初始化 |
||||
|
$(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]); |
||||
|
} |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
// 用于获取当前物料所处的库位 |
||||
|
function getPlaceByMaterial(material){ |
||||
|
var req = {}; |
||||
|
req.code = material.code; |
||||
|
req.type = "out"; |
||||
|
$.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){ |
||||
|
materialIsExist = false; |
||||
|
}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) { |
||||
|
materialOnPlaceList = res.data; |
||||
|
materialIsExist = true; |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
}) |
||||
|
} |
||||
|
|
||||
|
|
||||
|
//用于页面初始化时的卡片构造 |
||||
|
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) { |
||||
|
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…
Reference in new issue