From a38b2ce4cf02b6ac7069ac89517287bf78f4dfdf Mon Sep 17 00:00:00 2001
From: luohairen <3399054449@qq.com>
Date: 星期二, 29 十月 2024 14:13:56 +0800
Subject: [PATCH] 完成个人信息头像更换

---
 src/views/profile/components/UserCard.vue |   48 ++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 46 insertions(+), 2 deletions(-)

diff --git a/src/views/profile/components/UserCard.vue b/src/views/profile/components/UserCard.vue
index 59f37b0..567ff28 100644
--- a/src/views/profile/components/UserCard.vue
+++ b/src/views/profile/components/UserCard.vue
@@ -6,7 +6,22 @@
 
     <div class="user-profile">
       <div class="box-center">
-        <img :src="userInfo.imagePath === null ? require('@/assets/avatar.gif') : userInfo.imagePath " height="100px" width="100px" style="border-radius: 50px">
+        <input
+          type="file"
+          @change="changeHeadPortrait"
+          accept=".jpg, .png"
+          style="display: none"
+          ref="fileHeadPortrait"
+          id="fileHeadPortrait"
+        />
+
+        <img :src="userInfo.imagePath?'api/files/' + userInfo.imagePath : '/static/icons/touxiang.png'"
+             height="100px"
+             width="100px"
+             style="border-radius: 50px"
+             @click="uploadImage"
+             class="img"
+             id="headPortrait">
       </div>
       <div class="box-center">
         <div class="user-name text-center">{{ userInfo.userName }}</div>
@@ -18,8 +33,14 @@
 
 <script>
 import { mapGetters, mapState } from 'vuex'
+import userApi from '@/api/user'
 
 export default {
+  data() {
+    return {
+      uploadUrl: 'http://localhost:8000/api/upload/upload'
+    }
+  },
   props: {
     userInfo: {
       type: Object,
@@ -40,8 +61,31 @@
     ...mapState('enumItem', {
       roleEnum: state => state.user.roleEnum
     })
+  },
+  methods: {
+    changeHeadPortrait(e) {
+      let formData = new FormData();
+      if (e.target.files[0]) {
+        formData.set("file", e.target.files[0]);
+        userApi.uploadImg(formData).then(
+          this.$message.success('涓婁紶鎴愬姛'),
+        );
+      }
+    },
+    uploadImage(){
+      let logoFile = document.getElementById("fileHeadPortrait");
+      if (logoFile) {
+        logoFile.click();
+      }
+    },
+    getPage() {
+      userApi.getCurrentUser.then(re => {
+        let _this = this
+        _this.userInfo = re.data
+      })
+    }
   }
-}
+};
 </script>
 
 <style lang="scss" scoped>

--
Gitblit v1.8.0