IntelligentRecognition/ah-jjsp-web/.svn/pristine/ca/ca5cd49bf080e518f2362ce51ec...

344 lines
12 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 '<span title="' + d.workContent + '">' + d.workContent.substring(0, 60) + '...</span>';
}else{
return '<span title="' + d.workContent + '">' + d.workContent + '</span>';
}
}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;
}