var initCountVal = 0;
|
var matCodeData = [];
|
var index = 0;
|
|
function getCol() {
|
var cols = [
|
// {type: 'checkbox', fixed: 'left'},
|
{
|
fixed: 'left',
|
field: 'anfme',
|
title: '数量(必填)',
|
align: 'center',
|
edit: 'text',
|
width: 120,
|
style: 'color: blue;font-weight: bold'
|
}
|
];
|
var locNormalColsSelf = [
|
{field: 'mnemonic', align: 'center',title: '生产单号', edit: 'text'}
|
,{field: 'supplier', align: 'center',title: '通知单号', edit: 'text'}
|
,{field: 'matnr', align: 'center',title: '物料编码'}
|
,{field: 'maktx', align: 'center',title: '物料名称', width: 400}
|
,{field: 'lgnum', align: 'center',title: '规格'}
|
,{field: 'type', align: 'center',title: '物料类别'}
|
,{field: 'brand', align: 'center',title: '品牌', hide: true}
|
,{field: 'altme', align: 'center',title: '单位', hide: true}
|
];
|
cols.push.apply(cols, locNormalColsSelf);
|
// cols.push({field: 'matStatus', title: '物料状态', align: 'center', width: 120, templet: '#matStatus'});
|
cols.push({fixed: 'right', title: '操作', align: 'center', toolbar: '#operate', width: 80});
|
return cols;
|
}
|
|
layui.use(['table', 'laydate', 'form'], function () {
|
var table = layui.table;
|
var $ = layui.jquery;
|
var layer = layui.layer;
|
var layDate = layui.laydate;
|
var form = layui.form;
|
|
tableIns = table.render({
|
elem: '#chooseData',
|
data: [],
|
even: true,
|
limit: 500,
|
cellMinWidth: 50,
|
toolbar: '#toolbar',
|
cols: [getCol()],
|
done: function (res, curr, count) {
|
$('td[data-field=count] div').html(initCountVal);
|
setMatCodeData(res.data);
|
limit();
|
getInBound();
|
}
|
});
|
|
// 页面修改
|
table.on('edit(chooseData)', function (obj) {
|
if (obj.field === 'anfme') {
|
updateMatCodeData(obj.data.matnr, Number(obj.value), obj.data.index);
|
}
|
if (obj.field === 'supplier' || obj.field === 'mnemonic') {
|
updateMatCodeData2(obj.data.matnr, obj.value, obj.data.index, obj.field);
|
}
|
});
|
|
// 监听头工具栏事件
|
table.on('toolbar(chooseData)', function (obj) {
|
var checkStatus = table.checkStatus(obj.config.id);
|
var data = checkStatus.data;
|
switch (obj.event) {
|
case 'comb':
|
// 判断是否存在物料
|
if (matCodeData.length === 0) {
|
layer.msg("请先添加物料");
|
return;
|
}
|
// 判断物料数量是否存在异常
|
for (var i = 0; i < matCodeData.length; i++) {
|
if (isNaN(matCodeData[i].anfme)) {
|
layer.msg("请输入数字");
|
return;
|
}
|
if (matCodeData[i].anfme === 0) {
|
layer.msg("数量不能为零");
|
return;
|
}
|
if (matCodeData[i].mnemonic == null || matCodeData[i].mnemonic == '' || matCodeData[i].mnemonic == undefined) {
|
layer.msg("请输入生产单号");
|
return;
|
}
|
// if (matCodeData[i].supplier == null || matCodeData[i].supplier == '' || matCodeData[i].supplier == undefined) {
|
// layer.msg("请输入通知单号");
|
// return;
|
// }
|
}
|
// 判断库区是否为空
|
var warehouse = $('#putSiteSelect').val();
|
if (!warehouse || warehouse === '') {
|
layer.msg("请选择库区");
|
return;
|
}
|
// 入库数据赋值库区
|
matCodeData.map(function (item) {
|
item.warehouse = warehouse;
|
});
|
// 请求接口进行平仓入库
|
$.ajax({
|
url: baseUrl + "/locNormal/in",
|
headers: {'token': localStorage.getItem('token')},
|
data: JSON.stringify({
|
normalList: matCodeData,
|
}),
|
contentType: 'application/json;charset=UTF-8',
|
method: 'POST',
|
async: false,
|
success: function (res) {
|
if (res.code === 200) {
|
layer.msg("入库启动成功");
|
matCodeData = [];
|
tableIns.reload({
|
data: matCodeData, done: function (res) {
|
limit();
|
getInBound();
|
}
|
});
|
} else if (res.code === 403) {
|
top.location.href = baseUrl + "/";
|
} else {
|
layer.msg(res.msg)
|
}
|
}
|
})
|
break;
|
}
|
});
|
|
// 监听行工具事件
|
table.on('tool(chooseData)', function (obj) {
|
var data = obj.data;
|
switch (obj.event) {
|
case 'remove':
|
for (var i = matCodeData.length - 1; i >= 0; i--) {
|
if (matCodeData[i].matnr === data.matnr && matCodeData[i].index === data.index) {
|
matCodeData.splice(i, 1);
|
}
|
}
|
tableIns.reload({
|
data: matCodeData,
|
});
|
break;
|
}
|
});
|
|
function setMatCodeData(data) {
|
matCodeData = data;
|
for (var i = 0; i < matCodeData.length; i++) {
|
matCodeData[i]["count"] = initCountVal;
|
}
|
}
|
|
function updateMatCodeData(matnr, count, index) {
|
if (isNaN(count)) {
|
layer.msg("请输入数字");
|
} else {
|
if (count > 0) {
|
for (var i = 0; i < matCodeData.length; i++) {
|
if (matCodeData[i]["matnr"] === matnr && matCodeData[i]["index"] === index) {
|
matCodeData[i]["anfme"] = count;
|
}
|
}
|
} else {
|
layer.msg("数量必须大于零");
|
}
|
}
|
|
tableIns.reload({
|
data: matCodeData,
|
});
|
}
|
|
function updateMatCodeData2(matnr, value, index, field) {
|
for (var i = 0; i < matCodeData.length; i++) {
|
if (matCodeData[i]["matnr"] === matnr && matCodeData[i]["index"] === index) {
|
matCodeData[i][field] = value;
|
}
|
}
|
|
tableIns.reload({
|
data: matCodeData,
|
});
|
}
|
|
// 获取可用入库站点
|
function getInBound() {
|
// 获取仓库下拉
|
$.ajax({
|
url: baseUrl + "/locArea/queryAll/auth",
|
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>";
|
});
|
}
|
$('#putSiteSelect').append(html);
|
form.render('select');
|
} else if (res.code === 403) {
|
top.location.href = baseUrl + "/";
|
} else {
|
layer.msg(res.msg)
|
}
|
}
|
})
|
}
|
|
|
});
|
|
// 提取物料
|
var matCodeLayerIdx;
|
function getMat() {
|
matCodeLayerIdx = layer.open({
|
type: 2,
|
title: '提取物料',
|
maxmin: true,
|
area: [top.detailWidth, top.detailHeight],
|
shadeClose: true,
|
content: '../pakStore/matQuery.html',
|
success: function (layero, index) {
|
}
|
});
|
}
|
|
// 添加表格数据
|
function addTableData(data) {
|
// 数据格式转换
|
var newData = [];
|
data.map(function (item) {
|
newData.push({
|
matnr: item.matNo,
|
maktx: item.matName,
|
lgnum: item.str3,
|
type: item.str2,
|
supplier: item.str6,
|
warehouse: item.str7,
|
brand: item.str8,
|
altme: item.str1,
|
state: 1, // 入库状态
|
anfme: 0,
|
index: index,
|
});
|
});
|
index++;
|
|
for (var i = 0; i < newData.length; i++) {
|
let pass = false;
|
for (var j = 0; j < matCodeData.length; j++) {
|
if (newData[i].matnr === matCodeData[j].matNo) {
|
pass = true;
|
break;
|
}
|
}
|
if (pass) {
|
newData.splice(i--, 1);
|
} else {
|
newData[i]["count"] = initCountVal;
|
}
|
}
|
matCodeData.push.apply(matCodeData, newData);
|
tableIns.reload({data: matCodeData});
|
layer.close(matCodeLayerIdx);
|
}
|