var taskId; var applyTime; var today; var applyDate; var currentResults = []; // 用于保存当前页面的领料明细数据 $(function() { taskId = localStorage.getItem("taskId"); applyTime = localStorage.getItem("applyTime"); today = new Date().toISOString().split('T')[0]; // 获取今天的日期(格式:YYYY-MM-DD) applyDate = new Date(applyTime).toISOString().split('T')[0]; // 转换applyTime为日期(格式:YYYY-MM-DD) getbaseList(1); $("#baseForm").keydown(function(e) { keycode = e.which || e.keyCode; if (keycode == 13) { search(); } }); $('#addBtn').on('click',function(e) { /* if (applyDate !== today) { layer.alert('领料时间不是今天,不允许进行新增操作', { skin: 'layui-layer-molv', // 样式类名 closeBtn: 0 }); return; // 退出函数,阻止新增操作 }*/ var hasConfirmed = currentResults.some(function(item) { return item.isSure == 1 || item.isSure == "1"; }); if (hasConfirmed) { layer.alert('存在已确认的领料记录,不允许新增!', { skin: 'layui-layer-molv', closeBtn: 0 }); return; // 阻止新增 } $("#maTypeName").attr("readOnly",false); $("#maModelName").attr("readOnly",false); $(".maTree").css("display",""); cleanForm(); JY.Model.edit("auDiv", "新增", function() { var that = $(this); if (JY.Validate.form("auForm")) { var taskId = localStorage.getItem("taskId"); const leasePlanOutId = localStorage.getItem("leasePlanOutId"); var maTypeId =$("#maTypeId").val(); //机具类型ID var maModelId = $("#maModelId").val();//机具型号ID var serviceId = $("#serviceId").val(); var checkId = $("#checkId").val(); var machineNum = $("#machineNums").val();//填入需要机具数量 if(maModelId == 0){ layer.alert('请重新选择机具规格', { skin: 'layui-layer-molv', //样式类名 closeBtn: 0 }); }else{ if( parseInt(machineNum) <= 0 || String(machineNum).split('.')[1] != undefined){ layer.alert('请输入正整数', { skin: 'layui-layer-molv', //样式类名 closeBtn: 0 }); }else{ JY.Ajax.doRequest(null, bonuspath+'/backstage/receiveDetails/add', { taskId:taskId, leasePlanOutId:leasePlanOutId, maModelId:maModelId, machinesNum:machineNum, customerSrep:serviceId, checker:checkId }, function(data) { JY.Model.info(data.resMsg, function() { that.dialog("close"); $("#maModelId").val('');//机具型号ID document.getElementById('maModelId').value = ""; $("#machineNums").val('');//填入需要机具数量 $("#serviceId").val(''); $("#checkId").val(''); search(); }); }); } } } }); }); }); var machineTrue=''; function getMachineNum(maModelId){ JY.Ajax.doRequest(null, bonuspath+ '/backstage/receiveDetails/getMachinesNum', {maModelId:maModelId}, function(data) { machineTrue=data.obj.list.machinesNum; if(machineTrue == "" || machineTrue == null){ machineTrue = 0; } $("#sums").html(machineTrue); }); JY.Ajax.doRequest(null, bonuspath+ '/backstage/receiveDetails/getPreMachinesNum', {maModelId:maModelId}, function(data) { $("#preSums").html(data.obj.list.preCollerNum); }); } function machineTree(){ localStorage.setItem("machId",""); localStorage.setItem("machName",""); localStorage.setItem("machTreeName",$("#machinesName").val()); layer.open({ type: 2, title:['设备名称','background-color: #438EB9;color:#fff'], shadeClose:true, shade:false, maxmin: true, area: ['400px', '400px'], content: bonuspath+'/backstage/receiveDetails/machineTree' }); } function serviceTree(){ localStorage.setItem("serviceId",""); localStorage.setItem("serviceName",""); localStorage.setItem("serviceTreeName",$("#serviceName").val()); layer.open({ type: 2, title:['客服代表','background-color: #438EB9;color:#fff'], shadeClose:true, shade:false, maxmin: true, area: ['400px', '400px'], content: bonuspath+'/backstage/user/serviceTree' }); } function checkTree(){ localStorage.setItem("checkId",""); localStorage.setItem("checkName",""); localStorage.setItem("checkTreeName",$("#checkName").val()); layer.open({ type: 2, title:['检验人员','background-color: #438EB9;color:#fff'], shadeClose:true, shade:false, maxmin: true, area: ['400px', '400px'], content: bonuspath+'/backstage/user/checkTree' }); } function selectPerson(){ //iframe层-父子操作 layer.open({ type: 2, title:['完善通知信息','background-color: #438EB9;color:#fff'], shadeClose:true, shade:false, maxmin: true, area: ['800px', '430px'], content: bonuspath+'/backstage/user/select' }); } function emptyRole() { $("#orgName").prop("value", ""); $("#auForm input[name$='orgId']").prop("value", "0"); } var preisShow = false;// 窗口是否显示 function showRole() { if (preisShow) { hideRole(); } else { var obj = $("#orgName"); var offpos = $("#orgName").position(); $("#orgContent").css({ left : offpos.left + "px", top : offpos.top + obj.heith + "px" }).slideDown("fast"); preisShow = true; } } var hideRole = function() { $("#orgContent").fadeOut("fast"); preisShow = false; } function clickRole(e, treeId, treeNode) { var check = (treeNode && !treeNode.isParent); if (check) { var zTree = $.fn.zTree.getZTreeObj("orgTree"), nodes = zTree .getSelectedNodes(), v = "", n = "", o = "", p = ""; for (var i = 0, l = nodes.length; i < l; i++) { v += nodes[i].name + ",";// 获取name值 n += nodes[i].id + ",";// 获取id值 o += nodes[i].other + ",";// 获取自定义值 var pathNodes = nodes[i].getPath(); for (var y = 0; y < pathNodes.length; y++) { p += pathNodes[y].name + "/";// 获取path/name值 } } if (v.length > 0) v = v.substring(0, v.length - 1); if (n.length > 0) n = n.substring(0, n.length - 1); if (o.length > 0) o = o.substring(0, o.length - 1); if (p.length > 0) p = p.substring(0, p.length - 1); $("#orgName").val(p); $("#auForm input[name$='orgId']").prop("value", n); hideRole(); } } function getbaseList(init) { $(".pageNum").val(1); JY.Model.loading(); JY.Ajax.doRequest("baseForm",bonuspath + '/backstage/receiveDetails/findByPage',{taskId:taskId}, function(data) { $("#baseTable tbody").empty(); var obj = data.obj; var list = obj.list; var results = list.results; var permitBtn = obj.permitBtn; currentResults = results || []; // 更新全局变量 var pageNum = list.pageNum, pageSize = list.pageSize, totalRecord = list.totalRecord; var html = ""; if (results != null && results.length > 0) { var leng = (pageNum - 1) * pageSize; for (var i = 0; i < results.length; i++) { var l = results[i]; html += ""; if(l.isSure==0 || l.isSure=='0'){ var val = l.taskId + "," + l.maModelId + "," + l.preCollerNum + "," + l.customerSrepId; html += ""; }else if(l.isSure == 1 || l.isSure == "1"){ html += ""; } html += "" + (i + leng + 1) + ""; html += ""+ JY.Object.notEmpty(l.maType) + ""; html += ""+ JY.Object.notEmpty(l.maModel) + ""; html += ""+ JY.Object.notEmpty(l.maUnit) + ""; html += ""+ JY.Object.notEmpty(l.leasePrice) + ""; html += ""+ JY.Object.notEmpty(l.preCollerNum) + ""; html += ""+ JY.Object.notEmpty(l.alreadyCollerNum) + ""; html += ""+ JY.Object.notEmpty(l.customerSrep) + ""; if(l.isSure==0 || l.isSure=='0'){ html += "未确认"; }else{ html += "已确认"; } /* if( l.isExamine == 0 || l.isExamine == '0'){ html += "未审核"; }else if(l.isExamine==1 || l.isExamine=='1'){ html += "已通过"; }else{ html += " 未通过"; }*/ if( l.isApproval == 0 || l.isApproval == '0'){ html += "未批准"; }else if(l.isApproval == 1 || l.isApproval == '1'){ html += "已通过"; }else{ html += " 未通过"; } //原检验人员Id改为客服代表Id html += rowFunction(l.taskId,l.maModelId,l.isSure,l.customerSrepId,l.preCollerNum); html += ""; } $("#baseTable tbody").append(html); // JY.Page.setPage("baseForm", "pageing", pageSize,pageNum, totalRecord, "getbaseList"); } else { html += "没有相关数据"; $("#baseTable tbody").append(html); $("#pageing ul").empty();// 清空分页 } JY.Model.loadingClose(); }); } function rowFunction(taskId,maModelId,isSure,checkerId,preCollerNum) { var h = ""; h += ""; h += ""; h += ""; h += ""; return h; } function viewAudit(auditRemark){ $("#remarkForm input[name$='remarks']").val(auditRemark); JY.Model.check("remarkDiv"); } function viewApproval(approvalRemark){ $("#remarkForm input[name$='remarks']").val(approvalRemark); JY.Model.check("remarkDiv"); } function noEdit(){ layer.alert('机具领料任务已发布,不予修改!', { skin: 'layui-layer-molv' //样式类名 ,closeBtn: 0 }); } function check(taskId,maModelId,preCollerNum,checkerId) { console.log("id="+taskId+","+maModelId+","+preCollerNum+","+checkerId); JY.Model.confirm("确认发布吗?", function() { JY.Ajax.doRequest(null, bonuspath + '/backstage/receiveDetails/isSure', { taskId:taskId, maModelId:maModelId, preCollerNum:preCollerNum, checkerId:checkerId }, function(data) { JY.Model.info(data.resMsg, function() { search(); getbaseList(1); }); }); }); } function del(taskId,maModelId) { /*if (applyDate !== today) { layer.alert('领料时间不是今天,不允许进行删除操作', { skin: 'layui-layer-molv', // 样式类名 closeBtn: 0 }); return; // 退出函数 }*/ // 从 currentResults 中查找对应的记录 var record = currentResults.find(function(item) { return item.taskId == taskId && item.maModelId == maModelId; }); // 判断是否已确认 if (record && (record.isSure == 1 || record.isSure == "1")) { layer.alert('已确认的记录不允许删除!', { skin: 'layui-layer-molv', closeBtn: 0 }); return; // 阻止删除 } JY.Model.confirm("确认删除吗?", function() { JY.Ajax.doRequest(null, bonuspath + '/backstage/receiveDetails/del', { taskId : taskId, maModelId: maModelId }, function(data) { JY.Model.info(data.resMsg, function() { search(); }); }); }); } function setForm(data) { var l = data.obj; $("#auForm input[name$='id']").val(l.id); $("#auForm input[name$='taskId']").val(l.taskId); $("#auForm input[name$='model']").val(JY.Object.notEmpty(l.model)); $("#auForm input[name$='machinesNum']").val(JY.Object.notEmpty(l.machinesNum)); $("#auForm input[name$='outNum']").val(JY.Object.notEmpty(l.outNum)); $("#auForm input[name$='invoiceNum']").val(JY.Object.notEmpty(l.invoiceNum)); $("#auForm input[name$='invoiceUrl']").val(JY.Object.notEmpty(l.invoiceUrl)); $("#auForm input[name$='machinesUrl']").val(JY.Object.notEmpty(l.machinesUrl)); $("#auForm input[name$='batchStatus']").val(JY.Object.notEmpty(l.batchStatus)); } function cleanForm() { JY.Tags.cleanForm("auForm"); $("#auForm input[id$='batchId']").val("");// 上级资源 $("#auForm input[id$='maTypeId']").val(0); $("#auForm input[id$='maTypeName']").val(''); $("#auForm input[id$='maModelName']").val(''); $("#auForm input[id$='maModelId']").val(0); $("#auForm input[id$='machineNums']").val(''); $("#sums").html("0"); $("#preSums").html("0"); } function hideRole() { $("#roleContent").fadeOut("fast"); preisShow = false; } function search() { $("#searchBtn").trigger("click"); } function edit(taskId,maModelId) { /* if (applyDate !== today) { layer.alert('领料时间不是今天,不允许进行修改操作', { skin: 'layui-layer-molv', // 样式类名 closeBtn: 0 }); return; // 退出函数 }*/ $("#maTypeName").attr("readOnly",true); $("#maModelName").attr("readOnly",true); $(".maTree").css("display","none"); cleanForm(); JY.Ajax.doRequest(null, bonuspath + '/backstage/receiveDetails/find', { taskId : taskId, maModelId:maModelId }, function(data) { setDetaFrom(data); JY.Model.edit("auDiv", "修改", function() { if (JY.Validate.form("auForm")) { var that = $(this); var maModelId = $("#maModelId").val();//机具型号ID var machineNums = $("#machineNums").val();//填入需要机具数量 var serviceId = $("#serviceId").val(); //客服代表id if(parseFloat(machineNums)>parseFloat(machineTrue)){ layer.alert('库存不够,请重新填写数量!', { skin: 'layui-layer-molv' //样式类名 ,closeBtn: 0 }); }else if( parseInt(machineNums) <= 0 || String(machineNums).split('.')[1] != undefined){ layer.alert('请输入正整数', { skin: 'layui-layer-molv', //样式类名 closeBtn: 0 }); }else{ //machinesType原来的ID machinesModel修改后的ID JY.Ajax.doRequest(null, bonuspath+'/backstage/receiveDetails/update', {taskId:taskId, maModelId:maModelId, machinesNum:machineNums,serviceId:serviceId}, function(data) { JY.Model.info(data.obj, function() { that.dialog("close"); search(); }); }); } } }); }); } var typeId; function setDetaFrom(data){ var l = data.obj[0]; console.info(JSON.stringify(data)) console.info(l.maType) $("#maTypeName").val(l.maType);//机具类型名称 //$("#maTypeId").val(l.machinesId);//机具类型ID $("#maModelName").val(l.maModel);//规格型号名称 $("#maModelId").val(l.maModelId);//规格型号ID $("#machineNums").val(l.preCollerNum);//机具数量 $("#serviceName").val(l.customerSrep); $("#serviceId").val(l.customerSrepId); $("#checkName").val(l.checker); getMachineNum(l.maModelId); } function setAcceptsForm(data){ var l = data.obj; if(l.isTest == "1"){ $(".exteriorCheck").css("display","none"); }else{ $(".testCheck").css("display","none"); } typeId = l.typeId; $("#machineType").val(JY.Object.notEmpty(l.machineType)); $("#modelType").val(JY.Object.notEmpty(l.model)); $("#auAcceptForm input[name$='checkNum']").val(JY.Object.notEmpty(l.checkNum)); if(l.exteriorCheck == "1") { $('#exteriorCheck1').prop('checked',true); } if(l.exteriorCheck == "0") { $('#exteriorCheck0').prop('checked',true); } if(l.setestCheckx == "1") { $('#testCheck1').prop('checked',true); } if(l.testCheck == "0") { $('#testCheck0').prop('checked',true); } $("#checkConclusion").val(JY.Object.notEmpty(l.checkConclusion)); } function cleanAcceptsForm(){ $("#auAcceptForm input[name$='taskId']").val(""); $("#auAcceptForm input[name$='typeId']").val(""); $("#auAcceptForm input[name$='checkNum']").val(""); $("#auAcceptForm input[name$='machineType']").val(""); $("#auAcceptForm input[name$='model']").val(""); $('#exteriorCheck1').prop('checked',true); $('#testCheck1').prop('checked',true); $("#checkConclusion").val(""); } function setMaTypeForm(){ var maTypeId = localStorage.getItem("maTypeId"); var maTypeName = localStorage.getItem("maTypeName"); $("#maTypeId").val(maTypeId); $("#maTypeName").val(maTypeName); $("#maModelId").val(0); $("#maModelName").val(""); } function setCheckForm(){ var checkId = localStorage.getItem("checkId"); var checkName = localStorage.getItem("checkName"); $("#checkId").val(checkId); $("#checkName").val(checkName); } function setServiceForm(){ var serviceId = localStorage.getItem("serviceId"); var serviceName = localStorage.getItem("serviceName"); $("#serviceId").val(serviceId); $("#serviceName").val(serviceName); } function setMaModelForm(){ var maModelId = localStorage.getItem("maModelId"); var maModelName = localStorage.getItem("maModelName"); $("#maModelId").val(maModelId); $("#maModelName").val(maModelName); getMachineNum(maModelId); } function maTypeTree(){ localStorage.setItem("maTypeId",""); localStorage.setItem("maTypeName",""); localStorage.setItem("maTypeTreeName",$("#maTypeName").val()); layer.open({ type: 2, title:['物资名称','background-color: #438EB9;color:#fff'], shadeClose:true, shade:false, maxmin: true, area: ['400px', '400px'], content: bonuspath+'/backstage/machineType/maTypeTree' }); } function maModelTree(){ var maTypeId = $("#maTypeId").val(); if(maTypeId == "0"){ JY.Model.info("请选择物资名称!"); }else{ localStorage.setItem("maModelId",""); localStorage.setItem("maModelName",""); localStorage.setItem("maModelTreeName",$("#maModelName").val()); localStorage.setItem("maTypeTreeId",maTypeId); layer.open({ type: 2, title:['规格型号','background-color: #438EB9;color:#fff'], shadeClose:true, shade:false, maxmin: true, area: ['400px', '400px'], content: bonuspath+'/backstage/machineType/maModelTree' }); } } $('#delBatchBtn').on( 'click', function(e) { var taskId = localStorage.getItem("taskId"); JY.Model.confirm("确认发布吗?", function() { JY.Ajax.doRequest(null, bonuspath + '/backstage/receiveDetails/allSure', { taskId : taskId, }, function(data) { JY.Model.info(data.resMsg, function() { getbaseList(1); }); }); }); }); /** * 批量确认 * @returns */ function batchConfirmation(){ var vals = backShowChenkStatus(); var token = $("#token").val(); JY.Model.confirm("确认发布吗?", function() { JY.Ajax.doRequest(null, bonuspath + '/backstage/receiveDetails/isSures', { value:vals, token:token }, function(data) { JY.Model.info(data.resMsg, function() { search(); getbaseList(1); vals = ""; }); }); }); } /** * 批量删除 * @returns */ function batchDeletion(){ if (applyDate !== today) { layer.alert('领料时间不是今天,不允许进行批量删除操作', { skin: 'layui-layer-molv', // 样式类名 closeBtn: 0 }); return; // 退出函数 } var vals = backShowChenkStatus(); var token = $("#token").val(); JY.Model.confirm("确认删除吗?", function() { JY.Ajax.doRequest(null, bonuspath + '/backstage/receiveDetails/batchDeletion', { value:vals, token:token }, function(data) { JY.Model.info(data.resMsg, function() { search(); getbaseList(1); vals = ""; }); }); }); } function backShowChenkStatus(){ var vals = ''; $('input[type=checkbox]:checked').each(function(){ var val = $(this).val(); console.log("val=",val); vals += val+"-"; console.log("vals=",vals); }) return vals; } /** * 导入模板下载功能 */ // function templateDownload() { // // 1. 校验领料时间(与新增/删除逻辑保持一致,非今日不允许下载) // if (applyDate !== today) { // layer.alert('领料时间不是今天,不允许下载导入模板', { // skin: 'layui-layer-molv', // closeBtn: 0 // }); // return; // } // // // 2. 构造下载请求(携带必要参数:taskId,保证模板与当前任务关联) // var taskId = localStorage.getItem("taskId"); // var token = $("#token").val(); // 携带令牌,防止重复请求 // var downloadUrl = bonuspath + '/backstage/receiveDetails/downloadTemplate'; // // // 3. 构造隐藏表单提交(解决GET请求参数暴露/大小限制问题,支持POST下载) // var $form = $("
").attr({ // "method": "POST", // "action": downloadUrl, // "target": "_blank" // 新窗口打开,不阻塞当前页面 // }); // // 添加请求参数 // $form.append($("").attr({ // "type": "hidden", // "name": "taskId", // "value": taskId // })); // $form.append($("").attr({ // "type": "hidden", // "name": "token", // "value": token // })); // // 插入页面并提交 // $("body").append($form); // $form.submit(); // // 提交后移除表单 // $form.remove(); // // // 4. 友好提示 // layer.msg('正在下载导入模板,请稍后...', { // icon: 16, // shade: 0.1, // time: 1500 // }); // } function templateDownload() { var params = { } var url = bonuspath + '/backstage/receiveDetails/downloadTemplate' exportCommon(url,'POST', params,'机具类型表') } /** * 批量导入功能 */ function importData() { // 1. 校验领料时间(与其他操作逻辑保持一致) if (applyDate !== today) { layer.alert('领料时间不是今天,不允许进行批量导入操作', { skin: 'layui-layer-molv', closeBtn: 0 }); return; } // 2. 弹出文件选择层(使用layui/layer实现美观的文件上传界面) layer.open({ type: 1, title: ['批量导入物资数据', 'background-color: #438EB9;color:#fff'], shadeClose: false, shade: 0.3, area: ['450px', '220px'], content: '
' + '
' + ' ' + ' ' + ' (仅支持xlsx/xls格式)' + '
' + '
' + ' ' + ' ' + '
' + '
', success: function(layero, index) { // 3. 取消按钮事件 $("#cancelImport").on('click', function() { layer.close(index); // 清空文件选择 $("#importFile").val(""); }); // 4. 确认导入按钮事件 $("#submitImport").on('click', function() { var file = $("#importFile")[0].files[0]; // 4.1 校验文件是否选择 if (!file) { layer.tips('请先选择要导入的Excel文件', '#importFile', { tips: [1, '#FF5722'], time: 2000 }); return; } // 4.2 校验文件格式 var fileName = file.name; var suffix = fileName.substring(fileName.lastIndexOf(".")).toLowerCase(); if (suffix !== ".xlsx" && suffix !== ".xls") { layer.alert('仅支持导入xlsx/xls格式的Excel文件,请重新选择', { skin: 'layui-layer-molv', closeBtn: 0 }); $("#importFile").val(""); return; } // 4.3 构造FormData(用于上传文件) var formData = new FormData(); formData.append("importFile", file); // 文件对象 formData.append("taskId", localStorage.getItem("taskId")); // 当前任务ID formData.append("token", $("#token").val()); // 令牌 // 4.4 显示加载提示 var loadIndex = layer.load(2, { shade: [0.3, '#000'], time: 0 }); // 4.5 异步上传文件(使用jQuery Ajax实现文件上传) $.ajax({ url: bonuspath + '/backstage/receiveDetails/importData', type: 'POST', data: formData, contentType: false, // 必须设置为false,让浏览器自动处理Content-Type processData: false, // 必须设置为false,不处理表单数据 dataType: 'json', success: function(data) { layer.close(loadIndex); layer.close(index); $("#importFile").val(""); if (data.resCode === "0000") { layer.alert(data.resMsg, { skin: 'layui-layer-molv', closeBtn: 0 }, function() { getbaseList(1); layer.closeAll(); }); } else { // 拆分错误信息,实现换行展示 var errorMsg = data.resMsg.replace(/\n/g, '
'); layer.alert(errorMsg, { skin: 'layui-layer-molv', closeBtn: 0, html: true // 允许展示HTML标签(br换行) }); } }, error: function(xhr, status, error) { // 异常处理 layer.close(loadIndex); layer.close(index); $("#importFile").val(""); layer.alert('导入请求异常,请联系管理员', { skin: 'layui-layer-molv', closeBtn: 0 }); console.error("导入异常:", error); } }); }); } }); }