摘要:思路是通过将调用接口返回出来的数据,动态的部分放到一个键值对数组下。动态表头就是动态数组的键。当时拼接的是分两步,先是表头,然后是数据。元这块就是动态的数据,表头,总计,具体数据,加到下就行。
又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"+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 += ""; if(data!=null && data.length>0){ for(var i=0;i 项目名称 检查人数 金额(元) "+title+"总计 "+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得到,而动态的部分,用处理的数组循环赋值即可。动态表头就是动态数组的键。数据就是值。
if(key!="name"&&key!="productId_"&&key!="renshu"&&key!="total"){ arrayPrice1[key]=data[i][key]; }这块是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 ],这个就是动态数据。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/106849.html
相关文章
layui实现动态和静态数据表分页
开发管理后台是每一个开发人员都要熟悉的一个环节,作为后端程序员,公司的所有机密数据都掌握在我们手上,所以这个时候,如果不是公司的核心成员,是不能接触到某些数据的,这个时候所有的工作都落到了我们的手上,从PS到Linux都需要我们亲历亲为,还好发现了layui这个前端框架,很大程度上减轻了我们的压力. 今天我们先来学习一下layui实现动态数据表,静态数据表,以及表格的分页,其中还涉及到动态刷新数据...
layui实现动态和静态数据表分页
开发管理后台是每一个开发人员都要熟悉的一个环节,作为后端程序员,公司的所有机密数据都掌握在我们手上,所以这个时候,如果不是公司的核心成员,是不能接触到某些数据的,这个时候所有的工作都落到了我们的手上,从PS到Linux都需要我们亲历亲为,还好发现了layui这个前端框架,很大程度上减轻了我们的压力. 今天我们先来学习一下layui实现动态数据表,静态数据表,以及表格的分页,其中还涉及到动态刷新数据...
layUI做固定表头和左侧一列的
摘要:最近在写一个复杂表头项目可以上下左右滑动表头和左侧固定的表格。此时需要获取设备的宽度作为横屏时的高度。代码如下获取设备信息定义空变量记录屏幕宽高判断是否是设备,则获取其宽度获取设备高度修改之后测试安卓和下都正常了。 最近在写一个复杂表头项目可以上下左右滑动表头和左侧固定的表格。此时页面要求是要在横屏下查看。在IOS系统下上下是不能滑动的,查其原因是因为在IOS下页面虽然已经被横屏了,但...
基于javaweb+jsp的学生成绩管理系统
基于javaweb+jsp的学生成绩管理系统 JavaWeb JavaBean JSP MVC MySQL Tomcat JavaScript idea eclipse MyEclipse Servlet SSM Maven … 部分代码实现JSP let editIndex = layedit.build('LAY_demo_editor'); ...
发表评论
0条评论
GitCafe
男|高级讲师
TA的文章
阅读更多
#圣诞节#SugarHosts:美国/香港虚拟主机低至6折,云服务器每续费一年送半年
阅读 2055·2021-11-24 10:28
【C语言进阶】☀️浮点数在内存中的存储(IEEE754标准)
阅读 1093·2021-10-12 10:12
云主机怎么解析域名-云主机怎么绑定域名呢?
阅读 3310·2021-09-22 15:21
#大硬盘#Servarica:2核/3G/2T HDD/100Mbps不限流量/加拿大/年付$72,
阅读 662·2021-08-30 09:44
阿里云、腾讯云、UCloud年付百元机(上海机房1核2G内存1Mbps带宽云服务器)性能对比测评
阅读 1867·2021-07-23 11:20
功能性组件和Classes有什么不同?
阅读 1124·2019-08-30 15:56
浏览器滚动条优化
阅读 1721·2019-08-30 15:44
HTML和CSS 入门系列(一):超链接、选择器、颜色、盒模式、DIV布局、图片
阅读 1467·2019-08-30 13:55
阅读需要支付1元查看