zoukankan      html  css  js  c++  java
  • 修改用户头像

    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- 200px; min-height: 200px; max- 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       }
  • 相关阅读:
    spring jdbctemplate 集成duckdb docker 镜像
    GLIBCXX_3.4.x 问题解决
    spring jdbctemplate 集成duckdb
    spring-boot-starter-data-jdbc Cannot determine a dialect Please provide a Dialect
    kotlin 学习 三 maven 集成+java 互调用
    kotlin 学习 二 命令行模式运行
    kotlin 学习 一 环境搭建
    pt-ioprofile io 瓶颈分析工具
    zombodb 3000 alpha1发布
    openfeign+retronfit http 访问
  • 原文地址:https://www.cnblogs.com/yangguoe/p/9317237.html
Copyright © 2011-2022 走看看