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: 'matnr', align: 'center',title: '物料编码'} ,{field: 'maktx', align: 'center',title: '物料名称', width: 400} ,{field: 'lgnum', align: 'center',title: '规格'} ,{field: 'type', align: 'center',title: '物料类别'} ,{field: 'supplier', align: 'center',title: '通知单号', edit: 'text'} ,{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; } } // 判断库区是否为空 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 ""; }); } $('#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); }