当前位置: 首页 > article >正文

Vue + Element 实现按钮指定间隔时间点击

1、业务需求

需要加一个按钮,调用第三方API,按钮十分钟之内只能点击一次,刷新页面也只能点击一次

2、思路

加一个本地缓存的时间戳,通过时间戳计算指定时间内不能点击按钮

3、实现

1)vue页面

<template>
  <el-row :gutter="15">
    <el-col :span="4">
      <el-button
      type="danger"
      icon="el-icon-download" 
      @click="getData"
      :loading="getDataLoading">获取数据</el-button>
    </el-col>
  </el-row>
</template>

<script type="text/ecmascript-6">
import { GetDataInfo } from '@/api/xxx'

export default {
  data () {
    return {
      getDataLoading: false,
    }
  },
  methods: {
    // 获取数据按钮,10分钟内执行一次(本地缓存)
    async getData () {
      const storedTime = localStorage.getItem('lastClickGetDataTime') 
      const currentTime = Date.now() // 时间戳(秒级)
      if (!storedTime || (currentTime - storedTime) / 1000 / 60 >= 10) {
        // 如果存储的时间不存在或者距离上次点击时间超过10分钟,则执行按钮点击操作  
        this.getDataLoading = true
        try {
          await GetDataInfo({})
        } catch (error) {
          this.getDataLoading = false
        }
        this.getDataLoading = false
        localStorage.setItem('lastClickGetDataTime', currentTime) 
      } else {  
        // 距离上次点击时间小于10分钟,不做任何操作或给出提示  
        this.$message({  
          message: '请在十分钟后再点击按钮',  
          type: 'warning',
        })
      }
    },
  },
}
</script>

// 注:指定时间可以根据需要更新,比如1分钟内只能点击一次,只需要将循环部分改为

if (!storedTime || (currentTime - storedTime) / 1000 >= 60)

2) 效果

在这里插入图片描述

希望以上内容能够帮助你使用Vue + Element 实现按钮指定间隔时间点击。欢迎点赞、关注、收藏,如果你还有其他问题,欢迎评论区交流。


http://www.kler.cn/a/160832.html

相关文章:

  • 基于Java Web的传智播客crm企业管理系统的设计与实现
  • Android Studio 将项目打包成apk文件
  • Bugku CTF_Web——文件上传
  • Spring Boot 1.x 版本可以集成 Spring Cloud Sleuth
  • 《C++在金融领域的技术革命:高效、安全与创新的融合》
  • JS 实现SSE通讯和了解SSE通讯
  • [MTK]安卓8 ADB执行ota升级
  • 文心一言 VS 讯飞星火 VS chatgpt (151)-- 算法导论12.2 7题
  • JPA(Java Persistence API)是什么
  • 指针(四)
  • 2.面向对象编程风格
  • 【NLP】如何管理大型语言模型 (LLM)
  • 常规外网打点拿下域控
  • 鸿蒙一出,android开发处境再受重创
  • Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)读书笔记 目录
  • screen 常用命令
  • 小程序商城制作一个需要多少钱
  • C++指针作业
  • RT-DETR手把手教程:NEU-DET钢材表面缺陷检测任务 | 不同网络位置加入EMA注意力进行魔改
  • Python-文件详解
  • 烈酒行业分析:预计2029年将达到17628亿元
  • Qt6 QRibbon 一键美化Qt界面
  • Dockerfile与Docker网络
  • 人造草坪市场分析:预计2029年将达到328亿元
  • 基于Java SSM框架实现弹幕视频网站系统项目【项目源码+论文说明】计算机毕业设计
  • 关于一些整理图像及视频数据的代码块