This commit is contained in:
parent
6cfe46c60b
commit
aabd317cdd
|
|
@ -1,8 +1,9 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="">
|
<div class="sc-upload-multiple">
|
||||||
|
|
||||||
<div class="sc-upload-list">
|
<div class="sc-upload-list">
|
||||||
<ul>
|
<ul>
|
||||||
<li v-for="(file, index) in fileList" :key="index">
|
<li v-for="(file, index) in defaultFileList" :key="index">
|
||||||
<div v-if="file.status!='success'">
|
<div v-if="file.status!='success'">
|
||||||
loading
|
loading
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -10,15 +11,19 @@
|
||||||
<div class="mask">
|
<div class="mask">
|
||||||
<span class="del" @click.stop="del(index)"><i class="el-icon-delete"></i></span>
|
<span class="del" @click.stop="del(index)"><i class="el-icon-delete"></i></span>
|
||||||
</div>
|
</div>
|
||||||
<el-image class="image" :src="file.url" :preview-src-list="[file.url]" fit="cover" hide-on-click-modal append-to-body></el-image>
|
<el-image class="image" :src="file.url" :preview-src-list="preview" :initial-index="index" fit="cover" hide-on-click-modal append-to-body></el-image>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
{{defaultFileList}}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="sc-upload-uploader">
|
<div class="sc-upload-uploader">
|
||||||
<el-upload ref="upload" :action="action" :accept="accept" multiple :show-file-list="true" :file-list="defaultList" :before-upload="before" :on-success="success" :on-remove="remove" :on-error="error">
|
<el-upload ref="upload" class="uploader" :action="action" :accept="accept" multiple :show-file-list="false" :before-upload="before" :on-progress="progress" :on-success="success" :on-change="change" :on-remove="remove" :on-error="error">
|
||||||
<el-button size="small" type="primary">点击上传</el-button>
|
<div class="file-empty">
|
||||||
|
<i :class="icon"></i>
|
||||||
|
<h4>{{title}}</h4>
|
||||||
|
</div>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -30,30 +35,35 @@
|
||||||
modelValue: { type: String, default: "" },
|
modelValue: { type: String, default: "" },
|
||||||
action: { type: String, default: "#" },
|
action: { type: String, default: "#" },
|
||||||
accept: { type: String, default: ".jpg, .png, .jpeg, .gif" },
|
accept: { type: String, default: ".jpg, .png, .jpeg, .gif" },
|
||||||
|
title: { type: String, default: "上传" },
|
||||||
|
icon: { type: String, default: "el-icon-plus" }
|
||||||
},
|
},
|
||||||
data(){
|
data(){
|
||||||
return {
|
return {
|
||||||
defaultList: this.toArr(this.modelValue),
|
defaultFileList: this.toArr(this.modelValue)
|
||||||
fileList: []
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
watch:{
|
watch:{
|
||||||
modelValue(){
|
modelValue(val){
|
||||||
|
this.defaultFileList = this.toArr(val)
|
||||||
},
|
},
|
||||||
fileList: {
|
defaultFileList: {
|
||||||
handler(val){
|
handler(val){
|
||||||
|
console.log(val);
|
||||||
this.$emit('update:modelValue', this.toStr(val));
|
this.$emit('update:modelValue', this.toStr(val));
|
||||||
},
|
},
|
||||||
deep: true
|
//deep: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
preview(){
|
||||||
|
return this.defaultFileList.map(v => v.url)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.fileList = this.$refs.upload.uploadFiles
|
|
||||||
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
||||||
//默认值转换为数组
|
//默认值转换为数组
|
||||||
toArr(str){
|
toArr(str){
|
||||||
var _arr = [];
|
var _arr = [];
|
||||||
|
|
@ -79,10 +89,20 @@
|
||||||
return str;
|
return str;
|
||||||
},
|
},
|
||||||
before(){
|
before(){
|
||||||
console.log(this.$refs.upload.uploadFiles);
|
|
||||||
|
},
|
||||||
|
change(file){
|
||||||
|
if(file.status =='ready'){
|
||||||
|
file.aa = "123"
|
||||||
|
file.url = URL.createObjectURL(file.raw);
|
||||||
|
this.defaultFileList.push(file)
|
||||||
|
}
|
||||||
},
|
},
|
||||||
success(res, file){
|
success(res, file){
|
||||||
file.url = res.data.src
|
file.url = res.data.src
|
||||||
|
},
|
||||||
|
progress(){
|
||||||
|
|
||||||
},
|
},
|
||||||
remove(){
|
remove(){
|
||||||
|
|
||||||
|
|
@ -94,13 +114,31 @@
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
del(index){
|
del(index){
|
||||||
this.fileList.splice(index, 1);
|
this.defaultFileList.splice(index, 1);
|
||||||
|
this.$refs.upload.uploadFiles.splice(index-this.defaultFileList.length-1, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|
||||||
|
.sc-upload-multiple {display: inline-block;}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.sc-upload-list li {list-style: none; display: inline-block;width: 120px;height: 120px;}
|
.sc-upload-list li {list-style: none; display: inline-block;width: 120px;height: 120px;}
|
||||||
.sc-upload-list .image {width: 100%;height: 100%;}
|
.sc-upload-list .image {width: 100%;height: 100%;}
|
||||||
|
|
||||||
|
|
||||||
|
.sc-upload-uploader {border: 1px dashed #d9d9d9;width: 120px;height: 120px;display: inline-block;vertical-align: top;box-sizing: border-box;}
|
||||||
|
.sc-upload-uploader:hover {border: 1px dashed #409eff;}
|
||||||
|
.sc-upload-uploader .uploader {width: 100%;height: 100%;}
|
||||||
|
.sc-upload-uploader:deep(.el-upload) {width: 100%;height: 100%;}
|
||||||
|
|
||||||
|
.sc-upload-uploader .file-empty {width: 100%;height: 100%;line-height: 1;display: flex;flex-direction: column;align-items: center;justify-content: center;}
|
||||||
|
.sc-upload-uploader .file-empty i {font-size: 28px;color: #8c939d;}
|
||||||
|
.sc-upload-uploader .file-empty h4 {font-size: 12px;font-weight: normal;color: #8c939d;margin-top: 10px;}
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -60,13 +60,13 @@
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
img1: [
|
img1: [
|
||||||
{required: true, message: '请上传', trigger: 'blur'}
|
{required: true, message: '请上传', trigger: 'change'}
|
||||||
],
|
],
|
||||||
img2: [
|
img2: [
|
||||||
{required: true, message: '请上传', trigger: 'blur'}
|
{required: true, message: '请上传', trigger: 'change'}
|
||||||
],
|
],
|
||||||
date: [
|
date: [
|
||||||
{required: true, message: '请选择日期', trigger: 'blur'}
|
{required: true, message: '请选择日期', trigger: 'change'}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue