elementui图片上传前压缩,

  elementui图片上传前压缩,

  这篇文章主要为大家详细介绍了使用元素vuedraggable实现图片上传拖拽排序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  本文实例为大家分享了用元素vuedraggable实现图片上传拖拽排序的具体代码,供大家参考,具体内容如下

  模板

  div class="全部上传"

  div class=clearfix

  div class=wrap

  可拖动的

  v-model=值

  动画=400

  class=clearfix

  过渡组

   div class=左中间 v-for=(item,index) in value :key=item.id

  img :src=item.url alt=

  div class=内容包装

  div class=content middleCenter

  I class= El-icon-zoom-in @ click= show img(item .URL)/I

  I class= El-icon-delete @ click= delImg(item,index)/i

  /div

  /div

  /div

  /过渡-组

  div slot= footer style= float:left

  埃尔-上传

  换行

  list-type=图片卡

  :action=imgUploadUrl

  :show-file-list=false

  :限制="最大"

  :on-progress= handlePictureCardPreview

  :on-exceed=onExceed

  :disabled="disabled "

  :on-change=onChange

  :file-list=fileList

  :multiple=true

  :on-success=handleSuccess

  v-if=isUploadBtn

  I slot= default :class=上传加载?El-icon-loading : El-icon-plus /I

  /El-上传

  /div

  /可拖动

  /div

  /div

  el-dialog title=查看图片:visible.sync=dialogVisible

  img width= 100% :src= dialogImageUrl alt=

  /el-dialog

  /div

  /模板

  脚本

  从" vuedraggable "导入可拖动的

  从" @/API/上传"导入{imgUpload}

  从" @/utils/auth "导入{MathRandom}

  从" fs "导入{承诺}

  导出默认值{

  名称:"上传",

  data () {

  返回{

  dialogImageUrl:" ",

  上传加载:假,

  dialogVisible: false,

  禁用:假,

  文件列表:[],

  imgUploadUrl:imgUpload(),

  arrs:[]

  }

  },

  道具:{

  值:{

  type: ()=[],

  默认(){

  return []

  }

  },

  最大:{

  类型:[数字,字符串],

  默认值:9

  },

  已禁用:{

  类型:布尔型,

  默认值:错误

  }

  },

  型号:{

  事件:"赠品"

  },

  计算值:{

  isUploadBtn(){

  返回this.value.lengththis.max

  },

  imgArr(){

  返回此值

  }

  },

  已安装(){

  this.value=[]

  //this.fileList=[]

  const unwatch=this .$watch(value ,function(newValue,oldValue){

  console.log(12312323)

  this.fileList=newValue

  取消观看()

  });

  },

  方法:{

  go () {

  这个$emit(giveActive ,这个。值);

  },

  显示(url){

  this.dialogImageUrl=url

  this.dialogVisible=true

  },

  交付(项目,索引){

  这个. $确认(此操作将永久删除该图片,是否继续?, 提示, {

   confirmButtonText:确定,

  取消按钮文本: 取消,

  类型:"警告"

  }).然后(()={

  this.value.splice(索引,1)

  this.fileList.splice(索引,1)

  this.go()

  }).catch(()={

  });

  },

  onChange(文件,文件列表){

  this.fileList=fileList

  },

  handlePictureCardPreview(文件){

  this.uploadLoading=true

  },

  onExceed(文件、文件列表、道具){

  这个消息({

  消息:`消息超出最大上传数量,最多可上传${this.max}张图片`,

  类型:"错误"

  })

  },

  成功处理(响应、文件、文件列表){

  this.uploadLoading=false

  this.urlList(响应)

  },

  urlList(res){

  const obj={

  id:MathRandom(),

  url:res.data.data,

  状态:"成功",

  uid:MathRandom()

  }

  if(this.value.lengththis.max){

  this.value=[.this.value,obj]

  this.go()

  }

  }

  }

  }

  /脚本

  样式lang=scss 范围。allUpload{。左侧{

  浮动:左;

  宽度:148像素

  身高:148像素

  边框-半径:6px

  边框:1px实心# c0ccda

  边距:0 20px 20px 0

  溢出:隐藏;

  位置:相对;

  光标:指针;

  :悬停{。内容包装{

  显示:块;

  }

  }。内容包装{

  显示:块;

  }

  img{

  最大宽度:100%;

  最大高度:100%;

  对象适合:封面;

  }。内容包装{

  显示:无;

  位置:绝对;

  z指数:99999999;

  宽度:100%;

  身高:100%;

  背景:rgba($color: #000000,$ alpha:0.4);内容{

  宽度:100%;

  身高:100%;

  我{

  颜色:# fff

  字体大小:18px

  :第n种类型(1){

  右边距:10px

  }

  :第n种类型(2){

  左边距:10px

  }

  }

  }

  }

  }。换行{

  浮动:左;

  }

  }

  /风格

  效果图

  以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: