已废弃
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

839 lines
41 KiB

<!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">
<input id="gidList" type="text" style="display:none;" th:value="${gidList}" >
<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;">
<div class="layui-card" id="cardParentForGroup">
<!--提交按钮-->
<div class="layui-form-item" id="btn_sub2">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formStep2" type="button"
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>
</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(){}
// 用于判断当前组合数量是否合适
function groupQuantityIsTrue() {
}
// 用于组合名称查询
function selectGroupByName() {
}
// 用于点击搜索按钮(组合)
function selectGroup(obj) {
}
// 用于加载仓库菜单,用于组合
function selectDepositroy(object) {
}
// 用于删除标签(用于组合)
function deleteItemForGroup(obj) {
}
// 用于编码查询(用于组合)
function selectCodeForGroup(obj) {
}
// 用于标志是否为第一次提交
let flagForForm = false;
// 用于暂存卡片个数(组合)
var params2 = [];
// 用于卡片编号
var NewIdNumber = 1;
layui.use(['form', 'step', 'layer', 'jquery', 'element'], function () {
var $ = layui.$,
form = layui.form,
element = layui.element,
step = layui.step;
// 用于分步表单加载
step.render({
elem: '#stepForm2',
filter: 'stepForm2',
width: '100%', //设置容器宽度
height: '600px',
stepItems: [{
title: '填写信息'
}, {
title: '提交成功'
}]
});
// 用于提交操作(组合)
form.on('submit(formStep2)', function (data) {
if(!flagForForm){
flagForForm = true;
data = data.field;
data.type = 1;
data.params = params2;
$.ajax({
url: "/group/applicationInForGroup",
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 (d) {
layer.close(this.layerIndex);
if (d.status >= 300) {
layer.msg(d.statusInfo.detail);//失败的表情
} else {
layer.msg("申请提交成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
step.next('#stepForm2');
});
}
},
complete: function () {
layer.close(this.layerIndex);
}
});
}
});
$('.pre').click(function () {
step.pre('#stepForm2');
});
$('.next').click(function () {
step.next('#stepForm2');
});
// 获取当前gid列表
let gidList = JSON.parse($("#gidList").val());
// 页面初始化
$(function () {
let req = {};
req.type="in";
for (let i = 0; i < gidList.length; i++) {
req.gid = gidList[i];
$.ajax({
url: "/group/findGroupInfoByGid",
data: JSON.stringify(req),
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (d) {
if(d.status === 666){
layer.msg(d.statusInfo.detail,{
icon:0,
time:1000,
},function () {
// 关闭当前页
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
})
}else {
var data = d.data;
CoverPageForGroup(i, data[0]);
form.render();
for (let j = 0; j < data.length; j++) {
CoverpageForGroupInfo(i, data[j]);
}
element.init();
form.render();
}
}
})
}
});
// 用于重新渲染页面的组合明细
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.showUnit === null ? '' : obj.showUnit}"
readonly
class="layui-input" lay-verify="text" required>
</div>
</div>
</div>
</div>
</div>
`; // 最终
// 获取当前高度
var height = parseInt(($("#stepForm2").css('height')).split("px")[0]);
$("#stepForm2").css("height", height + 183 + 'px');
$("#" + "addItemForGroup" + NewIdNumber).before(materialItem);
};
// 用于重新构造页面
CoverPageForGroup =function (num,obj) {
if(num === 0){
num = '';
}else{
params2.push(num);
}
var materialItem = `<div class="layui-card-body" id=` + "cardItemForGroup" + num + `>
<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" style="height: 40px;">组合名称:</label>
<div class="layui-input-block">
<div class="inputdiv">
<input type="text" placeholder="请选择组合" class="layui-input" value="${obj.gname}"
style="border-style: none"
id=`+"openGroupList"+num+` onblur="selectGroupByName(this)"
lay-verify="required"/>
<i class="layui-icon layui-icon-search"
style="display: inline"
id=`+"selectGroup"+num+` onclick="selectGroup(this)"></i>
</div>
<input type="text" value="${obj.gid}" name=`+"gid"+num+` class="layui-input" id=`+"gid"+num+`
style="display: none" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">组合编码:</label>
<div class="layui-input-block">
<div class="inputdiv">
<input id=` + "gcode" + ` name=` + "code" + num + ` type="text" placeholder="请填写入组合编码"
onblur="selectCodeForGroup(this)" value="${obj.gcode}"
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"+num+` class="layui-input" id=`+"quantityForGroup"+num+`
required lay-verify="number" onblur="groupQuantityIsTrue(this)" placeholder="请填写组合数量"/>
</div>
</div>
<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"
id=` + "selectDepository" + num + ` readonly
onclick="selectDepositroy(this)"
lay-verify="required"/>
<input type="text" name=` + "depositoryId" + num + ` class="layui-input"
id=` + "did" + num + `
style="display: none" lay-verify="required"/>
<input type="text" name=` + "placeId" + num + ` class="layui-input"
id=` + "pid" + `
style="display: none" lay-verify="required"/>
<img src="/static/images/search.ico" height="16" width="16"
id=` + "scanQrCodeForLocation" + num + `
style="margin-top: 10px"
onclick="scanLocationByQrCode(this)">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注说明:</label>
<div class="layui-input-block">
<input name=`+"applyRemark"+num+` placeholder="请填写相关原因及申请原因" value=""
class="layui-input"/>
</div>
</div>
<i class="layui-icon layui-icon-addition" style="display: inline" id=` + "addItemForGroup" + num + `
onclick="addItemForGroup(this)"></i>
</div>
`;
// 获取当前高度
var height = parseInt(($("#stepForm2").css('height')).split("px")[0]);
$("#stepForm2").css("height", height + 289 + 'px');
if(num === ''){
$("#btn_sub2").before(materialItem);
}else{
num = num - 1;
if(num === 0){
num = '';
}
$("#"+"cardItemForGroup"+num).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" style="height: 40px;">组合名称:</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" style="height: 40px;">组合编码:</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" placeholder="请填写组合数量"/>
</div>
</div>
<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"
id=` + "selectDepository" + NewIdNumber + ` readonly
onclick="selectDepositroy(this)"
lay-verify="required"/>
<input type="text" name=` + "depositoryId" + NewIdNumber + ` class="layui-input"
id=` + "did" + NewIdNumber + `
style="display: none" lay-verify="required"/>
<input type="text" name=` + "placeId" + NewIdNumber + ` class="layui-input"
id=` + "pid" + `
style="display: none" lay-verify="required"/>
<img src="/static/images/search.ico" height="16" width="16"
id=` + "scanQrCodeForLocation" + NewIdNumber + `
style="margin-top: 10px"
onclick="scanLocationByQrCode(this)">
</div>
</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 + 344 + 'px');
$("#" + parentId).after(materialItem);
};
// 用于扫描入库位置
scanLocationByQrCode = function (obj) {
parent.parent.wx.scanQRCode({
desc: 'scanQRCode desc',
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
scanType: ["qrCode","barCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有
success: function (res) {
// 回调
var result = res.resultStr;//当needResult为1时返回处理结果
var req = {};
req.qrCode = result;
$.ajax({
url: "/place/qywxApplicationInScanQrCode",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var data = d.data;
var flag = data["flag"];
var parent = obj.parentNode;
var depositoryName = parent.childNodes[1];
var depositoryId = parent.childNodes[3];
var placeId = parent.childNodes[5];
if (flag === 0) {
// 如果没有获取到位置
layer.msg("当前二维码错误,请重新扫描");
} else if (flag === 1) {
// 如果获取到的是库位
var place = data["place"];
placeId.value = place.id;
depositoryId.value = place.did;
depositoryName.value = place.depositoryName;
} else if (flag === 2) {
// 如果获取到的是仓库
var depository = data["depository"];
placeId.value = "0";
depositoryId.value = depository.id;
depositoryName.value = depository.dname;
}
}
})
}
})
};
// 用于实现通过编码查询组合
selectCodeForGroup = function (obj) {
// 输入code
var code = obj.value;
// 获取搜索的对应卡片
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var pid = Number(parent.id.split("cardItemForGroup")[1]);
// 获取当前卡片中的组合名称等
let gnameParent = parent.childNodes[5].childNodes[3];
// gid
let gidItem = gnameParent.childNodes[3];
// gname
let gnameItem = gnameParent.childNodes[1].childNodes[1];
let req = {};
req.code = code;
$.ajax({
url: "/group/findGroupByCodeForIn",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var data = d.data;
if (data === null) {
layer.msg(d.statusInfo.detail, {
icon: 0,
time: 1500
}, function () {
obj.value = '';
gidItem.value = '';
gnameItem.value = '';
let childNodes = parent.childNodes;
for (let i = 0; i < childNodes.length; i++) {
if (childNodes[i].className === "layui-collapse") {
childNodes[i].remove()
}
}
})
} else {
let childNodes = parent.childNodes;
if (childNodes.length > 9) {
for (let i = 0; i < childNodes.length; i++) {
if (childNodes[i].className === "layui-collapse") {
childNodes[i].remove()
}
}
}
// 赋值给gname
gnameItem.value = data[0].gname;
gidItem.value = data[0].gid;
for (let i = 0; i < data.length; i++) {
CoverpageForGroupInfo(pid, data[i]);
}
element.init();
}
}
});
};
// 用于实现点击搜索按钮(组合)
selectGroup = function (obj) {
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var parentId = parent.id;
// 获取对应元素
var pid = Number(parent.id.split("cardItemForGroup")[1]);
// 获取当前卡片中的组合名称等
let gnameParent = parent.childNodes[5].childNodes[3];
// 组合编码
let gcodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes[1];
// gid
let gidItem = gnameParent.childNodes[3];
// gname
let gnameItem = gnameParent.childNodes[1].childNodes[1];
let gname = gnameItem.value;
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
content: '/selectGroup?gname=' + gname + '&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 () {
let gid = gidItem.value;
if (gid !== '') {
let req = {};
req.gid = gid;
req.type = "in";
$.ajax({
url: "/group/findGroupInfoByGid",
data: JSON.stringify(req),
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (d) {
var data = d.data;
if (data === null) {
layer.msg(d.statusInfo.detail, {
icon: 0,
time: 1500
}, function () {
obj.value = '';
gidItem.value = '';
gnameItem.value = '';
let childNodes = parent.childNodes;
for (let i = 0; i < childNodes.length; i++) {
if (childNodes[i].className === "layui-collapse") {
childNodes[i].remove()
}
}
})
} else {
let childNodes = parent.childNodes;
if (childNodes.length > 9) {
for (let i = 0; i < childNodes.length; i++) {
if (childNodes[i].className === "layui-collapse") {
childNodes[i].remove()
}
}
}
// 赋值给gname
gcodeItem.value = data[0].gcode;
for (let i = 0; i < data.length; i++) {
CoverpageForGroupInfo(pid, data[i]);
}
element.init();
}
}
})
}
}
})
};
// 用于实现组合名称搜索
selectGroupByName = function (obj) {
let gname = obj.value;
var parent = obj.parentNode.parentNode.parentNode.parentNode;
// 获取对应元素
var pid = Number(parent.id.split("cardItemForGroup")[1]);
// 获取当前卡片中的组合名称等
let gnameParent = parent.childNodes[5].childNodes[3];
// 组合编码
let gcodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes[1];
// gid
let gidItem = gnameParent.childNodes[3];
if (gname !== '') {
var req = {};
req.gname = gname;
$.ajax({
url: "/group/findGroupByGname",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
if (d.count === -1) {
// 如果当前组合名称的数量不止一个
layer.msg("请点击右侧搜索确定物品", {
icon: 0,
time: 1500
}, function () {
obj.value = '';
gidItem.value = '';
gcodeItem.value = '';
let childNodes = parent.childNodes;
for (let i = 0; i < childNodes.length; i++) {
if (childNodes[i].className === "layui-collapse") {
childNodes[i].remove()
}
}
});
} else if (d.count === 0) {
// 如果当前组合名称不存在
layer.msg("没有该组合,请确认输入是否正确", {
icon: 0,
time: 1500
}, function () {
obj.value = '';
gidItem.value = '';
gcodeItem.value = '';
let childNodes = parent.childNodes;
for (let i = 0; i < childNodes.length; i++) {
if (childNodes[i].className === "layui-collapse") {
childNodes[i].remove()
}
}
});
} else {
// 正常
let data = d.data;
let childNodes = parent.childNodes;
if (childNodes.length > 9) {
for (let i = 0; i < childNodes.length; i++) {
if (childNodes[i].className === "layui-collapse") {
childNodes[i].remove()
}
}
}
// 赋值给gname
gidItem.value = data[0].gid;
gcodeItem.value = data[0].gcode;
for (let i = 0; i < data.length; i++) {
CoverpageForGroupInfo(pid, data[i]);
}
element.init();
}
}
})
} else {
gcodeItem.value = '';
gidItem.value = '';
let childNodes = parent.childNodes;
for (let i = 0; i < childNodes.length; i++) {
if (childNodes[i].className === "layui-collapse") {
childNodes[i].remove()
}
}
}
};
// 实现卡片删除(组合)
deleteItemForGroup = function (obj) {
// 获取父节点
var parent = obj.parentNode;
var parentId = parent.id;
parentId = parseInt(parentId.split("cardItemForGroup")[1]);
// 获取祖父节点
var reparent = parent.parentNode;
var height = parseInt(($("#stepForm2").css('height')).split("px")[0]);
$("#stepForm2").css("height", height - 344 + 'px');
params2 = remove(params2, 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;
}
// 用于打开仓库树形菜单
selectDepositroy = function (obj) {
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var parentId = parent.id;
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
move: '.layui-layer-title',
fixed: false,
content: '/selectDepositoryByCard?type=1&flagForGroup=true&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%');
}
});
};
})
</script>
</body>
</html>