最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

vue+iview写个弹框的示例代码

来源:懂视网 责编:小采 时间:2020-11-27 22:24:30
文档

vue+iview写个弹框的示例代码

vue+iview写个弹框的示例代码:iView 是一套基于Vue.js的开源UI组件库,主要服务于PC界面的中后台产品。 1、iView的特性 1) 高质量、功能丰富 2) 友好的API ,自由灵活地使用空间 3) 细致、漂亮的 UI 4) 事无巨细的文档 5) 可自定义主题 2、iView的安装: 1) 使用npm:
推荐度:
导读vue+iview写个弹框的示例代码:iView 是一套基于Vue.js的开源UI组件库,主要服务于PC界面的中后台产品。 1、iView的特性 1) 高质量、功能丰富 2) 友好的API ,自由灵活地使用空间 3) 细致、漂亮的 UI 4) 事无巨细的文档 5) 可自定义主题 2、iView的安装: 1) 使用npm:

iView 是一套基于Vue.js的开源UI组件库,主要服务于PC界面的中后台产品。

1、iView的特性

1) 高质量、功能丰富
2) 友好的API ,自由灵活地使用空间
3) 细致、漂亮的 UI
4) 事无巨细的文档
5) 可自定义主题

2、iView的安装:

1) 使用npm:

npm install --save iview 

2) CDN引入:

<link rel="stylesheet" href="css/iview.css" rel="external nofollow" > 
<script src="js/iview.min.js"></script> 

由于公司项目需要,所以目前捣鼓了vue+iview搭建了一个项目,用的环境都是1.0版本,在使用iview弹框中,由于需要先进行弹框中表单的验证,验证通过才调用后台接口,但是呢,iview弹框中的确定按钮点击一下弹框就消失了,怎么办,要实现效果,各种翻看资料,最终解决办法如下:

<template> 
 <!--取消订单弹框和老板批准弹框--> 
 <Modal 
 :visible.sync="show" 
 title="提示" 
 :loading="loading" 
 @on-ok="asyncOK"> 
 <Row> 
 <i-col span="3"></i-col> 
 <i-col span="1" style="color:red;margin-top:7px;font-weight: bold">*</i-col> 
 <i-col span="2" style="margin-top:5px;">授权码</i-col> 
 <i-col span="6"> 
 <input class="ivu-input errorInput" type="number" v-model="code" placeholder="请输入" @blur="codeBlur"> 
 <div class="fade-transition ivu-form-item-error-tip error" style="display:none;position: static">验证码错误</div> 
 </i-col> 
 <i-col span="3" style="margin-left:5px;"> 
 <i-button type="primary" :loading="loadingBtn" @click="toLoading"> 
 <span v-if="!loadingBtn">{{btnText}}</span> 
 <span v-else>{{btnText}}</span> 
 </i-button> 
 </i-col> 
 </Row> 
 </Modal> 
</template> 
<script type="text/javascript"> 
import { 
 orderService 
} from 'jo' 
 export default { 
 props:["show"], 
 data(){ 
 return { 
 loading:true, 
 loadingBtn:false,//点击申请取消按钮后loading 
 btnText:'申请取消订单', 
 code:"",//验证码 
 clearTime:"",//定时器 
 countDownIndex:60,//60秒倒计时 
 } 
 }, 
 methods:{ 
 codeBlur(){ 
 if(this.code == ""){ 
 $(".errorInput").css("border","1px solid red") 
 $(".error").css("display","block") 
 }else{ 
 $(".errorInput").css("border","1px solid #d7dde4") 
 $(".error").css("display","none") 
 } 
 }, 
 toLoading(){ 
 //调用发送验证码接口 
 // let operName = window.sessionStorage.getItem("userName") 
 // accountService.recommenderGetCode(operName,this.selectDelteOne.recommender,1) 
 this.countDown() 
 
 }, 
 countDown(){ 
 //倒计时 
 var that = this; 
 that.loadingBtn = true 
 that.btnText = that.countDownIndex+"秒" 
 that.countDownIndex--; 
 that.clearTime = setInterval(function(){ 
 console.log(that.countDownIndex) 
 if(that.countDownIndex == 0){ 
 that.countDownIndex = 60 
 that.btnText = "发送" 
 that.loadingBtn = false 
 window.clearTimeout(that.clearTime) 
 return false 
 } 
 that.btnText = that.countDownIndex+"秒" 
 that.countDownIndex--; 
 },1000) 
 // } 
 }, 
 asyncOK(){ 
 //提交 
 if(this.code == ""){ 
 this.show = true 
 console.log('sdasda'+this.show) 
 $(".errorInput").css("border","1px solid red") 
 $(".error").css("display","block") 
 this.loading = false 
 this.$nextTick(() => { this.loading = true;}); 
 return 
 } 
 this.$nextTick(() => {this.loading = true; }); 
 // let operId = window.sessionStorage.getItem("crmUserId") 
 // let operName = window.sessionStorage.getItem("userName") 
 // if(this.isApply){ 
 // orderService.sendSingleUpdate03(this.data, 3, operName, operId, this.code).then(res => this.updateList(res.message)) 
 // }else{ 
 // orderService.sendSingleUpdate03(this.data, 2, operName, operId, this.code).then(res => this.updateList(res.message)) 
 // } 
 } 
 } 
 } 
</script> 

大概思路就是先命名一个变量loading,这里必须为true,然后在点击弹框的提交按钮的时候先把loading设置为false,然后必须加上

this.$nextTick(() => { this.loading = true;});就能实现效果啦,具体实现原理,这坑遇到了,就先记录下来  

传送门-->https://github.com/iview/iview/issues/597#issuecomment-292422473 

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

vue+iview写个弹框的示例代码

vue+iview写个弹框的示例代码:iView 是一套基于Vue.js的开源UI组件库,主要服务于PC界面的中后台产品。 1、iView的特性 1) 高质量、功能丰富 2) 友好的API ,自由灵活地使用空间 3) 细致、漂亮的 UI 4) 事无巨细的文档 5) 可自定义主题 2、iView的安装: 1) 使用npm:
推荐度:
标签: VUE 弹框 iview的
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top