【JS】element-ui table 动态表头 错位问题

如下代码所示,定义一个 tableKey = Math.random() 轻松解决了,动态列错位的问题。

<el-table v-loading="loading" :data="list" :border="true" @selection-change="selectChange" :key="tableKey">
  <el-table-column type="selection" width="45"></el-table-column>
  <el-table-column prop="rank" label="排名" width="60"></el-table-column>
  <el-table-column prop="username" label="姓名" width="90" :show-overflow-tooltip="true"></el-table-column>
  <el-table-column prop="phone" label="手机" width="110"></el-table-column>
  <el-table-column v-if="departMaxLevel>=1" prop="topDepartName" label="一级部门" width="120" :show-overflow-tooltip="true"></el-table-column>
  <el-table-column v-if="departMaxLevel>=2" prop="secDepartName" label="二级部门" width="120" :show-overflow-tooltip="true"></el-table-column>
  <el-table-column v-if="departMaxLevel>=3" prop="thirdDepartName" label="三级部门" width="120" :show-overflow-tooltip="true"></el-table-column>
  <el-table-column v-if="isCheck==1" prop="status" label="审核操作" width="100" >
    <template slot-scope="scope">
      <span v-if="scope.row.status == 1">
        <el-button size="mini" type="success"  @click="statusPass(scope.row, 2)" icon="el-icon-check" circle title="通过"></el-button>
        <el-button size="mini" type="danger"  @click="statusPass(scope.row, 3)" icon="el-icon-close" circle title="不通过"></el-button>
			</span>
			<span v-else>
  			{{ scope.row.statusname }}
    	</span>
  	</template>
  </el-table-column>
  <el-table-column v-if="isCheck==1" prop="back_remark" label="审核理由" width="150" :show-overflow-tooltip="true"></el-table-column>
  <el-table-column v-if="isCheck==1" prop="statustime" label="审核时间" width="150"></el-table-column>
</el-table>

export default {
  data() {
    return {
      list: [],
      loading: false,
      offset: 0,
      limit: 10,
      limitRange: [10,20,50,100,200,500,1000],
      total: 0,
      currentPage: 1,

      tableKey: Math.random(),
    }
  },
  
  methods: {
    getRankPersonList() {
        this.list = [];
        this.loading = true;
        var self = this;
        xx.ajax({
        op: 'xxxx/xxxxxxxx',
        send: {
          activityId: self.activityId,
          orgid: self.orgid,
          offset: self.offset,
          limit: self.limit,
        },
        callback(data) {
          self.loading = false;
          if (data.status == 1) {
            self.departMaxLevel = data.data.departMaxLevel;
            self.isCheck = data.data.isCheck;
            self.list = data.data.rows;
            self.total = data.data.total;
            self.tableKey = Math.random();
          } else {
            self.list = [];
            self.total = 0;
            self.$message({message: '' + data.msg, type: 'warning'});
          }
        }
      });
    },
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小镇学者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值