【sgFileLink】自定义组件:基于el-link、el-icon标签构建文件超链接组件,支持垃圾桶删除、点击预览视频/音频/图片/PDF格式文件
sgFileLink源代码
<template><div :class="$options.name"><el-link @click.stop="clickFile(data)"><img :src="getSrc(data)" /><span>{{ getFileNameAndSize(data) }}</span></el-link><el-linkclass="remove-btn"type="danger"v-if="clearable_"icon="el-icon-delete":title="`移除${data.name}`":underline="false"@click.stop="remove(data)"/><el-imageref="image"style="display: none"src="":initial-index="initialIndex":preview-src-list="previewSrcList"/><sgVideoDialog :data="data_sgVideoDialog" v-model="show_sgVideoDialog" /><sgAudioDialog :data="data_sgAudioDialog" v-model="show_sgAudioDialog" /></div>
</template>
<script>
import sgVideoDialog from "@/vue/components/admin/sgVideoDialog";
import sgAudioDialog from "@/vue/components/admin/sgAudioDialog";
import $com from "@/js/com";
export default {name: "sgFileLink",components: { sgVideoDialog, sgAudioDialog },data() {return {data_sgVideoDialog: {},show_sgVideoDialog: false,data_sgAudioDialog: {},show_sgAudioDialog: false,previewSrcList: null,initialIndex: 0,clearable_: null,};},props: ["data", "clearable", "files"],computed: {},watch: {clearable: {handler(newValue, oldValue) {this.clearable_ = newValue === "" || newValue;},deep: true, //深度监听immediate: true, //立即执行},},created() {},mounted() {},destroyed() {},methods: {remove(data) {this.$emit(`remove`, data);},clickFile(d) {$com.clickFile(d, this, { files: this.files });},getSrc(d) {typeof d === `string` && (d = JSON.parse(d));let fileName = d.name;let suffix = fileName.split(".").slice(-1)[0];return $com.getFlieThumbSrc({ suffix });},getFileNameAndSize(d) {return $com.getFileNameAndSize(d);},},
};
</script>
<style lang="scss" scoped>
.sgFileLink {>>> .el-link {transition: 0.2s;line-height: normal;img {width: 16px;height: 16px;object-position: center;object-fit: contain;transform: translateY(2px);margin-right: 5px;}span {word-wrap: break-word;word-break: break-all;white-space: break-spaces;}}.remove-btn {transition: 0.382s;opacity: 0;pointer-events: none;transform: translateX(-100%);}&:hover {.remove-btn {opacity: 1;pointer-events: auto;transform: translateX(0%);}}
}
</style>
应用
<sgFileLink :data="{ ...scope.row, clearable: true }" @remove="remove(scope.row, scope.$index)" />
相关文章:
【sgFileLink】自定义组件:基于el-link、el-icon标签构建文件超链接组件,支持垃圾桶删除、点击预览视频/音频/图片/PDF格式文件
sgFileLink源代码 <template><div :class"$options.name"><el-link click.stop"clickFile(data)"><img :src"getSrc(data)" /><span>{{ getFileNameAndSize(data) }}</span></el-link><el-linkcl…...
Kafka - 消息乱序问题的常见解决方案和实现
文章目录 概述一、MQ消息乱序问题分析1.1 相同topic内的消息乱序1.2 不同topic的消息乱序 二、解决方案方案一: 顺序消息Kafka1. Kafka 顺序消息的实现1.1 生产者:确保同一业务主键的消息发送到同一个分区1.2 消费者:顺序消费消息 2. Kafka 顺…...
【golang】匿名内部协程,值传递与参数传递
代码例子 下面代码的区别是直接调用循环变量,这里使用的就是这个变量的引用,而不是将参数的副本传递给协程执行 for task : range taskChan {wg.Add(1)go func() {defer wg.Done()task.Do() // 使用外部循环变量}() }func DistributeTasks(taskChan &…...
Jenkins与SonarQube持续集成搭建及坑位详解
Jenkins和SonarQube都是软件开发过程中常用的工具,它们在代码管理、构建、测试和质量管理方面发挥着重要作用。以下是关于Jenkins与SonarQube的作用及整合步骤环境搭建的详细解释: 一、Jenkins与SonarQube的作用 Jenkins: Jenkins是一个开源的持续集成和交付工具,它可以帮…...
.NET6 WebAPI从基础到进阶--朝夕教育
1、环境准备 1. Visual Studio 2022 2. .NET6 平台支持 3. Internet Information Services 服务器( IIS ) 4. Linux 服务器 【 CentOS 系统】 ( 跨平台部署使用 ) 5. Linux 服务器下的 Docker 容器( Docker 部署使用) …...
购物车案例--分模块存储数据,发送请求数据渲染,底部总计数量和价格
shift鼠标右键,打开powershell,新建项目 自定义 只有一个页面,不涉及路由,勾选vuex,css,babel 无需保存预设 回车项目开始创建 项目用vscode打开 将src里的内容全部清空 将第七天的课程准备代码复制粘贴到src中 刷新页面&…...
PCIe学习笔记
PCIE高速串行数据总线 当拿到一块板子 比如你要用到PCIE 首先要看这块板子的原理图 一般原理图写的是 PCI express 表示PCIE 以下是Netfpga为例下的PCIE插口元件原理图 的特点主要体现在它如何结合传统面向对象编程(OOP)的理念与LabVIEW的图形化编程模式,提供灵活的抽象和模块化的功能。以下是LabVIEW面向对象编程的几个主要特点: 1. 类&#x…...
配置Nginx自签名SSL证书,支持HTTPS
配置Nginx自签名SSL证书的流程 生成一个SSL自签名证书客户端机器信任这个自签名证书修改RHEL服务器的Nginx配置在客户机用curl测试HTTPS 生成一个SSL自签名证书 在RHEL服务器上, 用openssl命令生成一个自签名证书 openssl genrsa -out server.key 2048 #生成一个2048位的RS…...
使用Spring Boot、VUE实现SSE长连接:跟踪文件上传和任务进度
使用Spring Boot实现SSE长连接:跟踪文件上传和任务进度 文章目录 使用Spring Boot实现SSE长连接:跟踪文件上传和任务进度什么是SSE?使用场景前端库选择安装event-source-polyfill1. 创建SSE连接2. 关闭SSE连接3. 结合Vue.js使用 使用Spring B…...
计算机网络技术基础:3.计算机网络的拓扑结构
网络拓扑结构是指用传输媒体互连各种设备的物理布局,即用什么方式把网络中的计算机等设备连接起来。将工作站、服务站等网络设备抽象为点,称为“节点”;将通信线路抽象为线,称为“链路”。由节点和链路构成的抽象结构就是网络拓扑…...
go-zero(十二)消息队列
go zero 消息队列 在微服务架构中,消息队列主要通过异步通信实现服务间的解耦,使得各个服务可以独立发展和扩展。 go-zero中使用的队列组件go-queue,是gozero官方实现的基于Kafka和Beanstalkd 的消息队列框架,我们使用kafka作为演示。 一、…...
会议通知:人工智能通识教育与实践发展暨和鲸科技AI通识课解决方案发布会
今年秋季学期起,全国多所高校面向本科生开设人工智能通识课。 当前人工智能通识课程的建设进展主要分为三种情况: 全市统筹,由某头部高校牵头建设市级人工智能通识课,以北京市、天津市为代表; 已于秋季学期按照课程…...
UDS自动化测试-Service 0x27(CAPL调用dll实现key计算)
文章目录 关联文章一、CANoe加载诊断数据库cdd、dll文件二、CAPLdiagGenerateKeyFromSeed关联文章 UDS - 深论Security Access Service 27服务-安全访问状态转换 CDD文件——CANdelaStudio Vector——CAPL语言设计 CANoe诊断测试 相信读者基于Diagnostic/ISO TP Confighratio…...
订单编号如何实现
背景 常见的订单编号是带有一些信息的,比如说创建日期例如:本案例中的订单日期 自增编号日期可以使用格式化字符串,自增则可以使用redis来实现 代码实现 redis就有自增的方法 每天的key都是不一样的,且过期时间设置为1天 // 生成…...
Vue3 大事件管理系统
Vue3 项目实战: 🆗好久没有更新blog,最近在找工作,还有准备考试,哎,😶🌫️爆炸的大环境🥲 内卷开始🌯🌯 本篇文章涉及的技术栈速通链接&#x…...
IOS通过WDA自动化中遇到的问题
IOS自动化遇到的问题 搭建WDA环境中遇到的问题1、XCode unsupport iphone xxx.2、创建Bundle Identifier出现问题:Communication with Apple failed3、创建Bundle Identifier出现问题:Automatic signing failed \Signing certificate is invalid4、创建B…...
如何3分钟搞定抖音视频批量下载?完整无水印下载指南
如何3分钟搞定抖音视频批量下载?完整无水印下载指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support…...
Windows热键冲突终结者:Hotkey Detective一键定位占用程序
Windows热键冲突终结者:Hotkey Detective一键定位占用程序 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是…...
yolo 源码与模型
YOLOv8 官方源码、预训练模型(.pt)、导出 ONNX 模型、以及 ROS2 C 部署源码(含检测框输出),全部是可直接用的工业级版本。 一、YOLOv8 官方源码(Ultralytics) 1. GitHub 源码地址(最…...
AI教材生成秘籍!AI写教材工具助力,快速产出低查重优质教材!
2026年AI教材编写工具:解决教材创作难题 整理教材中的知识要点可谓是一项“精细的工作”,这其中的挑战在于如何平衡和衔接这些知识点。我们经常会为核心知识点的遗漏而烦恼,同时也很难掌握难度的梯度——小学教材可能写得过于复杂࿰…...
ANI-RSS自定义扩展技术深度解析:架构设计与高级定制方案
ANI-RSS自定义扩展技术深度解析:架构设计与高级定制方案 【免费下载链接】ani-rss 基于RSS自动追番、订阅、下载、刮削、洗版 项目地址: https://gitcode.com/gh_mirrors/an/ani-rss ANI-RSS作为一款基于RSS的自动化追番解决方案,其技术架构提供了…...
明日方舟智能基建管理终极指南:Arknights-Mower 完整使用教程
明日方舟智能基建管理终极指南:Arknights-Mower 完整使用教程 【免费下载链接】arknights-mower 《明日方舟》长草助手 项目地址: https://gitcode.com/gh_mirrors/ar/arknights-mower 还在为《明日方舟》每日繁琐的基建操作而烦恼吗?Arknights-M…...
LRCGET:告别手动搜索,实现本地音乐歌词批量下载的完整指南
LRCGET:告别手动搜索,实现本地音乐歌词批量下载的完整指南 【免费下载链接】lrcget Utility for mass-downloading LRC synced lyrics for your offline music library. 项目地址: https://gitcode.com/gh_mirrors/lr/lrcget 你是否拥有大量本地音…...
如何用ESP32制作你的专属开源智能手表:DIY终极指南
如何用ESP32制作你的专属开源智能手表:DIY终极指南 【免费下载链接】awesome-esp 📶 A curated list of awesome ESP8266/32 projects and code 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-esp 想要拥有一个完全自定义的智能手表吗&am…...
【Game】Powerful——Martial Arts Challenge(6)
文章目录攻略关卡一(虎子)关卡二关卡三关卡四关卡五关卡六——奇穷妖魔羽灵火地仙人雷攻略 关卡一(虎子) 参战选手 出手顺序 关卡二 参战选手 出手顺序 关卡三 参战选手 出手顺序 上面是追求极限,但是没有容错率&…...
CANN/asc-devkit向量乘法指令asc_mull
asc_mull 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode.com/c…...
