vue二次封装van-uploader上传图片组件(移动端)
<template>
<van-uploader
v-model="uploadData"
//是否可以多选
:multiple="multiple"
:after-read="afterRead"
//最大上传数量
:max-count="maxCount"
// 最大上传大小
:max-size="1024 * 1024 * 10"
:before-read="beforeRead"
@oversize="onOversize"
/>
</template>
<script>
export default {
props: {
// 文件列表
fileList: {
type: Array,
default: () => {
return [];
}
},
// 上传数量
maxCount: {
type: Number,
default: 9
},
// 是否开启多图选择
multiple: {
type: Boolean,
default: true
}
},
data () {
return {
uploadData: this.fileList
};
},
methods: {
// 上传后的回调,获取到对应的file对象
afterRead (file) {
this.$emit('uploadResult', file);
},
// 上传前
beforeRead (file) {
// 多图上传时file为一个数组
// 多图上传的流程
if (Array.isArray(file)) {
for (let i = file.length - 1; i >= 0; i--) {
const imageType = /^image/(jpeg|png|jpg)$/.test(file[i].type);
if (!imageType) {
file.splice(i, 1);
this.$tipMessage('warning', '上传图片格式只能是 JPEG|PBG|JPG 格式!');
}
}
return true;
} else {
// 单图上传流程
const imageType = /^image/(jpeg|png|jpg)$/.test(file.type);
if (!imageType) {
this.$tipMessage('warning', '上传图片格式只能是 JPEG|PBG|JPG 格式!');
return false;
}
return true;
}
},
// 监听上传图片的大小
onOversize (file) {
this.$tipMessage('warning', '上传图片不能超过10M');
}
}
};
</script>
原文地址:https://blog.csdn.net/JunVei/article/details/126550634
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_36948.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。