Vue+Element table实现局部loading效果(不包含表头)

     项目中,有一个表格加载数据,因为接口需要连接设备成功后才会返回数据,前端获取数据时间较长,所以添加局部Loading效果,以提升用户体验度

element-loading-spinner="el-icon-loading" :element-loading-text="$t('tip.loading')" element-loading-custom-class="equipment-loading" element-loading-background="rgba(55,55,55,0.2)"

 最开始是将上面代码加到<el-table>中,提交测试后,测试提出两个优化:

一、loading时不要将表头一起loading

      开始效果

    解决:

const loading = this.$loading({
   lock: true,//同v-loading的修饰符
   text: this.$t('tip.loading'),//加载文案
   backgroundColor: 'rgba(55,55,55,0.4)',//背景色
   spinner: 'el-icon-loading',//加载图标
   target: document.querySelector(".el-table__body")//loading需要覆盖的DOM节点,默认为body
})

 效果: 

 注:此时loading后面的数据是已经加载完成的结果,方便截图,暂时注释了关闭(关闭调用loading.close();)

二、loading效果未结束时,不显示table组件的no data字样

   原效果:

解决:

data: {
    return {
        dataText: ""//定义
    }
},
mounted() {
    this.init();
},
methods: {
    init(){
         ...//数据请求
         //成功时判断数据是否为空
         if(res.data == undefined){
              //为空时,结合国际化进行赋值
              if(localStorage.language === 'en'){
                      this.dataText = "No data";
               }else{
                      this.dataText = "暂无数据"; 
               }
         }
    }
}

 

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值