描述
合并表格多选.png1.以姓名为合并参考,所有合并的表格为1行
2.选择某姓名对应的数据时,默认只选中姓名为首的第一行(因为合并单元格时,默认把其他行隐藏 return [0, 0])
3.图中的全选不是表格自带的全选,要写方法进行操作(目前没试过表格自带的全选对于行列合并过的表格的情况)
4.全选时,不能对整个表格执行this.$refs['eTable'].toggleRowSelection(),后面会导致勾选错乱,所以勾选全选时,操作勾选选中姓名为首的第一行
6.得到以名字的第一行,后面操作把以此姓名其他数据一起计算得出
全选
//按员工全选
selectEAll() {
this.getIndexObj(this.dataByE)
//this.isAll = true
let ids = []
for (let i = 0; i < this.dataByE.length; i++) {
let r = this.dataByE[i]
if (ids.indexOf(r.EmployeeID) == -1) {
ids.push(r.EmployeeID)
this.$refs['eTable'].toggleRowSelection(this.dataByE[i])
}
}
},
得到数据
handleSelectionChange(val) {
if (this.radio == 3) {
this.num = val.length
this.eIds = []
let ids = val.map((r) => r.EmployeeID)
this.dataByE.forEach((r) => {
ids.forEach((rr) => {
if (r.EmployeeID == rr) {
this.eIds.push({
projectID: r.ProjectID,
employeeID: r.EmployeeID,
})
}
})
})
// console.log(this.eIds)
if (this.num != this.eAllNum) this.eAll = false
if (this.num == this.eAllNum) this.eAll = true
}
}
网友评论