Modal.method() 不显示头部的问题
ant-design中的Modal组件有两种用法:
第一种是用标签:<a-modal></a-modal>
第二种是用Api:Modal.info、Modal.warning、Modal.confirm......
一开始项目中这两种用法是混用的,后面UI改造,需要统一样式,步骤如下:
1、封装全局弹窗组件 src/components/ConfirmModal/index.vue
<template><a-modalv-model:visible="visible":title="props.title"centeredwidth="400px":footer="null":keyboard="false":maskClosable="false"destroyOnClose@cancel="cancel"><div v-if="vNode" ref="contentRef" class="text-align-c mt-16"></div><div v-else class="text-align-c mt-16">{{ description }}</div><footer class="text-align-c mb-24 mt-40"><template v-if="(callType === 'method' && footerCancelOption) || callType === 'component'"><a-button v-bind="footerCancelOption?.props" class="cancel-btn long-btn" @click="cancel">{{ footerCancelOption?.text || '取消' }}</a-button></template><template v-if="(callType === 'method' && footerConfirmOption) || callType === 'component'"><a-button v-bind="footerConfirmOption?.props" class="confirm-btn long-btn" type="primary" :loading="btnLoading" @click="confirm">{{ footerConfirmOption?.text || '确认' }}</a-button></template></footer></a-modal>
</template>
<script setup>
import { ref, render, nextTick } from 'vue'
import { Button, Modal } from 'ant-design-vue'const AButton = Button
const AModal = Modalconst emits = defineEmits(['confirm', 'cancel'])
const props = defineProps({title: {type: String,default: '提示'},callType: {type: String,default: 'component'},vNode: {type: Object,default: null},footerCancelOption: {type: Object,default: null},footerConfirmOption: {type: Object,default: null}
})const contentRef = ref()
const visible = ref(false)
const description = ref('')
const btnLoading = ref(false)const openModel = value => {description.value = valuevisible.value = truenextTick(() => {if (props.vNode) {render(props.vNode, contentRef.value)}})
}const closeModel = () => {btnLoading.value = falsevisible.value = false
}const cancel = () => {closeModel()emits('cancel')
}const confirm = () => {emits('confirm')
}defineExpose({openModel,closeModel,cancel,btnLoading
})
</script>
<style lang="less" scoped>
.confirm-btn {margin-left: 0;
}
.cancel-btn + .confirm-btn {margin-left: 40px;
}
</style>
2、同级目录下新建js文件,调用弹窗组件 src/components/ConfirmModal/index.js
import { createApp } from 'vue'
import ConfirmModal from './index.vue'export const showConfirmModal = option => {const div = document.createElement('div')document.body.appendChild(div)const app = createApp(ConfirmModal, {callType: 'method',vNode: option.vNode,footerCancelOption: option.footerCancelOption,footerConfirmOption: option.footerConfirmOption,onCancel: () => {option?.footerCancelOption?.onCancel && option?.footerCancelOption?.onCancel()},onConfirm: () => {option?.footerConfirmOption?.onConfirm && option?.footerConfirmOption?.onConfirm()}})const vm = app.mount(div)vm.openModel()return { app, vm }
}
3、在需要调用弹窗组件的js文件中引用 xxx.js
import { ref, h } from 'vue'
import { showConfirmModal } from '@/components/ConfirmModal/index.js'// 强制登录提示
const { vm } = showConfirmModal({vNode: h('div', { style: { color: '#333' } }, '你的账号在另一台设备登录,你将被迫下线,请确认密码是否泄露!'),footerConfirmOption: {onConfirm: () => {window.location.reload()vm.closeModel()}}
})
4、效果图

相关文章:
Modal.method() 不显示头部的问题
ant-design中的Modal组件有两种用法: 第一种是用标签:<a-modal></a-modal> 第二种是用Api:Modal.info、Modal.warning、Modal.confirm...... 一开始项目中这两种用法是混用的,后面UI改造,需要统一样式&…...
Java中的内部类及其用途
一、技术难点 在Java中,内部类是一个定义在另一个类内部的类。这种嵌套的结构带来了一些技术上的难点和挑战: 访问控制:内部类可以直接访问外部类的所有成员(包括私有成员),但外部类不能直接访问内部类的…...
堆(建堆算法,堆排序)
目录 一.什么是堆? 1.堆 2.堆的储存 二.堆结构的创建 1.头文件的声明: 2.向上调整 3.向下调整 4.源码: 三.建堆算法 1.向上建堆法 2.向下建堆法 四.堆排序 五.在文件中Top出最小的K个数 一.什么是堆? 1.堆 堆就…...
Linux内核重置root密码
Ubuntu 首先重新启动Ubuntu系统,然后快速按下shift键,以调出grub启动菜单在这里我们选择第二个(Ubuntu高级选项),选中后按下Enter键 选择最高的Linux内核版本所对应的recovery mode模式,按e键编辑启动项 在…...
LaTex安装及配置(Windows)
LaTex安装及配置(Windows) 安装环境安装texlive下载texlive安装 编辑器安装texstudio下载texstudio安装 环境配置 使用第一个LaTex文档新建文件编程查看results 安装 环境安装 texlive下载 镜像清华源下载地址:https://mirrors.tuna.tsing…...
这才是满分毕业答辩PPT!
这才是满分毕业答辩PPT! 2024年 毕业答辩论文指南 创新 正式 高效 正值毕业季,是不是很多同学,非常头疼如何进行论文答辩? 要想导师满意,顺利毕业,那么手里必须有份优秀的答辩PPT。这将是你的秘密武器&…...
【字典树(前缀树) 字符串】2416. 字符串的前缀分数和
本文涉及知识点 字典树(前缀树) 字符串 LeetCode 2416. 字符串的前缀分数和 给你一个长度为 n 的数组 words ,该数组由 非空 字符串组成。 定义字符串 word 的 分数 等于以 word 作为 前缀 的 words[i] 的数目。 例如,如果 words [“a”,…...
X-CSV-Reader:一个使用Rust实现CSV命令行读取器
🎈效果演示 ⚡️快速上手 依赖导入: cargo add csv读取实现: use std::error::Error; use std::fs::File; use std::path::Path;fn read_csv<P: AsRef<Path>>(filename: P) -> Result<(), Box<dyn Error>> {le…...
集成ECharts到若依框架:原理与使用方法详解
ECharts 是一个强大的开源数据可视化库,基于 JavaScript,能够创建丰富多彩的图表和交互数据展示。结合若依框架(RuoYi),我们可以非常方便地将 ECharts 集成到系统中,实现数据的可视化展示。本文将详细介绍 …...
【机器学习】——线性模型
💻博主现有专栏: C51单片机(STC89C516),c语言,c,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux…...
最全的Redis常用命令
Redis是一个开源的内存数据结构存储系统,用作数据库、缓存和消息代理。它支持多种类型的数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)…...
sourcetree推送到git上面
官网:Sourcetree | Free Git GUI for Mac and Windows 下载到1次提交 下载后打开 点击跳过 下一步 名字邮箱 点击clone 把自己要上传的代码粘贴到里面去 返回点击远程->点击暂存所有 加载完毕后,输入提交内容提交 提交完成了 2次提交 把文件夹内的…...
勒索病毒的策略与建议
随着网络技术的快速发展,勒索病毒攻击成为全球范围内日益严重的网络安全威胁。勒索病毒通过加密用户文件或锁定系统来勒索赎金,给个人和企业带来了巨大的损失。因此,了解如何应对勒索病毒攻击至关重要。本文将概述一些有效的防范措施和应对策…...
doxygen 1.11.0 使用详解(十四)——输出格式
目录 HTMLLATEXMan pagesRTFXMLDocBookCompiled HTML Help (a.k.a. Windows 98 help)Qt Compressed Help (.qch)Eclipse HelpXCode DocSetsPostScriptPDF The following output formats are directly supported by doxygen: HTML Generated if GENERATE_HTML is set to YES i…...
java list<AnalystEducationDO> 转成List<AnalystEducationRespVO>两个对象的属性一样
如果AnalystEducationDO和AnalystEducationRespVO两个类的属性完全相同,且遵循Java Bean的命名规范(即具有相应的getter和setter方法),你可以利用一些库来简化转换过程,比如Apache BeanUtils或Spring Framework的BeanU…...
[Algorihm][简单多状态DP问题][买卖股票的最佳时机含冷冻期][买卖股票的最佳时机含手续费]详细讲解
目录 1.买卖股票的最佳时机含冷冻期1.题目链接买卖股票的最佳时机含冷冻期2.算法原理详解3.代码实现 2.买卖股票的最佳时机含手续费1.题目链接2.算法原理详解3.代码实现 1.买卖股票的最佳时机含冷冻期 1.题目链接 买卖股票的最佳时机含冷冻期 2.算法原理详解 思路ÿ…...
微服务:利用RestTemplate实现远程调用
打算系统学习一下微服务知识,从今天开始记录。 远程调用 调用order接口,查询。 由于实现还未封装用户信息,所以为null。 下面我们来使用远程调用用户服务的接口,然后封装一下用户信息返回即可。 流程图 配置类中注入RestTe…...
【Linux】TCP的三次握手和四次挥手
三次握手 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。注意!三次握手只是用来建立连接用的,和TCP可靠稳定没有关系,TCP的可靠是通过重传和检错等机制实现的。 默认创建一个socket后ÿ…...
爬山算法全解析:掌握优化技巧,攀登技术高峰!
一、引言 爬山算法是一种局部搜索算法,它基于当前解的邻域中进行搜索,通过比较当前解与邻域解的优劣来更新当前解,从而逐步逼近最优解。本文将对爬山算法进行详细的介绍。 二、爬山算法简介 爬山算法是一种基于贪心策略的优化算法ÿ…...
使用 Ollama框架 下载和使用 Llama3 AI大模型的完整指南
🏡作者主页:点击! 🤖AI大模型部署与应用专栏:点击! ⏰️创作时间:2024年5月24日20点59分 🀄️文章质量:96分 目录 💥Ollama介绍 主要特点 主要优点 应…...
还在手动拖动进度条整理长视频总结?2026年这4款AI视频总结工具,3分钟搞定1小时长片
我做内容创作快五年,光整理音视频素材这块,踩过的坑能绕办公桌三圈。之前天天手动拖进度条截重点,一小时长视频整理完大半天就没了。测了市面上十多款热门AI视频总结工具,我可以直接给结论:听脑AI是同类工具中最值得用…...
Pandas 操作指南(五):表格重塑与数据整合
在数据分析中,并不是所有表格一开始都具有合适的结构。有时,一张表虽然保存了所需数据,但其组织方式并不利于统计与比较;有时,信息分散在多张表中,需要先整合后分析。由此可见,分析不仅依赖于数…...
simulink和carsim联合仿真的mpc轨迹跟踪模型。
simulink和carsim联合仿真的mpc轨迹跟踪模型。MPC(模型预测控制)轨迹跟踪模型在Simulink和Carsim联合仿真中,通过构建车辆动力学模型、设计MPC控制器,实现对车辆轨迹的精准跟踪。其代码涉及车辆状态方程、MPC优化算法等核心部分。…...
ESP32-S3项目实战:从Github下载‘小智’代码到成功烧录的完整避坑记录
ESP32-S3项目实战:从Github下载‘小智’代码到成功烧录的完整避坑记录 在物联网开发领域,ESP32-S3凭借其出色的性能和丰富的外设接口,成为众多开发者的首选。本文将带你完整走一遍从Github获取"小智"开源项目到最终烧录运行的整个流…...
如何用EmuDeck解决Steam Deck模拟器配置难题:给复古游戏玩家的一站式解决方案
如何用EmuDeck解决Steam Deck模拟器配置难题:给复古游戏玩家的一站式解决方案 【免费下载链接】EmuDeck Emulator configurator for Steam Deck 项目地址: https://gitcode.com/gh_mirrors/em/EmuDeck 在Steam Deck上畅玩经典游戏本应是件轻松愉快的事&#…...
揭秘量子比特态演化模拟:用现代C++20实现HHL算法,内存开销降低73%的关键技巧
第一章:量子比特态演化模拟的理论基础与工程挑战 量子比特态演化模拟是连接量子力学原理与可执行计算任务的核心桥梁。其理论根基植根于薛定谔方程的幺正演化描述:任意闭合量子系统的时间演化由哈密顿量 $H(t)$ 决定,满足 $|\psi(t)\rangle …...
终极指南:vgpu_unlock如何突破消费级GPU虚拟化限制?未来支持路线全解析
终极指南:vgpu_unlock如何突破消费级GPU虚拟化限制?未来支持路线全解析 【免费下载链接】vgpu_unlock Unlock vGPU functionality for consumer grade GPUs. 项目地址: https://gitcode.com/gh_mirrors/vg/vgpu_unlock vgpu_unlock是一款革命性工…...
拒绝广告!实测Brave/Vivaldi/百分浏览器的隐私保护到底靠不靠谱
拒绝广告!实测Brave/Vivaldi/百分浏览器的隐私保护到底靠不靠谱 在数字广告无孔不入的今天,浏览器隐私保护功能已成为用户刚需。Brave、Vivaldi、百分(Cent)等基于Chromium内核的浏览器纷纷以"零广告追踪"、"进程隐…...
效率提升秘籍:用快马平台AI快速生成并对比多种代码性能优化方案
今天想和大家分享一个前端性能优化的实战案例——如何快速对比不同优化方案对大数据列表渲染性能的影响。最近在做一个需要展示上万条数据的项目时,遇到了明显的卡顿问题,正好用InsCode(快马)平台尝试了多种优化方案,效果非常显著。 问题背景…...
NLP实战指南:从基础到进阶的文本相似度计算全解析
1. 文本相似度计算入门:为什么它如此重要? 想象一下这样的场景:你在电商平台搜索"苹果手机充电器",结果系统不仅展示了充电器商品,还推荐了"iPhone电源适配器"、"MacBook充电线"等相关产…...
