TableUtil2.js:
export default {
getTableLabel(vueObject, refsName, entrylabelList, entrylabelWidthList){
vueObject.$refs[refsName].$children.forEach(obj => {
if(obj.label != undefined){
entrylabelList.push(obj.label)
}
});
vueObject.$refs[refsName].$children.forEach(obj => {
if(obj.width != undefined){
entrylabelWidthList.push(obj.width);
}
});
},
changeLabel(vueObject, refsName,val, entrylabelWidthList){
let [item,index] =val;
//计算选择列前面所有的宽度
var widthSize = 0;
for(var i = 0;i < index; i++){
widthSize += parseInt(entrylabelWidthList[i]);
}
var lockWidth = 0;
vueObject.$refs.[refsName].fixedColumns.forEach(obj => {
if(obj.width != undefined){
lockWidth = lockWidth + obj.width;
}
});
vueObject.$refs[refsName].bodyWrapper.scrollLeft = widthSize-lockWidth;
}
}
//应用
import tableUtil from '@/js/TableUtil.js';
<el-select
v-model="planEntrysSelectlabel"
filterable
@change="changeLabel('planEntrys',planEntrysSelectlabel)">
<el-option
v-for="(item,index) in playEntrylabelList"
:key="item"
:label="item"
:value="[item,index]">
</el-option>
</el-select>
mounted(){
this.queryInit();
this.init();
this.getTableLabel('planEntrys');
},
getTableLabel(refsName){
var _this = this;
tableUtil.getTableLabel(this, refsName,_this.entrylabelList,_this.entrylabelWidthList);
},
changeLabel(refsName,val){
var _this = this;
tableUtil.changeLabel(this, refsName,val,_this.entrylabelWidthList);
}