element-plus prompt弹框隐藏明文,手动控制关闭

需求

1、删除行数据时候,询问用户该行相关数据都将删除无法恢复,是否删除?
2、选择确认,还需二次输入密码确认,才会真正调用删除接口

想使用prompt来实现,但官方示例没有隐藏输入内容的配置项,也没办法在密码校验错误的情况下,不要关闭弹框,好在有大神提供了隐藏配置项,在此记录下
效果图

代码

关键配置项,都在代码注释里边

<script setup lang="ts">
import { ElMessage, ElMessageBox } from "element-plus";
//删除请求
const deleteRequest = (id:string) => {
  sendDelTask(id).then((res: any) => {
      ElMessage.success("操作成功");
      getTable();
    });
}
// 删除操作
const deleteHandle = ({id}:{id:string}) => {
  ElMessageBox.confirm("任务已关闭,删除后该任务下所有记录将被清除,请确认是否删除?", "提示", {
    confirmButtonText: "删除",
    cancelButtonText: "取消",
    type: "warning",
  }).then(() => {
      ElMessageBox.prompt('请输入登录密码确认删除', '二次确认', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        inputPattern:
        /\S/,//正则,对输入内容格式做基本校验,不对会有红色提示
        inputErrorMessage: '请输入密码',//校验错误提示文字
        inputType:'password',//官方未写隐藏配置,用来隐藏明文
        //beforeClose函数用来控制手动关闭弹框,
        //action-按钮类型,判断点了哪个按钮
        //instance-实例,获取输入内容
        //done-继续执行函数,用来关闭弹框
        beforeClose(action,instance,done){
          if(action==='confirm'){
          	//获取本次储存的用户名
            const username=getSessStorage("userInfo")?.username??'';
            if(!username){
              ElMessage.warning('用户信息丢失,请重新登录');
              return;
            }
            //密码校验接口,返回true和false
            sendPsdConfirm({
              username,
              password: passEncode(instance.inputValue),//密码加密发送
            }).then((res: any) => {
              if(!res.data){
                  ElMessage.warning('密码不正确,请重新输入');
                  return;
               }
               deleteRequest(id);//真正删除
               done();//关闭弹框
            });
          }else{
            done();
          }
        }
      }).catch(()=>{})//如果点击取消,会进catch
  });
};
</script>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值