@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<style>
* {
font-size:16px;
}
#kdxfxChart .layui-table-view .layui-table[lay-size=sm] .layui-table-cell {
line-height: 15px;
}
.layui-table tbody tr:hover {
background-color: #04274d;
}
.tablediv1 .layui-table-header .layui-table {
border: 1px solid white !important;
margin-bottom: 0px !important;
}
.tablediv1 {
background-color: #052a4d;
}
.tablediv1 .layui-table-header {
/*border: 1px solid white;*/
background-color: #052a4d !important;
}
.tablediv1 .layui-table-view .layui-table td, .layui-table-view .layui-table th {
padding: 5px 0;
border-top: none;
border: 1px solid white;
}
.tablediv1 .layui-table {
background-color: #052a4d !important;
}
.tablediv1 .layui-table thead tr {
background-color: #052a4d !important;
}
.tablediv1 .layui-table[lay-even] tr:nth-child(even) {
background-color: #052a4d !important;
}
.tablediv1 .layui-table tbody tr:hover, .statistics_branch_one .layui-table tbody tr:hover {
background-color: #052a4d !important;
}
.tablediv1 .layui-table-header{
border-style: none !important;
}
.tablediv .layui-table td, .layui-table th {
border: 1px solid white !important;
}
.tablediv .layui-table-init {
background-color: transparent !important;
}
.item {
/*flex:1;*/
width: 70px;
height: 30px;
border-radius: 5px;
border: 1px solid white;
background: #ccc;
text-align: center;
line-height: 30px;
}
.item:hover {
background: #2918ff;
cursor: pointer;
}
.layui-btn-group .layui-btn {
background: #004273;
width: 50px;
border: .02vw solid rgb(40, 229, 233);
}
.selectedColor {
/*background: rgba(40, 229, 233, .5) !important;*/
}
</style>
</head>
<body style="height:500px;background-color:black;">
<div id="kdxfx" class="airtitle" style=" height:100%;width:100%;">
<div class="title-box">
<div id="realhourTitle" class="title">
季度月度数据变化
@*<span id="realtime1" style="color:rgba(0,255,255,.819608)"></span>*@
</div>
@*<div class="layui-btn-group" style="display:flex;flex-direction:row;justify-content:flex-end;margin-left: 2px;">*@
<div class="layui-btn-group" style="position:absolute;right:10px;top:0px">
<button type="button" name="paramType4" class="layui-btn layui-btn-sm selectedColor" style="width:80px;position: relative; top: -4px;" data-value="PM25">PM<sub>2.5</sub></button>
<button type="button" name="paramType4" class="layui-btn layui-btn-sm" style="width:80px;" data-value="优良天数比率">优良率</button>
<button type="button" name="paramType4" class="layui-btn layui-btn-sm" style="width:80px;" data-value="优良天数">优良天数</button>
</div>
@*<div style="display:flex;flex-direction:row;justify-content:flex-end">
<div class="item" onclick="KHPMHome.LoadRealTablePM('tbrealpm','PM25')">PM2.5</div>
<div class="item" onclick="KHPMHome.LoadRealTablePM('tbrealpm','优良天数比率')">优良率</div>
<div class="item" onclick="KHPMHome.LoadRealTablePM('tbrealpm','优良天数')">优良率天数</div>
</div>*@
</div>
<div id="kdxfxChart" class="tablediv1" style=" width: 100%; height: calc(100% - 2rem);overflow: scroll;">
<div id="tbrealpm" lay-skin="line" lay-filter="tbrealpm"></div>
</div>
</div>
</body>
</html>
<script>
var layer, table, AType;
$(document).ready(function () {
$('button[name="paramType4"]').eq(0).addClass('selectedColor');
$('button[name="paramType4"]').on('click', function (item,index) {
$(this).addClass('selectedColor').siblings().removeClass('selectedColor');
$("button[name='paramType4']").each(function (i, n) {
if ($(n).hasClass('selectedColor')) {
AType = $(n).data('value');
}
});
switch (AType) {
case 'PM25':
KHPMHome.LoadRealTablePM('tbrealpm', 'PM25');
break;
case '优良天数比率':
KHPMHome.LoadRealTablePM('tbrealpm', '优良天数比率');
break;
case '优良天数':
KHPMHome.LoadRealTablePM('tbrealpm', '优良天数');
break;
}
})
layui.use(['layer', 'table'], function () {
table = layui.table;
layer = layui.layer;
KHPMHome.LoadRealTablePM('tbrealpm', 'PM25')
});
var KHPMHome = {
curTime: null,
LoadRealTablePM: function (name, ParamType) {
$.post('/TrendAnalysis/GetDataChange', { ParamType }, function (res) {
if (res != null) {
table.render({
elem: "#" + name,
id: 'name',
even: false, //隔行背景
size: 'sm',
data: res,
limit: 100,
height: $('#kdxfxChart').height() - 30,
cols: [[
{ field: 'ParamType', title: '名称', width: 60, align: 'center' },
{ field: 'SDateTime', title: '年度', width: 60,align: 'center' },
{ field: 'TimeType', title: '范围', width: 60, align: 'center' },
{ field: '_1月', title: '1月', width: 58, align: 'center' },
{ field: '_2月', title: '2月', width: 58, align: 'center' },
{ field: '_3月', title: '3月', width: 58, align: 'center' },
{ field: '_4月', title: '4月', width: 58, align: 'center' },
{ field: '_5月', title: '5月', width: 58, align: 'center' },
{ field: '_6月', title: '6月', width: 58, align: 'center' },
{ field: '_7月', title: '7月', width: 58, align: 'center' },
{ field: '_8月', title: '8月', width: 58, align: 'center' },
{ field: '_9月', title: '9月', width: 58, align: 'center' },
{ field: '_10月', title: '10月', width: 58, align: 'center' },
{ field: '_11月', title: '11月', width: 58, align: 'center' },
{ field: '_12月', title: '12月', width: 58, align: 'center' },
]],
done: function (res, curr, count) {
KHPMHome.merge(res, curr, count);
}
});
}
})
},
merge: function (res, curr, count) {
debugger
var data = res.data;
var mergeIndex = 0;//定位需要添加合并属性的行数
var mark = 1; //这里涉及到简单的运算,mark是计算每次需要合并的格子数
var columsName = ['ParamType', 'SDateTime'];//需要合并的列名称
var columsIndex = [0, 1];//需要合并的列索引值
//合并行
for (var k = 0; k < columsName.length; k++) { //这里循环所有要合并的列
//var trArr = $(".layui-table-body>.layui-table").find("tr[data-index=2]");//所有行
var trArr = $(".tablediv1 .layui-table-body>.layui-table").find("tr");//所有行
for (var i = 1; i < res.data.length; i++) { //这里循环表格当前的数据
var tdCurArr = trArr.eq(i).find("td").eq(columsIndex[k]);//获取当前行的当前列
var tdPreArr = trArr.eq(mergeIndex).find("td").eq(columsIndex[k]);//获取相同列的第一列
//后一行的值与前一行的值做比较,相同就需要合并
if (data[i][columsName[k]] === data[i - 1][columsName[k]]) {
mark += 1;
tdPreArr.each(function () {//相同列的第一列增加rowspan属性
debugger
$(this).attr("rowspan", mark);
});
tdCurArr.each(function () {//当前行隐藏
debugger
$(this).css("display", "none");
});
} else {
mergeIndex = i;
mark = 1;//一旦前后两行的值不一样了,那么需要合并的格子数mark就需要重新计算
}
}
mergeIndex = 0;
mark = 1;
}
//合并列 (季度colspan:3 年度colspan:12)
var columsIndex2 = [3, 4, 5, 6];//需要合并的列索引值
var trArr = $(".tablediv1 .layui-table-body>.layui-table").find("tr[data-index=2]");//季度行
var trArrNina3 = $(".tablediv1 .layui-table-body>.layui-table").find("tr[data-index=3]");//年度行
for (var i = 0; i < columsIndex2.length; i++) {
var tdPreArr = trArr.find("td").eq(columsIndex2[i]);//获取相同列的第一列
tdPreArr.each(function () {
debugger
$(this).attr("colspan", 3);
});
KHPMHome.HideTD(trArr, 5)
KHPMHome.HideTD(trArr, 6)
KHPMHome.HideTD(trArr, 7)
KHPMHome.HideTD(trArr, 8)
KHPMHome.HideTD(trArr, 9)
KHPMHome.HideTD(trArr, 10)
KHPMHome.HideTD(trArr, 11)
KHPMHome.HideTD(trArr, 12)
var tdPreArrNian = trArrNina3.find("td").eq(columsIndex2[0]);//获取相同列的第一列
tdPreArrNian.each(function () {
debugger
$(this).attr("colspan", 12);
});
KHPMHome.HideTD(trArrNina3, 2)
KHPMHome.HideTD(trArrNina3, 3)
KHPMHome.HideTD(trArrNina3, 4)
KHPMHome.HideTD(trArrNina3, 5)
KHPMHome.HideTD(trArrNina3, 6)
KHPMHome.HideTD(trArrNina3, 7)
KHPMHome.HideTD(trArrNina3, 8)
KHPMHome.HideTD(trArrNina3, 9)
KHPMHome.HideTD(trArrNina3, 10)
KHPMHome.HideTD(trArrNina3, 11)
KHPMHome.HideTD(trArrNina3, 12)
}
var trArr2 = $(".tablediv1 .layui-table-body>.layui-table").find("tr[data-index=6]");//季度行
var trArrNina7 = $(".tablediv1 .layui-table-body>.layui-table").find("tr[data-index=7]");//年度行
for (var i = 0; i < columsIndex2.length; i++) {
var tdPreArr2 = trArr2.find("td").eq(columsIndex2[i]);//获取相同列的第一列
tdPreArr2.each(function () {
$(this).attr("colspan", 3);
});
KHPMHome.HideTD(trArr2, 5)
KHPMHome.HideTD(trArr2, 6)
KHPMHome.HideTD(trArr2, 7)
KHPMHome.HideTD(trArr2, 8)
KHPMHome.HideTD(trArr2, 9)
KHPMHome.HideTD(trArr2, 10)
KHPMHome.HideTD(trArr2, 11)
KHPMHome.HideTD(trArr2, 12)
var tdPreArrNian = trArrNina7.find("td").eq(columsIndex2[0]);//获取相同列的第一列
tdPreArrNian.each(function () {
$(this).attr("colspan", 12);
});
KHPMHome.HideTD(trArrNina7, 2)
KHPMHome.HideTD(trArrNina7, 3)
KHPMHome.HideTD(trArrNina7, 4)
KHPMHome.HideTD(trArrNina7, 5)
KHPMHome.HideTD(trArrNina7, 6)
KHPMHome.HideTD(trArrNina7, 7)
KHPMHome.HideTD(trArrNina7, 8)
KHPMHome.HideTD(trArrNina7, 9)
KHPMHome.HideTD(trArrNina7, 10)
KHPMHome.HideTD(trArrNina7, 11)
KHPMHome.HideTD(trArrNina7, 12)
}
var trArr3 = $(".tablediv1 .layui-table-body>.layui-table").find("tr[data-index=10]");//季度行
var trArrNina11 = $(".tablediv1 .layui-table-body>.layui-table").find("tr[data-index=11]");//年度行
for (var i = 0; i < columsIndex2.length; i++) {
var tdPreArr3 = trArr3.find("td").eq(columsIndex2[i]);//获取相同列的第一列
tdPreArr3.each(function () {
$(this).attr("colspan", 3);
});
KHPMHome.HideTD(trArr3, 5)
KHPMHome.HideTD(trArr3, 6)
KHPMHome.HideTD(trArr3, 7)
KHPMHome.HideTD(trArr3, 8)
KHPMHome.HideTD(trArr3, 9)
KHPMHome.HideTD(trArr3, 10)
KHPMHome.HideTD(trArr3, 11)
KHPMHome.HideTD(trArr3, 12)
var tdPreArrNian = trArrNina11.find("td").eq(columsIndex2[0]);//获取相同列的第一列
tdPreArrNian.each(function () {
$(this).attr("colspan", 12);
});
KHPMHome.HideTD(trArrNina11, 2)
KHPMHome.HideTD(trArrNina11, 3)
KHPMHome.HideTD(trArrNina11, 4)
KHPMHome.HideTD(trArrNina11, 5)
KHPMHome.HideTD(trArrNina11, 6)
KHPMHome.HideTD(trArrNina11, 7)
KHPMHome.HideTD(trArrNina11, 8)
KHPMHome.HideTD(trArrNina11, 9)
KHPMHome.HideTD(trArrNina11, 10)
KHPMHome.HideTD(trArrNina11, 11)
KHPMHome.HideTD(trArrNina11, 12)
}
},
HideTD(trArr, selecter) {
trArr.find("td[data-field=_" + selecter + "月]").each(function () {
$(this).css("display", "none");
});
}
}
})
</script>
layui中table合并单元格
最新推荐文章于 2024-04-04 09:45:30 发布