<template>
|
|
<view>
|
|
<uv-upload
|
|
:fileList="fileList"
|
|
:multiple="multiple"
|
|
:maxCount="maxCount"
|
|
:width="width"
|
|
:height="height"
|
|
@afterRead="afterRead"
|
|
@delete="deleteFile"
|
|
>
|
|
<slot :value="value"></slot>
|
|
</uv-upload>
|
|
</view>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
export default {
|
|
props: {
|
|
value: {
|
|
default: null
|
|
},
|
|
multiple: {
|
|
type: Boolean,
|
|
default: false,
|
|
},
|
|
maxCount: {
|
|
type: Number,
|
|
default: 1,
|
|
},
|
|
width: {
|
|
type: Number | String,
|
|
default: null,
|
|
},
|
|
height: {
|
|
type: Number | String,
|
|
default: null,
|
|
},
|
|
},
|
|
data() {
|
|
return {
|
|
fileList: [],
|
|
}
|
|
},
|
|
methods: {
|
|
deleteFile(){
|
|
this.fileList = []
|
|
this.$emit('input', null)
|
|
},
|
|
afterRead(e){
|
|
let self = this
|
|
|
|
e.file.forEach(file => {
|
|
self.$Oss.ossUpload(file.url).then(url => {
|
|
self.fileList = [url]
|
|
self.$emit('input', url)
|
|
})
|
|
})
|
|
},
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
</style>
|