亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

layui動態表頭的實現代碼

2024-05-06 16:54:26
字體:
來源:轉載
供稿:網友

又get到一種思路,不光是layui。

layui,動態表頭,代碼

外面這層table,就是用原生拼接的。

@Override  public List<Map<String, Object>> distribution(String begin,String end,String name,String hospitalCode) {    HashMap<String, Object> params = new HashMap<String, Object>();    StringBuffer buf = new StringBuffer();        List<HRateAllotDepartment> hRateAllotDepartment = rateAllotDepartmentDao.getRateDepartment(hospitalCode);    String str1 = "";    String str2 = "";    for(int i=0;i<hRateAllotDepartment.size();i++) {      str1 +=",sum(`"+hRateAllotDepartment.get(i).getDepartmentName()+"`)`"+hRateAllotDepartment.get(i).getDepartmentName()+"`";      str2 +=",max(case when e.`name`='"+hRateAllotDepartment.get(i).getDepartmentName()+"' then f.price else 0 end) `"+hRateAllotDepartment.get(i).getDepartmentName()+"`";        }        buf.append("select d.`name`,d.productId_,count(*) renshu,sum(price) total"+str1+" ");    buf.append(" from ( SELECT b.`name`,b.id productId_ ,d.id,max(b.price) price ");    buf.append(" "+str2+" FROM ");    buf.append(" dt_pay_health_order_product a "        + "JOIN dt_pay_health_order d ON a.orderId = d.id "        + "JOIN dt_pay_health_product b ON a.productId = b.id ");    buf.append(" JOIN dt_hospital_health_item c ON b.bizId = c.id "        + "JOIN dt_hospital_health_order_use g ON g.orderProductId = a.id "        + "JOIN dt_hospital_rate_allot f ON b.id = f.productId ");    buf.append(" JOIN dt_hospital_department e ON f.departmentId = e.id where g.createDate>=:begin and g.createDate<=:end and b.name like :name and a.state ='02' group by b.`id`,d.`id` ) d group by d.productId_ WITH ROLLUP ");    if(begin == null || begin.length() == 0){      begin = "1970-01-01";    }    if(end == null || end.length() == 0){      end = "2099-01-01";    }    params.put("begin",begin);    params.put("end",end);    params.put("name","%"+name+"%");    return this.getMapListByMap(buf.toString(), params);           }

可以看到,一開始是有一個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<data.length;i++){          var arrayPrice1 = new Array();        for(var key in data[i]){                    if(key!="name"&&key!="productId_"&&key!="renshu"&&key!="total"){            arrayPrice1[key]=data[i][key];          }          }        arrayPrice.push(arrayPrice1);      }                var        var sumCols="";        var partCols=new Array();                for(var i=0;i<arrayPrice.length;i++){                    var partColsStr = "";                    for(var key in arrayPrice[i]){                    if(i==0&&(arrayPrice[arrayPrice.length-1][key]!=0)){               title+="<th class='firstTh'>"+key+"(元)</th>";            }            if(i==(arrayPrice.length-1)&&(arrayPrice[arrayPrice.length-1][key]!=0)){              sumCols+="<td class='secondTd'>"+arrayPrice[i][key]+"</td>";            }            if(i!=(arrayPrice.length-1)&&(arrayPrice[arrayPrice.length-1][key]!=0)){              partColsStr += "<td class='thirdTd'>"+arrayPrice[i][key]+"</td>";                          }                     }                    partCols.push(partColsStr);                  }        var sRenshu = 0;        var stotal = 0;                var tablex = "";                tablex += "<tr class='firstTr'><th class='firstTh'>項目名稱</th><th class='firstTh'>檢查人數</th><th class='firstTh'>金額(元)</th>"+title+"</tr>";                if(data!=null && data.length>0){          for(var i=0;i<data.length-1;i++){            sRenshu+=data[i].renshu;            stotal+=data[i].total;          }                    tablex += "<tr class='secondTr'><td class='secondTd'>總計</td><td class='secondTd'>"+sRenshu+"</td><td class='secondTd'>"+stotal+"</td>"+sumCols+"</tr>";                    for(var i=0;i<data.length-1;i++){             {              tablex += "<tr class='thirdTr'><td class='thirdTd'>"+data[i].name+"</td>" +                  "<td class='thirdTd'>" +                    "<a style='color:#ff5722' href="+basePath +" rel="external nofollow" rel="external nofollow" /biz/hospital/rate/allot/toPageMx.do?startDate="+$("#startDate").val().toString()                                              +"&endDate="+$("#endDate").val().toString()                                              +"&productId_="+data[i].productId_+">"+                                              data[i].renshu+"</a></td>" +                  "<td class='thirdTd'>"+data[i].total+ partCols[i] +                  "</tr>";            }          }                  }        $("#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<data.length;i++){          var arrayPrice1 = new Array();        for(var key in data[i]){                    if(key!="name"&&key!="productId_"&&key!="renshu"&&key!="total"){            arrayPrice1[key]=data[i][key];          }          }        arrayPrice.push(arrayPrice1);      }                var        var sumCols="";        var partCols=new Array();                for(var i=0;i<arrayPrice.length;i++){                    var partColsStr = "";                    for(var key in arrayPrice[i]){                    if(i==0&&(arrayPrice[arrayPrice.length-1][key]!=0)){               title+="<th class='firstTh'>"+key+"(元)</th>";            }            if(i==(arrayPrice.length-1)&&(arrayPrice[arrayPrice.length-1][key]!=0)){              sumCols+="<td class='secondTd'>"+arrayPrice[i][key]+"</td>";            }            if(i!=(arrayPrice.length-1)&&(arrayPrice[arrayPrice.length-1][key]!=0)){              partColsStr += "<td class='thirdTd'>"+arrayPrice[i][key]+"</td>";                          }                     }                    partCols.push(partColsStr);                  }        var sRenshu = 0;        var stotal = 0;                var tablex = "";                tablex += "<tr class='firstTr'><th class='firstTh'>項目名稱</th><th class='firstTh'>檢查人數</th><th class='firstTh'>金額(元)</th>"+title+"</tr>";                if(data!=null && data.length>0){          for(var i=0;i<data.length-1;i++){            sRenshu+=data[i].renshu;            stotal+=data[i].total;          }                    tablex += "<tr class='secondTr'><td class='secondTd'>總計</td><td class='secondTd'>"+sRenshu+"</td><td class='secondTd'>"+stotal+"</td>"+sumCols+"</tr>";                    for(var i=0;i<data.length-1;i++){             {              tablex += "<tr class='thirdTr'><td class='thirdTd'>"+data[i].name+"</td>" +                  "<td class='thirdTd'>" +                    "<a style='color:#ff5722' href="+basePath +" rel="external nofollow" rel="external nofollow" /biz/hospital/rate/allot/toPageMx.do?startDate="+$("#startDate").val().toString()                                              +"&endDate="+$("#endDate").val().toString()                                              +"&productId_="+data[i].productId_+">"+                                              data[i].renshu+"</a></td>" +                  "<td class='thirdTd'>"+data[i].total+ partCols[i] +                  "</tr>";            }          }                  }        $("#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+="<th class='firstTh'>"+key+"(元)</th>";        }        if(i==(arrayPrice.length-1)&&(arrayPrice[arrayPrice.length-1][key]!=0)){          sumCols+="<td class='secondTd'>"+arrayPrice[i][key]+"</td>";        }        if(i!=(arrayPrice.length-1)&&(arrayPrice[arrayPrice.length-1][key]!=0)){          partColsStr += "<td class='thirdTd'>"+arrayPrice[i][key]+"</td>";                  }             }

這塊就是動態的數據,title表頭,sumCols總計,partColsStr具體數據,加到tablex下就行。以上就是原生的思路。

layui,動態表頭,代碼

這塊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       ],       

這個就是動態數據。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
美女啪啪无遮挡免费久久网站| 欧美视频不卡中文| 久久夜色精品亚洲噜噜国产mv| 欧美国产欧美亚洲国产日韩mv天天看完整| 色综合久综合久久综合久鬼88| 狠狠久久亚洲欧美专区| 在线播放日韩专区| 亚洲毛片在线观看.| 欧美久久精品一级黑人c片| 国产一区二区三区视频免费| 亚洲二区中文字幕| 久久艳片www.17c.com| 亚洲人av在线影院| 精品久久久久久亚洲国产300| 国产在线精品自拍| 97国产一区二区精品久久呦| 国产精品国产三级国产专播精品人| 亚洲a成v人在线观看| 一区二区三区在线播放欧美| 日韩在线免费av| 国产精品黄页免费高清在线观看| 欧美日韩亚洲91| 在线视频一区二区| 国产精品电影网站| 精品视频9999| 欧美性xxxxxxx| 日韩午夜在线视频| 欧美色道久久88综合亚洲精品| 国产97在线|日韩| 国产成人综合av| 91av网站在线播放| 国产精品国产自产拍高清av水多| 亚洲夜晚福利在线观看| 国产亚洲欧洲高清一区| 日本精品久久久久久久| 欧美巨乳美女视频| 久久中国妇女中文字幕| 国产中文字幕91| 欧美另类极品videosbest最新版本| 国内外成人免费激情在线视频网站| 国产精品亚洲аv天堂网| 日韩专区在线观看| 亚洲欧美综合精品久久成人| 国产999精品久久久影片官网| 亚洲国产福利在线| 亚洲综合在线小说| 国产极品精品在线观看| 久久精品中文字幕免费mv| 91av国产在线| 亚洲电影免费在线观看| 欧美电影免费观看高清| 蜜臀久久99精品久久久久久宅男| 国产成人精品av| 国产精品美女主播| 精品国内产的精品视频在线观看| 国产精品人成电影在线观看| 中文字幕欧美精品日韩中文字幕| 亚洲xxxxx| 萌白酱国产一区二区| 国产精品国产三级国产专播精品人| 成人h视频在线| 亚洲永久免费观看| yw.139尤物在线精品视频| 欧美日韩亚洲国产一区| 日韩中文字幕精品| 另类专区欧美制服同性| 亚洲国产精品推荐| 国产一区二区久久精品| 久久6免费高清热精品| 亚洲国产高清福利视频| 国产精品女视频| 亚洲美女在线看| 欧美三级欧美成人高清www| 久久亚洲精品中文字幕冲田杏梨| 色狠狠久久aa北条麻妃| 亚洲成人a**站| 91香蕉嫩草影院入口| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲精品久久久久国产| 亚洲色图综合久久| 国产精品视频xxx| 欧美大片在线看免费观看| 久久久久久一区二区三区| 777国产偷窥盗摄精品视频| 亚洲精美色品网站| 疯狂做受xxxx欧美肥白少妇| 日韩精品视频免费在线观看| 岛国av一区二区三区| 亚洲欧洲在线免费| 亚洲图片制服诱惑| 欧美日韩国产精品一区| 亚洲韩国日本中文字幕| 亚洲午夜久久久久久久| 精品久久久中文| 国产精品久久精品| 欧美精品生活片| 亚洲一级片在线看| 久久久久久久久国产精品| 精品久久香蕉国产线看观看亚洲| 另类图片亚洲另类| 欧美极品少妇与黑人| 欧美高清视频在线观看| 91天堂在线视频| 国产成人91久久精品| 成人高h视频在线| 在线午夜精品自拍| 另类美女黄大片| 欧美专区福利在线| 亚洲欧美激情视频| 久久在精品线影院精品国产| 国产精品一二三视频| 亚洲a一级视频| 日韩在线欧美在线| 国产精品吴梦梦| 97av在线影院| 亚洲夜晚福利在线观看| 久久艳片www.17c.com| 粉嫩老牛aⅴ一区二区三区| 亚洲精品自拍偷拍| 日本一欧美一欧美一亚洲视频| 一本色道久久88亚洲综合88| 日本欧美精品在线| 国产一区二区三区四区福利| 亚洲电影中文字幕| 中文字幕精品—区二区| 亚洲欧美精品中文字幕在线| 日本欧美国产在线| 欧美一区二区影院| 国产精品黄色影片导航在线观看| 在线性视频日韩欧美| 38少妇精品导航| 亚洲国语精品自产拍在线观看| 久久综合久久88| 精品欧美激情精品一区| 国产激情视频一区| 91精品在线影院| 国产精品久久久久久婷婷天堂| 亚洲免费电影一区| 日本在线观看天堂男亚洲| 国产91久久婷婷一区二区| 国产欧美日韩精品丝袜高跟鞋| 国产91精品黑色丝袜高跟鞋| 精品国产999| 亚洲片在线资源| 不卡在线观看电视剧完整版| 久久精品国产久精国产思思| 国产成人欧美在线观看| 91夜夜揉人人捏人人添红杏| 日韩欧美在线播放| 日韩欧美中文在线| 日韩中文字幕不卡视频| 欧美在线一级va免费观看| 日韩一区二区在线视频| 亚洲人成毛片在线播放| 亚洲一级免费视频| 欧美国产日韩中文字幕在线| 国产精品久久久久久婷婷天堂| 精品国产一区二区三区在线观看| 亚洲人精选亚洲人成在线| 国产精品成人av性教育| 夜夜狂射影院欧美极品| 亚洲精品国产成人| 91精品久久久久久久久不口人| 国产精品6699|