動態實現多個二級表頭, 一行不夠 多個表格換行。this
1.效果如圖: spa
<el-table v-for="(tdata,index) in tableData" :key="index" :data="tdata.result"> <el-table-column :prop="item.prop" :label="item.label" :key="k" v-for="(item,k) in tdata.tableHeader"> <span v-if="item.child"> <el-table-column :prop="son.prop" :label="son.label" :key="'s'+k" v-for="(son,k) in item.child" > </el-table-column> </span> </el-table-column> </el-table>
drawTable(res){ const { resSamplesList , positiveList, negativeList, blankList , itemList } = res; let column = 4 //一行四個一級表頭 let tableNum = Math.ceil( itemList.length / column ) for(let i = 0; i < tableNum; i++){ let tableJson = {} var tableHeader = [] //表頭 var tableRes = [] // table結果 集合 tableHeader.push({ label:'序號', prop:'num' }, { label:'原始編號', prop:'sampleCustomNo' }) for( let j = 0 ; j < column; j++){ if(itemList[i * column + j]){ let headerJson = {} headerJson.label = itemList[i * column + j].itemName || '' if ( itemList[i * column + j].columnCount == 1 ) { headerJson.child = [{ label: '斷定', //itemList[i * column + j].columnRes, prop:`res${j}` }] }else{ headerJson.child =[ { label: '斷定', //itemList[i * column + j].columnRes, prop:`res${j}` }, { label: '循環數', //itemList[i * column + j].columnCycles, prop:`cycles${j}` }, { label: '拷貝數', //itemList[i * column + j].columnParam, prop:`copy${j}` } ] } tableHeader.push(headerJson) } } for( let k = 0; k < resSamplesList.length; k++){ let resJson = {} // 結果信息 resJson.num = k + 1 resJson.sampleCustomNo = resSamplesList[k].sampleCustomNo; let sItemLen = resSamplesList[k].sampleResultKys; for( let m = 0 ; m < column; m++){ if(sItemLen[column * i + m]){ resJson[`copy${m}`] = sItemLen[column * i + m].copyNumber || '' resJson[`res${m}`] = sItemLen[column * i + m].res || '' resJson[`cycles${m}`] = sItemLen[column * i + m].cycleNumber || '' } } tableRes.push(resJson) } let yangxdzJson = {} let yinxdzJson = {} let nulldzJson = {} let len = tableRes.length; for( let n = 0; n < column; n++){ yangxdzJson.num = len + 2; yangxdzJson.sampleCustomNo = '陽性對照' yinxdzJson.num = len + 1; yinxdzJson.sampleCustomNo = '陰性對照' nulldzJson.num = len + 3; nulldzJson.sampleCustomNo = '空白對照' if(positiveList[column * i + n]){ yangxdzJson[`copy${n}`] = positiveList[column * i + n].copyNumber || '' yangxdzJson[`res${n}`] = positiveList[column * i + n].res || '' yangxdzJson[`cycles${n}`] = positiveList[column * i + n].cycleNumber || '' } if(negativeList[column * i + n]){ yinxdzJson[`copy${n}`] = negativeList[column * i + n].copyNumber || '' yinxdzJson[`res${n}`] = negativeList[column * i + n].res || '' yinxdzJson[`cycles${n}`] = negativeList[column * i + n].cycleNumber || '' } if(blankList[column * i + n]){ nulldzJson[`copy${n}`] = blankList[column * i + n].copyNumber || '' nulldzJson[`res${n}`] = blankList[column * i + n].res || '' nulldzJson[`cycles${n}`] = blankList[column * i + n].cycleNumber || '' } } tableRes.push(yinxdzJson) tableRes.push(yangxdzJson) tableRes.push(nulldzJson) tableJson.tableHeader = tableHeader tableJson.result = tableRes; this.tableData.push(tableJson) } },