Element-UI的table使用tag页切换行展示行错位问题修复
项目中的场景:
- 菜单内使用el-tabs组件然后分为汇总和详情两个tab,两个独自请求列表展示正常,当点击其他菜单再进行切回的时候详情tab页的序号和其他行展示错误
解决:
- 首先table是封装的组件,在封装组件中对组件中没有处理activated
activated() {
this.$refs.table && this.$refs.table.doLayout()
}
- 其次在写tabs 的 el-tab-pane 可以写入单独的key 里面的组件可以用v-if去控制
<template>
<div class="main-wrap">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane :label="$lang('汇总')" name="first" :key="'first'">
<CollectList v-if="isShowFirst" @toDetail="toDetail"></CollectList>
</el-tab-pane>
<el-tab-pane :label="$lang('明细')" name="second" :key="'second'">
<DetailList v-if="!isShowFirst" detailParams="detailParams"></DetailList>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import CollectList from './checkConfirmationCollect.vue'
import DetailList from './checkConfirmationDetail.vue'
export default {
name: 'CheckConfirmation',
components: { CollectList, DetailList },
data() {
return {
isShowFirst: true,
activeName: 'first', // 当前列表tab项
detailParams: {} // 明细
}
},
created () {
},
methods: {
// 列表tab切换
handleClick(tab, event) {
if (tab.name === 'first') {
this.isShowFirst = true
} else {
this.isShowFirst = false
}
this.$bus.$emit('doLayout')
},
toDetail(obj) {
this.isShowFirst = false
this.detailParams = obj
this.activeName = 'second'
}
}
}
</script>
<style lang="scss">
</style>
版权声明:本文为socaicaicaicai原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。