摘要:思路是通過將調用接口返回出來的數據,動態的部分放到一個鍵值對數組下。動態表頭就是動態數組的鍵。當時拼接的是分兩步,先是表頭,然后是數據。元這塊就是動態的數據,表頭,總計,具體數據,加到下就行。
又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 ],這個就是動態數據。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/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折,云服務器每續費一年送半年
閱讀 2116·2021-11-24 10:28
【C語言進階】??浮點數在內存中的存儲(IEEE754標準)
閱讀 1139·2021-10-12 10:12
云主機怎么解析域名-云主機怎么綁定域名呢?
閱讀 3345·2021-09-22 15:21
#大硬盤#Servarica:2核/3G/2T HDD/100Mbps不限流量/加拿大/年付$72,
閱讀 687·2021-08-30 09:44
阿里云、騰訊云、UCloud年付百元機(上海機房1核2G內存1Mbps帶寬云服務器)性能對比測評
閱讀 1903·2021-07-23 11:20
功能性組件和Classes有什么不同?
閱讀 1152·2019-08-30 15:56
瀏覽器滾動條優化
閱讀 1763·2019-08-30 15:44
HTML和CSS 入門系列(一):超鏈接、選擇器、顏色、盒模式、DIV布局、圖片
閱讀 1487·2019-08-30 13:55
閱讀需要支付1元查看