业务场景如下图:

页面出现提示框:               

点击确定,隐藏上面的弹出框, 继续弹出提示: 

点击确定隐藏上面的弹出框,继续弹出下面提示:

点击确定隐藏上面的弹出框,继续弹出下面提示:

点击确定,跳转页面

  • 上面有 2个 按钮的提示框,如果点击取消,那么就会返回,不会执行往下的操作
  • 提示框的按钮的个数可能只有一个‘确定’ 按钮 , 可能 2 个 , 根据业务而定
  • 如果这样的需求很多,可能不止4个弹出框,可能就只有一个提示框,根据业务而定

根据 ui 的 分析,决定将上面的提示框封装成一个组件  prompts.vue

将组件放置于app.vue 里面 注册,因为该组件经常被用到

组件用到的数据,用vuex 保存 , 需要提示,只要提交 vuex 的 mutations 即可

组件用到的数据 prompts {

  isShow : false , 是否显示提示框 默认false

  msgs : [ {

    msg : ' ' , //需要提示的信息

    button : {

      confirm : '确认'

      cancel : '取消'  // 如果有2个按钮

    }

  } ]

}

prompts.vue 组件,实现的关键:

弹出框的提示语,永远都是提示 msgs  数组里面的第一个元素 : {{ prompts.msgs[0] && prompts.msgs[0].msg }}

给确定按钮绑定 @click 事件,事件里面 判断 msgs  数组的长度是不是大于1

  是 ---->

将 msgs里面的第一个元素删除 ,将提示框隐藏,提交 vuex ,setTimeout 300 毫秒后,继续弹出提示框,此时,弹出的内容就是原来数组的第二个元素的msg , 点击确定,就会循环操作,一直到数组的长度为1

  否 ---->

隐藏提示框,并且初始化提示框,判断 子组件是否实现回调函数,是就调用

弹出提示框调用方法:mutations 里面的 UPDATE_PROMPTS 方法

vm.$store.commit('UPDATE_PROMPTS' , {
  msgs : [

    { msg : ' 提示1 ' ,  button : {confirm : ' 确定 ' } } ,

    { msg : ' 提示2 ' ,  button : {confirm : ' 确定 ' , cancel : ' 取消 '  } } ,

    { msg : ' 提示3 ' ,  button : {confirm : ' 确定 '  } } ,

    .....................

  ] ,
  confirmCallBack : function () { ........................ } ,

  cancelCallBack : function () { ................... }
} ) ;

POS开发问题 - 多个弹出框的实现的更多相关文章

  1. (转)微信小程序开发—弹出框

    原文地址 <span style="font-family:Comic Sans MS;font-size:18px;color:#333333;"><view ...

  2. 【小程序】微信小程序开发—弹出框

    1. <span style="font-family:Comic Sans MS;font-size:18px;color:#333333;"><view cl ...

  3. iOS开发- 自己主动消失的弹出框

    - (void)timerFireMethod:(NSTimer*)theTimer//弹出框 { UIAlertView *promptAlert = (UIAlertView*)[theTimer ...

  4. 基于Vue.js PC桌面端弹出框组件|vue自定义弹层组件|vue模态框

    vue.js构建的轻量级PC网页端交互式弹层组件VLayer. 前段时间有分享过一个vue移动端弹窗组件,今天给大家分享一个最近开发的vue pc端弹出层组件. VLayer 一款集Alert.Dia ...

  5. JS组件系列——Bootstrap寒冬暖身篇:弹出框和提示框效果以及代码展示

    前言:对于Web开发人员,弹出框和提示框的使用肯定不会陌生,比如常见的表格新增和编辑功能,一般常见的主要有两种处理方式:行内编辑和弹出框编辑.在增加用户体验方面,弹出框和提示框起着重要的作用,如果你的 ...

  6. 控制非模态弹出框(showModelessDialog)唯一且随父页面关闭

    网站开发中,常常会遇到需要弹出窗体的情况,一般弹出框有模态和非模态两种,如下: 模态:window.showModalDialog() 非模态:window.showModelessDialog() ...

  7. 禁用 WebView 放大镜及拷贝粘贴弹出框

    文/KyXu(简书作者)原文链接:http://www.jianshu.com/p/40048d9c979a著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 背景:当你的App中有 We ...

  8. Bootstrap:弹出框和提示框效果以及代码展示

    前言:对于Web开发人员,弹出框和提示框的使用肯定不会陌生,比如常见的表格新增和编辑功能,一般常见的主要有两种处理方式:行内编辑和弹出框编辑.在增加用户体验方面,弹出框和提示框起着重要的作用,如果你的 ...

  9. html+css源码之实现登录弹出框遮罩层效果

    在web开发中,很多网站都做了一些特别炫丽的效果,比如用户登录弹框遮罩层效果,本文章向大家介绍css如何实现登录弹出框遮罩层效果,需要的朋友可以参考一下本文章的源代码. html+css实现登录弹出框 ...

随机推荐

  1. jmeter - 录制web网页

    1.       打开JMeter工具 创建一个线程组(右键点击“测试计划”--->“添加”---->“线程组”) 创建一个http代理服务器(右键点击“工作台”--->“添加”-- ...

  2. JavaScript——原生js实现瀑布流

    瀑布流介绍及实现原理: 瀑布流是一种页面布局,页面上也有多等宽的块(块就页面内容),每一块都是绝对定位(absolute),每个块排列的方式如下:寻找现在高度最小的列,把该块定位到该列下方.需要知道, ...

  3. 最小生成树算法 prim kruskal两种算法实现 HDU-1863 畅通工程

    最小生成树 通俗解释:一个连通图,可将这个连通图删减任意条边,仍然保持连通图的状态并且所有边权值加起来的总和使其达到最小.这就是最小生成树 可以参考下图,便于理解 原来的图: 最小生成树(蓝色线): ...

  4. springboot整合dubbo注解方式(四)

    在笔者换jar包时候出现问题: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/zook ...

  5. List<T>中 GetRange (int index, int count)的使用

    GetRange:在源 List<T> 中创建元素范围的浅表复制. ; ) { List<T> uplist = new List<T>(); u++; <= ...

  6. 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_CLR

    1.CLR简介 全称:Common Language Runtime(公共语言进行时) 属性:一种托管模块 使用对象:面向CLR的所有语言(C#.Basic.IL...) 核心功能:内存管理.程序集加 ...

  7. hdu4081 秦始皇修路(次小生成树)

    题目ID:hdu4081   秦始皇修路 题目链接:点击打开链接 题目大意:给你若干个坐标,每个坐标表示一个城市,每个城市有若干个人,现在要修路,即建一个生成树,然后有一个魔法师可以免费造路(不消耗人 ...

  8. rpm命令相关

    ### .列出所有安装过的包 rpm -qa | grep sql ### .如何获得某个软件包的文件全名. rpm -q mysql ### .rpm包中的文件安装到那里 rpm -ql lrzsz ...

  9. 大型分布式java应用与SOA

    1.基于消息方式.远程调用方式的架构带来的问题: 1.1 系统多元化的问题 [解决]: 对共用逻辑部分进行抽象: 1.2 系统访问量.数据量上涨后带来的问题 [解决]: 拆分系统: 1.3 在构建共用 ...

  10. Java基本语法_循环练习系列(一)——模拟双色球

    目前正在自学java中,学完循环这一块,简单写几个例子,使之更加熟练掌握循环语句和条件语句. 简述一下要这段代码要完成的任务: /*有33个红色球,16个蓝色球. 在33个里选6个 ,16个里选1个. ...