在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:hlUploadImg开源软件地址:https://gitee.com/nineteen19/hl-upload-img-uniapp开源软件介绍:hl-uploadimg图片选择上传组件介绍图片上传前端组件,支持单图/多图,支持限定质量,支持同步/异步上传,可自定义图片、上传按钮、删除按钮样式。 兼容差异说明支持H5,微信小程序,APP。 使用教程1.导入插件1.通过uniapp插件市场导入本插件到你的项目。uniapp插件市场地址2.或者下载示例项目后将 推荐直接通过uniapp插件市场导入 2.在页面中添加组件引用<template> <view> <hl-uploadimg ref="hlUploadImg"></hl-uploadimg> </view></template> 本组件符合uniapp的 2.修改上传地址与响应字段#####(1)打开组件目录下 const uploadPath = "http://127.0.0.1:10086/upload"; //修改此处的地址为你自己的上传地址 #####(2)修改第124行为你图片上传成功后响应的URL的字段名 let _uploadedUrl = JSON.parse(uploadFileRes.data).filePath; //按照你的实际响应修改 如果你的响应类似如下: { "code":0, "msg":"sucess", "data":{ "url":"http://www.xxx123.com/20201119/bdf893b4255b4c7d8998b67c76f11535.png" }} 那么122行应该修改为如下所示: let _uploadedUrl=uploadFileRes.data.url; 如果你的响应类似如下: { "file":"http://www.xxx123.com/20201119/bdf893b4255b4c7d8998b67c76f11535.png"} 那么122行应该修改为如下所示: let _uploadedUrl=uploadFileRes.file; 注意:不管怎么改,都应该确保最终赋给_uploadedUrl的值为你上传成功后的URL 经过上面的修改,组建就可以正常上传图片和拿到上传后的地址了。 3.调用上传事件/监听上传回调如果未开启自动上传,则需要手动触发上传事件 // 上传图片this.$refs.hlUploadImg.uploadImg().then(res=>{ // doSomething... this.allUploadedImg=res.allImages; //所有图片url数组 this.thisUploadedImg=res.thisUploadedImages //本次上传图片的url数组}); 如果已开启自动上传,先要在组件上添加回调事件监听: <hl-uploadimg ref="hlUploadImg" @uploaded="uploadRes"></hl-uploadimg> 然后在页面的 // ...methods:{ uploadRes(res){ // doSomething... this.allUploadedImg=res.allImages; //所有图片url数组(可以用于提表单提交) this.thisUploadedImg=res.thisUploadedImages //本次上传url数组 }}// ... 属性、回调、事件1. 属性说明
selectBtn属性说明
delBtn属性说明
2.回调方法
3.事件
手动触发事件示例: // 选择图片this.$refs.hlUploadImg.chooseImg().then(res=>{ // doSomething... this.allList=res.allImages //所有图片 this.thisChooseImg=res.thisSelectImages //本次选择的图片 this.waitUploadImg=res.waitUploadImages //所有待上传图片}); // 上传图片this.$refs.hlUploadImg.uploadImg().then(res=>{ // doSomething... this.allUploadedImg=res.allImages; //所有图片 this.thisUploadedImg=res.thisUploadedImages //本次上传成功图片}); 使用示例1.传入图片在实际开发中,通常修改数据的时候,会需要修改原来的图片,这时我们可以给组件传一个 <template> <view class="upBox"> <hl-uploadimg ref="hlUploadImg" :imgList="oldImgList"></hl-uploadimg> </view></template><script>export default { data() { return { oldImgList:[ 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2583035764,1571388243&fm=26&gp=0.jpg', 'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=3876535482,3811402221&fm=11&gp=0.jpg' ] }; }};</script><style lang="scss"></style> 效果展示: 注意事项:单图模式如果传入图片,也必须为数组类型 2.自定义图片样式默认图片是正方形,没有圆角,宽高为自动计算出来的。如果我们想要自定义样式,可以给组件传入 代码示例: <template> <view> <view class="upBox"> <text class="rowTitle">默认图片样式,正方形,无圆角</text> <hl-uploadimg ref="hlUploadImg" :imgList="oldImgList" ></hl-uploadimg> <text class="rowTitle">自定义样式1,图片高度为宽度的80%,10rpx的圆角</text> <hl-uploadimg ref="hlUploadImg" :imgList="oldImgList" :imgStyle="imgStyle"></hl-uploadimg> <text class="rowTitle">自定义样式2,宽高200rpx,圆形</text> <hl-uploadimg ref="hlUploadImg" :imgList="oldImgList2" :imgStyle="imgStyle2"></hl-uploadimg> </view> </view></template><script>export default { data() { return { oldImgList:[ 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2583035764,1571388243&fm=26&gp=0.jpg', 'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=3876535482,3811402221&fm=11&gp=0.jpg' ], oldImgList2:[ 'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=3876535482,3811402221&fm=11&gp=0.jpg' ], imgStyle:{ height:0.8, borderRadius:'10rpx' }, imgStyle2:{ width:'200rpx', height:'200rpx', borderRadius:'50%', overflow: 'hidden' //可以通过overFlow:hidden 隐藏删除按钮 } }; }};</script><style lang="scss"></style> 效果展示: 注意事项:
3.自定义上传按钮样式上传按钮默认的宽度、高度、圆角和图片样式保持一致,如果需要特殊指定,可以给组建传入 <template> <view> <view class="upBox"> <text class="rowTitle">默认选择按钮样式</text> <hl-uploadimg ref="hlUploadImg" :imgList="oldImgList" ></hl-uploadimg> <text class="rowTitle">选择按钮文本与样式</text> <hl-uploadimg ref="hlUploadImg" :imgList="oldImgList" :imgStyle="imgStyle" :selectBtn="upStyle"></hl-uploadimg> <text class="rowTitle">选择按钮图标与样式</text> <hl-uploadimg ref="hlUploadImg" :imgList="oldImgList" :imgStyle="imgStyle" :selectBtn="upStyle2"></hl-uploadimg> <text class="rowTitle">使用图片作为图标</text> <hl-uploadimg ref="hlUploadImg" :imgList="oldImgList" :imgStyle="imgStyle" :selectBtn="upStyle3"></hl-uploadimg> </view> </view></template><script> export default { data() { return { oldImgList: [ 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2583035764,1571388243&fm=26&gp=0.jpg', 'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=3876535482,3811402221&fm=11&gp=0.jpg' ], imgStyle: { height: 0.8, borderRadius: '10upx' }, // 样式1 upStyle: { icon: '', //图标,空字符串不需要图标 text: '点击上传', //按钮文字 textSty:{ //文字样式 fontSize:'24rpx', color:'#ffffff' }, btnSty: { border: 'none', background: '#007aff', borderRadius: '0px' } }, // 样式2 upStyle2: { icon: 'icon-camerafill', //图标,空字符串不需要图标 iconSty:{ //图标样式 color: "#67C23A", }, text: '', //文本 空字符串不需要要文字 btnSty: { border: '1px dashed #67C23A', borderRadius: '0px' } }, // 样式3 upStyle3:{ icon:'../../static/del.png', iconSty:{ width:'66rpx', height:'66rpx' } } }; } };</script> 效果展示: 注意事项
4. 自定义删除按钮图片删除按钮默认为红色填充图标,如果需要自定义删除按钮,可以给组件传入 <template> <view> <view class="upBox"> <text class="rowTitle">默认删除按钮样式</text> <hl-uploadimg ref="hlUploadImg" :imgList="oldImgList"></hl-uploadimg> <text class="rowTitle">自定义删除按钮样式</text> <hl-uploadimg ref="hlUploadImg" :imgList="oldImgList" :delBtn="delStyle"></hl-uploadimg> <text class="rowTitle">使用图片作为删除按钮</text> <hl-uploadimg ref="hlUploadImg" :imgList="oldImgList" :delBtn="delStyle2"></hl-uploadimg> </view> </view></template><script> export default { data() { return { oldImgList: [ 'https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=2583035764,1571388243&fm=26&gp=0.jpg', 'https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=3876535482,3811402221&fm=11&gp=0.jpg' ], delStyle: { icon: 'icon-close', style: { display: 'block', width: '40upx', height: '40upx', textAlign: 'center', color: '#ffffff', background: '#000000', lineHeight: '40upx', right: '0', top: '0' } }, delStyle2:{ icon: '../../static/del.png', style: { width: '40rpx', height: '40rpx', left:'0', bottom:'0' } } }; } };</script> 效果展示: 注意事项
5.点击图片触发操作当有图片时,默认点击图片不会触发任何操作,如果需要相关操作,可以设定组件的
注意事项: 如果开启自动上传,替换图片时会自动上传替换后的图片,并且通过 6.上传时遮罩图片上传一般需要花费一定的时间,所以在上传过程中应该给用户明确的提示信息。可以通过设定组件的 1. 2. 3. 注意事项1.dialogList模式下,显示上传成功时虽然显示所有图片,但该组件会自动过滤网络图片。 7.使用你自己的图标如果你的项目中已有图标库,你可以修改组件 常见问题1.所有样式对象的规范所有的样式的书写,如果样式名带连字符“-”,请去掉连字符并将连字符后面的第一个字母大写。例如 2.小程序不支持 |
请发表评论