這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)使用layui怎么實現(xiàn)一個動態(tài)表頭,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、雙清網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、H5開發(fā)、商城開發(fā)、集團公司官網(wǎng)建設、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為雙清等各大城市提供網(wǎng)站開發(fā)制作服務。
layui是一款采用自身模塊規(guī)范編寫的前端UI框架,它遵循原生HTML/CSS/JS的書寫與組織形式,門檻極低,適合新手,并且它還提供了豐富的內(nèi)置模塊,他們皆可通過模塊化的方式按需加載,從核心代碼到API的每一處細節(jié)都經(jīng)過精心雕琢,非常適合界面的快速開發(fā),能夠作為PC網(wǎng)頁端后臺系統(tǒng)與前臺界面的速成開發(fā)方案。
@Override public List
可以看到,一開始是有一個list,這個list是醫(yī)院醫(yī)生可以配置的科室,這些科室就是動態(tài)的。這樣一來后臺即可得到動態(tài)數(shù)據(jù)。同理,如果在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 項目名稱 檢查人數(shù) 金額(元) "+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('系統(tǒng)異常,請聯(lián)系管理員!',{icon:2,time:2000}); } }); } 可以在最上方圖看到,有些字段是固定的,但是有些字段是動態(tài)的。思路是通過將調(diào)用接口返回出來的數(shù)據(jù),動態(tài)的部分放到一個鍵值對數(shù)組下。這樣一來,固定的部分,依然可以用返回的data得到,而動態(tài)的部分,用處理的數(shù)組循環(huán)賦值即可。動態(tài)表頭就是動態(tài)數(shù)組的鍵。數(shù)據(jù)就是值。
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 項目名稱 檢查人數(shù) 金額(元) "+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('系統(tǒng)異常,請聯(lián)系管理員!',{icon:2,time:2000}); } }); } 這塊是name這些的是固定的,就排除掉,然后將數(shù)據(jù)放到arrayPrice1下再push到數(shù)組下。tablex就是表格的html。當時拼接的是分兩步,先是表頭,然后是數(shù)據(jù)。有個總計,后來在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]+" "; } }這塊就是動態(tài)的數(shù)據(jù),title表頭,sumCols總計,partColsStr具體數(shù)據(jù),加到tablex下就行。以上就是原生的思路。
這塊table用到了layui,當時也是看著這個layui動態(tài)設置的思路去寫的原生。主要思路是:cols是一個數(shù)組,通過ajax得到數(shù)據(jù)后放到數(shù)組下,再放到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:'訂單創(chuàng)建時間', 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('系統(tǒng)異常,請聯(lián)系管理員!',{icon:2,time:2000}); } });以上是ajax調(diào)用后處理的數(shù)組。下面這些就是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() }, //分頁請求參數(shù) request:{ pageName: 'pageIndex', //頁碼 limitName: 'limit' //每頁多少數(shù)據(jù) }, //返回的數(shù)據(jù)格式 response:{ statusName: 'status', //數(shù)據(jù)狀態(tài)的字段名稱,默認:code statusCode: 200, //成功的狀態(tài)碼,默認:0 msgName: 'message', //狀態(tài)信息的字段名稱,默認:msg countName: 'total', //數(shù)據(jù)總數(shù)的字段名稱,默認:count dataName: 'data' //數(shù)據(jù)列表的字段名稱,默認:data }, //每頁10條數(shù)據(jù) limit: 10, //加載時出現(xiàn)加載條 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怎么實現(xiàn)一個動態(tài)表頭了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)站欄目:使用layui怎么實現(xiàn)一個動態(tài)表頭
文章轉(zhuǎn)載:http://weahome.cn/article/jgghej.html其他資訊