<!DOCTYPE html>
|
<html lang="en">
|
<head>
|
<meta charset="UTF-8">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"/>
|
<title>平仓入库</title>
|
<link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
|
<link rel="stylesheet" href="../../static/css/pda.css" media="all">
|
|
<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
|
<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
|
<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
|
<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
|
<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
|
<style>
|
.number-tool {
|
margin-left: 10px;
|
padding: 1px 0 1px 5px;
|
display: inline-block;
|
width: 120px;
|
}
|
|
.number-tool:after {
|
clear: both;
|
content: "";
|
display: table;
|
}
|
|
.number-tool button {
|
background-color: #fff;
|
margin-top: 3px;
|
font-size: 16px;
|
height: 25px;
|
float: left;
|
width: 25px;
|
border: 1px solid #777777;
|
}
|
|
.number-tool input {
|
text-align: center;
|
height: 30px;
|
float: left;
|
margin: 0 5px;
|
width: 50px;
|
padding: 0;
|
}
|
|
#confirm {
|
margin: 10px 10px;
|
padding: 5px 20px;
|
font-weight: 600;
|
}
|
|
#remove {
|
margin: 10px 10px;
|
padding: 5px 20px;
|
color: darkred;
|
}
|
|
.form-box span {
|
font-size: 16px;
|
display: inline-block;
|
text-align: right;
|
}
|
|
.form-box input {
|
width: 165px;
|
padding-left: 5px;
|
height: 30px;
|
border: 1px solid #777777;
|
overflow: hidden;
|
white-space: nowrap;
|
text-overflow: ellipsis;
|
}
|
</style>
|
</head>
|
<body>
|
<!-- 头部 -->
|
<header class="layui-form">
|
<div>
|
<div class="layui-input-inline">
|
<label class="layui-form-label">单号</label>
|
<div class="layui-input-inline" style="width: 175px">
|
<input id="billNo" class="layui-input" autocomplete="off" oninput="find(this)">
|
</div>
|
</div>
|
</div>
|
<div>
|
<div class="layui-input-inline">
|
<label class="layui-form-label">库区</label>
|
<div class="layui-input-inline" style="width: 175px">
|
<select id="uuid">
|
<option value="">请选择</option>
|
</select>
|
</div>
|
</div>
|
</div>
|
|
<div style="margin: 5px 5px">
|
<button id="mat-btn" type="button" class="layui-btn layui-btn-normal" onclick="getMat()"><i
|
class="layui-icon">+</i>提取
|
</button>
|
</div>
|
</header>
|
|
<!-- 主体 -->
|
<main>
|
<table class="layui-table" id="chooseData" lay-filter="chooseData"></table>
|
</main>
|
<!-- 尾部 -->
|
<footer>
|
<div class="layui-btn-container">
|
<button type="button" id="reset-btn" class="layui-btn layui-btn-primary" onclick="reset()">重置</button>
|
<button type="button" id="comb-btn" class="layui-btn layui-btn-normal " onclick="comb()"
|
style="margin-left: 20px">入库
|
</button>
|
<button type="button" id="retrun-btn" class="layui-btn layui-btn-primary " onclick="back()"
|
style="margin-left: 20px">返回
|
</button>
|
<span id="tips"></span>
|
</div>
|
</footer>
|
|
<!-- 修改数量弹窗 -->
|
<div id="modify" style="display: none; text-align: center;padding-top: 10px">
|
<div class="form-box">
|
<div class="form-item">
|
<table style="display: none">
|
<tr>
|
<td>
|
<span style="width: 35px; margin-right: 5px">物料</span>
|
</td>
|
<td style="text-align: left">
|
<input id="matNo" type="text" disabled="disabled">
|
</td>
|
</tr>
|
</table>
|
</div>
|
<div class="form-item">
|
<table style="display: inline">
|
<tr>
|
<td style="vertical-align: top">
|
<span style="width: 35px; margin-right: 5px">名称</span>
|
</td>
|
<td style="text-align: left">
|
<textarea rows="2" style="resize: none; width: 165px" id="matName" type="text" disabled="disabled"
|
readonly="readonly"></textarea>
|
</td>
|
</tr>
|
</table>
|
</div>
|
<div class="form-item">
|
<table style="display: inline">
|
<tr>
|
<td>
|
<span style="width: 35px; margin-right: 5px">单号</span>
|
</td>
|
<td style="text-align: left">
|
<input id="mnemonic" type="text" disabled="disabled">
|
</td>
|
</tr>
|
</table>
|
</div>
|
</div>
|
<div class="form-item" style="margin-top: 5px">
|
<span style="vertical-align: middle">数量</span>
|
<div class="number-tool" style="vertical-align: middle">
|
<button onclick="reduce()">-</button>
|
<input id="count" type="number">
|
<button onclick="add()">+</button>
|
</div>
|
</div>
|
<button id="remove" onclick="remove()">移除</button>
|
<button id="confirm" onclick="confirm()">保存</button>
|
</div>
|
|
</body>
|
<script>
|
var tableIns;
|
layui.use(['table', 'laydate', 'form'], function () {
|
var table = layui.table;
|
var $ = layui.jquery;
|
var layer = layui.layer;
|
var form = layui.form;
|
|
document.getElementById("billNo").focus();
|
|
tableIns = table.render({
|
elem: '#chooseData',
|
data: [],
|
width: 320,
|
limit: 500,
|
cellMinWidth: 50,
|
cols: [[
|
{field: 'matNo', align: 'center', title: '物料编码', event: 'modify'},
|
{field: 'mnemonic', align: 'center', title: '生产单号', event: 'modify'},
|
{field: 'count', align: 'center', title: '数量', style: 'color: blue', width: 50, event: 'modify'},
|
{field: 'matName', align: 'center', title: '物料名称', event: 'modify'},
|
]],
|
done: function (res, curr, count) {
|
}
|
});
|
|
// 监听行工具事件
|
table.on('tool(chooseData)', function (obj) {
|
var data = obj.data;
|
switch (obj.event) {
|
case 'modify':
|
countLayer = layer.open({
|
type: 1,
|
offset: '20px',
|
title: '修改数量',
|
shadeClose: true,
|
area: ['80%', '300px'],
|
content: $("#modify"),
|
success: function (layero, index) {
|
$('#matNo').val(data.matNo);
|
$('#matName').val(data.matName);
|
$('#count').val(data.count);
|
$('#mnemonic').val(data.mnemonic);
|
maxCount = data.count;
|
}
|
});
|
break;
|
}
|
});
|
|
var areaType = getQueryVariable('areaType');
|
// 获取仓库下拉
|
$.ajax({
|
url: baseUrl + "/locArea/queryAll/auth?areaType=" + (areaType ? areaType : ""),
|
headers: {'token': localStorage.getItem('token')},
|
method: 'POST',
|
success: function (res) {
|
if (res.code === 200) {
|
var html = "";
|
if (res.data && res.data.length > 0) {
|
html += res.data.map(function (item) {
|
return "<Option value=" + item.uuid + ">" + item.name + "</Option>";
|
});
|
}
|
$('#uuid').append(html);
|
layui.form.render('select');
|
} else if (res.code === 403) {
|
top.location.href = baseUrl + "/pda";
|
} else {
|
layer.msg(res.msg)
|
}
|
}
|
});
|
});
|
|
/************************************* 数量 ****************************************/
|
var countDom = $('#count');
|
var minCount = 1;
|
var maxCount = 1;
|
function add() {
|
if (countDom.val() >= maxCount) {
|
return;
|
}
|
countDom.val(Number(countDom.val()) + 1);
|
}
|
|
function reduce() {
|
if (countDom.val() <= minCount) {
|
return;
|
}
|
countDom.val(countDom.val() - 1);
|
}
|
|
// 修改数量
|
function confirm() {
|
var matNo = $('#matNo').val();
|
var count = $('#count').val();
|
if (count > maxCount) {
|
alert("数量不能超过" + maxCount);
|
return;
|
}
|
if (count < minCount) {
|
alert("数量不能低于" + minCount);
|
return;
|
}
|
var mnemonic = $("#mnemonic").val() === '' ? null : $("#mnemonic").val();
|
for (var j = 0; j < matData.length; j++) {
|
if (mnemonic) {
|
if (matNo === matData[j].matNo && mnemonic === matData[j].mnemonic) {
|
matData[j].count = Number(count);
|
}
|
} else {
|
if (matNo === matData[j].matNo) {
|
matData[j].count = Number(count);
|
}
|
}
|
}
|
tableIns.reload({data: matData});
|
layer.close(countLayer);
|
tips("修改成功");
|
}
|
|
function remove() {
|
var matnr = $('#matNo').val();
|
var index = $('#index').val();
|
var mnemonic = $("#mnemonic").val() === '' ? null : $("#mnemonic").val();
|
for (var j = 0; j < matData.length; j++) {
|
if (mnemonic) {
|
if (matnr === matData[j].matNo && mnemonic === matData[j].mnemonic) {
|
matData.splice(j, 1);
|
}
|
} else {
|
if (matnr === matData[j].matNo) {
|
matData.splice(j, 1);
|
}
|
}
|
}
|
tableIns.reload({data: matData});
|
layer.close(countLayer);
|
tips("移除成功");
|
}
|
|
window.onload = function () {
|
document.getElementById("uuid").focus();
|
}
|
|
var matCodeLayerIdx;
|
|
function getMat() {
|
matCodeLayerIdx = layer.open({
|
type: 2,
|
title: '提取物料',
|
shade: [0.3, '#000'],
|
area: ['90%', '90%'],
|
content: 'matQuery.html',
|
success: function (layero, index) {
|
$('.layui-layer-title').css('font-size', '16px');
|
},
|
end: function () {
|
$('#mat-btn').focus();
|
}
|
});
|
}
|
|
// 添加表格数据
|
var matData = [];
|
|
function addTableData(data) {
|
if (isEmpty(data.matName)) {
|
tips("提取失败", true);
|
return;
|
}
|
let toPush = true;
|
for (var j = 0; j < matData.length; j++) {
|
if (data.matNo === matData[j].matNo) {
|
matData[j].count = Number(matData[j].count) + Number(data.count);
|
toPush = false;
|
}
|
}
|
if (toPush) {
|
matData.push(data);
|
}
|
tips("提取成功");
|
tableIns.reload({data: matData});
|
}
|
|
// 组托
|
function comb() {
|
let barcode = $('#uuid').val();
|
console.log('barcode', barcode);
|
if (isEmpty(barcode)) {
|
tips("请选择库区", true);
|
document.getElementById("uuid").focus();
|
return;
|
}
|
if (matData.length === 0) {
|
tips("请提取物料", true);
|
return;
|
}
|
|
// 构造平仓入库数据
|
var data = []
|
matData.map(function (item) {
|
data.push({
|
matnr: item.matNo,
|
maktx: item.matName,
|
anfme: item.count,
|
warehouse: barcode,
|
mnemonic: item.mnemonic,
|
supplier: item.supplier,
|
lgnum: item.lgnum,
|
type: item.type,
|
altme: item.altme,
|
});
|
});
|
|
// 请求保存接口
|
var areaType = getQueryVariable('areaType');
|
if (areaType == 1) {
|
$.ajax({
|
url: baseUrl + "/locNormal/in/source",
|
headers: {'token': localStorage.getItem('token')},
|
data: JSON.stringify({
|
normalList: data,
|
}),
|
contentType: 'application/json;charset=UTF-8',
|
method: 'POST',
|
async: false,
|
success: function (res) {
|
if (res.code === 200) {
|
reset(true);
|
tips("组托成功")
|
} else if (res.code === 403) {
|
top.location.href = baseUrl + "/pda";
|
} else {
|
tips(res.msg, true)
|
}
|
},
|
});
|
} else {
|
$.ajax({
|
url: baseUrl + "/locNormal/pda/in",
|
headers: {'token': localStorage.getItem('token')},
|
data: JSON.stringify({
|
normalList: data,
|
}),
|
contentType: 'application/json;charset=UTF-8',
|
method: 'POST',
|
async: false,
|
success: function (res) {
|
if (res.code === 200) {
|
reset(true);
|
tips("组托成功")
|
} else if (res.code === 403) {
|
top.location.href = baseUrl + "/pda";
|
} else {
|
tips(res.msg, true)
|
}
|
},
|
});
|
}
|
}
|
|
/**
|
* 根据通知单号查询物料详情
|
*/
|
function find(el) {
|
var billNo = el.value;
|
if (isEmpty(billNo)) {
|
return;
|
}
|
if (billNo.indexOf('=') > -1) {
|
billNo = billNo.split(",")[0].split("=")[1];
|
}
|
// 赋值前清空表格
|
matData = [];
|
tableIns.reload({data: matData});
|
|
$.ajax({
|
url: baseUrl + "/mobile/bill/query/auth",
|
headers: {'token': localStorage.getItem('token')},
|
data: {
|
billNo: billNo
|
},
|
method: 'POST',
|
success: function (res) {
|
if (res.code === 200) {
|
if (res.data != null) {
|
console.log('单号数据', res.data);
|
var data = res.data;
|
if (data.length > 0) {
|
for (var i = 0; i < data.length; i++) {
|
addTableData(data[i]);
|
}
|
}
|
}
|
} else if (res.code === 403) {
|
top.location.href = baseUrl + "/pda";
|
} else {
|
tips(res.msg, true)
|
}
|
}
|
});
|
}
|
|
/**
|
* 提示信息
|
* @param msg 提示内容
|
* @param warn true:红色字体
|
*/
|
function tips(msg, warn) {
|
layer.msg(msg, {icon: warn ? 2 : 1})
|
}
|
|
document.onkeyup = function (e) {
|
if (window.event)//如果window.event对象存在,就以此事件对象为准
|
e = window.event;
|
var key = e.charCode || e.keyCode;
|
if (key === 115) {
|
$("#comb-btn").focus();
|
comb();
|
} else if (key === 113) {
|
$("#uuid").val("");
|
$("#uuid").focus();
|
}
|
}
|
|
function back() {
|
parent.backIndex();
|
}
|
|
// 重置
|
function reset() {
|
matData = [];
|
tableIns.reload({data: matData});
|
layer.closeAll();
|
$("#billNo").val("");
|
$("#uuid").val("");
|
layui.form.render('select');
|
}
|
</script>
|
</html>
|