Vue+iView表格,button局部loading渲染

问题

在table中的最后列有个执行的button,想要点的时候有loading的效果,但是写完发现点一个,其他的button也变成了loading状态。

解决办法

通过当前行的$isLoading的值来控制按钮状态,点击时通过this.$set(params.row,'$isLoading', true)将按钮设置为loading状态,后台响应后通过this.$set(params.row,'$isLoading', false)将按钮设置成正常状态。

//列配置
columns:[
    {
        title:'操作',
        width:100,
        align: 'center',
        key: 'action',
        fixed: 'right',
        render: (h, params)=>{
            return('div', [
                h('Button',{
                    props: {
                        type: 'primary',
                        size: 'small',
                        icon: 'md-sync',
                        loading: params.row.$isLoading
                    },
                    on: {
                        click: (){
                            this.click(params);
                        }
                    }
                
                },'执行')
            
            ]);
        }
    }
]

//点击方法
click(params){
    this.$set(params.row,'$isLoading', true);
    //调后台
    call(params.row).then(res=>{
        this.$set(params.row,'$isLoading', false);
    });
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值