vue el-table的每行操作el-button添加单独的loading效果实现

这篇具有很好参考价值的文章主要介绍了vue el-table的每行操作el-button添加单独的loading效果实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

效果图

vue el-table的每行操作el-button添加单独的loading效果实现,vue.js,前端,javascript

实现代码

<tamplate>
   <el-table :data="list" >
       <el-table-column fixed="right" label="操作" align="left" width="220">
         <template slot-scope="scope">
           <!-- 主要设置:loading="scope.row.loading" -->
           <el-button
             type="text"
             plain
             size="small"
             :loading="scope.row.loading"
             @click="boxConfigSync(scope.row)"
           >同步</el-button>
         </template>
       </el-table-column>
     </el-table>
</tamplate>
<script>
     methods: {
	   // 获取列表
	    getPage() {
	      const self = this
	      self.$api.getXXXDevices(self.listQuery)
	        .then((response) => {
	          //主要设置
	          //给每一行数据添加loading属性,值设置为false
	          self.list = response.items.map(res=>{
	            this.$set(res, 'loading', false)
	            return res
	          });
	        })
	    },
	    boxConfigSync(row) {
	      const self = this
	      row.loading = true;//主要设置
	      self.$confirm('是否确定?', '提示', {
	        confirmButtonText: '确定',
	        cancelButtonText: '取消',
	        type: 'warning'
	      })
	        .then(() => {
	          this.$api.synXXXXNodes(row.id).then((response)=>{
	              if (response.success) {
	                self.$message({
	                  message: '成功!',
	                  type: 'success'
	                })
	                row.loading = false;//主要设置
	              } else {
	                row.loading = false;
	                self.$message({
	                  type: 'error',
	                  message: response.info//主要设置
	                })
	              }
	            }).catch(() => {
	              row.loading = false;//主要设置
	              this.$message({
	                title: "失败",
	                message: "失败",
	                type: "error",
	                duration: 2000
	              });
	            });
	        })
	        .catch(() => {
    	      row.loading = false;//主要设置
	          self.$message({
	            type: 'info',
	            message: '已取消'
	          })
	        })
	    },
	  }
</script>

实现就这么简单,一目了然。

结语

你的压力来源于无法自律,只是假装努力,现状跟不上内心的欲望,所以你焦虑又恐惧。文章来源地址https://www.toymoban.com/news/detail-535465.html

到了这里,关于vue el-table的每行操作el-button添加单独的loading效果实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包