这期内容当中小编将会给大家带来有关使用layui怎么实现一个动态表头,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
创新互联专注于企业全网营销推广、网站重做改版、双清网站定制设计、自适应品牌网站建设、H5开发、商城开发、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为双清等各大城市提供网站开发制作服务。
layui是什么
layui是一款采用自身模块规范编写的前端UI框架,它遵循原生HTML/CSS/JS的书写与组织形式,门槛极低,适合新手,并且它还提供了丰富的内置模块,他们皆可通过模块化的方式按需加载,从核心代码到API的每一处细节都经过精心雕琢,非常适合界面的快速开发,能够作为PC网页端后台系统与前台界面的速成开发方案。
@Override public List
可以看到,一开始是有一个list,这个list是医院医生可以配置的科室,这些科室就是动态的。这样一来后台即可得到动态数据。同理,如果在layui时用到page,在这里返回成page类型即可。接下来再看js
function toList(begin,end,name){
console.log(begin);
console.log(end);
$.ajax({
url: basePath + "/biz/hospital/rate/allot/list.do",
data: {
begin:begin,
end:end,
name:name
},
type : 'post',
dataType : 'json',
success : function(data) {
var arrayPrice = new Array();
for(var i=0;i"+key+"(元)";
}
if(i==(arrayPrice.length-1)&&(arrayPrice[arrayPrice.length-1][key]!=0)){
sumCols+=""+arrayPrice[i][key]+" ";
}
if(i!=(arrayPrice.length-1)&&(arrayPrice[arrayPrice.length-1][key]!=0)){
partColsStr += ""+arrayPrice[i][key]+" ";
}
}
partCols.push(partColsStr);
}
var sRenshu = 0;
var stotal = 0;
var tablex = "";
tablex += "项目名称 检查人数 金额(元) "+title+" ";
if(data!=null && data.length>0){
for(var i=0;i总计 "+sRenshu+" "+stotal+" "+sumCols+"";
for(var i=0;i"+data[i].name+" " +
"" +
""+
data[i].renshu+" " +
""+data[i].total+ partCols[i] +
"";
}
}
}
$("#table_status").empty();
$("#table_status").append(tablex);
},
error : function() {
layer.msg('系统异常,请联系管理员!',{icon:2,time:2000});
}
});
}可以在最上方图看到,有些字段是固定的,但是有些字段是动态的。思路是通过将调用接口返回出来的数据,动态的部分放到一个键值对数组下。这样一来,固定的部分,依然可以用返回的data得到,而动态的部分,用处理的数组循环赋值即可。动态表头就是动态数组的键。数据就是值。
function toList(begin,end,name){
console.log(begin);
console.log(end);
$.ajax({
url: basePath + "/biz/hospital/rate/allot/list.do",
data: {
begin:begin,
end:end,
name:name
},
type : 'post',
dataType : 'json',
success : function(data) {
var arrayPrice = new Array();
for(var i=0;i"+key+"(元)";
}
if(i==(arrayPrice.length-1)&&(arrayPrice[arrayPrice.length-1][key]!=0)){
sumCols+=""+arrayPrice[i][key]+" ";
}
if(i!=(arrayPrice.length-1)&&(arrayPrice[arrayPrice.length-1][key]!=0)){
partColsStr += ""+arrayPrice[i][key]+" ";
}
}
partCols.push(partColsStr);
}
var sRenshu = 0;
var stotal = 0;
var tablex = "";
tablex += "项目名称 检查人数 金额(元) "+title+" ";
if(data!=null && data.length>0){
for(var i=0;i总计 "+sRenshu+" "+stotal+" "+sumCols+"";
for(var i=0;i"+data[i].name+" " +
"" +
""+
data[i].renshu+" " +
""+data[i].total+ partCols[i] +
"";
}
}
}
$("#table_status").empty();
$("#table_status").append(tablex);
},
error : function() {
layer.msg('系统异常,请联系管理员!',{icon:2,time:2000});
}
});
}这块是name这些的是固定的,就排除掉,然后将数据放到arrayPrice1下再push到数组下。tablex就是表格的html。当时拼接的是分两步,先是表头,然后是数据。有个总计,后来在sql下加了WITH ROLLUP就得到了。
for(var key in arrayPrice[i]){
if(i==0&&(arrayPrice[arrayPrice.length-1][key]!=0)){
title+=""+key+"(元) ";
}
if(i==(arrayPrice.length-1)&&(arrayPrice[arrayPrice.length-1][key]!=0)){
sumCols+=""+arrayPrice[i][key]+" ";
}
if(i!=(arrayPrice.length-1)&&(arrayPrice[arrayPrice.length-1][key]!=0)){
partColsStr += ""+arrayPrice[i][key]+" ";
}
}这块就是动态的数据,title表头,sumCols总计,partColsStr具体数据,加到tablex下就行。以上就是原生的思路。

这块table用到了layui,当时也是看着这个layui动态设置的思路去写的原生。主要思路是:cols是一个数组,通过ajax得到数据后放到数组下,再放到cols下即可。
$.ajax({
url: basePath + "/biz/hospital/rate/allot/department/getDepartment.do",
data: {
},
type : 'post',
dataType : 'json',
success : function(data) {
mycols[0] = {field : 'nameTrue', title:"姓名", align:'center',width:'120'};
mycols[1] = {field : 'telephoneTrue', title:'支付手机号', align:'center',width:'120'};
mycols[2] = {field : 'orderNO', title:'订单号', align:'center',width:'120'};
mycols[3] = {field : 'createDate', title:'订单创建时间', align:'center',width:'120'};
mycols[4] = {field : 'modifyDate', title:'订单使用时间', align:'center',width:'120'};
mycols[5] = {field : 'price', title:'支付金额(元)', align:'center',width:'120'};
for (var i = 0;i < data.length; i++){
var obj = data[i].departmentName;
if(obj!=0){
mycols[i+6] = {field : obj, title:obj+"(元)", align:'center',width:'120'};
}
}
console.log(mycols);
reload();
},
error : function() {
layer.msg('系统异常,请联系管理员!',{icon:2,time:2000});
}
});以上是ajax调用后处理的数组。下面这些就是table。reload();就是重新渲染。
var options = {
url: basePath + "/biz/hospital/rate/allot/list_mx.do",
method: 'post',
where:{
begin:$("#startDate").val().toString(),
end:end,
productId_:$("#productId_").val().toString(),
orderNO:$("#qorderNO").val().toString(),
name:$("#qname").val().toString()
},
//分页请求参数
request:{
pageName: 'pageIndex', //页码
limitName: 'limit' //每页多少数据
},
//返回的数据格式
response:{
statusName: 'status', //数据状态的字段名称,默认:code
statusCode: 200, //成功的状态码,默认:0
msgName: 'message', //状态信息的字段名称,默认:msg
countName: 'total', //数据总数的字段名称,默认:count
dataName: 'data' //数据列表的字段名称,默认:data
},
//每页10条数据
limit: 10,
//加载时出现加载条
loading: true,
elem: '#data_table',
cols: [
mycols
],
id: 'dataTable',
page: true,
};
//方法级渲染
table.render(options);
function reload(){
date = new Date($("#endDate").val());
date=date.setDate(date.getDate()+1);
date=new Date(date);
datemonth=date.getMonth()+1; //获取当前月份(0-11,0代表1月)
end=date.getFullYear()+"-"+datemonth+"-"+date.getDate();
//options.where.departmentId = $("#departmentId").val();
options.where.begin = $("#startDate").val();
options.where.end = end;
options.where.orderNO = $("#qorderNO").val();;
options.where.name = $("#qname").val();;
table.reload("dataTable",options);
}可以看到
cols: [
mycols
],
上述就是小编为大家分享的使用layui怎么实现一个动态表头了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。
网站题目:使用layui怎么实现一个动态表头
本文链接:http://www.jxjierui.cn/article/jgghej.html


咨询
建站咨询
