let ticketTypeParam, proTypeParam; let form, layer, table,orgList,riskLevelList = getRiskLevelSelect('risk_level'); let pageNum = 1, limitSize = 50; // 默认第一页,分页数量为10 let laypage; function setParams(chooseType,ticketType,proType) { if(chooseType === 1){ proTypeParam = proType; ticketTypeParam = ticketType === 'B' ? '2,3':'4,5'; }else if(chooseType === 2){ proTypeParam = ''; ticketTypeParam = ticketType; } layui.config({ base: "../../../js/layui/", //此处路径请自行处理, 可以使用绝对路径 }).extend({ formSelects: 'formSelects-v4' }).use(['form', 'layer', 'table','formSelects','laypage'], function () { form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功 table = layui.table; laypage = layui.laypage; //分页 layer = layui.layer; formSelects = layui.formSelects; setRiskLevel(); orgList = getOrgNumAndRateByTicket(1); setOrg(); layui.form.render(); // initTable(); pages(1, 50, 1); }) } function pages(pageNum, pageSize, typeNum) { let params = getReqParams(pageNum, pageSize, typeNum); $.ajax({ headers: { "encrypt": sm3(JSON.stringify(params)) }, url: dataUrl + "proteam/pot/home/getTicketList?token=" + token, data: params, type: 'POST', async: false, success: function (result) { if (result.code === 200) { if (result.data) { initTable(result.data, result.limit, result.curr) laypages(result.count, result.curr, result.limit) } } else if (result.code === 500) { layer.alert(result.msg, {icon: 2}) } else if (result.code === 401) { logout(1); } }, error: function () { } }); } function laypages(total, page, limit) { laypage.render({ elem: 'voi-page', count: total, curr: page, limit: limit, limits: [30,50,100], layout: ['prev', 'page', 'next', 'skip', 'count', 'limit'], groups: 5, jump: function (obj, first) { if (!first) { pageNum = obj.curr, limitSize = obj.limit; pages(obj.curr, obj.limit, null); } } }); } function initTable(dataList, limit, page) { let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, scrollbar: false, time: 0,}); table.render({ elem: "#ticketTable", id: "ticketTable", height: "full-260", data: dataList, limit: limit, cols: [ [ //表头 {title: "序号", width: 80, unresize: true, align: "center", templet: function (d) { return (page - 1) * limit + d.LAY_INDEX; } }, {field: "buildName",title: "建管单位",width: 120, unresize: true, align: "center",sort:true}, {field: "ticketType",title: "作业票类别",width: 150,unresize: true, align: "center",sort: true}, {field: "signName", title: "单项工程名称", width: 300, unresize: true, align: "center",sort: true}, {field: "ticketName", title: "作业票名称", width: 300, unresize: true, align: "center",sort: true}, {field: "foreman", title: "班组长", width: 100, unresize: true, align: "center",sort: true}, {field: "workContent", title: "作业内容", width: 400, unresize: true, align: "center",sort: true, templet: function (d) { if(d.workContent){ if(d.workContent.length > 60){ return '' + d.workContent.substring(0, 60) + '...'; }else{ return '' + d.workContent + ''; } }else{ return ''; } }}, {field: "riskType", title: "风险等级", width: 120, unresize: true, align: "center",sort: true,templet: function (d) { return setRiskLevelColor(d.riskType); }}, {field: "ticketNo", title: "作业票编号", width: 300, unresize: true, align: "center",sort: true}, {field: "riskRetestType", title: "风险复测等级", width: 170, unresize: true, align: "center",sort: true,templet: function (d) { return setRiskLevelColor(d.riskRetestType); }}, ], ], done: function (res, curr, count) { layer.close(loadingMsg); $(".layui-laypage-skip").css("display","none"); table.resize("ticketTable"); count || this.elem.next(".layui-table-view").find(".layui-table-header").css("display", "inline-block"); count || this.elem.next(".layui-table-view").find(".layui-table-box").css("overflow", "auto"); let that = this.elem.next(); if(res.data){ res.data.forEach(function (item, index) { if (index % 2 === 0) { let tr = that.find(".layui-table-box tbody tr[data-index='" + index + "']").css('background-color', '#06182E') } else { let tr = that.find(".layui-table-box tbody tr[data-index='" + index + "']").css('background-color', '#1F2F43') } }) } }, }); } // 获取参数 function getReqParams(page, limit, type) { let obj = {}; if(!type){ obj = { page: page + "", limit: limit + "", buildCode: formSelects.value('buildCode', 'val').toString(), ticketName: $("#ticketName").val(), ticketNo: $("#ticketNo").val(), riskType: formSelects.value('riskType', 'val').toString(), signName: $("#signName").val(), foreman: $("#foreman").val(), proType:proTypeParam }; }else{ obj = { page: '1', limit: '50', buildCode: formSelects.value('buildCode', 'val').toString(), ticketName: '', ticketNo: '', riskType: ticketTypeParam, signName: '', foreman: '', proType:proTypeParam }; } return obj; } // 地市工程数量和占比 function getOrgNumAndRateByTicket(type){ let dataList = []; let params = getReqParams(pageNum, limitSize, type); $.ajax({ url: dataUrl + 'proteam/pot/home/getOrgNumAndRateByTicket?token=' + token, headers: { "encrypt": sm3(JSON.stringify(params)) }, data: params, type: 'POST', async: false, success: function (result) { if(result.code === 200){ let data = result.data; if (data && data.length > 0) { $.each(data, function (index, item) { dataList.push(item) }) } }else if(result.code === 500){ return layer.alert(result.msg, {icon: 2}) }else{ logout(1); } }, error: function () { } }); return dataList; } /*建管单位赋值*/ function setOrg(buildCodeParam) { let keys = []; $.each(orgList, function (index, item) { let temp = { "name": item.name + "(" +item.num + "," +item.rate + ")", "value": item.code, "titleName":item.name }; keys.push(temp); }) formSelects.data('buildCode', 'local', { arr: keys }); layui.form.render(); } /* 风险等级赋值 */ function setRiskLevel() { let keys = []; $.each(riskLevelList, function (index, item) { let temp = { "name": item.name, "value": item.code }; keys.push(temp); }) formSelects.data('riskType', 'local', { arr: keys }); if(ticketTypeParam){ let riskLevelArr = ticketTypeParam.split(','); formSelects.value('riskType', riskLevelArr) } layui.form.render(); } // 查询/重置 function query(type) { let pattern = new RegExp("[%_<>]"); if (pattern.test($("#ticketName").val())) { $("#ticketName").val(''); return layer.msg('作业票名称查询包含特殊字符,请重新输入', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); } if (pattern.test($("#ticketNo").val())) { $("#ticketNo").val(''); return layer.msg('作业票编号查询包含特殊字符,请重新输入', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); } if (pattern.test($("#signName").val())) { $("#signName").val(''); return layer.msg('单项工程名称查询包含特殊字符,请重新输入', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); } if (pattern.test($("#foreman").val())) { $("#foreman").val(''); return layer.msg('班组长查询包含特殊字符,请重新输入', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); } let buildCode = formSelects.value('buildCode', 'val'); orgList = getOrgNumAndRateByTicket(); setOrg(); formSelects.value('buildCode', buildCode) pages(1, limitSize) } // 关闭页面 function closePage(type) { let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引 parent.layer.close(index); //再执行关闭 } function exportData(op) { let loadingMsg = layer.msg("数据导出中,请稍候...", {icon: 16, scrollbar: false, time: 0,}); let pattern = new RegExp("[%_<>]"); if (pattern.test($("#ticketName").val())) { $("#ticketName").val(''); return layer.msg('作业票名称查询包含特殊字符,请重新输入', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); } if (pattern.test($("#ticketNo").val())) { $("#ticketNo").val(''); return layer.msg('作业票编号查询包含特殊字符,请重新输入', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); } if (pattern.test($("#signName").val())) { $("#signName").val(''); return layer.msg('单项工程名称查询包含特殊字符,请重新输入', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); } if (pattern.test($("#foreman").val())) { $("#foreman").val(''); return layer.msg('班组长查询包含特殊字符,请重新输入', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); } // getReqParams(pageNum, limitSize, type); let url = dataUrl + "proteam/pot/home/exportTicket?" + getParam()+'&token='+token; let xhr = new XMLHttpRequest(); let a = document.createElement("a"); xhr.open("get", url, true); xhr.responseType = "blob"; // 转换流 xhr.setRequestHeader("encrypt",sm3(JSON.stringify(getParam()))); xhr.onload = function () { layer.close(loadingMsg); if (this.status === 200) { let url = window.URL.createObjectURL(new Blob([this.response])) let link = document.createElement('a') link.style.display = 'none' link.href = url link.setAttribute('download', "作业票.xlsx") document.body.appendChild(link) link.click() // 释放URL对象所占资源 window.URL.revokeObjectURL(url) // 用完即删 document.body.removeChild(link) } else { layer.msg("数据发生异常,请稍后重试", {icon: 16, scrollbar: false, time: 2000}); } }; xhr.send(); } function getParam(){ var params="buildCode="+ formSelects.value('buildCode', 'val').toString()+"&ticketName="+$("#ticketName").val()+ "&ticketNo="+$("#ticketNo").val()+"&riskType="+formSelects.value('riskType', 'val').toString()+ "&signName="+$("#signName").val()+"&foreman="+ $("#foreman").val()+ "&proType="+proTypeParam; return params; }