From 3a45da15c947c2d478a44a51bd0f926647b1b841 Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期五, 11 四月 2025 16:33:17 +0800 Subject: [PATCH] 提交 --- company/src/components/common/UploadFile.vue | 79 +++++++++++++++++++++++++++++---------- 1 files changed, 59 insertions(+), 20 deletions(-) diff --git a/company/src/components/common/UploadFile.vue b/company/src/components/common/UploadFile.vue index 0ceb06f..8624fa0 100644 --- a/company/src/components/common/UploadFile.vue +++ b/company/src/components/common/UploadFile.vue @@ -1,17 +1,19 @@ <template> <div> <el-upload + ref="uploadFileBtn" class="upload-demo" - :accept="uploadData.fileTyp" + :accept="uploadData.fileType" :action="uploadImgUrl" :limit="1" + :before-remove="removes" :on-exceed="handleExceed" :on-success="handleFileSuccess" :on-error="uploadError" :before-upload="beforeFileUpload" :file-list="fileList"> - <el-button size="small" type="primary">鐐瑰嚮涓婁紶</el-button> - <div slot="tip" class="el-upload__tip">鍙兘涓婁紶{{ uploadData.fileType }}鏂囦欢锛屼笖涓嶈秴杩�5mb</div> + <el-button size="small" type="primary" >鐐瑰嚮涓婁紶</el-button> + <div style="display: inline-block;position: absolute" slot="tip" class="el-upload__tip" v-if="showTips">{{'(鍙兘涓婁紶'+uploadData.fileType +'鏂囦欢锛屼笖涓嶈秴杩�5mb)'}}</div> </el-upload> </div> @@ -20,44 +22,81 @@ <script> export default { props: { + fileList:{ + type: Array, + default: () => [] + }, file: { type: Object, default: () => {} }, - tipsLabel: '', + fileIndex: { + type: Number, + default: () =>0 + }, + showTips: { + type: Boolean, + default: () => true + }, customStyle: { type: String, - default: 'width: 190px; height: 190px;' + default: 'width: 190px; height: 190px;' }, uploadData: Object }, data() { return { - fileList:null, + uploaded:false, + // fileList:[], uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/public/upload?folder='+this.uploadData.folder } }, - + watch: { + fileList (nv,ov) { + if(this.fileList ==null){ + this.fileList = new Array(); + } + if(this.fileList.length == 0){ + this.uploaded = false + }else{ + this.uploaded=true + } + // alert(this.fileList) + }, + tipsLabel (nv,ov) { + if(this.tipsLabel ==null){ + this.tipsLabel = '' + } + } + }, methods: { + removes() { + this.uploaded=false + this.$emit('remove') + }, // 涓婁紶鍥剧墖 - handleExceed(){}, + handleExceed(){ + this.$message.error('鍙厑璁镐笂浼�1涓枃浠讹紝璇峰垹闄ゅ凡浼犳枃浠讹紝閲嶈瘯锛�') + }, handleFileSuccess(res, file) { if (res.code == 200) { let { data } = res + this.uploaded = true // this.fileList = [{name: data.originname, url: data.url }] this.$message.success('涓婁紶鎴愬姛') - this.$emit('uploadSuccess', { fileurl: data.imgaddr, fileurlFull: data.url, name: data.originname }) + this.$emit('uploadSuccess', { fileurl: data.imgaddr, fileurlFull: data.url, name: data.originname ,index:this.fileIndex}) } else { - this.$tip.apiFailed('涓婁紶澶辫触') + this.$message.apiFailed('涓婁紶澶辫触') } this.$emit('uploadEnd') }, uploadError() { - this.$tip.apiFailed('涓婁紶澶辫触') + this.$message.apiFailed('涓婁紶澶辫触') this.$emit('endUpload') }, // // 鎷︽埅 beforeFileUpload(file) { + this.$emit('uploadBegin') return true } @@ -72,12 +111,12 @@ height: $image-width; } ::v-deep .el-upload { - border: 1px dashed #d9d9d9; + //border: 1px dashed #d9d9d9; border-radius: 6px; cursor: pointer; position: relative; width: $image-width; - height: $image-width; + height: auto; overflow: hidden; } .avatar-uploader .el-upload:hover { @@ -95,7 +134,7 @@ width: $image-width; height: $image-width; display: block; -} +}#67C23A .tips-style { height: 13px; font-size: 13px; @@ -109,18 +148,18 @@ width: 90px !important; height: 90px !important; } +::v-deep .el-upload-list__item-name{ + color: #67C23A; +} ::v-deep .el-upload-list__item { - width: 90px !important; - height: 90px !important; + width: 80% !important; + height: 50px !important; } .icon { -webkit-transform: translate(-50%,-50%); -ms-transform: translate(-50%,-50%); transform: translate(0%, -85%); } -::v-deep .el-upload-list__item { - width: 90px !important; - height: 90px !important; -} + </style> -- Gitblit v1.9.3