添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
基于项目需求需要把上传成功的文件图标logo区别对待好一眼知道哪个文件是ppt、哪个是图片、哪个是word 哪个是文本txt等文件类型;由于element-ui 的upload组件源码是写死的此时需要copy一份源码稍加改造即可!如下: < template > < transition-group tag ="ul" :class ="[ 'el-upload-list', 'el-upload-list--' + listType, { 'is-disabled': disabled } name ="el-list" v-for ="(file, index) in files" :class ="['el-upload-list__item', 'is-' + file.status, focusing ? 'focusing' : '']" :key ="index.toString()" tabindex ="0" @focus ="focusing = true" @blur ="focusing = false" @click ="focusing = false" class ="el-upload-list__item-thumbnail" v-if ="file.status !== 'uploading' && ['picture-card', 'picture'].indexOf(listType) > -1" :src ="file.url" < a class ="el-upload-list__item-name" @click ="handleClick(file)" > <!-- <i class="el-icon-document"></i>{{file.name}} 原本的源码 以下是改造后的源码!就是一个i标签即可 --> < i class ="ext-name-icon" :class ="fileExtName(file.fName || file.name)" ></ i > < span class ="file_f_name" > {{file.fName || file.name}} </ span > < label class ="el-upload-list__item-status-label" > :class ="{ 'el-icon-upload-success': true, 'el-icon-circle-check': listType === 'text', 'el-icon-check': ['picture-card', 'picture'].indexOf(listType) > -1 </ label > < i class ="el-icon-close" v-if ="!disabled && !file.fileDelete" @click ="$emit('remove', file)" ></ i > <!-- 此为附件删除按钮 --> < el-progress v-if ="file.status === 'uploading'" :type ="listType === 'picture-card' ? 'circle' : 'line'" :stroke-width ="listType === 'picture-card' ? 6 : 2" :percentage ="parsePercentage(file.percentage)" ></ el-progress > </ transition-group > </ template > < script > import ElProgress from " ./progress " ; export default { data() { return { focusing: false components: { ElProgress }, props: { files: { type: Array, default () { return []; disabled: { type: Boolean, default : false handlePreview: Function, listType: String methods: { parsePercentage(val) { return parseInt(val, 10 ); handleClick(file) { this .handlePreview && this .handlePreview(file); fileExtName(name) { let iName = "" ; if (name && name.indexOf( " xls " ) > - 1 ) { iName = " ic_excel " ; if (name && name.indexOf( " fo " ) > - 1 ) { iName = " ic_folder " ; if (name && name.indexOf( " g " ) > - 1 ) { iName = " ic_img " ; if (name && name.indexOf( " pdf " ) > - 1 ) { iName = " ic_pdf " ; if (name && name.indexOf( " ppt " ) > - 1 ) { iName = " ic_ppt " ; if (name && name.indexOf( " doc " ) > - 1 ) { iName = " ic_word " ; return iName; </ script > < style lang ="scss" > .file_f_name { vertical-align : middle ; word-wrap : break-word ; word-break : break-all ; .ext-name-icon { display : inline-block ; height : 16px ; width : 16px ; vertical-align : middle ; margin-right : 5px ; background : url("../../../assets/images/ic_commonfile.png") no-repeat center center ; background-size : 100% 100% ; &.ic_excel { background : url("../../../assets/images/ic_excel.png") no-repeat center center ; background-size : 100% 100% ; &.ic_folder { background : url("../../../assets/images/ic_folder.png") no-repeat center center ; background-size : 100% 100% ; &.ic_img { background : url("../../../assets/images/ic_img.png") no-repeat center center ; background-size : 100% 100% ; &.ic_pdf { background : url("../../../assets/images/ic_pdf.png") no-repeat center center ; background-size : 100% 100% ; &.ic_ppt { background : url("../../../assets/images/ic_ppt.png") no-repeat center center ; background-size : 100% 100% ; &.ic_word { background : url("../../../assets/images/ic_word.png") no-repeat center center ; background-size : 100% 100% ; </ style >

上传组件的api参照官网!!

以上代码本人项目实测!!!真实可靠,请勿随意转载~转载请注明出处~~~谢谢合作!