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


Posted in Javascript onDecember 05, 2017

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 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
深入理解JavaScript定时机制
Oct 29 Javascript
javascript实例--教你实现扑克牌洗牌功能
May 15 Javascript
javaScript中slice函数用法实例分析
Jun 08 Javascript
详解Bootstrap按钮
Jan 04 Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
Jun 07 Javascript
怎样判断jQuery当前元素是隐藏还是显示
Nov 23 Javascript
关于Function中的bind()示例详解
Dec 02 Javascript
Bootstrap源码解读导航(6)
Dec 23 Javascript
angular6的响应式表单的实现
Oct 10 Javascript
浅谈Angular7 项目开发总结
Dec 19 Javascript
VueCli3.0中集成MockApi的方法示例
Jul 05 Javascript
Vue组件模板及组件互相引用代码实例
Mar 11 Javascript
Node.js创建Web、TCP服务器
Dec 05 #Javascript
实例讲解javascript实现异步图片上传方法
Dec 05 #Javascript
jquery如何实现点击空白处隐藏元素
Dec 05 #jQuery
jQuery实现验证表单密码一致性及正则表达式验证邮箱、手机号的方法
Dec 05 #jQuery
最实用的JS数组函数整理
Dec 05 #Javascript
微信小程序picker组件简单用法示例【附demo源码下载】
Dec 05 #Javascript
Vue DevTools调试工具的使用
Dec 05 #Javascript
You might like
晶体管单管来复再生式收音机
2021/03/02 无线电
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
2010/02/16 PHP
PHP中的多种加密技术及代码示例解析
2016/10/20 PHP
php json相关函数用法示例
2017/03/28 PHP
Laravel 自带的Auth验证登录方法
2019/09/30 PHP
PHP如何防止用户重复提交表单
2020/12/09 PHP
用javascript操作xml
2006/11/04 Javascript
Js日期选择自动填充到输入框(界面漂亮兼容火狐)
2013/08/02 Javascript
JS自定义功能函数实现动态添加网址参数修改网址参数值
2013/08/02 Javascript
[原创]推荐10款最热门jQuery UI框架
2014/08/19 Javascript
JavaScript中的console.time()函数详细介绍
2014/12/29 Javascript
js+css实现文字散开重组动画特效代码分享
2015/08/21 Javascript
自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选与多选下拉框
2015/12/12 Javascript
详解AngularJS过滤器的使用
2016/03/11 Javascript
js实现简单的手风琴效果
2017/02/27 Javascript
在js中做数字字符串补0(js补零)
2017/03/25 Javascript
深入理解JavaScript的值传递和引用传递
2018/10/24 Javascript
node 标准输入流和输出流代码实例
2019/09/19 Javascript
vue watch监控对象的简单方法示例
2021/01/07 Vue.js
微信小程序 接入腾讯地图的两种写法
2021/01/12 Javascript
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
python实现日常记账本小程序
2018/03/10 Python
pandas筛选某列出现编码错误的解决方法
2018/11/07 Python
python 生成器和迭代器的原理解析
2019/10/12 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
2020/07/03 Python
加拿大女包品牌:Matt & Nat
2017/05/12 全球购物
古驰英国官网:GUCCI英国
2020/03/07 全球购物
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
2016/03/27 面试题
公司募捐倡议书
2014/05/14 职场文书
党员自我剖析材料(群众路线)
2014/10/06 职场文书
同学聚会邀请函
2015/01/30 职场文书
军训个人总结
2015/03/03 职场文书
2016年员工政治思想表现评语
2015/12/02 职场文书
python基础学习之生成器与文件系统知识总结
2021/05/25 Python
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
2022/03/03 Python
python实现手机推送 代码也就10行左右
2022/04/12 Python