```
上传组件
<!-- 图片上传组件 action:提交地址;on-preview:预览事件-->
<!-- on-remove:处理移除图片事件 -->
<!-- heads:请求头信息,上传需要有token值 -->
<!-- on-success:监听图片上传成功 -->
<!-- multiple:可以上传多个 -->
<!-- limit:限制上传个数 -->
<el-upload
action="https://jsonplaceholder.typicode.com/posts/"
:on-preview="handlePreview"
:on-remove="handleRemove"
list-type="picture"
:headers="headsObj"
:on-success="handleSuccess"
multiple
:limit="3"
>
<el-button size="small" type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
</el-upload>
<!-- 图片预览对话框 -->
<el-dialog title="图片预览" :visible.sync="previewVisible" width="50%">
<img :src="previewPath" width="100%">
</el-dialog>
data数据:
//添加表单数据
addForm: {
goodsname:"",
goodsprice:0,
goodsweight:0,
goodsnum:"",
// 商品分类数组
goods_cate: [ ],
//上传成功的图片
pics : [ ],
//商品详情描述
goods_instroduce :''
},
//请求头获取:
// 图片上传组件的请求头对象
headsObj : {Authorization:window.sessionStorage.getItem("token")},
//图片预览保存的url路径
previewPath :'',
//图片预览对话框
previewVisible:false,
<script>
//图片上传成功事件,上传成功,后端返回文件名和临时路径,respone是返回的对象
handleSuccess(respone){
console.log(respone)
// 1.拼接一个图片信息对象
// tmp_path为后端返回的临时路径名称
const picinfo = {pic :respone.data.tmp_path}
// 2.将图片信息push到pics数组中
this.addForm.pics.push(picinfo)
},
//处理图片移除事件
handleRemove(file){
console.log(file)
// 1.获取将要删除的图片临时路径
const filePath = file.response.data.tmp_path
// 2.从pics数组中找到这个图片的索引值,
//findIndex方法:x代表pics里面的每一项,x的pic等于filePath返回当前的索引
const i = this.addForm.pics.findIndex(x=>x.pic === filePath)
// 3.调用splice方法,把图片对象信息从pics中移除索引为i的一个
this.addForm.pics.splice(i,1)
},
//图片预览事件
handlePreview(file){
// 输出的file对象信息有一个tmp_path临时路径名称和一个url地址
console.log(file)
//把url地址赋值到本地
this.previewPath = file.response.data.url
//打开预览图片的对话框
this.previewVisible = true
},
</script>
```
## 组件属性
*****
on-exceed : 文件超出个数限制时的钩子;
*****
on-success(response, file, fileList):文件上传成功钩子:
response:服务器返回的信息
file:文件信息
fileList:当前组件的文件列表信息
*****
- vue项目目录
- git
- git 使用
- git 新建和合并不同git分支
- vue使用element ui
- vue复选框
- vue使用富文本编辑器
- element 级联选择器使用
- vue使用时间过滤器
- vue form表单中使用table表格
- element ui图片上传(upload)功能
- 树形tree组件
- element 表格表头样式修改
- element ui添加loading动画
- table展开列
- el-tooltip提示框加for循环无法显示数据
- table合并
- table表头插槽,render-header警告
- table列表中鼠标放上去显示图片
- 表格中输入内容动态改变数据(箭头和颜色)
- 使用element ui表格跨页勾选
- 可编辑表格可分页
- 组件之间简单传值
- 从表格中选择其他表单子段
- router
- vuex
- vue接口写法
- 将后端返回的数字转成字符串显示在表格中
- element ui实现动态验证
- vue根据token判断登录
- vue修饰符
- js小案例
- 倒计时
- 验证码
- 带文字匹配搜索框
- 选项卡
- 复选框全选,反选,全不选
- 相册选择,鼠标放到图片上,对应图放大显示
- 敏感词过滤
- 进度条
- 点击按钮回到顶部
- 电影院选座
- 盒子移动
- 鼠标绑定一个盒子
- 档案建立,输入信息添加到表格
- 抽奖机
- 放大镜
- 购物车
- 飞机大战
- echarts案例
- 常规条形图
- 横向条形图
- 折线图
- 散点图
- 饼状图
- 地图
- 雷达图
- 仪表盘
- 条形堆叠图
- 微前端--qiankun框架
- node中间件
- 手机端样式自适应,格式化初始样式插件
- 简单的axios请求封装,无权限
- npm安装后缀-s或-d
- 系统环境变量
- 过滤字符串,不足两位前面添加0
- 概念问题
- async和await的区别
- created和mounted区别
- link和@import区别
- 排他算法
- 数组方法
- 数组扁平化
- 数组去重
- 遍历数组的四种方法
- vue数组中哪些方法时响应式的
- splice删除数组遇到的坑
- 展开运算符(...)用法
- 冒泡排序
- 判断数组中是否有重复
- 计算数组中某项出现的次数
- filter方法
- 将数组分割成多个指定长度的数组
- 常用数组方法整合
- 对象数据处理
- 合并对象:Object.assign( )
- Object.keys(),返回数组,自身枚举对象
- Object.values使用
- Object.entries使用
- vue中使用svg
- svg组件
- vue滑块验证
- 方法一:滑块验证
- 方法二:滑块插件
- vue配置不同的启动和打包环境
- js过滤日期
- js获取指定日期前一个月日期
- js指定日期与当前日期比较
- js截取字符串
- js截取字符串最后的逗号
- js截取图片后缀
- 前端监听网络
- vue.config.js解析
- 常用正则
- 闭包概念+闭包防抖节流
- vue插槽
- 网络安全栏
- canvas指纹追踪技术
- exif照片信息
- xss攻击
- vue中操作引导
- 封装全局loading组件
- vue更换主题方案(手动)
- vue项目打包优化
- 组件递归案例
- Promise及异步操作介绍
- vue-cli打包的dist文件怎么直接运行
- 浏览器页签通信(BroadcastChannel)
- nginx配置