let form, layer, table, formSelects, orgIdParam, classIdParam, checkedType, riskLevelList; let pageNum = 1, limitSize = 30; // 默认第一页,分页数量为10 function setParams(orgId, type, classId) { let html = '球机未开机详情'; if (type === '2') { html = '球机在线时长不合格详情'; } checkedType = type; orgIdParam = orgId; classIdParam = classId; $('.closePage').find('p').html(html) layui.config({ base: "../../../js/layui/", //此处路径请自行处理, 可以使用绝对路径 }).extend({ formSelects: 'formSelects-v4' }).use(['form', 'layer', 'table', 'formSelects'], function () { form = layui.form; layer = layui.layer; table = layui.table; formSelects = layui.formSelects; riskLevelList = getRiskLevelSelect('risk_level'); setRiskLevel(); pages(1, 30, 1); }) } function pages(pageNum, pageSize, typeNum) { let params = getReqParams(pageNum, pageSize, typeNum); let url = dataUrl + "proteam/pot/ballStatusStatistic/getBallOffLineList?token=" + token; if (checkedType === '2') { url = dataUrl + "proteam/pot/ballStatusStatistic/getBallBhgDetailList?token=" + token; } $.ajax({ headers: { "encrypt": sm3(JSON.stringify(params)) }, url: url, 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) { layui.use(['laypage'], function () { let laypage = layui.laypage; 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,}); tableIns = table.render({ elem: "#ballStatusDetailTable", height: "full-160", data: dataList, limit: limit, cols: [setTableColByType(checkedType, page, limit)], done: function (res, curr, count) { layer.close(loadingMsg); table.resize("ballStatusDetailTable"); 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"); }, }); } // 表格字段 function setTableColByType(value, page, limit) { let cols = []; if (value === '1') { cols = [{ title: "序号", width: 80, unresize: true, align: "center", templet: function (d) { return (page - 1) * limit + d.LAY_INDEX; } }, { field: "orgName", title: "建管单位", unresize: true, align: "center", sort: true }, { field: "ticketNo", title: "作业票号", unresize: true, align: "center", sort: true }, { field: "proName", title: "工程名称", unresize: true, align: "center", sort: true }, { title: "风险等级", unresize: true, align: "center", sort: true, templet: function (d) { return setRiskLevelColor(d.riskLevel); } }, { title: "班组负责人", unresize: true, align: "center", sort: true, templet: function (d) { return '' + setValue2(d.workManager) + '
' + setValue2(d.workManagerPhone) + '' } }, { title: "球机状态", unresize: true, align: "center", sort: true, templet: function (d) { return '未开机' } }] } else if (value === '2') { cols = [{ title: "序号", width: 80, unresize: true, align: "center", templet: function (d) { return (page - 1) * limit + d.LAY_INDEX; } }, { field: "orgName", title: "建管单位", unresize: true, align: "center", sort: true }, { field: "ticketNo", title: "作业票号", unresize: true, align: "center", sort: true }, { field: "proName", title: "工程名称", unresize: true, align: "center", sort: true }, { title: "风险等级", unresize: true, align: "center", sort: true, templet: function (d) { return setRiskLevelColor(d.riskLevel); } }, { title: "班组负责人", unresize: true, align: "center", sort: true, templet: function (d) { return '' + setValue2(d.workManager) + '
' + setValue2(d.workManagerPhone) + '' } }, { field: "kgTime", title: "开工时长", unresize: true, align: "center", sort: true }, { field: "ballOnlineTime", title: "球机在线时长", unresize: true, align: "center", sort: true }] } return cols; } // 获取参数 function getReqParams(page, limit, type) { let obj = {}; if (!type) { obj = { page: page + "", limit: limit + "", type: $('#type').val(), keyWord: $('#keyWord').val(), orgId: orgIdParam, id: classIdParam, riskLevel: formSelects.value('riskLevel', 'val').toString(), }; } else { obj = { page: '1', limit: '30', type: '1', keyWord: '', orgId: orgIdParam, id: classIdParam, riskLevel: '', }; } return obj; } function query(type) { let pattern = new RegExp("[%_<>]"); if (pattern.test($("#keyWord").val())) { $("#keyWord").val(''); return layer.msg('关键字查询包含特殊字符,请重新输入', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); } pageNum = 1; pages(1, limitSize) } /*导出*/ function exportData() { let fileName = '球机未开机详情'; if (checkedType === '2') { fileName = '球机在线时长不合格详情'; } let keyWord = $('#keyWord').val(), riskLevel = formSelects.value('riskLevel', 'val').toString(); let loadingMsg = layer.msg("数据导出中,请稍候...", {icon: 16, scrollbar: false, time: 0,}); let url = dataUrl + "proteam/pot/ballStatusStatistic/exportData?keyWord=" + keyWord + "&riskLevel=" + riskLevel + "&type=" + checkedType + "&orgId=" + orgIdParam + "&id=" + classIdParam + "&token=" + token; let xhr = new XMLHttpRequest(); xhr.open("get", url, true); xhr.responseType = "blob"; // 转换流 xhr.setRequestHeader("encrypt", sm3(JSON.stringify({ keyWord: keyWord, riskLevel: riskLevel, type: checkedType, orgId: orgIdParam, id: classIdParam }))); xhr.onload = function () { layer.close(loadingMsg); if (this.status === 200) { let blob = this.response; var a = document.createElement("a"); var url = window.URL.createObjectURL(blob); a.href = url; a.download = fileName + getNowDate() + ".xlsx"; // 文件名 } else { layer.msg("数据发生异常,请稍后重试", {icon: 16, scrollbar: false, time: 2000}); } a.click(); window.URL.revokeObjectURL(url); }; xhr.send(); } /* 风险等级赋值 */ function setRiskLevel() { let keys = []; $.each(riskLevelList, function (index, item) { let temp = { "name": item.name, "value": item.code }; keys.push(temp); }) formSelects.data('riskLevel', 'local', { arr: keys }); layui.form.render(); } function closePage() { let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引 parent.layer.close(index); //再执行关闭 }