问题
在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);
});
}