27.添加讲师--头像上传
一、下载并添加上传组件
下载地址:https://wws.lanzous.com/iKAypn3bkna 密码:e82t
将下载好的上传组件加入到前端的组件目录下

二、使用上传组件
1、在save.vue页面添加更换头像
<!-- 讲师头像:TODO -->
<!-- 讲师头像 -->
<el-form-item label="讲师头像">
<!-- 头衔缩略图 -->
<pan-thumb :image="teacher.avatar"/>
<!-- 文件上传按钮 -->
<el-button type="primary" icon="el-icon-upload" @click="imagecropperShow=true">更换头像
</el-button>
<!--
v-show:是否显示上传组件
:key:类似于id,如果一个页面多个图片上传控件,可以做区分
:url:后台上传的url地址
@close:关闭上传组件
@crop-upload-success:上传成功后的回调 -->
<image-cropper
v-show="imagecropperShow"
:width="300"
:height="300"
:key="imagecropperKey"
:url="BASE_API+'/eduoss/fileoss'"
field="file"
@close="close"
@crop-upload-success="cropSuccess"/>
</el-form-item>
2、定义变量和初始值
//①定义变量和初始值
imagecropperShow:false,//上传弹框组件是否显示
imagecropperKey:0,//上传组件key值
BASE_API:process.env.BASE_API,//获取dev.env.js里面地址
saveBtnDisabled:false //保存按钮是否禁用
3、引入组件和声明组件
import ImageCropper from '@/components/ImageCropper'
import PanThumb from '@/components/PanThumb'
export default {
components: { ImageCropper, PanThumb },
4、修改上传接口地址

5、编写上传成功和关闭上传弹框的方法
//②两个方法
close() { //关闭上传弹框的方法
this.imagecropperShow = false
//上传组件初始化
this.imagecropperKey = this.imagecropperKey + 1
},
cropSuccess(data) { //上传成功的方法
this.imagecropperShow = false
this.teacher.avatar = data.url
this.imagecropperKey = this.imagecropperKey + 1
}
浙公网安备 33010602011771号