业务场景如下图:

页面出现提示框:               

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

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

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

点击确定,跳转页面

  • 上面有 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. [51nod1188]最大公约数之和 V2(筛法)

    题面 传送门 题解 口胡的整除分块单次询问\(O(\sqrt{n})\)的做法居然\(T\)了?那还是好好看正解吧-- 首先我们枚举\(j\),求对于每个\(j\)有所有\(i<j\)的\(\g ...

  2. P1900 自我数

    题意: 对于每一个正整数n,我们定义d(n)为n加上它每一位数字的和. 例如,d(75)=75+7+5=87.给定任意正整数n作为一个起点,都能构造出一个无限递增的序列:n, d(n), d(d(n) ...

  3. asp.net mvc 中的 controller和asp.net web api 的apicontroller有什么区别?(转)

    本质上区别不大,一个返回html/text类型的response,一个返回json/text或者xml/text类型的response,对于api环境而言,apicontroller更智能一点,他可以 ...

  4. 红帽JBoss企业应用平台

    概观 下载 你好,世界! 文档和API 救命 社区     你好,世界! 1. 设置您的开发环境 10分钟 2. 安装,配置和验证 5分钟 3. 构建您的第一个JBoss EAP应用程序 20分钟 1 ...

  5. JDBC常用套路

    1.连接数据库.使用查询功能 //1.获取数据库连接 Connection con=JDBCTools.getConnection(); String sql="select * from ...

  6. php 中 ?? 和 empty 的 区别

    left??right  操作符...当 left 为空时 返回 right ..注意 和 empty 相比 ,空字符,0,'0' 都会返回它本身,而不是 右边的..也就是 当且仅当 没有设置变量或者 ...

  7. C语言编程思想

    模块化的思想 模块化程序的特点:单入口.单出口 基本的三种结构:顺序.分支(选择).循环: 这三个基本结构来安排模块执行的步骤: 循环三要素:初值.条件.更新: 面对编程问题:三步走策略(输入+处理+ ...

  8. Github如何快速添加add文件到暂存区之git add

    git add作用是将代码从工作区提交到暂存区 通常会想到:git add [file1] [file2]   : 这个方法添加文件比较慢,如果文件比较多怎么办? git add *.扩展名 这条命令 ...

  9. Git for Linux and Windows

    1.在liunx中安装 1.1yum安装 [root@node1 ~]# yum install git –y [root@node1 ~]# git version git version 1.8. ...

  10. ubuntu同时装有MXNet和Caffe框架

    我阐述一下我遇到的问题:因为之前装过caffe,最近装了MXNet.MXNet可以运行,但import caffe就不行了,找不到模块. 那应该怎么处理呢??? 参考了一下这个网站:https://i ...