Vue3——自定义封装上传图片样式
创始人
2025-05-29 06:55:26
0

自定义封装上传图片样式

一、首先需要新建一个自组建完善基础的结构,我这里起名为ImgUpload.vue



name 上传的文件字段名
show-file-list 是否显示已上传文件列表
accept 接受上传的文件类型(thumbnail-mode 模式下此参数无效)
multiple 是否支持多选文件
http-request 覆盖默认的 Xhr 行为,允许自行实现上传文件的请求

二、接下来自定义背景以及图标

  

判断如果存在路径则显示图片,否则显示默认背景
样式如下:

.cover-upload-btn {width: 150px;height: 150px;position: relative;border: 1px solid #DCDFE6;border-radius: 5%;padding: 5px;box-sizing: border-box;img{width: 100%;}i {position: absolute;top: 50%;left: 50%;font-size: 46px;transform: translate(-50%, -50%);color: #aaa;}
}

三、上传方法

const uploadImgage = async(file) => {console.log(file);// 请求接口中需要带url以及let result = await proxy.Request({url:api.uploadUrl,  // 上传路径dataType:'file', // 指定传输类型params:{file:file.file,   // 提交上传路径到指定位置type:0,          }})const fileName = result.data.fileNameemit('update:modelValue',fileName) 
};

dataType可以参考这段封装请求的requset

请添加图片描述

前面配置的代码部分如下:

import { getCurrentInstance } from "vue";const {proxy} = getCurrentInstance()
// 通过props将路径传给父组件
const props = defineProps({modelValue:{type:String,default:null}
})
const api = {uploadUrl:'/img' //图片上传接口
}

然后注意一下这个位置

  

这里的globaInfo.imageUrl是在全局中进行调用,所以上方使用proxy来获取路径位置
main.js配置如下

import App from './App.vue'
const app = createApp(App);
app.config.globalProperties.globaInfo = {  // 添加可以在应用程序内的任何组件实例中访问的全局 property。属性名冲突时,组件的 property 将具有优先权。imageUrl:'/api/file/'  //放入图片的文件夹位置
};
import ImgUpload from '@/components/ImgUpload.vue'; //引入子组件
app.component('ImgUpload',ImgUpload) // 全局调用组件

最后在父组件中引入自组件即可



相关内容

热门资讯

原创 腊... 导读:腊肉处理,第一步先泡水还是先煮?大厨教你做法,简单易学真好吃 腊肉作为中国传统美食,承载着深厚...
2025重庆美食“渝味360碗... 5月29日,以“舌尖渝味·全球共享”为主题的2025重庆美食“渝味360碗”嘉年华在九龙坡区巴国城正...
这样吃粽子=喂胃酸?升糖速度是... 明天就将迎来端午节, 粽子是节日绕不开的美食。 如今, 动辄半斤的大粽子越来越流行。 佳节到来之际,...
端午养生正当时,解锁传统佳节里... “五月五日午,赠我一枝艾。”宋代文天祥的《端午即事》道出了端午传统习俗承载着深厚的文化底蕴。作为中国...
行业龙头微念领航螺蛳粉出海 亮... 日前,2025 SIAL 西雅国际食品展在上海新国际博览中心圆满举办。本届西雅展汇集全球35万件特色...
计算机网络(第九弹) --- ...   传输控制协议 TCP 在整个计算机网络中占有很高的地位, 它会控制着网络上数据的传输过程, 当然...
金融“及时雨”润泽南粤文旅,看... 当开平碉楼在夜色中亮起璀璨灯火,当丹霞山索道载着游客掠过云海,当潮州古城的青石板路迎来熙攘人潮,20...
来大连拍哪儿最好看?指南来了!... 晨报讯(半岛晨报、39度视频记者肖崟崟) 5月29日上午,由大连市委宣传部、大连市文化和旅游局、中山...
Kompex::SQLiteD... 使用Kompex::SQLiteDatabase的时候,发现并没有加密的接口ÿ...
2023年华为认证H12-82... 一、什么是HCIP-Datacom 英文名:HCIP-Datacom-Advanced...
【2023-Pytorch-检... 项目下载地址:YOLOV5交通标志识别检测数据集+代码+模型+...
JavaWeb——Repons... 响应体当中的两种的数据格式:字符和字节 Reponse响应字符数据 演示,在get请...
端午节前夕大明湖 水碧树绿美如... 齐鲁晚报·齐鲁壹点记者 周青先端午节前夕,航拍济南大明湖景区。湖水清澈如玉,湖畔树木葱绿,景色仿佛画...
Python3 内置函数 Python3 内置函数 注意:有些函数与 Python2.x 变化不大࿰...
上海地标和平饭店携手莱佛士焕新... 雅高集团与锦江国际联合宣布,享誉全球的上海地标和平饭店将开启全新华章,于2027年焕新升级为莱佛士品...
非遗川韵・狂欢里约——中国广安... 推介会现场 广安市文化广播电视和旅游局与巴西里约旅行社协会签署合作框架协议 【南美侨报特约记者陈妤...
非洲手机之王,光环不再? 传音控股2025年一季度毛利率下降至19.97%,创近年来新低 投资时间网、标点财经研究员 李路 ...
重庆和成都谁强?重庆创造了3.... 在西部崛起的版图上,重庆与成都的发展路径差异鲜明。 重庆以直辖市的战略地位和庞大经济体量稳居西部龙头...
41 openEuler搭建F... 文章目录41 openEuler搭建FTP服务器-传输文件41.1 概述41.2 连接服务器41.3...
小白学Pytorch系列--T... 小白学Pytorch系列–Torch API (10) BLAS and LAPACK Opera...