1. 采用 :http-request=""
自定义上传的方式
<el-upload
action=""
list-type="picture-card"
:file-list="fileList"
:http-request="httpRequest"
:on-success="handleSuccess"
:on-remove="handleRemove"
>
<i class="el-icon-plus"></i>
</el-upload>
data() {
return {
imgList: [],
fileList: [],
}
}
httpRequest(item) {
var imgId = item.file.lastModified
var formData = new FormData()
formData.append('file', item.file)
this.$http
.post('/oss/file/upload', formData, {
headers: {
'Content-Type': 'multipart/form-data'
},
onUploadProgress: progressEvent => {
let percent = ((progressEvent.loaded / progressEvent.total) * 100) | 0
item.onProgress({ percent: percent })
}
})
.then(res => {
res = res.data
if(res.code == 500) return this.$message.error(res.msg)
var array = []
var imgId = []
array.push({
ossId: res.data.ossId,
imgId
})
imgId.push(res.data.ossId)
this.imgList = array
this.dataForm.ossIdList = imgId
item.onSuccess()
})
.catch(() => {})
},
2. 删除上传的图片
handleRemove(file, fileList) {
var list = this.imgList
for (var i = 0; i < list.length; i++) {
if (list[i].imgId) {
if (list[i].imgId == file.raw.lastModified) {
list.splice(i, 1)
}
}
if (list[i].url) {
if (list[i].url == file.url) {
list.splice(i, 1)
}
}
this.dataForm.ossIdList.push(list[i].ossId)
}
},
3. 关于图片回显
getInfo() {
this.fileList = []
this.$http
.get(`/pipenetwork/device/detail/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) return this.$message.error(res.msg)
this.dataForm = res.data
var list = res.data.picUrlList
if (list) {
for (var i = 0; i < list.length; i++) {
this.fileList.push({ url: list[i].url })
this.dataForm.ossIdList.push(list[i].ossId)
this.imgList.push({
ossId: list[i].ossId,
url: list[i].url
})
}
}
})
.catch(() => {})
},