| | |
| | | :show-file-list="true" |
| | | :limit="uploadNum" |
| | | multiple |
| | | :file-list="fileUrl" |
| | | :on-remove="handleRemove" |
| | | :before-remove="beforeRemove" |
| | | :on-success="handleUploadSuccess" |
| | | :before-upload="beforeUpload"> |
| | | <el-button size="small" type="primary">点击上传</el-button> |
| | | <div slot="tip" class="el-upload__tip">只能上传pdf、mp4、mp3、png、jpg、jpge文件,且不超过{{fileSizeLimitM}}M</div> |
| | | <div v-if="fileUrl && fileUrl.length > 0 && uploadNum === 1"> |
| | | <video class="returnShow" v-if="fileType === 'video'" :src="'/api/files/' + fileUrl[0].url"></video> |
| | | <img class="returnShow" v-if="fileType === 'img'" :src="'/api/files/' + fileUrl[0].url"/> |
| | | </div> |
| | | </el-upload> |
| | | </div> |
| | | </template> |
| | |
| | | default: 1, |
| | | type: Number |
| | | }, |
| | | fileType: { |
| | | required: false, |
| | | type: String |
| | | }, |
| | | fileSizeLimitM: { |
| | | required: false, |
| | | default: 1, |
| | | type: Number |
| | | }, |
| | | fileUrl: { |
| | | required: true, |
| | | default: [], |
| | | type: Array |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | uploadUrl: "http://localhost:8085/api/upload/upload", |
| | | fileUrl: "", |
| | | } |
| | | }, |
| | | methods: { |
| | | clearFile() { |
| | | this.fileUrl = [] |
| | | }, |
| | | beforeRemove(file, fileList) { |
| | | return this.$confirm(`确定移除 ${ file.name }?`); |
| | | }, |
| | | handleRemove(file, fileList) { |
| | | console.log(file, fileList); |
| | | this.$emit('removeFile', this.fileUrl, file.name); |
| | | }, |
| | | handleUploadSuccess(res, file) { |
| | | this.$emit('getUploadUrl', file.response); |
| | | this.fileUrl.push(res.response) |
| | | this.$emit('getUploadUrl', this.fileUrl); |
| | | }, |
| | | beforeUpload(file) { |
| | | const limit = file.size / 1024 / 1024 < this.fileSizeLimitM; |
| | | |
| | | if (!limit) { |
| | | this.$message.error(`上传文件大小不能超过 ${this.fileSizeLimitM}MB!`); |
| | | } |
| | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .returnShow { |
| | | width: 300px; |
| | | height: 200px; |
| | | } |
| | | .avatar-uploader { |
| | | text-align: center; |
| | | width: 100% |