From 44dd2c7c73d5fead948902cad2695ae30d4620e2 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期四, 24 十月 2024 09:50:29 +0800
Subject: [PATCH] 大屏

---
 admin/src/components/common/UploadAvatarImage.vue |   49 ++++++++++++++++++++++++++++++++-----------------
 1 files changed, 32 insertions(+), 17 deletions(-)

diff --git a/admin/src/components/common/UploadAvatarImage.vue b/admin/src/components/common/UploadAvatarImage.vue
index 72f91b9..dfd5d22 100644
--- a/admin/src/components/common/UploadAvatarImage.vue
+++ b/admin/src/components/common/UploadAvatarImage.vue
@@ -1,16 +1,9 @@
 <template>
   <div>
-    <el-upload
-      class="avatar-uploader"
-      accept=".png,.jpg,.jpeg"
-      :style="customStyle"
-      :action="uploadImgUrl"
-      :data="uploadData"
-      :show-file-list="false"
-      :on-success="handleAvatarSuccess"
-      :on-error="uploadError"
+    <el-upload class="avatar-uploader" accept=".png,.jpg,.jpeg" :style="customStyle" :action="uploadImgUrl"
+      :data="uploadData" :show-file-list="false" :on-success="handleAvatarSuccess" :on-error="uploadError"
       :before-upload="beforeAvatarUpload">
-      <img v-if=" file.imgurlfull" style="width: 100%;" :src="file.imgurlfull" :style="customStyle" class="avatar">
+      <img v-if="file.imgurlfull" style="width: 100%;" :src="file.imgurlfull" :style="customStyle" class="avatar">
       <div v-else :style="customStyle">
         <i class="el-icon-plus avatar-uploader-icon"></i>
         <div class="tips-style">{{ tipsLabel }}</div>
@@ -21,11 +14,12 @@
 </template>
 
 <script>
+import { Loading } from 'element-ui'
 export default {
   props: {
     file: {
       type: Object,
-      default: () => {}
+      default: () => { }
     },
     tipsLabel: '',
     customStyle: {
@@ -36,6 +30,7 @@
   },
   data() {
     return {
+      loading: null,
       uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/upload'
     }
   },
@@ -43,10 +38,13 @@
   methods: {
     // 涓婁紶鍥剧墖
     handleAvatarSuccess(res, file) {
+      this.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+        this.loading.close()
+      })
       if (res.code == 200) {
         let { data } = res
-        this.file.imgurl = data.imgaddr;
-        this.file.imgurlfull = data.url;
+        this.file.imgurl = data.imgaddr
+        this.file.imgurlfull = data.url
         this.$message.success('涓婁紶鎴愬姛')
         this.$emit('uploadSuccess', { imgurl: data.imgaddr, imgurlfull: data.url, name: data.originname })
       } else {
@@ -56,10 +54,19 @@
     },
     uploadError() {
       this.$message.error('涓婁紶澶辫触')
+      this.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+        this.loading.close()
+      })
       this.$emit('uploadEnd')
     },
     // // 鎷︽埅
     beforeAvatarUpload(file) {
+      this.loading = Loading.service({
+        lock: true,
+        text: 'Loading',
+        spinner: 'el-icon-loading',
+        background: 'rgba(0, 0, 0, 0.7)'
+      })
       this.$emit('uploadBegin')
       return true
     }
@@ -69,10 +76,12 @@
 
 <style lang="scss" scoped>
 $image-width: 90px;
+
 .avatar-uploader {
   width: $image-width;
   height: $image-width;
 }
+
 ::v-deep .el-upload {
   border: 1px dashed #d9d9d9;
   border-radius: 6px;
@@ -80,9 +89,11 @@
   position: relative;
   overflow: hidden;
 }
+
 .avatar-uploader .el-upload:hover {
   border-color: #409EFF;
 }
+
 .avatar-uploader-icon {
   line-height: 90px;
   font-size: 28px;
@@ -91,11 +102,13 @@
   height: $image-width;
   text-align: center;
 }
+
 .avatar {
   width: 90px;
   max-height: 90px;
   display: block;
 }
+
 .tips-style {
   height: 13px;
   font-size: 13px;
@@ -105,22 +118,24 @@
 }
 </style>
 <style lang="scss" scoped>
-::v-deep .el-upload--picture-card{
+::v-deep .el-upload--picture-card {
   width: 90px !important;
   height: 90px !important;
 }
+
 ::v-deep .el-upload-list__item {
   width: 90px !important;
   height: 90px !important;
 }
+
 .icon {
-  -webkit-transform: translate(-50%,-50%);
-  -ms-transform: translate(-50%,-50%);
+  -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