长城期货
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

135 lines
5.5 KiB

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- 通用 -->
{include file="common/head" /}
<!-- 当前 -->
<link rel="stylesheet" href="__TMPL__/static/css/rule.css">
</head>
<body>
<!-- header start -->
{include file="common/header" /}
<!-- header end -->
<!-- banner start -->
<div class="bannerList">
<div class="img"><img src="__TMPL__/static/images/trade/tradeBanner.jpg" alt=""></div>
<div class="w1280">
<div class="bannerTitle">交易服务</div>
</div>
</div>
<!-- banner end -->
<div class="pageListNav">
<div class="w1280">
{hcTaglib:subcategory pid="9" item="vo" field="id,title" sort="sort asc"}
<a href="{:hcUrl('list/index',['id'=>$vo.id])}" class="{$current_cate['id']==$vo.id?'on':''}">{$vo.title}</a>
{/hcTaglib:subcategory}
</div>
</div>
<div class="commissionBlock">
<div class="w1280 table-content">
<div class="tradeTit">
<p>{$current_cate['title']}</p>
<div class="tradeSearch">
<input type="text" placeholder="请输入品种名称/交易代码/合约代码">
<div class="searchBtn">搜索</div>
</div>
</div>
<table lay-filter="tableFilter" class="layui-table" id="rulesTable">
</table>
</div>
</div>
<!-- footer start-->
{include file="common/footer"}
<!-- footer end -->
<!-- 通用 -->
{include file="common/foot"}
<!-- 当前 -->
<script src="__TMPL__/static/js/layui.js"></script>
<script>
var table = layui.table;
var tableIns = table.render({
elem: '#rulesTable'
, url: '/content/list'
, where: { category_id: 21, limit: 500, all: 1, sort: 'id asc' }
, method: 'get'
, cols: [
[
{ field: 'category_title', title: '交易所', width: 100, rowspan: "3" }
, { field: 'title', title: '品种', width: 150, rowspan: "3" }
, { field: 'sub_title', title: '代码', width: 70, rowspan: "3" }
, { field: 'description', title: '合约单位(吨/手)', width: 150, rowspan: "3" }
, { field: 'min_change', title: '最小变动价位(元/吨)', width: 180, rowspan: "3" }
, { field: 'chg', title: '保证金/涨跌限制(连续三板)', colspan: "6" }
, { field: 'unit', title: '交割单位/交割越限仓(手)', width: 180, rowspan: "3" }
, { field: 'limit_price', title: '限价/市价单笔最大下单(手)', width: 240, rowspan: "3" }
, { field: 'last_date', title: '最后交易日', width: 280, rowspan: "3" }],
[
{ field: 'normal', title: '正常', colspan: "2" }
, { field: 'first', title: '第一板结算起', colspan: "2" }
, { field: 'second', title: '第二板结算起', colspan: "2" }
],
[
{ field: 'chg', title: '涨跌幅', width: 100, }
, { field: 'margin', title: '保证金(交易所+公司上浮)', width: 220, }
, { field: 'first_chg', title: '涨跌幅', width: 100, }
, { field: 'first_margin', title: '保证金', width: 100, }
, { field: 'second_chg', title: '涨跌幅', width: 100, }
, { field: 'second_margin', title: '保证金', width: 100, }
]
]
, done: function (res) {
setTimeout(() => {
merge(res)
}, 200);
}
})
//实现行合并
function merge(res) {
var data = res.data;
var mergeIndex = 0;//定位需要添加合并属性的行数
var mark = 1; //这里涉及到简单的运算,mark是计算每次需要合并的格子数
var columsName = ['category_title','limit_price','last_date'];//需要合并的列名称
var columsIndex = [0,12,13];//需要合并的列索引值
for (var k = 0; k < columsName.length; k++) { //这里循环所有要合并的列
var trArr = $(".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属性
$(this).attr("rowspan", mark);
});
tdCurArr.each(function () {
//当前行隐藏
$(this).css("display", "none");
});
} else {
mergeIndex = i;
mark = 1; //一旦前后两行的值不一样了,那么需要合并的格子数mark就需要重新计算
}
}
mergeIndex = 0;
mark = 1;
}
}
// 页内搜索
$('.tradeSearch .searchBtn').click(function () {
let searchInput = $('.tradeSearch input').val()
tableIns.reload({
where: { category_id: 21, limit: 500, all: 1, sort: 'id asc', title: searchInput }
})
})
</script>
</body>
</html>