2 changed files with 75 additions and 237 deletions
@ -1,130 +0,0 @@ |
|||||
<template> |
|
||||
<div class="upload-image"> |
|
||||
<el-upload list-type="picture-card" |
|
||||
:action="uploadUrl" |
|
||||
:data="{ customerId: customerId }" |
|
||||
:file-list="fileList" |
|
||||
:limit="limit" |
|
||||
:on-success="(res, file) => handleImgSuccess(res, file)" |
|
||||
:on-error="(res, file) => handleImgError(res, file)" |
|
||||
:on-remove="(res) => handleImgRemove(res)" |
|
||||
:on-exceed="(res) => handleImgExceed(res)" |
|
||||
:before-upload="(file) => beforeImgUpload(file)"> |
|
||||
<i slot="default" class="el-icon-plus"></i> |
|
||||
<div slot="file" slot-scope="{file}"> |
|
||||
<img class="el-upload-list__item-thumbnail" :src="file.url" alt=""> |
|
||||
<span class="el-upload-list__item-actions"> |
|
||||
<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)"> |
|
||||
<i class="el-icon-zoom-in"></i> |
|
||||
</span> |
|
||||
<span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file)"> |
|
||||
<i class="el-icon-delete"></i> |
|
||||
</span> |
|
||||
</span> |
|
||||
</div> |
|
||||
</el-upload> |
|
||||
<el-dialog :visible.sync="dialogVisible"> |
|
||||
<img width="100%" :src="dialogImageUrl" alt=""> |
|
||||
</el-dialog> |
|
||||
</div> |
|
||||
</template> |
|
||||
|
|
||||
<script> |
|
||||
export default { |
|
||||
props: { |
|
||||
limit: { |
|
||||
type: Number, |
|
||||
default: 3 |
|
||||
}, |
|
||||
rowIndex: { |
|
||||
type: Number, |
|
||||
default: 0 |
|
||||
}, |
|
||||
defaultFileList: { |
|
||||
type: Array |
|
||||
} |
|
||||
}, |
|
||||
watch: { |
|
||||
defaultFileList: { |
|
||||
handler (newVal) { |
|
||||
newVal.forEach(item => { |
|
||||
item.url = item.fileUrl |
|
||||
}) |
|
||||
this.fileList = newVal |
|
||||
}, |
|
||||
deep: true, |
|
||||
immediate: true |
|
||||
} |
|
||||
|
|
||||
}, |
|
||||
data () { |
|
||||
return { |
|
||||
dialogImageUrl: '', |
|
||||
dialogVisible: false, |
|
||||
disabled: false, |
|
||||
uploadUrl: `${window.SITE_CONFIG['apiURL']}/oss/file/uploadqrcodeV2`, |
|
||||
customerId: localStorage.getItem("customerId"), |
|
||||
fileList: [], |
|
||||
imageUrls: [] |
|
||||
} |
|
||||
}, |
|
||||
created() { |
|
||||
console.log('xxxxxx', this.rowIndex) |
|
||||
}, |
|
||||
methods: { |
|
||||
handleRemove(file) { |
|
||||
const delFile = file.url |
|
||||
this.fileList.forEach((item, key) => { |
|
||||
if (delFile == item.url) { |
|
||||
this.fileList.splice(key, 1) |
|
||||
} |
|
||||
}) |
|
||||
}, |
|
||||
handlePictureCardPreview(file) { |
|
||||
this.dialogImageUrl = file.url |
|
||||
this.dialogVisible = true |
|
||||
}, |
|
||||
beforeImgUpload(file) { |
|
||||
// console.log(file) |
|
||||
}, |
|
||||
handleImgExceed(res) { |
|
||||
console.log(res) |
|
||||
this.$message({ |
|
||||
type: "warning", |
|
||||
message: `文件数量最多不超过${this.limit}个`, |
|
||||
}) |
|
||||
}, |
|
||||
handleImgRemove(file) { |
|
||||
console.log("handleImgRemove", file) |
|
||||
}, |
|
||||
handleImgSuccess(res, file) { |
|
||||
// console.log("handleImgSuccess", res, file) |
|
||||
if (res.code === 0 && res.msg === "success") { |
|
||||
this.fileList.push(file) |
|
||||
this.$emit('change', this.fileList, this.rowIndex) |
|
||||
} else { |
|
||||
this.$message.error(res.msg) |
|
||||
} |
|
||||
}, |
|
||||
|
|
||||
handleImgError(res, file) { |
|
||||
console.log(res) |
|
||||
}, |
|
||||
} |
|
||||
} |
|
||||
</script> |
|
||||
<style lang="scss" scoped> |
|
||||
.upload-image { |
|
||||
// min-width: 120px; |
|
||||
// height: 80px; |
|
||||
} |
|
||||
/deep/ .el-upload--picture-card { |
|
||||
width: 60px; |
|
||||
height: 60px; |
|
||||
line-height: 70px; |
|
||||
} |
|
||||
/deep/ .el-upload-list--picture-card .el-upload-list__item { |
|
||||
width: 60px; |
|
||||
height: 60px; |
|
||||
} |
|
||||
</style> |
|
||||
Loading…
Reference in new issue