已废弃
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.
 
 
 
 
 
 

630 lines
29 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">
<link rel="stylesheet" href="/static/lib/font-awesome-4.7.0/css/font-awesome.min.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-fluid {
padding-left: 0px;
padding-right: 0px;
}
.layui-form-select {
width: 100%;
}
.layui-unselect {
border-right: none
}
</style>
<div class="layuimini-container">
<div class="layuimini-main">
<fieldset class="table-search-fieldset" style="padding: 10px 2px 5px;">
<legend>物料拆单</legend>
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-body" style="padding-left:0px;padding-right:0px">
<div>
<form class="layui-form layui-form-pane"
style="margin: 0 auto;max-width: 700px;padding-top: 5px; padding-bottom: 50px"
lay-filter="formStep">
<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="mname" 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" style="height: 40px;">物料编码:</label>
<div class="layui-input-block" style="margin: 0px;">
<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"
id="qrCodeImg"
style="margin-top: 10px" onclick="scanCode(this)">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="height: 40px;">条形编码:</label>
<div class="layui-input-block" style="margin: 0px;">
<div class="inputdiv">
<select id="barCode" name="barCode" type="text" readonly
class="layui-input"
style="border-style: none;">
</select>
<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 type="text" name="version" class="layui-input" id="version" readonly/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料类型:</label>
<div class="layui-input-block">
<input type="text" name="typeName" class="layui-input" id="typeName" readonly
lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">计量单位:</label>
<div class="layui-input-block">
<select id="unit" name="oldUnit">
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">拆单单位:</label>
<div class="layui-input-block">
<input type="text" name="newUnit" class="layui-input" id="newUnit"
lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">对应数目:</label>
<div class="layui-input-block">
<input type="text" name="quantity" class="layui-input" id="quantity"
lay-verify="number"/>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn" type="button" lay-submit lay-filter="formStep">
&emsp;提交&emsp;
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</fieldset>
</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 selectMaterialByName() {
}
// 打开物料选择树
function selectMaterial() {
}
// 用于编码查询
function selectCode(obj) {
}
// 用于扫描条形码
function scanBarCode(obj) {
}
// 用于扫码入库
function scanCode(obj) {
}
// 用于标志是否为第一次提交
let flagForForm = false;
layui.use(['form', 'layer'], function () {
var $ = layui.jquery,
form = layui.form,
layer = layui.layer;
form.on('submit(formStep)', function (data) {
if(!flagForForm){
flagForForm = true;
data = data.field;
$.ajax({
url: "/split/splitAdd",
data: JSON.stringify(data),
dataType: "json",
type: "post",
contentType: "application/json;charset=utf-8",
success: function (res) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.detail, {
icon: 6,
time: 1000
}, function () {
window.location = "/split_add"
});//失败的表情
} else {
layer.msg("添加成功!", {
icon: 6,//成功的表情
time: 1000
}, //1秒关闭(如果不配置,默认是3秒)
function () {
//do something
window.location = "/split_add"
});
}
}
})
}
});
// 通过名称查询物料
selectMaterialByName = function (obj) {
let materialName = $("#mname");
var data = materialName.val().split(",")[0];
var req = {};
data = data.split(",")[0];
if(data !== ""){
req.mname = data;
let loading2 = layer.open({ type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
let materialId = $("#mid");
let codeValue = $("#code");
let version = $("#version");
let typeName = $("#typeName");
let unit = $("#unit");
$.ajax({
url: "/material/findMaterialByCondition",
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:500},function () {
materialId.val("");
codeValue.val("");
version.val("");
typeName.val("");
unit.empty();
layer.close(loading2);
});
return false;
} else if (d.count === 0) {
layer.msg("没有该物品,请确认输入是否正确",{icon:0,time:500},function () {
materialId.val("");
codeValue.val("");
materialName.val("");
version.val("");
typeName.val("");
unit.empty();
layer.close(loading2);
});
return false;
} else {
var material = d.data[0];
materialName.val(material.mname);
materialId.val(material.mid);
codeValue.val(material.code);
version.val(material.version);
typeName.val(material.typeName);
unit.empty();
unit.append(new Option(material.unit, material.unit));
var splitInfoList = material["splitInfoList"];
$.each(splitInfoList, function (index, item) {
$("#unit").append(new Option(item.newUnit, item.newUnit));//往下拉菜单里添加元素
});
form.render();
var materialAndBarCodeList = material["materialAndBarCodeList"];
if (materialAndBarCodeList !== null && materialAndBarCodeList.length > 0) {
// 如果有对应的条形码
$("#barCode").empty();
$.each(materialAndBarCodeList, function (index, item) {
$("#barCode").append(new Option(item.bmcode, item.id));//往下拉菜单里添加元素
});
form.render();
} else {
$("#barCode").empty();
}
layer.close(loading2);
}
}
});
}
};
// 打开物料选择树
selectMaterial = function (obj) {
let mname = $("#mname").val();
mname = mname.split(",")[0];
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
content: '/selectMaterial?type=1&mname=' + mname,
move: '.layui-layer-title',
fixed: false,
success: function (layero, index) {
let children = layero.children();
let content = $(children[1]);
let iframeChildren = $(content.children());
content.css('height', '100%');
iframeChildren.css('height', '100%');
},
end: function () {
var mid = $("#mid").val();
if (mid !== '') {
let loading2 = layer.open({ type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
$.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 = "";
}
$("#code").val(code);
$("#version").val(material.version);
let unit = $("#unit");
unit.empty();
unit.append(new Option(material.unit, material.unit));
var splitInfoList = material["splitInfoList"];
$.each(splitInfoList, function (index, item) {
unit.append(new Option(item.newUnit, item.newUnit));//往下拉菜单里添加元素
});
form.render();
$("#typeName").val(material.typeName);
var materialAndBarCodeList = material["materialAndBarCodeList"];
if (materialAndBarCodeList !== null && materialAndBarCodeList.length > 0) {
// 如果有对应的条形码
$("#barCode").empty();
$.each(materialAndBarCodeList, function (index, item) {
$("#barCode").append(new Option(item.bmcode, item.id));//往下拉菜单里添加元素
});
form.render();
} else {
$("#barCode").empty();
}
layer.close(loading2);
}
});
}
}
});
};
scanCode = function (obj) {
let wxScan = parent;
if(wxScan.wx === undefined){
wxScan = wxScan.parent.wx;
}else{
wxScan = wxScan.wx;
}
wxScan.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;
req.codeFlag = 2;
let loading2 = layer.open({ type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
$.ajax({
url: "/material/qywxApplicationInScanQrCode",
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("对于编码:" + result + ",并未发现对应的物料", {
icon: 0,
time: 1000 //0.5秒关闭(如果不配置,默认是3秒)
}, function () {
$("#mname").val("");
$("#code").val("");
$("#mid").val("");
$("#typeName").val("");
$("#version").val("");
$("#barCode").empty();
$("#unit").empty();
layer.close(loading2);
})
} else {
// 如果有对应关系
$("#mname").val(data.mname);
$("#mid").val(data.mid);
$("#code").val(data.code);
$("#version").val(data.version);
$("#typeName").val(data.typeName);
let barCode = $("#barCode");
barCode.empty();
var materialAndBarCodeList = data["materialAndBarCodeList"];
if (materialAndBarCodeList.length > 0) {
// 如果有对应的条形码
$.each(materialAndBarCodeList, function (index, item) {
barCode.append(new Option(item.bmcode, item.id));//往下拉菜单里添加元素
});
form.render();
}
var shelfLife = data.shelfLife;
if (shelfLife !== null && shelfLife !== undefined) {
$("#producedDateItem").show();
$("#producedDate").attr("lay-verify", "required");
} else {
$("#producedDateItem").hide();
form.render();
}
var unit = $("#unit");
unit.empty();
unit.append(new Option(data.unit, "-1"));
var unitList = data["splitInfoList"];
for (let i = 0; i < unitList.length; i++) {
unit.append(new Option(unitList[i].newUnit, unitList[i].newUnit));
}
form.render();
layer.close(loading2);
}
}
})
}
})
};
scanBarCode = function (obj) {
let wxScan = parent;
if(wxScan.wx === undefined){
wxScan = wxScan.parent.wx;
}else{
wxScan = wxScan.wx;
}
wxScan.scanQRCode({
desc: 'scanQRCode desc',
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
scanType: ["barCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有
success: function (res) {
// 回调
var result = res.resultStr;//当needResult为1时返回处理结果
var req = {};
req.qrCode = result;
req.codeFlag = 1;
let barCode = $("#barCode");
barCode.empty();
barCode.append(new Option(result, result));
let loading2 = layer.open({ type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
$.ajax({
url: "/material/qywxApplicationInScanBarCode",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
let material = d.data.material;
let unit = $("#unit");
if (material !== null) {
$("#mname").val(material.mname);
$("#code").val(material.mcode);
$("#mid").val(material.mid);
$("#typeName").val(material.tname);
$("#version").val(material.version);
unit.empty();
unit.append(new Option(material.unit, material.unit));
let splitInfoList = material.splitInfoList;
if (splitInfoList !== null && splitInfoList.length > 0) {
$.each(splitInfoList, function (index, item) {
unit.append(new Option(item.newUnit, item.newUnit));//往下拉菜单里添加元素
});
}
form.render();
layer.close(loading2);
}
else {
layer.msg("对于编码:" + result + ",并未发现对应的物料", {
icon: 0,
time: 1000 //0.5秒关闭(如果不配置,默认是3秒)
}, function () {
$("#mname").val("");
$("#code").val("");
$("#mid").val("");
$("#typeName").val("");
$("#version").val("");
unit.empty();
$("#barCode").empty();
layer.close(loading2);
})
}
}
})
},
error: function (res) {
if (res.errMsg.indexOf('function_not_exist') > 0) {
alert('版本过低请升级')
}
alert(res)
}
});
};
// 用于实现通过编码查询物料
selectCode = function (obj) {
// 输入code
var code = obj.value;
var req = {};
req.code = code;
req.type = "in";
if(code !== ""){
let loading2 = layer.open({ type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
$.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("没有该编码,请确认是否输入正确",{icon:0,time:500},function () {
$("#mname").val("");
$("#mid").val("");
$("#code").val("");
$("#barCode").val("");
$("#version").val("");
$("#unit").empty();
$("#typeName").val("");
form.render();
layer.close(loading2);
});
} else {
$("#mname").val(d.mname);
$("#mid").val(d.mid);
$("#version").val(d.version);
$("#unit").empty();
$('#unit').append(new Option(d.unit, d.unit));
var splitInfoList = d["splitInfoList"];
$.each(splitInfoList, function (index, item) {
$("#unit").append(new Option(item.newUnit, item.newUnit));//往下拉菜单里添加元素
});
form.render();
$("#typeName").val(d.typeName);
// 获取物料与条形码的对应关系
var materialAndBarCodeList = d["materialAndBarCodeList"];
if (materialAndBarCodeList !== null && materialAndBarCodeList.length > 0) {
// 如果有对应的条形码
$("#barCode").remove();
$(".layui-unselect").remove();
var barCodeSelect = `
<select id="barCode" name="barCode">
</select>`;
$("#barCodeImg").before(barCodeSelect);
form.render();
$.each(materialAndBarCodeList, function (index, item) {
$("#barCode").append(new Option(item.bmcode, item.bmcode));//往下拉菜单里添加元素
});
form.render();
} else {
let children = $("#barCode").parent().children();
if (children.length > 2) {
$("#barCode").empty();
$(children[1]).empty();
}
}
layer.close(loading2);
}
}
});
}
};
$('body').on('click', '[data-refresh]', function () {
location.reload();
})
})
</script>
</body>
</html>