弹框确认按钮,请求两个接口跳转刷新页面,并使用async和await将异步改成同步的数据?

news2024/12/27 7:51:04

前景:公司前后端不分离项目,使用的框架element-ui较低版本的,弹框确定按钮加载动态按钮的loading。

//插件
npm i element-ui -S

效果图:

在这里插入图片描述

在这里插入图片描述
代码:

<template>
	<div>
		<el-button type="text" @click="dialogVisible = true">点击打开 Dialog</el-button>
		<!-- :before-close="handleClose" 绑定一个函数:handleClose -->
		<el-dialog title="提示" :visible.sync="dialogVisible" width="30%" :before-close="handleClose">
			<span>这是一段信息</span>
			<span slot="footer" class="dialog-footer">
				<el-button @click="dialogVisible = false">取 消</el-button>
				<el-button type="primary" @click="dialogVisible = false">确 定</el-button>
			</span>
		</el-dialog>
	</div>
</template>
 
<script>
	export default {
		data() {
			return {
				dialogVisible: false,//默认是隐藏弹框
			};
		},
		methods: {
		//1.第一种操作:
		//before-close 仅当用户通过点击关闭图标或遮罩关闭 Dialog 时起   效。如果你在 footer 具名 slot 里添加了用于关闭 Dialog 的按钮,那么可以在按钮的点击回调函数里加入 before-close 的相关逻辑
		//	handleClose(done) {//关闭弹框事件
		//		this.$confirm('确认关闭?')
		//			.then(_ => {
		//				// 关闭方法-上方传的参数done
		//				done();
		//			})
		//			.catch(_ => {});
		//	},
		//2.第二种操作:
			handleClose(done) {//关闭弹框事件
			 //在关闭弹窗事件的时候对多选事件清除操作.注意是项目有这个需求的时候。
			 //单选的时候,不点击确定按钮下,关闭图标的操作事件
			 this.userInfo="";//清除单选双向数据绑定
			 this.dialogVisible=false;//关闭弹窗
		    },
		}
	};
</script>

在这里插入图片描述

例子:
加载loading效果,并使用async await同步操作,确定按钮加载2个api的时候的,可以使用定时器setTimeout()。

setTimeout和setInterval区别:

setTimeout和setInterval都属于JS中的定时器,可以规定延迟时间再执行某个操作,不同的是setTimeout在规定时间后执行完某个操作就停止了,而setInterval则可以一直循环下去。

async、await详解:

1.同步代码编写方式:Promise使用then函数进行链式调用,一直点点点,是一种从左向右的横向写法;async/await从上到下,顺序执行,就像写同步代码一样,更符合代码编写习惯;

2.同步代码和异步代码可以一起编写:使用Promise的时候最好将同步代码和异步代码放在不同的then节点中,这样结构更加清晰;async/await整个书写习惯都是同步的,不需要纠结同步和异步的区别,当然,异步过程需要包装成一个Promise对象放在await关键字后面。

3.async和await的基础使用

async/awiat的使用规则:

async 表示这是一个async函数, await只能用在async函数里面,不能单独使用
async 返回的是一个Promise对象,await就是等待这个promise的返回结果后,再继续执行
await 等待的是一个Promise对象,后面必须跟一个Promise对象,但是不必写then(),直接就可以得到返回值

...其他代码省略了 弹窗的代码,请复制上面的。
<el-button type="primary" :loading="btnLoading"   @click="submit">确定</el-button>
<script>
	export default {
	  data(){
	     return {
				btnLoading: false,
				//默认要设置为 loading 状态  true是加载 false是不加载状态
		  };
      },
      methods: {
         //事件
         publicApiEvents(){//公共api
         $.post("cm/Controller.php?LastSeason",
                {
                    param:{
                        ssId : id
                    }
                },
                function(data,status) {
                //解析因为后台返回的数据不标准格式,才需要解析,标准的就不用了
                //$.parseJSON() 函数用于将符合标准格式的的JSON字符串转为与之对应的JavaScript对象。
                 const obj = jQuery.parseJSON(data);
                 //可以对拿到的数据做操作obj返回的是成功code==='0'
                 }
             });    
         },
      async  submit(){//确定事件
          this.btnloading = true;//加载的loading关闭
           //调用第一个接口
         await  this.publicApiEvents()
           //第二个接口
              $.post("cm/aController.php?aLastSeason",
                {
                    param:{//我这里参数是可以全局获取到
                        ssId : id,
                        season:season
                    }
                },
                function(data,status) {
                //解析因为后台返回的数据不标准格式,才需要解析,标准的就不用了
                //$.parseJSON() 函数用于将符合标准格式的的JSON字符串转为与之对应的JavaScript对象。
                 const obj = jQuery.parseJSON(data);
                 //可以对拿到的数据做操作obj返回的是成功code==='0'
                     if(obj.code==='0'){
                    setTimeout(() => {
                     this.btnloading = false;//开始加载
                     //跳转新页面并刷新页面
                     window.location.href = '/cm/scoreDetail.php?ssId=' +id; 
                    }, 700);
                 }
             });    
          
         }

       }
     }

</script>

总结:记录一下,少走弯路!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/4886.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hive——操作数据库创建修改表(DDL数据定义)

DDL操作1. 数据库操作1.1 创建&查询数据库1.2 修改&删除数据库2. 表操作2.1 创建表2.2 内部表和外部表2.2.1 管理表2.2.2外部表2.2.3管理表与外部表的互相转换2.3 修改表1. 数据库操作 1.1 创建&查询数据库 定义&#xff1a; CREATE DATABASE [IF NOT EXISTS] d…

IDEA settings设置技巧,最常用快捷键,让你的编译器用更加得心应手

导读 每次下载安装新的 IDEA 以后&#xff0c;都免不了对该软件进行一些优化配置&#xff0c;以方便我们在使用的时候更加得心应手。一份趁手的设置&#xff0c;无疑能让我们的工作效率事半功倍。 碍于每次自己重装 IDEA 都需要去网搜一大堆文章去设置 settings&#xff0c;所以…

Vue框架的学习(Vue的基础指令操作二 V-For)第二课

今天的任务理解下面的几个指令操作 重点在V-for上 V-if V-else V-show V-For 本文章的重心放在V-For 从数据到数组到对象一步一步的去查找 底层的原理 v-show和v-if的用法看起来是一致的&#xff0c;也是根据一个条件决定是否显示元素或者组件 下面是 V-if V-else V-sho…

1. 云计算简介

1.2 云计算的定义和分类 云计算的定义 美国国家标准与技术研究院&#xff08;NIST&#xff09;定义&#xff1a; 云计算是一种模型&#xff0c;它可以实现随时随地、便捷地、随需应变地从可配置计算资源共享池中获取所需的资源&#xff08;例如&#xff0c;网络、服务器、存…

【记录】终端如何 进入conda(base) 环境,如何退出 conda(base)环境,终端快速进入Jupyter notebook的方法

目录一、终端 进入 conda&#xff08;base&#xff09; 环境二、终端 退出 conda&#xff08;base&#xff09; 环境三、终端进入 Jupyter notebook 的方法一、终端 进入 conda&#xff08;base&#xff09; 环境 --->> win R : 输入cmd 回车&#xff0c;进入终端界面。…

什么是微服务?怎么测试?今天一次性讲清楚...

01、什么是微服务 Adrian Cockcroft对微服务的表述&#xff1a;loosely couped service oriented architecture with bounded context。 这里涉及两个微服务的概念&#xff1a; loosely couped&#xff1a;松耦合 松耦合可以引申出其他概念&#xff0c;如各自独立&#xff0c…

坚持软件自主可控,打造国产化公文交换系统

编者按&#xff1a;软件自主可控是什么意思&#xff1f;企业如何对自己使用的软件做到自主可控&#xff1f;本文分析了软件自主可控的概念及意义&#xff0c;并通关相关案例展示了国产化低代码平台是如何助力企业打造公文交换系统的。 软件自主可控的意义 说到软件的自主可控&…

【分享 10 个日常使用的脚本】

&#x1f935;‍♂️ 个人主页老虎也淘气 个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f44d;&#x1f3fb; 收藏…

第十节:继承【java】

目录 &#x1f4d8;1.1为什么需要继承 &#x1f4d2;1.2 继承概念 &#x1f4d7;1.3 继承的语法 &#x1f4d5;1.4 父类成员访问 &#x1f3b1;1.4.1 子类中访问父类的成员变量 &#x1f38e;1.4.2 子类中访问父类的成员方法 &#x1f4d9;1.5 super关键字 &#x1f4d…

基于Matlab利用移动目标指示雷达抑制地面杂波(附源码)

目录 一、构建雷达系统 二、定义目标 三、杂波 四、仿真接收到的脉冲和匹配滤波器 五、使用三脉冲消除器执行 六、使用交错PRF模拟接收到的脉冲 七、对交错的 PRF 执行 八、总结 九、程序 本示例显示了移动目标指示 &#xff08;MTI&#xff09; 雷达的设计&#xff0…

《Java》private、protected、public区别及解析

我们今天来给大家解析一下Java中四种修饰类型的区别。 那么有的老铁就疑惑了&#xff0c;文章名称不是说三种吗&#xff1f;其实还有一种隐藏的修饰类型&#xff08;默认类型&#xff09;英文翻译过来的话是define&#xff0c;这就是我们什么都不修饰&#xff0c;例如&#xff…

【C/C++动态内存 or 柔性数组】——对动态内存分配以及柔性数组的概念进行详细解读(张三 or 李四)

目录前言&#xff08;栈区、堆区、静态区&#xff09;动态内存函数malloc与freecalloc与freerealloc与free常见的动态内存错误经典笔试题&#xff08;再见张三&#xff09;柔性数组前言&#xff08;栈区、堆区、静态区&#xff09; 请耐心看完&#xff0c;看完后就会对内存中的…

天玑9200领跑背后,高端芯片掀起蝴蝶效应

过去一年&#xff0c;天玑9000让联发科在高端旗舰机市场掀起了一场“旋风”。全球知名市场调研机构Counterpoint Research发布的报告显示&#xff0c;联发科在全球和中国智能手机芯片市场份额中连续八个季度保持第一的领先地位&#xff0c;且在高端手机市场的份额有显著增长。另…

PowerShell 美化(谁不想要一个好看的终端呢)

PowerShell 美化安装powershellScoop 安装Oh My Posh安装字体设置应用主题花里胡哨的折腾&#xff08;bushi 多种主题任君挑选 安装powershell 地址&#xff1a;https://github.com/PowerShell/PowerShell/releases 本文主要使用 Oh My Posh 进行美化 地址&#xff1a;https…

C语言之指针(中)

目录 前言 一、字符指针 1.用法&#xff08;两种&#xff09; 2.例子 二、指针数组 三、数组指针 1.数组指针的定义 1.概念 2.例子 2.数组名 3.使用 1.使用的情景 2.例子 四、数组参数、指针参数 1.数组传参 2.指针传参 五、函数指针 1.函数的地址 2.函数指针 3.例子 4.两个特…

【C++】泛型编程之模板初阶

文章目录1. 泛型编程2. 模板2.1 模板的概念3. 函数模板3.1 函数模板概念3.2 函数模板语法3.3 函数模板的原理3.4 函数模板的实例化3.5 模板参数的匹配原则3.6 普通函数与函数模板的区别4. 类模板4.1 类模板语法4.2 类模板的实例化4.3 类模板与函数模板区别4.4 类模板分文件编写…

Word控件Spire.Doc 【文本】教程(17) ;在Word中设置文本方向

Spire.NET的Spire.是MicrosoftDoc人员对Word文档进行操作打印的.NET类库。帮助单独安装Microsoft Word在开发环境下&#xff0c;轻松便捷地创建、编辑、转换和转换Word文档。拥有近10个专业开发经验Spire系列办公文档开发打印工具&#xff0c;专注于创建、编辑、转换和Word/Exc…

C++设计模式---组合模式

文章目录使用场景组合模式的定义安全组合模式使用场景 组合模式和类与类之间的组合是不同的概念。 组合模式主要用来处理树形结构的数据&#xff0c;如果要表达的数据不是树形结构&#xff0c;就不太适合组合模式。 比如我们有一个目录结构&#xff1a; 这个目录我们把它绘…

图解LeetCode——1704. 判断字符串的两半是否相似(难度:简单)

一、题目 给你一个偶数长度的字符串 s 。将其拆分成长度相同的两半&#xff0c;前一半为 a &#xff0c;后一半为 b 。 两个字符串 相似 的前提是它们都含有相同数目的元音&#xff08;a&#xff0c;e&#xff0c;i&#xff0c;o&#xff0c;u&#xff0c;A&#xff0c;E&…

几分钟实现对恶意IP地址进行拦截,腾讯云Web防火墙实在太香了!

一、概述 在平时上网中&#xff0c;我们经常听到“xxx被拉入黑名单”、“把xxx加入白名单”&#xff0c;黑白名单成了禁止访问和允许访问的代名词&#xff0c;黑白名单是一种常见的安全机制&#xff0c;用于隔离流量&#xff0c;然后对隔离的流量采取特定操作。 黑名单代表只…