当前位置: 首页 > article >正文

修改this.$confirm的按钮位置、图标、文字及标题

在Vue.js项目中,this.$confirm 通常是基于某些UI库(如Element UI或Ant Design Vue)的对话框确认方法。

以下是基于Element UI的this.$confirm的用法示例。

在此之前,你的项目要已经安装了Element UI,如果没安装话就打开你的控制台到根目录

执行以下操作:

如若未安装Element UI:

1. 使用npm或yarn进行安装

npm install element-ui --save
# 或者
yarn add element-ui

2. Vue项目入口文件(main.jsmain.ts)中引入Element UI:

import Vue from 'vue';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

Vue.use(ElementUI);

使用this.$confirm:

 1. 简单举例点击button是否确认删除:

  • confirmButtonText (String): 确认按钮的文本,默认为“确定”。
  • cancelButtonText (String): 取消按钮的文本,默认为“取消”。
  • type (String): 确认框的类型,可以是successwarninginfoerror,默认为info
<template>
  <div>
    <el-button type="text" @click="handleDelete">删除</el-button>
  </div>
</template>

<script>
export default {
  methods: {
    handleDelete() {
      this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
      }).then(() => {
            //删除逻辑
      }).catch(() => {
           //取消逻辑
      });
    },
  },
};
</script>

<style scoped>
/* 你的样式代码 */
</style>

以下举例的 确认取消 为 :释放取消 / 继续离开

2. 是否显示确认取消及是否点击遮罩层离开:

 

具体解释如下代码:

    this.$confirm("当前集货位订单司机未装车是否释放?", "释放集货位", {
        confirmButtonText: "释放",
        cancelButtonText: "取消",
        type: "warning",
        showCancelButton:false,  //控制取消是否显示
        showConfirmButton:false, //控制释放是否显示
        closeOnClickModal: false  //点击遮罩层是否离开
      }).then(()=>{

      });
      })

 3.调换默认的确定及取消的按钮位置

3.1 使用customClass 自定义类名 来改变按钮的位置,深度修改
       this.$confirm("当前集货位订单司机未装车是否释放?", "释放集货位", {
        confirmButtonText: "释放",
        cancelButtonText: "取消",
        type: "warning",
        customClass:'set_custom_class',
        closeOnClickModal: false
      }).then(()=>{

      })
3.2 设置样式:

在原有基础上再加一个style,使用scoped无效

拿到里面的两个button,用css调换

<style lang="scss">
.set_custom_class {
  .el-message-box__btns {
    .el-button:nth-child(1) {
      float:right;
    }
    .el-button:nth-child(2) {
      margin-right:10px;
      background-color:#2d8cf0;
      border-color:#2d8cf0;
    }
  }
}
</style>

效果如下:

4.自定义图标文字标题

使用 h 函数创建的虚拟DOM节点(就是createElement函数)
  • 第一个 h 函数调用创建了一个 div 元素。
  • 它的第二个参数是 null,表示没有数据对象(没有属性、样式或事件监听器)。
  • 第三个参数是一个数组,包含了该 div 的子节点,可以设置自己的类名及样式
const h = this.$createElement
this.$confirm('', {
  message:h('div',null, [
    h('i',{ class:'el-icon-warning',style:'color:#f90;font-size:30px;' }),
    h('span',{class:'set_span', style:''}, '释放集货位'),
    h('p',{ style:'margin:10px 0 0 40px;' },'当前集货位订单司机未装车是否释放?')
  ]),
  confirmButtonText: '继续',
  cancelButtonText: '离开',
})
  .then(() => {
    
  })
  .catch(() => {
          
  });


<style lang="scss">
.set_span{
  margin-left:10px;
  font-size:16px;
  line-height:30px;
  font-weight:600;
  vertical-align:top;
}
.set_i{
  color:#f90;
  font-size:30px;
}
</style>
最后的自定义效果如下:

 

注意点:

如果设置了type这个属性,他不会改变你通过HTML嵌入的图标type属性会改变对话框的背景色和按钮样式但它不直接控制图标


到底啦



http://www.kler.cn/a/405105.html

相关文章:

  • 蓝牙 Mesh 简单使用☞北
  • SpringBoot学习记录(四)之分页查询
  • Redis性能优化的18招
  • 通过vite+vue3+pinia从0到1搭建一个uniapp应用
  • 【Vue】Vue指令
  • 40分钟学 Go 语言高并发:并发下载器开发实战教程
  • STM32 | ESP8266 服务器与客户端
  • SQL(四) 游标实验、存储过程、函数实验
  • 1000+ 道 Java面试题及答案整理(2024最新版)
  • Leetcode(滑动窗口习题思路总结,持续更新。。。)
  • 吴恩达《提示词工程》(Prompt Engineering for Developers)课程详细笔记
  • 自然语言处理:第六十三章 阿里Qwen2 2.5系列
  • Java线程池详解
  • 基于单片机中医药柜管理系统的设计
  • P1048 [NOIP2005 普及组] 采药
  • Redis中的zset用法详解
  • Redis-monitor安装与配置
  • AJAX的基本使用
  • 【Redis】基于Redis实现秒杀功能
  • Java list
  • uni-app 界面TabBar中间大图标设置的两种方法
  • CentOs7静态IP地址配置方法
  • 低音运行,约克VRF中央空调让居家生活静享安宁
  • C++小白实习日记——Day 1 怎么跑github上下载的程序
  • Mybatis框架之代理模式 (Proxy Pattern)
  • Redis三剑客:缓存雪崩、缓存穿透、缓存击穿