首页 > 其他分享 >elementplus图片预览操作按钮栏增加下载

elementplus图片预览操作按钮栏增加下载

时间:2024-07-29 17:43:23浏览次数:9  
标签:elementplus 预览 URL urlObject 按钮 port 下载

1.实现效果:

elementplus 图片预览组件,自定义增加一个下载按钮,以及下载功能,如图

 2. 使用的vue3 和 element  plus版本

"element-plus": "2.7.6",

3. 具体代码:

(1)使用#viewer插槽:

<el-image
    :title="点击预览"
    :src="getBowserUrl(scope.row.filePath)"
    :zoom-rate="1.2"
    :initial-index="0"
    class="imageBox11"
    preview-teleported
    :max-scale="7"
    hide-on-click-modal
    :preview-src-list="[getBowserUrl(scope.row.filePath)]"
    :min-scale="0.2"
    fit="cover"
>
    <template #viewer>
        <div class="viewerDownload" title="点击下载">
      // 使用link点击下载图片 <el-link :href="getBowserUrl(scope.row.filePath)" style="color: #fff; font-size: 20px" :underline="false" :download="scope.row.fileName" target="_blank"> <el-icon><Download /></el-icon> </el-link> </div> </template> </el-image>

(2)getBowserUrl拼接文件路径的方法,不需要的可忽略

export function getBowserUrl(path) {
    let result = '';
    if (path) {
        // 获取当前URL
        var currentURL = window.location.href;
        // 使用URL API来解析URL
        var urlObject = new URL(currentURL);
        // 如果URL中有端口号,它会包含在host属性中
        // 如果你想要单独处理端口号,可以这样做:
        var port = urlObject.port ? ':' + urlObject.port : '';
        let pathPrefixWithPort = urlObject.protocol + '//' + urlObject.hostname + port;
        result = pathPrefixWithPort + path;
    }
    return result;
}

(3)关键的样式代码:

// 图片预览框 底部操作栏 增加了个下载按钮,写在全局样式才能生效
.el-image-viewer__actions {
    padding: 0 58px 0 23px !important;
}

// 局部样式 即下载按钮样式
.viewerDownload {
    position: absolute;
    bottom: 46px;
    right: calc(50vw - 141px + 25px);
    z-index: 1;
    color: #fff;
    font-size: 20px;
    height: 20px;
    cursor: pointer;
}

 

 

标签:elementplus,预览,URL,urlObject,按钮,port,下载
From: https://www.cnblogs.com/shyhuahua/p/18330644

相关文章

  • 编写用于关键字检测和按钮发送的 Python Telegram 机器人
    我需要帮助用Python为我的Telegram机器人编写代码。我有一个config.py文件,其中包含两个关键字列表:keywords和button_phrases。keywords-负责在单击时显示子按钮的按钮。Button_phrases-负责单击时打开链接的按钮。我需要机器人检查用户输入的文本并按以下顺......
  • 前端实现图片或视频预览的三种方法总结
    在前端开发中,实现图片或视频预览是一个常见的需求。以下是三种常用的方法来实现图片或视频的预览功能:1.HTML标签直接预览1.1图片预览使用<img>标签可以直接显示图片,并且可以通过src属性动态加载图片。<imgsrc="image.jpg"alt="预览图"/>1.2视频预览使用<video>......
  • 在 GUI 按钮构造函数中使用 lambda 函数作为命令选项
    我的问题是关于在用于为下面这个Python计算器创建GUI按钮的语法中使用lambda函数。问题:我对如何编写lambda函数的理解如下1)中所示,那么它怎么可能按照2)中GUI按钮构造函数的命令选项中编写的方式编写它?计算器的完整代码如下。此Python计算器教程的视频......
  • 如何循环使用按钮输入,在python中的不同选项之间循环?
    我有一个循环,它采用三路开关输入并在相机开机时选择一个选项:#SetGPIOinputswitchColorOne=pyb.Pin("P9",pyb.Pin.IN,pyb.Pin.PULL_UP)switchColorTwo=pyb.Pin("P7",pyb.Pin.IN,pyb.Pin.PULL_UP)#SetcolorpalletebyswitchifswitchColorOne.value()==0:......
  • 如何在flask和jinjia2模板中仅显示一个登录或注销按钮?
    我想在用户登录时显示注销按钮,在用户注销时显示登录按钮。但是这些按钮显示的次数与我有用户的次数一样多。我该如何修复它?--htmlcode{%foruserinusers%}{%ifuser.user_id==session['user_id']%}<liclass="nav-item">......
  • Python 与 Visual Studio Professional 2022(64 位)- 预览版本 5.0 交互窗口挂起
    我正在MicrosoftVisualStudioProfessional2022(64位)-预览版17.11.0预览版5.0上运行Python开发工作负载。我正在关注VisualStudio中的Python教程https://learn.microsoft.com/en-us/visualstudio/python/tutorial-working-with-python-in-visual-studio-st......
  • html+css 实现水波纹按钮
    前言:哈喽,大家好,今天给大家分享html+css绚丽效果!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦......
  • 利用Draco压缩技术实现大模型文件在线预览
    随着3D图形技术的飞速发展,大型3D模型在网页端的应用越来越广泛,如虚拟现实(VR)、增强现实(AR)、游戏和在线教育等领域。然而,这些大型3D模型文件(如OBJ格式)往往体积庞大,动辄数百兆甚至数GB,给模型的存储、传输和在线预览带来了巨大挑战。Draco(由谷歌Chrome团队开发)作为一种高效的3D几何......
  • 【组件开发】基于elementplus组件开发的audio音频播放器
    1<template>2<divclass="my-audio">3<!--音频播放器,使用timeupdate事件更新播放进度-->4<audio@timeupdate="updateProgress"controlsref="audioRef">5<source:src="audioUrl&quo......
  • pyqt5中带有特定按钮的setCurrentIndex()方法问题
    我对pyqt5还很陌生,坦率地说,这是我使用这个框架的第一个项目,所以请耐心等待。当我尝试将sign_up按钮连接到我的goto时,它向用户显示SignUpMainWindow,即使具有相同连接功能的其他按钮正常工作,它似乎根本不起作用...我已经去了多次检查我的代码以确保它......