前端几种危险操作确认弹框的实现方式【五月02】
【摘要】 问题起源一种很常见的网站优化,就是在客户进行危险操作的时候,让客户进行二次确认,从而避免因为用户一时手误,如图所示: 对话框的实现方式这种方式无须多言,实现起来逻辑并不困难,难在这种方式代码量比较大,首先需要在HTML部分创建对话框代码: <el-dialog v-if="confirmDialog" width="30vw" :visible.sync="c...
问题起源
一种很常见的网站优化,就是在客户进行危险操作的时候,让客户进行二次确认,从而避免因为用户一时手误,如图所示:
对话框的实现方式
这种方式无须多言,实现起来逻辑并不困难,难在这种方式代码量比较大,首先需要在HTML部分创建对话框代码:
<el-dialog
v-if="confirmDialog"
width="30vw"
:visible.sync="confirmDialog"
title="提示"
:destroy-on-close="true"
>
<div>
<div>
{{ confirmMsg }}
</div>
<div style="margin-top: 10px;font-weight: bold;">
是否继续操作
</div>
</div>
<div slot="footer">
<el-button @click="cancel">取消</el-button>
<el-button type="primary" @click="confirm">确定</el-button>
</div>
</el-dialog>
这种方式虽然工作量大,但是有一个比较好的优点是,可以比较方便的调整提示操作的格式,一种普遍存在的场景是,用户在修改信息的时候需要核对修改的数据与原数据的区别,那么使用这种方式就可以很好的实现。
JS确认框
该种方式实现起来非常简单,可以单纯的通过Javascript来达到提示语的目的,如本文的的第一张图就是使用该种方式的截图。
this.$confirm('确认删除数据吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
// 操作确认
// 执行删除操作以及其他业务
this.$message({
type: 'succuss',
message: '已取消删除'
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
})
})
el-popconfirm 气泡确认框
el-popconfirm
气泡确认框,这是一个Element-UI的组件,实现完成的样式如下。
一个简单的样例是:
<template>
<el-popconfirm
confirm-button-text='好的'
cancel-button-text='不用了'
icon="el-icon-info"
icon-color="red"
title="这是一段内容确定删除吗?"
>
<el-button slot="reference">删除</el-button>
</el-popconfirm>
</template>
el-popconfirm
气泡确认框的详细文档见Element-UI官方文档。
总结
如果运营经理或者产品经理或者客户要求,能够细致的展示提示信息,而不是仅仅是一个操作确认的话,我们似乎只能选用第一种自定义对话框的方式;
相反,如果仅仅是为了避免用户误操作或者避免因为种种原因误删除数据,我们可以采用第二种JS确认框或者第三种气泡确认框,第三种需要修改html样式,第二中则只需要修改js即可。
还是那句话,具体看业务需求吧!
祝大家早日脱离CRUD Developer!
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)