Element组件浅尝辄止6:Dialog 对话框组件

这篇具有很好参考价值的文章主要介绍了Element组件浅尝辄止6:Dialog 对话框组件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Dialog 对话框组件:在保留当前页面状态的情况下,告知用户并承载相关操作。

大白话就是弹窗组件,日常开发中比较常见

1.怎样使用?

//触发方式
<el-button type="text" @click="dialogVisible = true">打开</el-button>

//弹窗组件
<el-dialog
  title="提示title"
  :visible.sync="dialogVisible"
  width="30%"
  :before-close="handleClose">
  <span>这是弹窗组件</span>
  <span slot="footer" class="dialog-footer">
    <el-button @click="dialogVisible = false">取 消</el-button>
    <el-button type="primary" @click="dialogVisible = false">关闭</el-button>
  </span>
</el-dialog>

<script>
  export default {
    data() {
      return {
        dialogVisible: false
      };
    },
    methods: {
      handleClose(done) {
        this.$confirm('确认关闭?')
          .then(_ => {
            done();
          })
          .catch(_ => {});
      }
    }
  };
</script>

2.dialog自定义内容

 Dialog 组件的内容可以是任意的,甚至可以是表格或表单
//表格
<el-button type="text" @click="dialogTableVisible = true">打开嵌套表格的 Dialog</el-button>

<el-dialog title="收货地址" :visible.sync="dialogTableVisible">
  <el-table :data="gridData">
    <el-table-column property="date" label="日期" width="150"></el-table-column>
    <el-table-column property="name" label="姓名" width="200"></el-table-column>
    <el-table-column property="address" label="地址"></el-table-column>
  </el-table>
</el-dialog>
<script>
  export default {
    data() {
      return {
        gridData: [{
          date: '2016-05-02',
          name: 'ABC',
          address: '上海市普陀区金沙江路 1518 弄'
        }, {
          date: '2016-05-04',
          name: 'E放',
          address: '北京市昌平区金沙江路 1418 号'
        }, {
          date: '2016-05-01',
          name: '地生活',
          address: '广州市白云区金沙江路 118 户'
        }, {
          date: '2016-05-03',
          name: '句二厂',
          address: '深圳市保安区黄埔路 908 号'
        }],
        dialogTableVisible: false,
      };
    }
  };
</script>
//表单
<el-button type="text" @click="dialogFormVisible = true">打开嵌套表单的 Dialog</el-button>

<el-dialog title="收货地址" :visible.sync="dialogFormVisible">
  <el-form :model="form">
    <el-form-item label="活动名称" :label-width="formLabelWidth">
      <el-input v-model="form.name" autocomplete="off"></el-input>
    </el-form-item>
    <el-form-item label="活动区域" :label-width="formLabelWidth">
      <el-select v-model="form.region" placeholder="请选择活动区域">
        <el-option label="区域一" value="shanghai"></el-option>
        <el-option label="区域二" value="beijing"></el-option>
      </el-select>
    </el-form-item>
  </el-form>
  <div slot="footer" class="dialog-footer">
    <el-button @click="dialogFormVisible = false">取 消</el-button>
    <el-button type="primary" @click="dialogFormVisible = false">确 定</el-button>
  </div>
</el-dialog>
<script>
  export default {
    data() {
      return {
        dialogFormVisible: false,
        form: {
          name: '',
          region: '',
          date1: '',
          date2: '',
          delivery: false,
          type: [],
          resource: '',
          desc: ''
        },
        formLabelWidth: '120px'
      };
    }
  };
</script>

3.嵌套的 Dialog

如果需要在一个 Dialog 内部嵌套另一个 Dialog,需要使用 append-to-body 属性。 
//如果需要在页面上同时显示多个 Dialog,可以将它们平级放置。对于确实需要嵌套 Dialog 的场景,官方提供了append-to-body属性。将内层 Dialog 的该属性设置为 true,它就会插入至 body 元素上,从而保证内外层 Dialog 和遮罩层级关系的正确。
<template>
  <el-button type="text" @click="outerVisible = true">点击打开外层 Dialog</el-button>
  
  <el-dialog title="外层 Dialog" :visible.sync="outerVisible">
    <el-dialog
      width="30%"
      title="内层 Dialog"
      :visible.sync="innerVisible"
      append-to-body>
    </el-dialog>
    <div slot="footer" class="dialog-footer">
      <el-button @click="outerVisible = false">取 消</el-button>
      <el-button type="primary" @click="innerVisible = true">打开内层 Dialog</el-button>
    </div>
  </el-dialog>
</template>

<script>
  export default {
    data() {
      return {
        outerVisible: false,
        innerVisible: false
      };
    }
  }
</script>

4.dialog居中布局 

//将center设置为true即可使标题和底部居中。center仅影响标题和底部区域。
//Dialog 的内容是任意的,在一些情况下,内容并不适合居中布局。如果需要
//内容也水平居中,请自行为其添加 CSS。

<el-button type="text" @click="centerDialogVisible = true">点击打开 Dialog</el-button>

<el-dialog
  title="提示"
  :visible.sync="centerDialogVisible"
  width="30%"
  center>
  <span>需要注意的是内容是默认不居中的</span>
  <span slot="footer" class="dialog-footer">
    <el-button @click="centerDialogVisible = false">取 消</el-button>
    <el-button type="primary" @click="centerDialogVisible = false">确 定</el-button>
  </span>
</el-dialog>

<script>
  export default {
    data() {
      return {
        centerDialogVisible: false
      };
    }
  };
</script>

Dialog 的内容是懒渲染的,即在第一次被打开之前,传入的默认 slot 不会被渲染到 DOM 上。因此,如果需要执行 DOM 操作,或通过 ref 获取相应组件,请在 open 事件回调中进行。 

如果 visible 属性绑定的变量位于 Vuex 的 store 内,那么 .sync 不会正常工作。此时需要去除 .sync 修饰符,同时监听 Dialog 的 open 和 close 事件,在事件回调中执行 Vuex 中对应的 mutation 更新 visible 属性绑定的变量的值。 

以上为dialog的大体内容,如果想要深入了解,可以去这里弹窗 

 文章来源地址https://www.toymoban.com/news/detail-684936.html

 

到了这里,关于Element组件浅尝辄止6:Dialog 对话框组件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • element浅尝辄止7:InfiniteScroll 无限滚动

    滚动加载:滚动至底部时,加载更多数据。  关于滚动加载的大致内容就是这些,如果想要深入浅出请前往滚动加载

    2024年02月09日
    浏览(24)
  • 解决问题:Element ui组件中Dialog对话框只显示遮罩层,不显示弹框内容

    以下是Dialog 对话框的基本用法: 这个时候页面只显示了遮罩层,但是不显示弹框的内容,查阅文档后,发现有这样一条: append-to-body的默认值是false,所以需要自己在el-dialog标签中手动设置为true,  加上之后弹框内容就可以显示了。

    2024年02月06日
    浏览(33)
  • vue-pc端elementui-统一修改问题-Dialog 对话框点击空白关闭问题-element-所有组件层级问题

    实际开发我们经常发现dialog弹出框默认点击遮罩层空白地方就会关闭-有属性可以关闭 但是经常会图方便-或者已经写完了,不想一个个写,可以在main.js进行统一关闭 当我们在页面进行复杂设计和层级关闭改变,会发现右上角的退出登录弹出款在我们页面之下 这是我们不管怎

    2024年02月13日
    浏览(27)
  • ElementUI浅尝辄止25:MessageBox 弹框

    模拟系统的消息提示框而实现的一套模态对话框组件,用于消息提示、确认消息和提交内容。 从场景上说,MessageBox 的作用是美化系统自带的  alert 、 confirm  和  prompt ,因此适合展示较为简单的内容。如果需要弹出较为复杂的内容,还是要使用 Dialog。 当用户进行操作时会

    2024年02月10日
    浏览(27)
  • ElementUI浅尝辄止16:Tag 标签

    用于标记和选择。 动态编辑标签可以通过点击标签关闭按钮后触发的  close  事件来实现 Tag 组件提供除了默认值以外的三种尺寸,可以在不同场景下选择合适的按钮尺寸。 Tag 组件提供了三个不同的主题: dark 、 light  和  plain  

    2024年02月10日
    浏览(37)
  • ElementUI浅尝辄止19:Badge 标记

    出现在按钮、图标旁的数字或状态标记。 可展示新消息数量。 可自定义最大值。 可以显示数字以外的文本内容。 以红点的形式标注需要关注的内容。 关于Badge 标记,它常见于网站或内容平台的消息数量展示。 

    2024年02月10日
    浏览(42)
  • ElementUI浅尝辄止22:Alert 警告

    常见于消息提示或警告框。 页面中的非浮层元素,不会自动消失。 Alert 组件提供了两个不同的主题: light 和 dark 。 自定义关闭按钮为文字或其他符号。 表示某种状态时提升可读性。 使用  center  属性让文字水平居中 包含标题和内容,解释更详细的警告。  

    2024年02月09日
    浏览(25)
  • ElementUI浅尝辄止18:Avatar 头像

    用图标、图片或者字符的形式展示用户或事物信息。 常用于管理系统或web网站的用户头像,在用户账户模块更换头像操作也能看到关于Avatar组件的应用。 通过  shape  和  size  设置头像的形状和大小。 支持三种类型:图标、图片和字符 当展示类型为图片的时候,图片加载失

    2024年02月09日
    浏览(28)
  • ElementUI浅尝辄止26:Notification 通知

    悬浮出现在页面角落,显示全局的通知提醒消息。 适用性广泛的通知栏 带有 icon,常用来显示「成功、警告、消息、错误」类的系统消息 可以让 Notification 从屏幕四角中的任意一角弹出 使用 position 属性定义 Notification 的弹出位置,支持四个选项: top-right 、 top-left 、 bottom

    2024年02月09日
    浏览(25)
  • ElementUI浅尝辄止15:Table 表格

    用于展示多条结构类似的数据,可对数据进行排序、筛选、对比或其他自定义操作。 Table组件比较常用,常见于数据查询,报表页面,用来展示表格数据。 使用带斑马纹的表格,可以更容易区分出不同行的数据。 可将表格内容 highlight 显示,方便区分「成功、信息、警告、危

    2024年02月09日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包