錯誤原因
eltable多表頭凍結時因為eltable源碼代碼計算有誤并不是遞歸計算所以凍結表格的寬度錯誤
需要修改源碼查詢打包替換自己的node_modules
前往git或者gitee下載elementUI最新源碼
修改table-layout.js
在其中兩百行有這么一段代碼
if (fixedColumns.length > 0) {
let fixedWidth = 0;
fixedColumns.forEach(function(column) {
fixedWidth += column.realWidth || column.width;
});
this.fixedWidth = fixedWidth;
}
這里需要修正
在當前對象中新添加一個方法
computeFixedWidth(paren, arr) {
for (let index = 0; index < paren.length; index++) {
const son = paren[index].children;
if (!son) {
arr.push(paren[index]);
} else {
this.computeFixedWidth(son, arr);
}
}
return arr;
}
修改剛剛這行代碼
if (fixedColumns.length > 0) {
let fixedWidth = 0;
let arr = [];
arr = this.computeFixedWidth(fixedColumns, arr);
for (let index = 0; index < arr.length; index++) {
if (arr[index].fixed) {
fixedWidth += arr[index].realWidth ||arr[index].width;
} else {
break;
}
}
this.fixedWidth = fixedWidth;
// fixedColumns.forEach(function (column) {
// fixedWidth += column.realWidth || column.width;
// });
// this.fixedWidth = fixedWidth;
}
修改后打包
npm run dist
然后把打包后的lib包文件去替換node_modules中Element下的lib文件