14 changed files with 509 additions and 945 deletions
@ -1,831 +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; |
|||
} |
|||
|
|||
.layui-form-select { |
|||
width: 100%; |
|||
border-style: none; |
|||
} |
|||
|
|||
.layui-card-body { |
|||
padding: 10px 5px; |
|||
} |
|||
|
|||
.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;"> |
|||
<div carousel-item style="overflow: inherit"> |
|||
<div> |
|||
<form class="layui-form layui-form-pane" style="margin: 0 auto;max-width: 460px;"> |
|||
<div class="layui-card" id="cardParent"> |
|||
<div class="layui-card-body" id="cardItem"> |
|||
<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" onblur="selectMaterialByName(this)" |
|||
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" |
|||
style="display: none" lay-verify="required"/> |
|||
</div> |
|||
</div> |
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label">物料编码:</label> |
|||
<div class="layui-input-block"> |
|||
<div class="inputdiv"> |
|||
<input id="code" name="code" type="text" placeholder="请填写入物料编码" value="" |
|||
onblur="selectCode(this)" |
|||
class="layui-input" lay-verify="required" |
|||
style="border-style: none"> |
|||
<img src="/static/images/search.ico" height="16" width="16" |
|||
style="margin-top: 10px" onclick="scanCodeByOut(this)"> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label">条形编码:</label> |
|||
<div class="layui-input-block" style="margin: 0px;"> |
|||
<div class="inputdiv"> |
|||
<input id="barCode" name="barCode" type="text" placeholder="请填写入条形编码" |
|||
value="" |
|||
class="layui-input" |
|||
style="border-style: none"> |
|||
<img src="/static/images/search.ico" height="16" width="16" |
|||
id="barCodeImg" |
|||
style="margin-top: 10px" onclick="scanBarCode(this)"> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label">物料数量:</label> |
|||
<div class="layui-input-block"> |
|||
<input name="quantity" type="number" placeholder="请填写入物料数量" value="" |
|||
onblur="MaterialQuantityIsTrue(this)" id="quantity" |
|||
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"> |
|||
<input name="applyRemark" placeholder="请填写相关原因及申请原因" value="" |
|||
class="layui-input"/> |
|||
</div> |
|||
</div> |
|||
<i class="layui-icon layui-icon-addition" style="display: inline" |
|||
onclick="addItem(this)"></i> |
|||
</div> |
|||
|
|||
<!-- 提交按钮--> |
|||
<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> |
|||
<div style="text-align: center;margin-top: 50px;"> |
|||
<button class="layui-btn next">再申请一次</button> |
|||
</div> |
|||
</form> |
|||
</div> |
|||
</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 src="https://open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js"></script> |
|||
<script> |
|||
// 用于添加标签 |
|||
function addItem(obj) { |
|||
} |
|||
|
|||
// 用于删除标签 |
|||
function deleteItem(obj) { |
|||
} |
|||
|
|||
// 用于编码查询 |
|||
function selectCode(obj) { |
|||
} |
|||
|
|||
// 用于点击搜索按钮 |
|||
function selectMaterial(obj) { |
|||
} |
|||
|
|||
// 用于物料名称查询 |
|||
function selectMaterialByName(obj) { |
|||
} |
|||
|
|||
// 用于判断当前物料数量是否合适 |
|||
function MaterialQuantityIsTrue() { |
|||
} |
|||
|
|||
// 用于扫描条形码 |
|||
function scanBarCode() { |
|||
} |
|||
|
|||
// 用于重新渲染页面 |
|||
function Coverpage() { |
|||
} |
|||
|
|||
|
|||
// 用于扫码出库 |
|||
function scanCodeByOut(obj) { |
|||
} |
|||
|
|||
// 用于暂存卡片个数 |
|||
var params = []; |
|||
// 用于卡片编号 |
|||
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: '提交成功' |
|||
}] |
|||
}); |
|||
|
|||
// 提交 |
|||
form.on('submit(formStep)', function (data) { |
|||
data = data.field; |
|||
data.params = params; |
|||
if (data.mid === undefined) { |
|||
// 如果没有初始项 |
|||
var dataKeys = Object.keys(data); |
|||
var dataKey; |
|||
for (let i = 0; i < dataKeys.length; i++) { |
|||
dataKey = dataKeys[i]; |
|||
if (dataKey.includes("mid")) { |
|||
break; |
|||
} |
|||
} |
|||
// 获取当前数字 |
|||
var keyNumber = dataKey.split("mid")[1]; |
|||
for (let index = 0; index < dataKeys.length; index++) { |
|||
var tempKey = dataKeys[index]; |
|||
if (tempKey.includes(keyNumber)) { |
|||
var key = tempKey.replace(keyNumber, ""); |
|||
data[key] = data[tempKey]; |
|||
delete data[tempKey]; |
|||
} |
|||
} |
|||
data.params = remove(data.params, Number(keyNumber)); |
|||
} |
|||
$.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);//失败的表情 |
|||
|
|||
} 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"> |
|||
<div class="inputdiv"> |
|||
<input id=` + "code" + NewIdNumber + ` name=` + "code" + NewIdNumber + ` type="text" placeholder="请填写入物料编码" value="" |
|||
onblur="selectCode(this)" |
|||
class="layui-input" lay-verify="required" |
|||
style="border-style: none"> |
|||
<img src="/static/images/search.ico" height="16" width="16" |
|||
style="margin-top: 10px" onclick="scanCodeByOut(this)"> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label">条形编码:</label> |
|||
<div class="layui-input-block" style="margin: 0px;"> |
|||
<div class="inputdiv"> |
|||
<input id=` + "barCode" + NewIdNumber + ` name=` + "barCode" + NewIdNumber + ` type="text" placeholder="请填写入条形编码" |
|||
value="" |
|||
class="layui-input" |
|||
style="border-style: none"> |
|||
<img src="/static/images/search.ico" height="16" width="16" id=` + "barCodeImg" + NewIdNumber + ` |
|||
style="margin-top: 10px" onclick="scanBarCode(this)"> |
|||
</div> |
|||
</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="" onblur="MaterialQuantityIsTrue(this)" |
|||
id=` + "quantity" + NewIdNumber + ` 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 + 422 + 'px'); |
|||
$("#" + parentId).after(materialItem); |
|||
}; |
|||
|
|||
// 用于重新渲染页面 |
|||
Coverpage = function (num, obj) { |
|||
var parent = $("#cardParent"); |
|||
// 获取待添加父类 |
|||
NewIdNumber = num; |
|||
if (num === 0) { // 如果是第一个 |
|||
NewIdNumber = ""; |
|||
} |
|||
var firstItem = |
|||
// 前半部分 |
|||
` <div class="layui-card-body" style="padding-right: 0px" 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" value="${obj.mname}" 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" style="margin: 0px;"> |
|||
<div class="inputdiv"> |
|||
<input id="code" name=` + "code" + NewIdNumber + ` type="text" placeholder="请填写入物料编码" onblur="selectCode(this)" |
|||
class="layui-input" lay-verify="required" value="${obj.code}" style="border-style: none"> |
|||
<img src="/static/images/search.ico" height="16" width="16" style="margin-top: 10px" onclick="scanCodeByOut(this)" > |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label">条形编码:</label> |
|||
<div class="layui-input-block" style="margin: 0px;"> |
|||
<div class="inputdiv"> |
|||
|
|||
<select id=` + "barCode" + NewIdNumber + ` name=` + "barCode" + NewIdNumber + `></select> |
|||
<img src="/static/images/search.ico" height="16" width="16" style="margin-top: 10px" onclick="scanBarCode(this)" > |
|||
</div> |
|||
</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>`; |
|||
|
|||
|
|||
var lastItem = `<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]); |
|||
if (NewIdNumber !== "") { |
|||
params.push(NewIdNumber) |
|||
} |
|||
$("#stepForm").css("height", height + 532 + 'px'); |
|||
var materialItem = firstItem + lastItem; // 最终 |
|||
$("#btn_sub").before(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 - 422 + '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.parentNode; |
|||
var objId = parent.id.split("cardItem")[1]; |
|||
var children = parent.childNodes[5]; |
|||
var materialItem = children.childNodes[3].childNodes[1].childNodes; |
|||
var barCodeChildren = parent.childNodes[9]; |
|||
|
|||
var materialName = materialItem[1]; |
|||
var materialId = materialName.parentNode.parentNode.childNodes[3]; |
|||
// 条形码条码 |
|||
var barCodeItem = barCodeChildren.childNodes[3]; |
|||
var req = {}; |
|||
req.code = 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) { |
|||
layer.msg("仓库中暂无该物料"); |
|||
materialName.value = ""; |
|||
materialId.value = ""; |
|||
obj.value = ""; |
|||
$('#place' + objId).empty(); |
|||
|
|||
} |
|||
else { |
|||
materialName.value = d.mname; |
|||
materialId.value = d.id; |
|||
var idNumber = materialId.name.split("mid")[1]; |
|||
// 获取物料与条形码的对应关系 |
|||
var materialAndBarCodeList = d["materialAndBarCodeList"]; |
|||
if (materialAndBarCodeList.length > 0) { |
|||
// 如果有对应的条形码 |
|||
var barCodeInput = barCodeItem.childNodes[1].childNodes[1]; |
|||
var barCodeImg = barCodeItem.childNodes[1].childNodes[3]; |
|||
var id = barCodeInput.id; |
|||
$("#" + id).remove(); |
|||
$("#barCode" + idNumber).empty(); |
|||
var barCode = $("#barCode" + idNumber); |
|||
if (barCode.length > 0) { |
|||
barCode.empty(); |
|||
} else { |
|||
var barCodeSelect = ` |
|||
<select id=` + "barCode" + idNumber + ` name=` + "barCode" + idNumber + `> |
|||
</select>`; |
|||
$("#" + barCodeImg.id).before(barCodeSelect); |
|||
} |
|||
form.render(); |
|||
$.each(materialAndBarCodeList, function (index, item) { |
|||
$("#barCode" + idNumber).append(new Option(item.bmcode, item.id));//往下拉菜单里添加元素 |
|||
}); |
|||
form.render(); |
|||
} else { |
|||
var barCode = $("#barCode" + idNumber); |
|||
if (barCode.length > 0) { |
|||
barCode.empty(); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
}); |
|||
}; |
|||
|
|||
// 用于实现点击搜索按钮 |
|||
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[1].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; |
|||
var barCodeChildren = parent.childNodes[9]; |
|||
// 条形码条码 |
|||
var barCodeItem = barCodeChildren.childNodes[3]; |
|||
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, |
|||
move: '.layui-layer-title', |
|||
fixed: false, |
|||
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 = 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 code = material.code; |
|||
if (code === undefined) { |
|||
code = ""; |
|||
} |
|||
codeValue.value = code; |
|||
var materialAndBarCodeList = material["materialAndBarCodeList"]; |
|||
var idNumber = materialId.name.split("mid")[1]; |
|||
if (materialAndBarCodeList.length > 0) { |
|||
// 如果有对应的条形码 |
|||
var barCodeInput = barCodeItem.childNodes[1].childNodes[1]; |
|||
var barCodeImg = barCodeItem.childNodes[1].childNodes[3]; |
|||
var id = barCodeInput.id; |
|||
$("#" + id).remove(); |
|||
$("#barCode" + idNumber).empty(); |
|||
var barCode = $("#barCode" + idNumber); |
|||
if (barCode.length > 0) { |
|||
barCode.empty(); |
|||
} else { |
|||
var barCodeSelect = ` |
|||
<select id=` + "barCode" + idNumber + ` name=` + "barCode" + idNumber + `> |
|||
</select>`; |
|||
$("#" + barCodeImg.id).before(barCodeSelect); |
|||
} |
|||
form.render(); |
|||
$.each(materialAndBarCodeList, function (index, item) { |
|||
$("#barCode" + idNumber).append(new Option(item.bmcode, item.id));//往下拉菜单里添加元素 |
|||
}); |
|||
form.render(); |
|||
} else { |
|||
var barCode = $("#barCode" + idNumber); |
|||
if (barCode.length > 0) { |
|||
barCode.empty(); |
|||
} |
|||
} |
|||
form.render(); |
|||
} |
|||
}); |
|||
|
|||
} |
|||
}); |
|||
}; |
|||
|
|||
//用于实现物料名称搜索 |
|||
selectMaterialByName = function (obj) { |
|||
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[1].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; |
|||
} |
|||
} |
|||
}); |
|||
}; |
|||
|
|||
scanBarCode = function (obj) { |
|||
parent.wx.scanQRCode({ |
|||
desc: 'scanQRCode desc', |
|||
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果, |
|||
scanType: ["barCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有 |
|||
success: function (res) { |
|||
// 回调 |
|||
var result = res.resultStr;//当needResult为1时返回处理结果 |
|||
var req = {}; |
|||
req.qrCode = result; |
|||
$.ajax({ |
|||
url: "/material/qywxApplicationOutScanBarCode", |
|||
type: "post", |
|||
dataType: 'json', |
|||
data: JSON.stringify(req), |
|||
contentType: "application/json;charset=utf-8", |
|||
success: function (d) { |
|||
// 获取对应元素 |
|||
var parent = obj.parentNode.parentNode.parentNode.parentNode; |
|||
|
|||
var MaterialChildren = parent.childNodes[5]; |
|||
var materialItem = MaterialChildren.childNodes[3].childNodes[1].childNodes; |
|||
|
|||
var barCodeChildren = parent.childNodes[9]; |
|||
|
|||
var materialName = materialItem[1]; |
|||
var materialId = materialName.parentNode.parentNode.childNodes[3]; |
|||
// 条形码条码 |
|||
var barCodeItem = barCodeChildren.childNodes[3]; |
|||
// 物料编码 |
|||
var materialCodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes; |
|||
|
|||
|
|||
var materialCode = materialCodeItem[1]; |
|||
|
|||
var data = d.data; |
|||
if (data !== null) { |
|||
materialName.value = data.mname; |
|||
materialId.value = data.id; |
|||
materialCode.value = data.mcode; |
|||
var barCodeInput = barCodeItem.childNodes[1].childNodes[1]; |
|||
barCodeInput.value = result; |
|||
}else{ |
|||
// 如果没有对应关系 |
|||
layer.msg("对于编码:" + result + ",并未发现对应的物料", { |
|||
icon: 0, |
|||
time: 1000 //0.5秒关闭(如果不配置,默认是3秒) |
|||
}, function () { |
|||
}) |
|||
} |
|||
|
|||
} |
|||
}) |
|||
} |
|||
}) |
|||
}; |
|||
|
|||
|
|||
// 用于扫码功能 |
|||
scanCodeByOut = function (obj) { |
|||
parent.wx.scanQRCode({ |
|||
desc: 'scanQRCode desc', |
|||
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果, |
|||
scanType: ["qrCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有 |
|||
success: function (res) { |
|||
// 回调 |
|||
var result = res.resultStr;//当needResult为1时返回处理结果 |
|||
var req = {}; |
|||
req.qrCode = result; |
|||
$.ajax({ |
|||
url: "/material/qywxApplicationOutScanQrCode", |
|||
type: "post", |
|||
dataType: 'json', |
|||
data: JSON.stringify(req), |
|||
contentType: "application/json;charset=utf-8", |
|||
success: function (d) { |
|||
var data = d.data; |
|||
// 获取对应元素 |
|||
var parent = obj.parentNode.parentNode.parentNode.parentNode; |
|||
var MaterialChildren = parent.childNodes[5]; |
|||
var materialItem = MaterialChildren.childNodes[3].childNodes[1].childNodes; |
|||
|
|||
var barCodeChildren = parent.childNodes[9]; |
|||
|
|||
var materialName = materialItem[1]; |
|||
var materialId = materialName.parentNode.parentNode.childNodes[3]; |
|||
// 条形码条码 |
|||
var barCodeItem = barCodeChildren.childNodes[3]; |
|||
// 物料编码 |
|||
var materialCodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes; |
|||
|
|||
var materialCode = materialCodeItem[1]; |
|||
|
|||
var idNumber = materialId.name.split("mid")[1]; |
|||
// 获取物料与条形码的对应关系 |
|||
var materialAndBarCodeList = data["materialAndBarCodeList"]; |
|||
var barCode = $("#barCode" + idNumber); |
|||
if (barCode.length > 0) { |
|||
barCode.empty(); |
|||
} |
|||
if (materialAndBarCodeList.length > 0) { |
|||
// 如果有对应的条形码 |
|||
var barCodeInput = barCodeItem.childNodes[1].childNodes[1]; |
|||
var barCodeImg = barCodeItem.childNodes[1].childNodes[3]; |
|||
var id = barCodeInput.id; |
|||
$("#" + id).remove(); |
|||
$("#barCode" + idNumber).empty(); |
|||
var barCode = $("#barCode" + idNumber); |
|||
if (barCode.length > 0) { |
|||
barCode.empty(); |
|||
} else { |
|||
var barCodeSelect = ` |
|||
<select id=` + "barCode" + idNumber + ` name=` + "barCode" + idNumber + `> |
|||
</select>`; |
|||
$("#" + barCodeImg.id).before(barCodeSelect); |
|||
} |
|||
form.render(); |
|||
|
|||
$.each(materialAndBarCodeList, function (index, item) { |
|||
$("#barCode" + idNumber).append(new Option(item.bmcode, item.id));//往下拉菜单里添加元素 |
|||
}); |
|||
form.render(); |
|||
} |
|||
$('#place' + idNumber).empty(); |
|||
$.each(data.placePList, function (index, item) { |
|||
$('#place' + idNumber).append(new Option(item.depositoryName + "-" + item.code, item.id));//往下拉菜单里添加元素 |
|||
}); |
|||
form.render(); |
|||
materialName.value = data.mname; |
|||
materialId.value = data.id; |
|||
materialCode.value = data.code; |
|||
} |
|||
}) |
|||
} |
|||
}) |
|||
}; |
|||
//用于判断当前物料数量是否合适 |
|||
MaterialQuantityIsTrue = function (obj) { |
|||
var id = obj.id.split("quantity")[1]; |
|||
var mcode = $("#code" + id).val(); // 获取到当前输入的物料编码 |
|||
if (mcode === "" || mcode === undefined || mcode === null) { |
|||
layer.msg("请输入物料的正确编码!", {icon: 0, time: 500}, function () { |
|||
$("#quantity" + id).val("") |
|||
}); |
|||
} else { |
|||
let val = $("#quantity" + id).val(); |
|||
if (val !== null && val !== undefined && val !== '') { |
|||
var req = {}; |
|||
req.mcode = mcode; |
|||
req.quantity = val; |
|||
$.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" + id).val(""); |
|||
}); |
|||
|
|||
} |
|||
} |
|||
}); |
|||
} |
|||
} |
|||
} |
|||
|
|||
|
|||
}) |
|||
</script> |
|||
</body> |
|||
</html> |
|||
@ -0,0 +1,285 @@ |
|||
<!DOCTYPE html> |
|||
<html lang="en"> |
|||
<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; |
|||
} |
|||
|
|||
.layui-form-select { |
|||
width: 100%; |
|||
border-style: none; |
|||
} |
|||
|
|||
.layui-card-body { |
|||
padding: 10px 5px; |
|||
} |
|||
|
|||
.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="stepForm2" lay-filter="stepForm2" style="margin: 0 auto;"> |
|||
<div carousel-item style="overflow: inherit"> |
|||
<div> |
|||
<form class="layui-form layui-form-pane" style="margin: 0 auto;max-width: 460px;"> |
|||
</form> |
|||
</div> |
|||
</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 CoverpageForGroupInfo(){} |
|||
|
|||
// 用于重新构造页面 |
|||
function CoverPageForGroup(){} |
|||
|
|||
// 用于实现卡片添加 |
|||
function addItemForGroup(){} |
|||
layui.use(['form', 'step', 'layer', 'jquery', 'element'], function () { |
|||
var $ = layui.$, |
|||
form = layui.form, |
|||
element = layui.element, |
|||
step = layui.step; |
|||
|
|||
// 页面初始化 |
|||
$(function () { |
|||
|
|||
}) |
|||
|
|||
// 用于重新渲染页面的套餐明细 |
|||
CoverpageForGroupInfo = function (num, obj) { |
|||
// 获取待添加父类 |
|||
NewIdNumber = num; |
|||
if (num === 0) { // 如果是第一个 |
|||
NewIdNumber = ""; |
|||
} |
|||
var materialItem = ` |
|||
|
|||
<div class="layui-collapse"> |
|||
<div class="layui-colla-item"> |
|||
<h2 class="layui-colla-title"">${obj.mname}</h2> |
|||
<div class="layui-colla-content"> |
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label">物料编码:</label> |
|||
<div class="layui-input-block"> |
|||
<input type="text" placeholder="请填写入物料编码" value="${obj.mcode}" |
|||
readonly |
|||
class="layui-input" required> |
|||
</div> |
|||
</div> |
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label">物料数量:</label> |
|||
<div class="layui-input-block"> |
|||
<input type="number" placeholder="请填写入物料数量" value="${obj.quantity}" |
|||
readonly |
|||
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"> |
|||
<input type="text" placeholder="请填写入物料型号" value="${obj.version === null ? '' : obj.version}" |
|||
readonly |
|||
class="layui-input" required> |
|||
</div> |
|||
</div> |
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label">物料类型:</label> |
|||
<div class="layui-input-block"> |
|||
<input type="text" placeholder="请填写入物料类型" value="${obj.tname}" |
|||
readonly |
|||
class="layui-input" lay-verify="text" required> |
|||
</div> |
|||
</div> |
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label">计量单位:</label> |
|||
<div class="layui-input-block"> |
|||
<input type="text" placeholder="请填写入物料计量单位" value="${obj.unit === null ? '' : obj.unit}" |
|||
readonly |
|||
class="layui-input" lay-verify="text" required> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
`; // 最终 |
|||
// 获取当前高度 |
|||
var height = parseInt(($("#stepForm2").css('height')).split("px")[0]); |
|||
if (NewIdNumber !== "") { |
|||
params.push(NewIdNumber) |
|||
} |
|||
$("#stepForm2").css("height", height + 183 + 'px'); |
|||
$("#" + "addItemForGroup" + NewIdNumber).before(materialItem); |
|||
|
|||
}; |
|||
|
|||
// 用于重新构造页面 |
|||
CoverPageForGroup =function (num,obj) { |
|||
var materialItem = ` |
|||
<div class="layui-card-body" id=` + "cardItemForGroup" + NewIdNumber + `> |
|||
<hr> |
|||
<i class="layui-icon layui-icon-subtraction" style="display: inline" |
|||
onclick="deleteItemForGroup(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=`+"openGroupList"+NewIdNumber+` onblur="selectGroupByName(this)" |
|||
lay-verify="required"/> |
|||
<i class="layui-icon layui-icon-search" |
|||
style="display: inline" |
|||
id=`+"selectGroup"+NewIdNumber+` onclick="selectGroup(this)"></i> |
|||
</div> |
|||
<input type="text" name=`+"gid"+NewIdNumber+` class="layui-input" id=`+"gid"+NewIdNumber+` |
|||
style="display: none" lay-verify="required"/> |
|||
</div> |
|||
</div> |
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label">套餐编码:</label> |
|||
<div class="layui-input-block"> |
|||
<div class="inputdiv"> |
|||
<input id=` + "gcode" + ` name=` + "code" + NewIdNumber + ` type="text" placeholder="请填写入套餐编码" value="" |
|||
onblur="selectCodeForGroup(this)" |
|||
class="layui-input" lay-verify="required" |
|||
style="border-style: none"> |
|||
<img src="/static/images/search.ico" height="16" width="16" |
|||
style="margin-top: 10px;display: none" onclick="scanCodeByOut(this)"> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label">套餐数量:</label> |
|||
<div class="layui-input-block"> |
|||
<input type="number" name=`+"quantity"+NewIdNumber+` class="layui-input" id=`+"quantityForGroup"+NewIdNumber+` |
|||
required lay-verify="number" onblur="groupQuantityIsTrue(this)" placeholder="请填写套餐数量"/> |
|||
</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" id=` + "addItemForGroup" + NewIdNumber + ` |
|||
onclick="addItemForGroup(this)"></i> |
|||
|
|||
</div> |
|||
`; |
|||
// 获取当前高度 |
|||
var height = parseInt(($("#stepForm2").css('height')).split("px")[0]); |
|||
params2.push(NewIdNumber); |
|||
$("#stepForm2").css("height", height + 289 + 'px'); |
|||
$("#" + parentId).after(materialItem); |
|||
}; |
|||
|
|||
// 实现卡片添加(套餐) |
|||
addItemForGroup = function (obj) { |
|||
var parentId = obj.parentNode.id; |
|||
NewIdNumber = NewIdNumber + 1; |
|||
var materialItem = ` |
|||
<div class="layui-card-body" id=` + "cardItemForGroup" + NewIdNumber + `> |
|||
<hr> |
|||
<i class="layui-icon layui-icon-subtraction" style="display: inline" |
|||
onclick="deleteItemForGroup(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=`+"openGroupList"+NewIdNumber+` onblur="selectGroupByName(this)" |
|||
lay-verify="required"/> |
|||
<i class="layui-icon layui-icon-search" |
|||
style="display: inline" |
|||
id=`+"selectGroup"+NewIdNumber+` onclick="selectGroup(this)"></i> |
|||
</div> |
|||
<input type="text" name=`+"gid"+NewIdNumber+` class="layui-input" id=`+"gid"+NewIdNumber+` |
|||
style="display: none" lay-verify="required"/> |
|||
</div> |
|||
</div> |
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label">套餐编码:</label> |
|||
<div class="layui-input-block"> |
|||
<div class="inputdiv"> |
|||
<input id=` + "gcode" + ` name=` + "code" + NewIdNumber + ` type="text" placeholder="请填写入套餐编码" value="" |
|||
onblur="selectCodeForGroup(this)" |
|||
class="layui-input" lay-verify="required" |
|||
style="border-style: none"> |
|||
<img src="/static/images/search.ico" height="16" width="16" |
|||
style="margin-top: 10px;display: none" onclick="scanCodeByOut(this)"> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label">套餐数量:</label> |
|||
<div class="layui-input-block"> |
|||
<input type="number" name=`+"quantity"+NewIdNumber+` class="layui-input" id=`+"quantityForGroup"+NewIdNumber+` |
|||
required lay-verify="number" onblur="groupQuantityIsTrue(this)" placeholder="请填写套餐数量"/> |
|||
</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" id=` + "addItemForGroup" + NewIdNumber + ` |
|||
onclick="addItemForGroup(this)"></i> |
|||
|
|||
</div> |
|||
`; |
|||
// 获取当前高度 |
|||
var height = parseInt(($("#stepForm2").css('height')).split("px")[0]); |
|||
params2.push(NewIdNumber); |
|||
$("#stepForm2").css("height", height + 289 + 'px'); |
|||
$("#" + parentId).after(materialItem); |
|||
}; |
|||
}) |
|||
|
|||
</script> |
|||
</body> |
|||
</html> |
|||
Loading…
Reference in new issue