因为时间缘故(就是懒),所以有些在data里定义的值没有写出来,需要哪些东西或者字段的可以直接评论,我会一一给的。
html片段:
<div class="upload-img">
<ul class="upload-lists">
<li v-for="(item, index) in picLists" :key="index">
<img :src="item" alt="" />
<div class="caozuos">
<i
@click="deleteImgq(item, index)"
class="el-icon-delete"
></i>
</div>
</li>
<li
v-if="picListEses == 1"
style="border: 1px solid black"
class="add-imgs el-icon-plus"
>
<input @change="fileChangeqw" type="file" multiple />
<i v-if="!loadinges" class="iconfont icon-tianjia"></i>
<i v-else class="iconfont loadings icon-jiazai"></i>
</li>
</ul>
<div
class="preview-boxs"
v-if="ispreviews"
@click.self="ispreviews = false"
>
<img :src="previewItems" alt="" />
</div>
</div>
JS片段:
data() {
return {
picLists: [],
picListEses: 1,
loadinges: false,
ispreviews: false,
previewItems: "", //用于预览
}
},
methods:{
fileChangeqw(e) {
if (this.picLists.length > 20) {
this.$message({
message: "最多只能上传20张图片",
type: "warning",
});
return;
}
var file = e.target.files[0];
var list = e.target.files;
var picLists = this.localPreview(list);
for (let i = 0; i < picLists.length; i++) {
var aa = picLists[i];
}
var formData = new FormData();
this.ary.push(file);
this.formDataes = formData;
if (this.picLists.length == 19) {
this.picListEses = "2";
}
this.picLists.push(aa);
// this.$emit("changepic", this.picLists);
},
deleteImgq(item, index) {
this.picLists.splice(index, 1);
this.picListsa.splice(index, 1);
//如果删除的图片小于20张了就把+显示出来
if (this.picLists.length < 20) {
this.picListEses = "1";
}
if (this.picListsa.length < 3) {
this.picListsae = "1";
}
this.$emit("changepic", this.picListsa);
this.$emit("changepic", this.picLists);
},
SubmitCreationOrder() {
var fomrDates=new FormData();
//这里FormData用来给后台发送数据
fomrDates.append('要给后台传的名字',给后台传的值);
//这里的ListInsertorder是我封装好的接口 换成你的或者直接发axios请求就行
// ListInsertorder(this.formDataes).then((res) => {
// console.log(res);
// });
this.openq = false;//因为我这个添加是一个Element里面的Dialog弹框,openq用来控制弹框是否显示
},
}