let idParam, objParam; let form, laydate, layer, upload, table, util; let pageNum = 1, tableIns; // 定义分页 let jjDataArr = []; // 配件数据 let proList = []; // 工程下拉选 let delIdArr = []; function setParams(obj) { objParam = JSON.parse(obj); layui.use(['form', 'layer', 'laydate', 'upload', 'table'], function () { form = layui.form; layer = layui.layer; laydate = layui.laydate; upload = layui.upload; table = layui.table; util = layui.util; laydate.render({ elem: '#needTime' }); form.verify(); form.on('submit(formData)', function (data) { submitApply(data); }); form.render(); getProList(); }); } // 工程下拉选 function getProList() { let url = dataUrl + 'backstage/planApplication/getProList'; ajaxRequest(url, "POST", null, false, function () { }, function (result) { console.log(result); if (result.code === 200) { setSelectData(result.data); } }, function (xhr, status, error) { errorFn(xhr, status, error) }, null); } // 工程下拉选赋值 function setSelectData(proList) { let html = ''; $.each(proList, function (index, item) { html += '' }) $('#projectId').empty().append(html); layui.form.render(); } function saveData2() { $('#formSubmit').trigger('click') } function setNumColor(value, type) { // 1.需要量 2.已发货量 3.差缺量 let color = '#66b1ff'; if (type === 1) { color = '#66b1ff'; } else if (type === 2) { color = '#19be6b'; } else if (type === 3) { color = '#ff9900'; } return '' + value + ""; } // 提交 function submitApply(data) { let list = getBaseTableData(); // 校验配件入库数量 if (list.length === 0) { return layer.msg('未填写配件入库数量', { icon: 7 }); } for (let i = 0; i < list.length; i++) { if (!list[i].inputNum || list[i].inputNum === '0') { return layer.msg('入库配件明细,第' + (i + 1) + '行,未填写配件入库数量', { icon: 7 }); } } data.field.details = list; let formData = new FormData(); //遍历最终文件集合 for (let i = 0; i < fileList.length; i++) { formData.append("file[]", fileList[i].file) } formData.append('params', JSON.stringify(data.field)); console.log(JSON.stringify(data.field)); let loadingMsg = layer.msg('正在提交保存,请稍等...', { icon: 16, shade: 0.01, time: '0' }); console.log(JSON.stringify(data.field)); let url = dataUrl + 'backstage/partInput/addInputData'; ajaxRequestByUploadFile(url, formData, function () { $('.save').addClass("layui-btn-disabled").attr("disabled", true); $('.cancel').addClass("layui-btn-disabled").attr("disabled", true); }, function (result) { console.log(result); layer.close(loadingMsg); $('.save').removeClass("layui-btn-disabled").attr("disabled", false); $('.cancel').removeClass("layui-btn-disabled").attr("disabled", false); if (result.code === 200) { parent.layer.msg(result.msg, { icon: 1 }); closePage(1); } else { layer.msg(result.msg, { icon: 2 }); } }, function (xhr, status, error) { layer.close(loadingMsg); // 关闭提示层 layer.msg('服务异常,请稍后重试', { icon: 16, scrollbar: false, time: 2000 }); $('.save').removeClass("layui-btn-disabled").attr("disabled", false); $('.cancel').removeClass("layui-btn-disabled").attr("disabled", false); errorFn(xhr, status, error) }, null); } // 获取入库配件明细数据 function getBaseTableData() { let tableData = []; $('#baseTable tbody tr').each(function (index, item) { let price = $(this).find('td').eq(7).find('input[name="price"]').val(); let num = $(this).find('td').eq(6).find('input[name="num"]').val(); tableData.push({ partId: $(this).attr('id'), partType: $(this).find('td').eq(2).html(), partName: $(this).find('td').eq(3).html(), partModel: $(this).find('td').eq(4).html(), partUnit: $(this).find('td').eq(5).html(), inputNum: num ? num : 0, partPrice: price ? price : 0, vendId: $(this).find('td').eq(8).find('select[name="manufacturer"]').val(), vendName: $(this).find('td').eq(8).find('select[name="manufacturer"]').find('option:checked').text(), remark: $(this).find('td').eq(9).find('input[name="remarks"]').val(), }) }) return tableData; } // 选择机具类型 function chooseFitType() { let params = {}; openIframeByParamObj("choose_fit_type", '选择需求计划机具类型(设备类请备注大、中、小)', "./choose_tool_type_list.html", '92%', '95%', params); } // 查询 function search() { let keyWord = $('#type').val(); let keyWord2 = $('#name').val(); let keyWord3 = $('#model').val(); if (!keyWord && !keyWord2 && !keyWord3) { setTableData(jjDataArr); } else if (keyWord && !keyWord2 && !keyWord3) { let dataList = jjDataArr.filter(item => { return item.type.indexOf(keyWord) > -1; }) setTableData(dataList); } else if (!keyWord && keyWord2 && !keyWord3) { let dataList = jjDataArr.filter(item => { return item.name.indexOf(keyWord2) > -1; }) setTableData(dataList); } else if (!keyWord && !keyWord2 && keyWord3) { let dataList = jjDataArr.filter(item => { return item.model.indexOf(keyWord3) > -1; }) setTableData(dataList); } else if (keyWord && keyWord2 && !keyWord3) { let dataList = jjDataArr.filter(item => { return item.type.indexOf(keyWord) > -1 && item.name.indexOf(keyWord2) > -1; }) setTableData(dataList); } else if (keyWord && !keyWord2 && keyWord3) { let dataList = jjDataArr.filter(item => { return item.type.indexOf(keyWord) > -1 && item.model.indexOf(keyWord3) > -1; }) setTableData(dataList); } else if (!keyWord && keyWord2 && keyWord3) { let dataList = jjDataArr.filter(item => { return item.name.indexOf(keyWord2) > -1 && item.model.indexOf(keyWord3) > -1; }) setTableData(dataList); } else if (keyWord && keyWord2 && keyWord3) { let dataList = jjDataArr.filter(item => { return item.type.indexOf(keyWord) > -1 && item.name.indexOf(keyWord2) > -1 && item.model.indexOf(keyWord3) > -1; }) setTableData(dataList); } } // 重置 function resetSearch() { $('#type').val(''); $('#name').val(''); $('#model').val(''); setTableData(jjDataArr); } // 子页面回调数据 function addFitDatas(data) { console.log('新增的数据:' + data); if (jjDataArr.length > 0) { // 继续添加数据 let newJjDataArr = JSON.parse(data); $.each(newJjDataArr, function (index, item) { updateOrAddObject(item.id, item); }); setTableData(jjDataArr); } else { // 第一次添加数据 jjDataArr = JSON.parse(data); if (jjDataArr && jjDataArr.length > 0) { $('#no_data_title').css({ 'display': 'none' }); $('#search-info').removeAttr('style'); $('#table-box').removeAttr('style'); setTableData(jjDataArr); } } function updateOrAddObject(id, newObject) { const index = jjDataArr.findIndex(obj => obj.id === id); if (index !== -1) { // 如果对象存在,则替换它 jjDataArr[index] = newObject; } else { // 如果对象不存在,则添加到数组 jjDataArr.push(newObject); } } } // 入库配件明细表格赋值 function setTableData(results) { $('#allCheck').prop('checked', false) var html = ""; if (results && results.length > 0) { for (var i = 0; i < results.length; i++) { var l = results[i]; html += ""; html += ''; html += "" + (i + 1) + ""; html += "" + l.type + ""; html += "" + l.name + ""; html += "" + l.model + ""; html += "" + l.unit + ""; html += "" + setFormInput(l.num, 1) + ""; html += "" + setFormInput(l.price, 2) + ""; html += "" + setFormInput(l.manufacturer, 3) + ""; html += "" + setFormInput(l.remarks, 4) + ""; html += ""; } } else { html += "没有相关数据"; } $("#baseTable tbody").empty().append(html); layui.form.render(); } function setFormInput(value, type) { let html = '
'; if (type === 1) { // 入库量 html += ''; } else if (type === 2) { // 单价 html += ''; } else if (type === 4) { // 备注 html += ''; } html += '
'; return html; } // 复选框全选 function selectAll(selectStatus) {//传入参数(全选框的选中状态) if (selectStatus) { $("input[name='check']").each(function (i, n) { n.checked = true; }); $.each(jjDataArr, function (index, item) { delIdArr.push(item.id); }) } else { $("input[name='check']").each(function (i, n) { n.checked = false; }); delIdArr.splice(0, delIdArr.length); } } // 单个选中 function sel(selectStatus, that, id) { if (selectStatus) { $(that).prop('checked', true); delIdArr.push(id); } else { $(that).prop('checked', false); for (let i = 0; i < delIdArr.length; i++) { if (delIdArr[i] == id) { arr.splice(i, 1); break; } } } } // 删除选中 function delFitType() { if (delIdArr.length == 0) { layer.msg('请先选择需要删除的数据!', { icon: 7 }) return; } let layerIndex = layer.confirm('
确定要删除选中数据吗!
', { title: '操作提示' }, function () { layer.close(layerIndex); for (let i = 0; i < delIdArr.length; i++) { for (let j = 0; j < jjDataArr.length; j++) { let id = jjDataArr[j].id; if (delIdArr[i] == id) { jjDataArr.splice(j, 1); break; } } } if (jjDataArr.length === 0) { $('#no_data_title').removeAttr('style'); $('#search-info').css({ 'display': 'none' }); $('#table-box').css({ 'display': 'none' }); } else { setTableData(jjDataArr); } }); } // 校验数据 function checkValue(that, type) { let value = $(that).val(); if (type === 1) { // 入库量 const regex = /^(0|[1-9]\d{0,6})$/; if (!regex.test(value) && value) { layer.msg('入库量输入不合法,请重新输入!', { icon: 5 }) $(that).val(''); } } else if (type === 2) { // 单价 const regex = /^(?:1(?:\d{0,8}|[0-9]*\.\d{1,2})|(?:[1-9]\d{0,7}|[1-9]\d{0,6}\.\d{1,2}|[1-9]\d{1,7}\.\d{2}|100000000(?:\.00)?))$/; if (!regex.test(value) && value) { layer.msg('单价输入不合法,请重新输入!', { icon: 5 }) $(that).val(''); } } } // 关闭页面 function closePage(type) { let index = parent.layer.getFrameIndex(window.name); // 先得到当前 iframe层的索引 parent.layer.close(index); // 再执行关闭 if (type == 1) { window.parent.reloadData(); } }