Vue Elenent實現表格相同資料列合併
阿新 • • 發佈:2020-12-01
本文例項為大家分享了Vue Elenent實現表格相同資料列合併的具體程式碼,供大家參考,具體內容如下
作者:秋名
思路:後臺查詢表格資料,查詢出來後直接傳到前端,前端通過foreach迴圈,然後對相同的表格進行合併。(同一個表格,但是每一行,固定一列的資料都相同,即可使用合併單元格,做到了既美觀,也清晰。)
template:
<el-table :span-method="objectSpanMethod4" //在el-table裡面新增合併單元格屬性 >
Js:
data(){ return{ orderdata:null,// 後端將資料查詢出來後,繫結到orderdata裡面 } },methods: { flitterData4(){ let spanOneArr = [] let concatOne = 0 //let spanOneArr1 = [] //let concatOne1 = 0 this.orderdata.forEach((item,index)=>{//迴圈後端查詢出來的資料(orderdata) if(index === 0){ spanOneArr.push(1) }else{ //name 修改 if(item.ENTERNAME === this.orderdata[index - 1].ENTERNAME){ //第一列需合併相同內容的欄位 spanOneArr[concatOne] += 1 spanOneArr.push(0) }else{ spanOneArr.push(1) concatOne = index } //if(item.coachName === this.coachdata[index - 1].coachName){ //第二列需合併相同內容的判斷條件 //spanOneArr1[concatOne1] += 1 //spanOneArr1.push(0) //}else{ //spanOneArr1.push(1) //concatOne1 = index // } } }) return { one: spanOneArr,//two:spanOneArr1 } },objectSpanMethod4({row,column,rowIndex,columnIndex}){ if(columnIndex === 0 ) { // this.tableData 修改 const _row = (this.flitterData4(this.tableData).one)[rowIndex] const _col = _row > 0 ? 1 : 0 return { rowspan: _row,colspan: _col } } //判斷是否是第二列,如果是就將第二列相同欄位進行合併 //if(columnIndex === 1) { // const _row = (this.flitterData(this.tableData).two)[rowIndex] // const _col = _row > 0 ? 1 : 0 // return { // rowspan: _row,// colspan: _col // } } },}
效果圖:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。