elementUI vue Upload和vant Uploader的开发中的经验总结

依然范特西╮ 提交于 2020-02-14 13:01:48

由于工作的需要,基于vue框架的手机端和PC端项目做了好多个了,上传图片这个功能经常要用到,必要把他总结一下。

1.elementUI Upload

图片放大功能
<template>
  <div class="app-container">
    <el-upload
      action="https://jsonplaceholder.typicode.com/posts/"
      list-type="picture-card"
      multiple
      :on-preview="handlePictureCardPreview"
      :on-remove="handleRemove">
      <i class="el-icon-plus"></i>
  </el-upload>
  <el-dialog :visible.sync="dialogVisible">
    <img width="100%" :src="dialogImageUrl" alt="">
  </el-dialog>
  </div>
</template>
<script>
export default {
  data() {
    return {
      dialogImageUrl: '',
      dialogVisible: false

    }
  methods: {
    handlePictureCardPreview(file) {
      this.dialogImageUrl = file.url;
      this.dialogVisible = true;
    }
  }
}
</script>

在这里插入图片描述
思路:点击图片,把点击的图片地址赋值给弹出层的img里,然后显示。支持单图放大,不支持图片轮播显示。vant Uploader支持轮播,后面有说明。

多图上传

multiple属性

2.vant Uploader

<div class="title">凭证</div>
<div class="bx-shiyou-list">
     <div class="operating">
     <div class="operating-list">
             <div class="pic">
                 <template>
                     <li v-for="(item,index) in bxDetail.imgs" :key="index" @click="getImg(bxDetail.imgs,index)"><img :src="item.imgUrl" alt="" ></li>
                     <li class="no" v-if="bxDetail.imgs.length==0">暂无凭证</li>
                 </template>
                 </div>
         </div>
     </div>
</div>
methods:{
	 getImg(pa1,index){
	     console.log(pa1,'pa1');
	     var images=[];
	     pa1.forEach(element => {
	         images.push(element.imgUrl);
	     });
	     ImagePreview({
	     images:images,
	     showIndex:true,
	     startPosition:index,
	     loop:false,
	     }) 
	 },
 }

在这里插入图片描述
在这里插入图片描述
思路:把所有图片,索引传入。这样点击的时候就可以轮播了。

总结:不管是pc端还是手机端,图片放大并且可以轮播的原理是一样的。
都可以添加一个弹出层,层里面放置一个类似swiper的轮播插件,点击的时候根据索引让swiper里面显示对应的图片

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!