在项目开发过程中,由于后台返回的数据格式并不一定完全满足前端的需求,所以需要通过前端数据处理。
我的实际开发场景是el-table el-table-column 原有的字符串数据满足不了,所需数据格式需要在el-table-column里要展示多个数据并且可以点击弹框操作。
这个时候后台返回的数据需要进行二次处理方可实现。
需要讲这三个字符串拼装成数组对象,首先是将字符串用split切割成数组
this.tableData[i].bsqrName=this.tableData[i].bsqr.split("、")
this.tableData[i].bsqrajNum=this.tableData[i].bsqrajnum.split("、")
this.tableData[i].bsqrId=this.tableData[i].bsqrid.split("、")
然后再使用push() 方法可向数组的末尾添加一个或多个元素
this.tableData[i].bsqrList.push({bsqr:this.tableData[i].bsqrName[j],bsqrajnum:this.tableData[i].bsqrajNum[j],bsqrid:this.tableData[i].bsqrId[j]})
这样就可以完美解决我当前的需求
献上我的代码段
for(let i = 0;i<this.tableData.length;i++) {
this.tableData[i].bsqrList = []
this.tableData[i].bsqrName=this.tableData[i].bsqr.split("、")
this.tableData[i].bsqrajNum=this.tableData[i].bsqrajnum.split("、")
this.tableData[i].bsqrId=this.tableData[i].bsqrid.split("、")
for(let j = 0;j<this.tableData[i].bsqrName.length&&this.tableData[i].bsqrajNum.length&&this.tableData[i].bsqrId.length;j++) {
this.tableData[i].bsqrList.push({bsqr:this.tableData[i].bsqrName[j],bsqrajnum:this.tableData[i].bsqrajNum[j],bsqrid:this.tableData[i].bsqrId[j]})
}
}
效果图 :
这样就可以解决el-table-column展示多个数据并且加于点击的方法,如果有哪里写的不对,也希望同僚指正。