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) { 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].needNum === 0) { return layer.msg('机具明细,第' + (i + 1) + '行,未填写需用量', { icon: 7 }); } if (list[i].times === 0) { return layer.msg('机具明细,第' + (i + 1) + '行,未填写需用天数', { icon: 7 }); } } data.field.jsonData = JSON.stringify(list); let loadingMsg = layer.msg('正在提交保存,请稍等...', { icon: 16, shade: 0.01, time: '0' }); let url = dataUrl + 'backstage/planApplication/addPlan'; let params = { encryptedData:JSON.stringify(data.field) }; ajaxRequest(url, 'POST', params, true, function () { $('.save').addClass("layui-btn-disabled").attr("disabled", true); $('.cancel').addClass("layui-btn-disabled").attr("disabled", true); }, function (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 times = $(this).find('td').eq(7).find('input[name="times"]').val(); let needNum = $(this).find('td').eq(6).find('input[name="needNum"]').val(); tableData.push({ moduleId: $(this).attr('id'), type: $(this).find('td').eq(2).html(), typeName: $(this).find('td').eq(3).html(), module: $(this).find('td').eq(4).html(), unit: $(this).find('td').eq(5).html(), needNum: needNum ? needNum : 0, times: times ? times : 0, remarks: $(this).find('td').eq(8).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 = $('#pName').val(); let keyWord2 = $('#name').val(); if (!keyWord && !keyWord2) { setTableData(jjDataArr); } else if (keyWord && !keyWord2) { let dataList = jjDataArr.filter(item => { return item.pName.indexOf(keyWord) > -1; }) setTableData(dataList); } else if (!keyWord && keyWord2) { let dataList = jjDataArr.filter(item => { return item.name.indexOf(keyWord2) > -1; }) setTableData(dataList); } else if (keyWord && keyWord2) { let dataList = jjDataArr.filter(item => { return item.pName.indexOf(keyWord) > -1 && item.name.indexOf(keyWord2) > -1; }) setTableData(dataList); } } // 重置 function resetSearch() { $('#pName').val(''); $('#name').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) delIdArr.splice(0, delIdArr.length); var html = ""; if (results && results.length > 0) { for (var i = 0; i < results.length; i++) { var l = results[i]; html += "