美文网首页
全局模态框组件的实现

全局模态框组件的实现

作者: 是新来的啊强呀 | 来源:发表于2020-05-09 12:12 被阅读0次

功能:
1、未登录,会弹出图一的提示框
2、加入购物车成功,弹出图二提示框
效果:



子组件中,创建src/components/Modal.vue模态框组件,用于提示框

<template>
  <div>
    <div class="md-modal modal-msg md-modal-transition" v-bind:class="{'md-show':mdShow}">
      <div class="md-modal-inner">
        <div class="md-top">
          <button class="md-close" @click="closeModal">Close</button>
        </div>
        <div class="md-content">
          <div class="confirm-tips">
            <slot name="message"></slot>   // 定义一个消息插槽
          </div>
          <div class="btn-wrap">
            <slot name="btnGroup"></slot>  // 定义一个按钮插槽
          </div>
        </div>
      </div>
    </div>
    <div class="md-overlay" v-if="mdShow" @click="closeModal"></div>
  </div>
</template>

<script>
    export default {
        props:["mdShow"],
        data(){
          return{
          }
        },
      methods:{
        closeModal(){
          this.$emit("close");  // 触发主组件close事件
        }
      }
    }
</script>

主组件GoodsList.vue中插入子组件

<template>
     <modal v-bind:mdShow="mdShow" v-on:close="closeModal">
      <p slot="message">
        请先登陆,否则无法加入到购物车中
      </p>
      <div slot="btnGroup">
        <a class="btn btn--m" @click="closeModal">关闭</a>
      </div>
    </modal>
    <modal v-bind:mdShow="mdShowCart" v-on:close="closeModal">
      <p slot="message">
        <svg class="icon-status-ok">
          <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#icon-status-ok"></use>
        </svg>
        <span>加入购物车成功</span>
      </p>
      <div slot="btnGroup">
        <a class="btn btn--m" href="javascript:;" @click="closeModal">继续购物</a>
        <router-link to="/cart" class="btn btn--m" href="javascript:;" >查看购物车</router-link>
      </div>
    </modal>
</template>
<script>
    import Modal from '@/components/Modal.vue'
    export default {
      data(){
        return{
          mdShow:false,
          mdShowCart:false
      }    
      methods:{
          addCart(productId){
          axios.post("/goods/addCart",{
            productId:productId
          }).then(res=>{
            if(res.data.status==0){
              // alert("加入成功");
              this.mdShowCart=true;
            }else{
              // alert("msg:"+res.data.msg);
              this.mdShow=true;
            }
          })
        },
        closeModal(){
          this.mdShow=false;
          this.mdShowCart=false;
        }
      }
</script>

相关文章

  • 全局模态框组件的实现

    功能:1、未登录,会弹出图一的提示框2、加入购物车成功,弹出图二提示框效果: 子组件中,创建src/compone...

  • 进阶任务10-事件应用

    实现Tab切换的功能 实现下图的模态框功能,点击模态框不隐藏,点击关闭以及模态框以外的区域模态框隐藏

  • 将iview的modal组件写到子组件中点击无法打开的问题

    我将modal模态框写入子组件中,父组件的button来打开这个模态框,写法如下: 父组件内容为:

  • 事件的应用

    1. 实现如下图Tab切换的功能 2. 实现下图的模态框功能,点击模态框不隐藏,点击关闭以及模态框以外的区域模态框隐藏

  • 进阶任务10

    1.实现如下图Tab切换的功能 2.实现下图的模态框功能,点击模态框不隐藏,点击关闭以及模态框以外的区域模态框隐藏

  • 事件的应用

    1.实现如下图Tab切换的功能: 2.实现下图的模态框功能,点击模态框不隐藏,点击关闭以及模态框以外的区域模态框隐藏

  • 事件的应用

    题目1: 实现如下图Tab切换的功能 地址 题目2:实现下图的模态框功能,点击模态框不隐藏,点击关闭以及模态框以外...

  • 进阶任务10(主线任务):事件的应用

    题目1: 实现如下图Tab切换的功能 题目2:实现下图的模态框功能,点击模态框不隐藏,点击关闭以及模态框以外的区域...

  • 进阶10 事件的应用

    1: 实现如下图Tab切换的功能 完成效果 2. 实现下图的模态框功能,点击模态框不隐藏,点击关闭以及模态框以外的...

  • 九.弹出模态框使用Teleport

    使用Teleport实现一个模态对话框的组件 teleport ,把模板的内容移动到当前组件之外的DOM 中,可以...

网友评论

      本文标题:全局模态框组件的实现

      本文链接:https://www.haomeiwen.com/subject/rctknhtx.html