vue页面按钮呈现loading加载状态,与avue-form中loading使用问题

按钮点击时呈现加载状态,防止其他误操作。
1.效果图

2.代码实现
(1)按钮添加::loading="loading.listLoading",由这个属性控制加载状态动画

<el-button type="primary" style="margin-top: 12px;" :loading="loading.listloading" @click="expScorePacks()">导出

(2)定义 loading.listLoading(true:为开启加载状态,false:关闭加载状态)

return{
        loading:{
          listloading: false,
        }
      }

(3)点击按钮时开启加载状态: this.loading.listLoading = true。将下列代码写在点击事件执行的一开始,触发加载动画演示呈现加载状态

 this.loading.listloading = true;
          this.$message({
            type: "warning",
            message: "数据正在导出,请耐心等待"
          });

(4)查询结束或抛出异常一定要关闭加载状态:this.loading.listLoading = false

if (data) {
              this.loading.listloading = false;
              this.$message({
                type: "success",
                duration: 10000,
                message: "操作成功"
              });

avue-form中按钮无需自己使用button来写上,自然loading样式也不用自己定义,最后关闭avue中loading的状态只需要在js中写上done()方法即可

工作之余,匆匆记录,有问题欢迎讨论。

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
好的,以下是一个示例代码: ``` <template> <div> <el-form ref="form" :model="form" label-width="100px"> <el-form-item label="姓名"> <el-input v-model="form.name"></el-input> </el-form-item> <el-form-item label="年龄"> <el-input v-model="form.age"></el-input> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm">提交</el-button> </el-form-item> </el-form> <div v-if="loading" class="loading"> <el-loading-spinner></el-loading-spinner> </div> </div> </template> <script> export default { data() { return { form: { name: '', age: '' }, loading: false } }, methods: { submitForm() { this.loading = true; this.$refs.form.validate((valid) => { if (valid) { // 发送表单数据 setTimeout(() => { // 模拟请求 this.loading = false; this.$message({ message: '提交成功', type: 'success' }); }, 2000); } else { this.loading = false; this.$message({ message: '表单校验失败', type: 'error' }); return false; } }); } } } </script> <style> .loading { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(255,255,255,0.5); z-index: 9999; display: flex; justify-content: center; align-items: center; } </style> ``` 在这个示例,我们使用了 `el-loading-spinner` 组件作为动画,将其放在一个 `div` ,并使用 `v-if` 条件渲染控制其显示和隐藏。在点击提交按钮时,将 `loading` 置为 `true`,然后进行表单校验和数据提交,提交成功后将 `loading` 置为 `false`,表示完成。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值