Notice-MessageBox 弹框

朴灿烈づ我的快乐病毒、 2022-03-22 04:13 341阅读 0赞

模拟系统的消息提示框而实现的一套模态对话框组件,用于消息提示、确认消息和提交内容。

从场景上说,MessageBox 的作用是美化系统自带的 alertconfirmprompt,因此适合展示较为简单的内容。如果需要弹出较为复杂的内容,请使用 Dialog。

1、消息提示

当用户进行操作时会被触发,该对话框中断用户操作,直到用户确认知晓后才可关闭。

调用$alert方法即可打开消息提示,它模拟了系统的 alert。此例中接收了两个参数,messagetitle。值得一提的是,窗口被关闭后,它默认会返回一个Promise对象便于进行后续操作的处理

2019012519590667.png

  1. <el-button type="text" @click="open">点击打开 Message Box</el-button>
  2. <script>
  3. export default {
  4. methods: {
  5. open() {
  6. this.$alert('这是一段内容', '标题名称', {
  7. confirmButtonText: '确定',
  8. callback: action => {
  9. this.$message({
  10. type: 'info',
  11. message: `action: ${ action }`
  12. });
  13. }
  14. });
  15. }
  16. }
  17. }
  18. </script>

2、确认消息

提示用户确认其已经触发的动作,并询问是否进行此操作时会用到此对话框。

调用$confirm方法即可打开消息提示,它模拟了系统的 confirm。Message Box 组件也拥有极高的定制性,我们可以传入options作为第三个参数,它是一个字面量对象。type字段表明消息类型,可以为successerrorinfowarning,无效的设置将会被忽略。注意,第二个参数title必须定义为String类型,如果是Object,会被理解为options。在这里我们用了 Promise 来处理后续响应。

20190125200107910.png

  1. <el-button type="text" @click="open2">点击打开 Message Box</el-button>
  2. <script>
  3. export default {
  4. methods: {
  5. open2() {
  6. this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
  7. confirmButtonText: '确定',
  8. cancelButtonText: '取消',
  9. type: 'warning'
  10. }).then(() => {
  11. this.$message({
  12. type: 'success',
  13. message: '删除成功!'
  14. });
  15. }).catch(() => {
  16. this.$message({
  17. type: 'info',
  18. message: '已取消删除'
  19. });
  20. });
  21. }
  22. }
  23. }
  24. </script>

center 设置为 true 即可开启居中布局

20190125200542533.png

3、提交内容

当用户进行操作时会被触发,中断用户操作,提示用户进行输入的对话框。

调用$prompt方法即可打开消息提示,它模拟了系统的 prompt。可以用inputPattern字段自己规定匹配模式,或者用inputValidator规定校验函数,可以返回BooleanString,返回false或字符串时均表示校验未通过,同时返回的字符串相当于定义了inputErrorMessage字段。此外,可以用inputPlaceholder字段来定义输入框的占位符。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hyYnNmZHh6aHEwMQ_size_16_color_FFFFFF_t_70

  1. <script>
  2. export default {
  3. methods: {
  4. open3() {
  5. this.$prompt('请输入邮箱', '提示', {
  6. confirmButtonText: '确定',
  7. cancelButtonText: '取消',
  8. inputPattern: /[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/,
  9. inputErrorMessage: '邮箱格式不正确'
  10. }).then(({ value }) => {
  11. this.$message({
  12. type: 'success',
  13. message: '你的邮箱是: ' + value
  14. });
  15. }).catch(() => {
  16. this.$message({
  17. type: 'info',
  18. message: '取消输入'
  19. });
  20. });
  21. }
  22. }
  23. }
  24. </script>

发表评论

表情:
评论列表 (有 0 条评论,341人围观)

还没有评论,来说两句吧...

相关阅读