现象:定义多个头部和多个数据体,可以自由切换不同的头部和相应的数据体,但是切换过程表格会变形。
解决办法:table增加索引,切换头部和数据时,修改为不同的索引,即可解决
重点:表格标签上的 key="toggleIndex" ,和表头切换时toggleIndex值改变
代码示例:
<el-table
v-if="dialogvisible"
:data="devList | datafilter(getdeviceId,system,sensorType)"
:key="toggleIndex"
border
stripe
style=" 100%"
height="450px"
@row-dblclick="selectDevice"
>
<el-table-column type="index" fixed align="center" label="序号" width="50"></el-table-column>
<el-table-column align="center" label="操作" :width="system==='121'?150:90">
<template slot-scope="scope">
<el-button
v-if="scope.row.x && scope.row.y"
type="primary"
plain
size="mini"
@click="selectDevice(scope.row)"
>删除</el-button>
</template>
</el-table-column>
<el-table-column
v-for="col in cols"
:key="col.prop"
:prop="col.prop"
:label="col.label"
:width="col.width"
:formatter="renderContent"
></el-table-column>
</el-table>
表头和数据切换代码:
binData(_system) { if (_system === "140") { // 每次需要切换时需修改表格的索引值,解决表格动态加载数据闪的问题 this.toggleIndex = 0; //人员定位系统 this.cols = this.personnelCol; this.devList = this.deviceList; } else if (_system === "120") { // 每次需要切换时需修改表格的索引值,解决表格动态加载数据闪的问题 this.toggleIndex = 1; //安全监测系统 this.cols = this.safeCol; this.devList = this.safeList; } else if (_system === "121") { // 每次需要切换时需修改表格的索引值,解决表格动态加载数据闪的问题 this.toggleIndex = 2; //工业视频系统 this.cols = this.videoCol; this.devList = this.videoList; } }