又get到一种思路,不光是layui。
外面这层table,就是用原生拼接的。
@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";
}
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";
}
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
],
这个就是动态数据。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。
JavaScript相关栏目本月热门文章
- 1【Linux驱动开发】设备树详解(二)设备树语法详解
- 2别跟客户扯细节
- 3Springboot+RabbitMQ+ACK机制(生产方确认(全局、局部)、消费方确认)、知识盲区
- 4【Java】对象处理流(ObjectOutputStream和ObjectInputStream)
- 5【分页】常见两种SpringBoot项目中分页技巧
- 6一文带你搞懂OAuth2.0
- 7我要写整个中文互联网界最牛逼的JVM系列教程 | 「JVM与Java体系架构」章节:虚拟机与Java虚拟机介绍
- 8【Spring Cloud】新闻头条微服务项目:FreeMarker模板引擎实现文章静态页面生成
- 9JavaSE - 封装、static成员和内部类
- 10树莓派mjpg-streamer实现监控及拍照功能调试
- 11用c++写一个蓝屏代码
- 12从JDK8源码中看ArrayList和LinkedList的区别
- 13idea 1、报错java: 找不到符号 符号: 变量 log 2、转换成Maven项目
- 14在openwrt使用C语言增加ubus接口(包含C uci操作)
- 15Spring 解决循环依赖
- 16SpringMVC——基于MVC架构的Spring框架
- 17Andy‘s First Dictionary C++ STL set应用
- 18动态内存管理
- 19我的创作纪念日
- 20Docker自定义镜像-Dockerfile
热门相关搜索
路由器设置
木托盘
宝塔面板
儿童python教程
心情低落
朋友圈
vim
双一流学科
专升本
我的学校
日记学校
西点培训学校
汽修学校
情书
化妆学校
塔沟武校
异形模板
西南大学排名
最精辟人生短句
6步教你追回被骗的钱
南昌大学排名
清朝十二帝
北京印刷学院排名
北方工业大学排名
北京航空航天大学排名
首都经济贸易大学排名
中国传媒大学排名
首都师范大学排名
中国地质大学(北京)排名
北京信息科技大学排名
中央民族大学排名
北京舞蹈学院排名
北京电影学院排名
中国戏曲学院排名
河北政法职业学院排名
河北经贸大学排名
天津中德应用技术大学排名
天津医学高等专科学校排名
天津美术学院排名
天津音乐学院排名
天津工业大学排名
北京工业大学耿丹学院排名
北京警察学院排名
天津科技大学排名
北京邮电大学(宏福校区)排名
北京网络职业学院排名
北京大学医学部排名
河北科技大学排名
河北地质大学排名
河北体育学院排名



