POS开发问题 - 多个弹出框的实现

业务场景如下图:

页面出现提示框:               678676-20170620151544335-338576108.png

 

点击确定,隐藏上面的弹出框, 继续弹出提示: 678676-20170620151223273-1590676538.png

 

点击确定隐藏上面的弹出框,继续弹出下面提示:678676-20170620151248382-1347813233.png

 

点击确定隐藏上面的弹出框,继续弹出下面提示:678676-20170620151307929-660829690.png

 

 

点击确定,跳转页面

 

  • 上面有 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 () { ................... }
} ) ;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值