279 lines
10 KiB
JavaScript
279 lines
10 KiB
JavaScript
|
|
let form, layer, table, tableIns, myChart, teamLeaderNumberParam = null, classIdParam = null,teamIdParam;
|
|||
|
|
let dataobj = {};
|
|||
|
|
function setParams(teamLeaderNumber, classId,teamId) {
|
|||
|
|
teamIdParam=teamId;
|
|||
|
|
if(!teamLeaderNumber || teamLeaderNumber === 'null'){
|
|||
|
|
teamLeaderNumber = null;
|
|||
|
|
}
|
|||
|
|
teamLeaderNumberParam = teamLeaderNumber, classIdParam = classId;
|
|||
|
|
layui.use(['form', 'layer', 'table'], function () {
|
|||
|
|
form = layui.form;
|
|||
|
|
layer = layui.layer;
|
|||
|
|
table = layui.table;
|
|||
|
|
form.on('radio(demo-radio-filter)', function (data) {
|
|||
|
|
var elem = data.elem; // 获得 radio 原始 DOM 对象
|
|||
|
|
var value = elem.value; // 获得 radio 值
|
|||
|
|
myChart.dispose();
|
|||
|
|
myChart = echarts.init(document.getElementById('voi-echarts'));
|
|||
|
|
console.log(dataobj);
|
|||
|
|
if (value === 'level') {
|
|||
|
|
initEchartsOne(dataobj.level, '违章等级');
|
|||
|
|
} else if (value === 'type') {
|
|||
|
|
initEchartsOne(dataobj.type, '违章类型');
|
|||
|
|
} else if (value === '装置违章') {
|
|||
|
|
initEchartsOne(dataobj.device_voi, '装置违章');
|
|||
|
|
} else if (value === '管理违章') {
|
|||
|
|
initEchartsOne(dataobj.manage_voi, '管理违章');
|
|||
|
|
} else if (value === '行为违章') {
|
|||
|
|
initEchartsOne(dataobj.active_voi, '行为违章');
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
myChart = echarts.init(document.getElementById('voi-echarts'));
|
|||
|
|
teamVoiNumAjax();
|
|||
|
|
initTable();
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
// 班组违章类型、违章等级数量
|
|||
|
|
function teamVoiNumAjax() {
|
|||
|
|
let url = dataUrl + 'proteam/pot/superStatistics/getTeamVoiNum';
|
|||
|
|
let params = {
|
|||
|
|
'teamLeaderNumber': teamLeaderNumberParam,
|
|||
|
|
'classId': classIdParam,
|
|||
|
|
'teamId':teamIdParam
|
|||
|
|
};
|
|||
|
|
ajaxRequest(url, "POST", params, true, function () {
|
|||
|
|
}, function (result) {
|
|||
|
|
console.log(result);
|
|||
|
|
setVoiData(result.data);
|
|||
|
|
if (parseInt(result.code) == 200) {
|
|||
|
|
} else if (parseInt(result.code) === 500) {
|
|||
|
|
layer.alert('服务异常', { icon: 2 })
|
|||
|
|
} else if (parseInt(result.code) === 401) {
|
|||
|
|
logout(1);
|
|||
|
|
}
|
|||
|
|
}, function (xhr) {
|
|||
|
|
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
function setVoiData(result) {
|
|||
|
|
let cent = '<input type="radio" name="voi" value="level" title="违章等级" checked lay-filter="demo-radio-filter">';
|
|||
|
|
let html = '<input type="radio" name="voi" value="type" title="违章类型" lay-filter="demo-radio-filter">';
|
|||
|
|
let levelNumList = result.levelNumList;
|
|||
|
|
let typeNumList = result.typeNumList;
|
|||
|
|
let manage_voi = result.manage_voi;
|
|||
|
|
let active_voi = result.active_voi;
|
|||
|
|
let device_voi = result.device_voi;
|
|||
|
|
if (levelNumList && levelNumList.length > 0) {
|
|||
|
|
$.each(levelNumList, function (index, item) {
|
|||
|
|
cent += '<p>' + item.name + '数量:' + item.value + '</p>';
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
if (typeNumList && typeNumList.length > 0) {
|
|||
|
|
$.each(typeNumList, function (index, item) {
|
|||
|
|
html += '<input type="radio" name="voi" value="' + item.name + '" title="' + item.name + '(' + item.value + ')" lay-filter="demo-radio-filter">'
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
dataobj.level = levelNumList;
|
|||
|
|
dataobj.type = typeNumList;
|
|||
|
|
dataobj.manage_voi = manage_voi;
|
|||
|
|
dataobj.active_voi = active_voi;
|
|||
|
|
dataobj.device_voi = device_voi;
|
|||
|
|
$('.layui-form .layui-form-item').eq(0).empty().append(cent);
|
|||
|
|
$('.layui-form .layui-form-item').eq(1).empty().append(html);
|
|||
|
|
layui.form.render();
|
|||
|
|
myChart.dispose();
|
|||
|
|
myChart = echarts.init(document.getElementById('voi-echarts'));
|
|||
|
|
initEchartsOne(levelNumList, '违章等级');
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function initEchartsOne(valueList, title) {
|
|||
|
|
let fontSize = '14', fontFamily = 'Alibaba PuHuiTi R', fontColor = '#000';
|
|||
|
|
let option = {
|
|||
|
|
color: ['#37a2da', '#32c5e9', '#9fe6b8', '#ffdb5c', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378ea'],
|
|||
|
|
tooltip: {
|
|||
|
|
trigger: 'item',
|
|||
|
|
formatter: '{a} <br/>{b} : {c} ({d}%)',
|
|||
|
|
textStyle: {
|
|||
|
|
color: fontColor,
|
|||
|
|
fontFamily: fontFamily
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
toolbox: {
|
|||
|
|
show: true,
|
|||
|
|
},
|
|||
|
|
legend: {
|
|||
|
|
x: '10%', //水平位置,【left\center\right\数字】
|
|||
|
|
y: '420', //垂直位置,【top\center\bottom\数字】
|
|||
|
|
align: 'left', //字在图例的左边或右边【left/right】
|
|||
|
|
orient: 'horizontal', //图例方向【horizontal/vertical】
|
|||
|
|
icon: 'circle', //图例形状【circle\rect\roundRect\triangle\diamond\pin\arrow\none】
|
|||
|
|
textStyle: {
|
|||
|
|
color: '#000',
|
|||
|
|
fontFamily: fontFamily,
|
|||
|
|
fontSize: fontSize
|
|||
|
|
},
|
|||
|
|
formatter: function (name) {
|
|||
|
|
let res = valueList.filter((v) => v.name === name);
|
|||
|
|
res = res[0] || {};
|
|||
|
|
const p = res.value;
|
|||
|
|
return name + '(' + p + ')';
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
series: [
|
|||
|
|
{
|
|||
|
|
name: title,
|
|||
|
|
type: 'pie',
|
|||
|
|
radius: [0, 130],
|
|||
|
|
center: ["50%", "40%"],
|
|||
|
|
label: {
|
|||
|
|
textStyle: {
|
|||
|
|
color: '#000',
|
|||
|
|
fontFamily: fontFamily,
|
|||
|
|
fontSize: fontSize
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
data: valueList,
|
|||
|
|
},
|
|||
|
|
],
|
|||
|
|
};
|
|||
|
|
myChart.setOption(option, true);
|
|||
|
|
window.addEventListener("resize", function () {
|
|||
|
|
myChart.resize();
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/*初始化表格*/
|
|||
|
|
function initTable(dataList, limit, page) {
|
|||
|
|
let loadingMsg = layer.msg("数据加载中,请稍候...", { icon: 16, scrollbar: false, time: 0, });
|
|||
|
|
tableIns = table.render({
|
|||
|
|
elem: "#violationStatisticsTable",
|
|||
|
|
id: "violationStatisticsTable",
|
|||
|
|
// height: "full-230",
|
|||
|
|
// data: dataList,
|
|||
|
|
// limit: limit,
|
|||
|
|
url: dataUrl + "proteam/pot/superStatistics/getTeamVoiHistory?token=" + token,
|
|||
|
|
method: 'POST',
|
|||
|
|
where: {
|
|||
|
|
teamLeaderNumber: teamLeaderNumberParam,
|
|||
|
|
classId: classIdParam,
|
|||
|
|
teamId: teamIdParam
|
|||
|
|
},
|
|||
|
|
height: "full-30",
|
|||
|
|
page: {
|
|||
|
|
layout: ['prev', 'page', 'next', 'skip', 'count', 'limit'],
|
|||
|
|
groups: 5, //只显示 5 个连续页码
|
|||
|
|
limits: [30, 50, 100],
|
|||
|
|
limit: 50,
|
|||
|
|
curr: 1
|
|||
|
|
},
|
|||
|
|
response: {
|
|||
|
|
statusCode: 200 //重新规定成功的状态码为 200,table 组件默认为 0
|
|||
|
|
},
|
|||
|
|
parseData: function (res) { // res 即为原始返回的数据
|
|||
|
|
return {
|
|||
|
|
"code": res.code,
|
|||
|
|
"msg": res.msg,
|
|||
|
|
"count": res.count,
|
|||
|
|
"data": res.data,
|
|||
|
|
"limit": res.limit,
|
|||
|
|
"curr": res.curr
|
|||
|
|
};
|
|||
|
|
},
|
|||
|
|
cols: [[
|
|||
|
|
//表头
|
|||
|
|
{
|
|||
|
|
title: "序号",
|
|||
|
|
width: 70,
|
|||
|
|
unresize: true,
|
|||
|
|
align: "center",
|
|||
|
|
templet: function (d) {
|
|||
|
|
// return (page - 1) * limit + d.LAY_INDEX;
|
|||
|
|
return d.LAY_NUM;
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
field: "teamName",
|
|||
|
|
title: "班组名称",
|
|||
|
|
width: 200,
|
|||
|
|
unresize: true,
|
|||
|
|
align: "center",
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
field: "teamLeader",
|
|||
|
|
title: "班组长",
|
|||
|
|
width: 150,
|
|||
|
|
unresize: true,
|
|||
|
|
align: "center",
|
|||
|
|
templet: function (d) {
|
|||
|
|
return '<span>' + d.workManager + '</span><span>' + d.workManagerPhone + '</span>';
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
field: "type",
|
|||
|
|
title: "违章类型",
|
|||
|
|
width: 140,
|
|||
|
|
unresize: true,
|
|||
|
|
align: "center",
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
field: "childType",
|
|||
|
|
title: "违章子类型",
|
|||
|
|
width: 200,
|
|||
|
|
unresize: true,
|
|||
|
|
align: "center",
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
field: "levelId",
|
|||
|
|
title: "违章等级",
|
|||
|
|
width: 140,
|
|||
|
|
unresize: true,
|
|||
|
|
align: "center",
|
|||
|
|
templet: function (d) {
|
|||
|
|
if (d.levelId === '严重违章') {
|
|||
|
|
return '<span style="color: #ff5d5d;">' + d.levelId + '</span>';
|
|||
|
|
}
|
|||
|
|
return '<span>' + d.levelId + '</span>';
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
field: "content",
|
|||
|
|
title: "违章内容",
|
|||
|
|
width: 500,
|
|||
|
|
unresize: true,
|
|||
|
|
align: "center",
|
|||
|
|
templet: function (d) {
|
|||
|
|
if (d.content) {
|
|||
|
|
if (d.content.length > 110) {
|
|||
|
|
return '<span title="' + d.content + '">' + d.content.substring(0, 110) + '...</span>'
|
|||
|
|
} else {
|
|||
|
|
return '<span title="' + d.content + '">' + d.content + '</span>'
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
return '';
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
},]
|
|||
|
|
],
|
|||
|
|
done: function (res, curr, count) {
|
|||
|
|
layer.close(loadingMsg);
|
|||
|
|
$(".layui-table-main tr").each(function (index, val) {
|
|||
|
|
$($(".layui-table-fixed .layui-table-body tbody tr")[index]).height($(val).height());
|
|||
|
|
});
|
|||
|
|
//动态监听表体高度变化,冻结行跟着改变高度
|
|||
|
|
$(".layui-table-body tr").resize(function () {
|
|||
|
|
$(".layui-table-body tr").each(function (index, val) {
|
|||
|
|
$($(".layui-table-fixed .layui-table-body table tr")[index]).height($(val).height());
|
|||
|
|
});
|
|||
|
|
});
|
|||
|
|
//初始化高度,使得冻结行表体高度一致
|
|||
|
|
$(".layui-table-body tr").each(function (index, val) {
|
|||
|
|
$($(".layui-table-fixed .layui-table-body table tr")[index]).height($(val).height());
|
|||
|
|
});
|
|||
|
|
table.resize("violationStatisticsTable");
|
|||
|
|
// pageNum = res.curr, limitSize = res.limit;
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
}
|