修改用戶頭像


1). 新建修改頭像頁

在 src/views/users 下新建 Avatar.vue 文件,復制貼入以下代碼:

src/views/users/Avatar.vue

 1 <template>
 2   <div class="col-md-9 left-col">
 3     <div class="panel panel-default padding-md">
 4         <div class="panel-body">
 5             <h2><i class="fa fa-picture-o"></i> 請輸入頭像地址</h2>
 6         <hr>
 7         <div data-validator-form>
 8           <div class="form-group">
 9             <label>頭像預覽:</label>
10             <div>
11               <img :src="avatar" class="avatar-preview-img">
12             </div>
13           </div>
14           <div class="form-group row">
15             <div class="col-md-8">
16               <input v-model.trim.lazy="avatar" v-validator.required="{ title: '頭像地址' }" type="text" class="form-control avatar-input">
17             </div>
18             <div class="clearfix"></div>
19           </div>
20 
21           <div class="form-group">
22             <button type="submit" class="btn btn-lg btn-primary" @click="updateAvatar">上傳頭像</button>
23           </div>
24         </div>
25         </div>
26     </div>
27   </div>
28 </template>
29 
30 <script>
31 export default {
32   name: 'EditAvatar',
33 data() {
34   return {
35     avatar: '' // 頭像地址
36   }
37 },
38 // 在實例創建完成后,初始化頭像地址的值
39 created() {
40   // 獲取倉庫的用戶信息
41   const user = this.$store.state.user
42 
43   if (user && typeof user === 'object') {
44     // 將倉庫的用戶頭像賦值給當前頭像地址
45     this.avatar = user.avatar
46   }
47 },
48 methods: {
49   // 更新頭像
50   updateAvatar() {
51     const avatar = this.avatar
52 
53     // 如果頭像地址不為空
54     if (avatar) {
55       // 新建一個 Image 的實例
56       let img = new Image()
57 
58       // 加載成功時,上傳圖片
59       img.onload = () => {
60         // 依然分發一個 updateUser 的事件,這里只需傳入頭像信息
61         this.$store.dispatch('updateUser', { avatar })
62         this.$message.show('上傳成功')
63       }
64 
65       // 加載失敗時,只顯示一個失敗的提示
66       img.onerror = () => {
67         this.$message.show('上傳失敗', 'danger')
68       }
69 
70       // 指定圖片地址
71       img.src = avatar
72     }
73   }
74 }
75 }
76 </script>
77 
78 <style scoped>
79 .avatar-preview-img { min-width: 200px; min-height: 200px; max-width: 50%;}
80 </style>

2). 添加修改頭像路由

打開 src/router/routes.js 文件,添加修改頭像路由 EditAvatar(注釋部分是涉及的修改):

src/router/routes.js

1   {
2         path: '/users/1/edit_avatar',
3         name: 'EditAvatar',
4         component: () => import('@/views/users/Avatar.vue'),
5         meta: { auth: true }
6       }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM