在el-image組件的預覽中添加打印功能(自定義功能)

思路:給圖片添加點擊事件,通過js獲取預覽的工具欄,在工具欄中添加自定義按鈕及事件

1、html 中 image標簽

?<el-image

? ?style="width: 139px;

? ?height: 89px"

? ?:src="fileUrl"

? ?:preview-src-list="[fileUrl]"

? ? @click="handleImageClick(fileUrl)" //添加點擊事件

/>

2、再點擊事件中,通過js操作dom,添加自定義按鈕事件

? ?handleImageClick(fileUrl) {

? ? ? this.$nextTick(() => {

? ? ? ? const viewer = document.querySelector('.el-image-viewer__wrapper') //工具欄的dom

? ? ? ? if (viewer) {

? ? ? ? ? // 防止重復添加

? ? ? ? ? if (!document.querySelector('.custom-print-btns')) {

? ? ? ? ? ? const btn = document.createElement('button') //創建按鈕

? ? ? ? ? ? btn.className = 'custom-print-btns'? //按需設計樣式

? ? ? ? ? ? btn.innerHTML = '<i class="el-icon-printer"></i>'

? ? ? ? ? ? btn.onclick = () => this.printImage(fileUrl)?//點擊按鈕觸發事件

? ? ? ? ? ? const btnGroup = viewer.querySelector('.el-image-viewer__actions__inner')

? ? ? ? ? ? if (btnGroup) {

? ? ? ? ? ? ? btnGroup.appendChild(btn) //在工具中添加按鈕

? ? ? ? ? ? }

? ? ? ? ? }

? ? ? ? }

? ? ? })

? ? },

?

3、添加后的圖

?

4、打印事件

?printImage(fileUrl) {

? ? ? const printWindow = window.open('', '_blank')

? ? ? printWindow.document.write(`

? ? ? ? <html>

? ? ? ? ? <head>

? ? ? ? ? ? <title>打印圖片</title>

? ? ? ? ? ? <style>

? ? ? ? ? ? ? body { text-align: center; margin: 0; padding: 0; }

? ? ? ? ? ? ? img { max-width: 100%; max-height: 100vh; margin: auto; }

? ? ? ? ? ? </style>

? ? ? ? ? </head>

? ? ? ? ? <body>

? ? ? ? ? ? <img src="${fileUrl}" />

? ? ? ? ? ? <script>

? ? ? ? ? ? ? window.onload = function() {

? ? ? ? ? ? ? ? setTimeout(function() {

? ? ? ? ? ? ? ? ? window.print();

? ? ? ? ? ? ? ? ? window.close();

? ? ? ? ? ? ? ? }, 200);

? ? ? ? ? ? ? }

? ? ? ? ? ? <\/script>

? ? ? ? ? </body>

? ? ? ? </html>

? ? ? `)

? ? ? printWindow.document.close()

? ? },

?

5、結果圖

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/86048.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/86048.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/86048.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

TongWeb替換tomcat

1、背景 國家近年來大力推進信息技術應用創新產業&#xff08;信創&#xff09;&#xff0c;要求關鍵領域采用自主可控的國產軟硬件。Tomcat作為國外開源產品&#xff0c;存在潛在的安全風險和技術依賴。TongWeb作為國產中間件&#xff0c;符合信創目錄要求&#xff0c;滿足政府…

聯合語音和文本機器翻譯,支持多達100種語言(nature子刊論文研讀)

簡介&#xff1a; &#x1f30d; SEAMLESSM4T 是一種單一模型&#xff0c;實現了跨越多達 101 種源語言和多種目標語言的語音到語音、語音到文本、文本到語音和文本到文本翻譯及自動語音識別。&#x1f680; 該模型性能顯著超越現有級聯系統&#xff0c;特別是在語音到文本和語…

網站公安網安備案查詢API集成指南

網站公安網安備案查詢API集成指南 引言 隨著互聯網應用的日益普及&#xff0c;網絡安全和個人隱私保護越來越受到重視。公安網安備案作為保障網絡安全的重要措施之一&#xff0c;對于確保網站合法合規運營具有重要意義。為了幫助開發者更加便捷地獲取網站的公安網安備案信息&a…

如何用遠程調試工具排查 WebView 與原生通信問題(iOS或Android)

WebView 在移動端開發中的角色越來越關鍵&#xff0c;尤其在混合架構&#xff08;Hybrid&#xff09;項目中&#xff0c;它作為前端與原生的橋梁&#xff0c;承載了大量交互行為。但這個橋梁并不總是穩固&#xff0c;尤其是在涉及 JSBridge 通信 時&#xff0c;前端調用原生接口…

使用 spark-submit 運行依賴第三方庫的 Python 文件

python文件在spark集群運行真的麻煩&#xff0c;煩冗 spark運行分為了三個模式&#xff0c;本地模式/client模式/cluster模式 文章目錄 本地模式client模式cluster模式參考 本地模式 現在的spark支持python3了&#xff0c;支持python2的版本已經很落后了&#xff0c;所以需要…

【android bluetooth 協議分析 05】【藍牙連接詳解2】【acl_interface_t介紹】

1. acl_interface_t 介紹 acl_interface_t 結構體及其子結構體&#xff0c;目的是封裝處理 Classic、LE、SCO 連接及鏈路事件的回調函數&#xff0c;用于 HCI 事件與上層藍牙協議棧的解耦分發。 system/main/shim/acl_legacy_interface.h typedef struct {void (*on_connect…

TouchDIVER Pro觸覺手套:虛擬現實中的多模態交互新選擇

隨著虛擬現實技術的發展&#xff0c;用戶對沉浸式體驗的需求不斷提升。TouchDIVER Pro觸覺手套通過力反饋、紋理渲染和溫度提示三種核心機制&#xff0c;為用戶提供更真實的觸覺感知體驗。六個驅動點分布于五指與手掌&#xff0c;結合全手追蹤與低延遲連接&#xff0c;實現精準…

想考華為HCIA-AI,應該怎么入門?

華為HCIA-AI Solution認證作為華為人工智能認證體系的起點&#xff0c;吸引了許多希望進入AI領域或提升專業技能的學習者。如果你正考慮考取這個認證&#xff0c;這份純科普向的入門指南希望能夠幫你理清學習路徑和關鍵準備點&#xff01; 第一、明確認證目標與要求 HCIA-AI S…

【Oracle篇】Windows平臺單進程多線程架構設計與實現(比對Linux多進程架構)

&#x1f4ab;《博主主頁》&#xff1a; &#x1f50e; CSDN主頁__奈斯DB &#x1f50e; IF Club社區主頁__奈斯、 &#x1f525;《擅長領域》&#xff1a;擅長阿里云AnalyticDB for MySQL(分布式數據倉庫)、Oracle、MySQL、Linux、prometheus監控&#xff1b;并對SQLserver、N…

在微服務中使用 Sentinel

在微服務中集成 Sentinel 1. 添加依賴 對于 Spring Cloud 項目&#xff0c;首先需要添加 Sentinel 的依賴&#xff1a; <!-- Spring Cloud Alibaba Sentinel --> <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-…

中斷控制與實現

一、中斷基本概念 1、中斷 中斷是一種異步事件&#xff0c;用于通知處理器某個事件已經發生&#xff0c;需要處理器立即處理。由于I/O操作的不確定因素以及處理器和I/O設備之間的速度不匹配&#xff0c;I/O設備可以通過某種硬件信號異步喚醒對應的處理器的響應&#xff0c;這些…

前端跨域解決方案(7):Node中間件

1 Node 中間件核心 1.1 為什么開發環境需要 Node 代理&#xff1f; 在前端開發中&#xff0c;我們常遇到&#xff1a;前端運行在localhost:3000&#xff0c;后端 API 在localhost:4000&#xff0c;跨域導致請求失敗。而傳統解決方案有以下局限性&#xff1a; 修改后端 CORS 配…

iwebsec靶場-文件上傳漏洞

01-前端JS過濾繞過 1&#xff0c;查看前端代碼對文件上傳的限制策略 function checkFile() { var file document.getElementsByName(upfile)[0].value; if (file null || file "") { alert("你還沒有選擇任何文件&a…

GitHub 趨勢日報 (2025年06月23日)

&#x1f4ca; 由 TrendForge 系統生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日報中的項目描述已自動翻譯為中文 &#x1f4c8; 今日獲星趨勢圖 今日獲星趨勢圖 390 suna 387 system-prompts-and-models-of-ai-tools 383 Web-Dev-For-Beginners…

告別水印煩惱,一鍵解鎖高清無痕圖片與視頻!

在這個數字化飛速發展的時代&#xff0c;無論是設計小白還是創意達人&#xff0c;都可能遇到這樣的困擾&#xff1a;心儀的圖片或視頻因水印而大打折扣&#xff0c;創意靈感因水印而受限。別急&#xff0c;今天就為大家帶來幾款神器&#xff0c;讓你輕松告別水印煩惱&#xff0…

LangChain4j在Java企業應用中的實戰指南:構建RAG系統與智能應用-2

LangChain4j在Java企業應用中的實戰指南&#xff1a;構建RAG系統與智能應用-2 開篇&#xff1a;LangChain4j框架及其在Java生態中的定位 隨著人工智能技術的快速發展&#xff0c;尤其是大語言模型&#xff08;Large Language Models, LLMs&#xff09;的廣泛應用&#xff0c;…

Cola StateMachine 的無狀態(Stateless)特性詳解

Cola StateMachine 的無狀態&#xff08;Stateless&#xff09;特性詳解 在現代分布式系統中&#xff0c;無狀態設計是構建高可用、可擴展服務的關鍵原則之一。Cola StateMachine 作為一款輕量級的狀態機框架&#xff0c;通過其獨特的設計理念實現了良好的無狀態特性。本文將深…

使用事件通知來處理頁面回退時傳遞參數和賦值問題

背景。uniapp開發微信小程序。在當前頁面需要選擇條件&#xff0c;如選擇城市。會打開新的頁面。此時選擇之后需要關閉頁面回到當初的頁面。但問題出現了。onLoad等事件是不會加載的。相關鏈接。uniapp頁面通訊說明使用事件通知來處理頁面回退時傳遞參數和賦值問題 頁面之間的…

騰訊云COS“私有桶”下,App如何安全獲得音頻調用流程

流程圖 #mermaid-svg-Phy4VCltBRZ90UH8 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Phy4VCltBRZ90UH8 .error-icon{fill:#552222;}#mermaid-svg-Phy4VCltBRZ90UH8 .error-text{fill:#552222;stroke:#552222;}#me…

基于深度學習的側信道分析(DLSCA)Python實現(帶測試)

一、DLSCA原理介紹 基于深度學習的側信道分析(DLSCA)是一種結合深度神經網絡與側信道分析技術的密碼分析方法。該方法利用深度學習模型從能量消耗、電磁輻射等側信道信息中提取與密鑰相關的特征模式。相比傳統分析方法&#xff0c;DLSCA能夠自動學習復雜的特征關系&#xff0c…