Vue3文件上傳組件實戰:打造高效的Element Plus上傳解決方案,可以對文件進行刪除,查看,下載功能。

在現代Web開發中,文件上傳功能是許多應用的核心需求之一。無論是企業管理系統、內容管理系統還是醫療信息系統,上傳附件的功能都至關重要。本文將分享一個基于 Vue3Element Plus 實現的文件上傳組件,結合父子組件的協作,展示如何構建一個功能強大、用戶體驗友好的文件上傳解決方案。以下是完整的代碼實現和使用指南,適合前端開發者參考和復用。

為什么選擇這個解決方案?

  • 靈活性:支持多種文件類型和大小限制,輕松適配不同業務場景。

  • 用戶體驗:拖拽上傳、實時預覽、下載和刪除功能一應俱全。

  • 可復用性:子組件封裝完善,可在多個父組件中快速集成。

  • 國際化支持:通過 vue-i18n 實現多語言提示,適合國際化項目。

子組件:文件上傳核心邏輯

子組件 UploadFiles 封裝了文件上傳的核心功能,包括文件類型和大小校驗、上傳進度管理、文件列表展示以及預覽和下載功能。以下是完整的子組件代碼:

<template><div class="w-full upload-file"><el-uploadref="fileUpload"v-if="props.type === 'default'":action="baseURL + other.adaptationUrl(props.uploadFileUrl)":before-upload="handleBeforeUpload":file-list="fileList":headers="headers":limit="limit":on-error="handleUploadError":on-remove="handleRemove":on-exceed="handleExceed":data="formData":auto-upload="autoUpload":on-success="handleUploadSuccess"class="upload-file-uploader"dragmultiple:show-file-list="false"><el-icon size="60" color="#999999"><UploadFilled /></el-icon><div class="el-upload__text">{{ $t('excel.operationNotice') }}<em>{{ $t('excel.clickUpload') }}</em></div><template #tip><div class="el-upload__tip" v-if="props.isShowTip">{{ $t('excel.pleaseUpload') }}<template v-if="props.fileSize">{{ $t('excel.size') }} <b style="color: #f56c6c">{{ props.fileSize }}MB</b></template><template v-if="props.fileType">{{ $t('excel.format') }} <b style="color: #f56c6c">{{ props.fileType.join('/') }}</b></template>{{ $t('excel.file') }}</div></template></el-upload><div class="file-list" v-if="fileList.length > 0"><el-table :data="fileList" style="width: 100%"><el-table-column prop="original" label="文件名" /><el-table-column label="操作" width="250"><template #default="scope"><el-button size="small" type="primary" link @click="handlePreview(scope.row)"><el-icon><View /></el-icon> 查看</el-button><el-button size="small" type="success" link @click="handleDownload(scope.row)"><el-icon><Download /></el-icon> 下載</el-button><el-button size="small" type="danger" link @click="handleRemove(scope.row)"><el-icon><Delete /></el-icon> 刪除</el-button></template></el-table-column></el-table></div></div>
</template><script setup lang="ts" name="upload-file">
import { ref, computed, watch } from 'vue';
import { useMessage } from '/@/hooks/message';
import { Session } from '/@/

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

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

相關文章

AI 工程師崛起:科技浪潮下的新興力量

在當今科技迅猛發展的時代&#xff0c;人工智能&#xff08;AI&#xff09;無疑是最熱門的領域之一。隨著基礎模型的涌現和開源 / API 的普及&#xff0c;一種新興的職業 ——AI 工程師&#xff0c;正逐漸嶄露頭角。他們在 AI 技術的應用和開發中扮演著關鍵角色&#xff0c;其崛…

人工智能與機器學習:Python從零實現邏輯回歸模型

&#x1f9e0; 向所有學習者致敬&#xff01; “學習不是裝滿一桶水&#xff0c;而是點燃一把火。” —— 葉芝 我的博客主頁&#xff1a; https://lizheng.blog.csdn.net &#x1f310; 歡迎點擊加入AI人工智能社區&#xff01; &#x1f680; 讓我們一起努力&#xff0c;共創…

濟南國網數字化培訓班學習筆記-第二組-5節-輸電線路設計

輸電線路設計 工程設計階段劃分 35kv及以上輸變電工程勘測設計全過程 可行性研究&#xff08;包括規劃、工程選站&#xff09;&#xff08;包括電力系統一次二次&#xff0c;站址選擇及工程設想&#xff0c;線路工程選擇及工程設想&#xff0c;節能降耗分析&#xff0c;環境…

【Linux網絡】TCP服務中IOService應用與實現

&#x1f4e2;博客主頁&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;博客倉庫&#xff1a;https://gitee.com/JohnKingW/linux_test/tree/master/lesson &#x1f4e2;歡迎點贊 &#x1f44d; 收藏 ?留言 &#x1f4dd; 如有錯誤敬請指正&#xff01; &…

Linux 怎么找Java程序的監聽的端口

Linux 怎么找Java程序的監聽的端口 1、假設你知道啟動該Java應用的進程ID (PID)&#xff0c;可以通過以下命令查找其監聽的端口&#xff1a; 首先找到該Java應用的PID&#xff1a; ps -ef | grep xxxx-1.0-RELEASE.jar或者&#xff0c;如果你知道啟動命令的一部分&#xff0…

解讀《數據資產質量評估實施規則》:企業數據資產認證落地的關鍵指南

隨著“數據要素市場”建設加速&#xff0c;數據資產逐步成為企業核心資產之一。2024年4月&#xff0c;由中國質量認證中心&#xff08;CQC&#xff09;發布的《數據資產質量評估實施規則》&#xff08;編號&#xff1a;CQC96-831160-2024&#xff09;正式實施&#xff0c;為企業…

[吾愛出品] 【鍵鼠自動化工具】支持識別窗口、識圖、發送文本、按鍵組合等

鍵鼠自動化工具 鏈接&#xff1a;https://pan.xunlei.com/s/VOOhDZkj-E0mdDZCvo3jp6s4A1?pwdfufb# 1、增加的找圖點擊功能&#xff08;不算增加&#xff0c;只能算縫補&#xff09;&#xff0c;各種的不完善&#xff0c;但是能運行。 2、因為受限于原程序的界面&#xff0c;…

【計算機視覺】CV實戰項目 - 基于YOLOv5的人臉檢測與關鍵點定位系統深度解析

基于YOLOv5的人臉檢測與關鍵點定位系統深度解析 1. 技術背景與項目意義傳統方案的局限性YOLOv5多任務方案的優勢 2. 核心算法原理網絡架構改進關鍵點回歸分支損失函數設計 3. 實戰指南&#xff1a;從環境搭建到模型應用環境配置數據準備數據格式要求數據目錄結構 模型訓練配置文…

IntelliJ IDEA 中配置 Spring MVC 環境的詳細步驟

以下是在 IntelliJ IDEA 中配置 Spring MVC 環境的詳細步驟&#xff1a; 步驟 1&#xff1a;創建 Maven Web 項目 新建項目 File -> New -> Project → 選擇 Maven → 勾選 Create from archetype → 選擇 maven-archetype-webapp。輸入 GroupId&#xff08;如 com.examp…

基于javaweb的SpringBoot+MyBatis通訊錄管理系統設計與實現(源碼+文檔+部署講解)

技術范圍&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、小程序、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容&#xff1a;免費功能設計、開題報告、任務書、中期檢查PPT、系統功能實現、代碼編寫、論文編寫和輔導、論文…

EFISH-SBC-RK3588無人機地面基準站項目

一、核心技術組件解析 1. EFISH-SBC-RK3588 性能優勢&#xff1a;作為瑞芯微推出的高性能處理器&#xff0c;采用8nm 工藝&#xff0c;搭載ARM Cortex-A76/A55 八核架構&#xff0c;集成強大的 NPU&#xff08;神經網絡處理單元&#xff09;和 GPU&#xff08;圖形處理器&…

藍橋杯 4. 卡片換位

卡片換位 原題目鏈接 題目描述 你玩過華容道的游戲嗎&#xff1f; 這是一個類似的&#xff0c;但更簡單的游戲。 看下面的 3 2 格子&#xff1a; --------- | A | * | * | --------- | B | | * | ---------在其中放置了 5 張牌&#xff0c;其中&#xff1a; A 表示關…

7.Excel:單元格格式

一 案例 1.案例1 2.案例2 3.案例3 二 三種基本數據類型 補充&#xff1a;在沒有任何格式的情況下是這樣對齊的。 1.文本 默認左對齊&#xff0c;文本不可參與計算。 2.數值 默認右對齊&#xff0c;數值計算精度是15位。 若超出15位&#xff0c;超出部分顯示為0。 3.邏輯值 …

高效DCDC電源芯片在運動控制器中的應用:設計考量、性能評估與可靠性分析

摘要 隨著工業自動化的深入推進&#xff0c;運動控制器作為自動化系統的核心組件&#xff0c;對電源芯片的性能提出了極高要求。高效率DCDC電源芯片憑借其卓越的電能轉換效率、優異的負載響應特性和高功率密度&#xff0c;在運動控制器領域得以廣泛應用。本文以國科安芯的ASP3…

Action:Update your application‘s configuration

在使用Maven項目時&#xff0c;有一個報錯信息是&#xff1a;Update your applications configuration 這類問題&#xff0c;就是我們的application.yml文件 或者 application.properties文件 內容哪里寫錯了 最有可能就是對齊方式有問題

Pycharm(六):可變與不可變類型

一、引用 在java中既有值傳遞,也有引用傳遞,我們思考一下在python中值的傳遞方式是哪種類型呢? 答案是引用傳遞。 概述: Python中存儲變量是需要占用內存空間的,為了更好地管理這些空間,每塊空間都是有自己的地址值的。 格式: id(變量名/值) 可以查看變量/…

動態ip與靜態ip的概念、區別、應用場景

動態ip與靜態ip的區別 前言 一、IP地址的概念和作用 1.1、IP地址的定義 1.2、IP地址的作用 二、動態IP和靜態IP的區別 2.1、動態IP和靜態IP的定義 2.2、動態IP和靜態IP的特點 2.3、動態IP和靜態IP的優缺點比較 三、動態IP和靜態IP的應用場景 3.1. 動態IP的應用場景 3.2. 靜態IP…

六個能夠白嫖學習資料的網站

一、咖喱君的資源庫 地址&#xff1a;https://flowus.cn/galijun/share/de0f6d2f-df17-4075-86ed-ebead0394a77 這是一個學習資料/學習網站分享平臺&#xff0c;包含了英語、法語、德語、韓語、日語、泰語等幾十種外國語言的學習資料及平臺&#xff0c;這個網站的優勢就是外語…

[貪心_7] 最優除法 | 跳躍游戲 II | 加油站

目錄 1.最優除法 題解 2.跳躍游戲 II 題解 3.加油站 題解 利用 單調性&#xff0c;可以實現 區間跳躍 1.最優除法 鏈接&#xff1a; 553. 最優除法 給定一正整數數組 nums&#xff0c;nums 中的相鄰整數將進行浮點除法。 例如&#xff0c;nums [2,3,4]&#xff0c;我…

“Daz to Unreal”將 G8 角色(包括表情)從 daz3d 導入到 UE5。在 UE5 中,我發現使用某個表情并與閉眼混合后,上眼瞼出現了問題

1) Bake & Export Corrective Morphs from Daz before you go into UE5 1) 在進入 UE5 之前&#xff0c;從 Daz 烘焙并導出修正型變形 In Daz Studio 在 Daz Studio 中 Load your G8 head, dial in the exact mix (e.g. Smile 1.0 Eyes Closed 1.0). 加載你的 G8 頭部&am…