首页 > 其他分享 >uniapp上传用户头像和修改昵称代码

uniapp上传用户头像和修改昵称代码

时间:2022-11-11 10:55:41浏览次数:33  
标签:uniapp center res 昵称 params userInfo uni 上传 avatar

因小程序wx.getUserProfile接口被收回,现封装一份上传用户头像和修改昵称的代码

 

 

<template>
  <view class="content">
    <button open-type="chooseAvatar" class="avatar-wrapper" @chooseavatar="uploadAva">
      <div class="cell-box">
        <span class="item-title">头像:</span>
        <div class="item-centent">
          <image class="avatar" :src="avatarUrl"></image>
        </div>
        <van-icon name="arrow" />
      </div>
    </button>
    <div class="cell-box">
      <span class="item-title">昵称:</span>
      <div class="item-centent">
        <input type="nickname" class="weui-input" @change="nick_nameChange" :value="params.nickName" placeholder="请输入昵称" />
      </div>
      <van-icon name="arrow" />
    </div>
    <button class="save-btn" @click="saveProfile">保 存</button>
  </view>
</template>

<script>
import { baseURL } from "@/http/http";
export default {
  data() {
    return {
      config: baseURL(),
      avatarUrl: 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0',
      nickName: '',
      params: {
        file: '',
        nickName: '',
      },
      reqLoading: false,
    }
  },
  onl oad() {
    if (this.$store.state.isLogin) {
      let _this = this;
      // console.log(this.$store.state.userInfo)
      const userInfo = this.$store.state.userInfo
      this.avatarUrl = userInfo.avatar ? this.config.host + this.config.pub + userInfo.avatar : 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'
      this.params.nickName = userInfo.nickName ? userInfo.nickName : ''
      if (userInfo.avatar) {
        wx.getImageInfo({
          src: this.config.host + this.config.pub + userInfo.avatar,
          success(res) {
            _this.params.file = [res.path]
          }
        })
      }
    }
  },
  methods: {
    uploadAva(e) {
      let _this = this;
      wx.getImageInfo({
        src: e.detail.avatarUrl,
        success(res) {
          console.log('getImageInfo', res)
          _this.avatarUrl = res.path;
          _this.params.file = [res.path];
        }
      })
    },
    saveProfile() {
      uni.showLoading({ title: '正在保存...' });
      try {
        let params = this.params;
        this.$api.setProfile(params).then(res => {
          uni.hideLoading();
          if (res.code == 200) {
            uni.showToast({ title: '保存成功' })
            this.$store.dispatch('USERINFO', res.data)
          } else {
            uni.showToast({ title: '保存失败' });
          }
        }).catch(err => {
          uni.hideLoading();
        })
      } catch (error) {
        uni.showToast({ title: error })
      }
    },
    nick_nameChange(e) {
      this.params.nickName = e.detail.value
    },

  }
}
</script>

<style lang="scss" scoped>
.content {
  display: flex;
  padding-top: 20rpx;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  .cell-box {
    width: 100vw;
    min-height: 130rpx;
    display: flex;
    align-items: center;
    padding: 0 32rpx;
    box-sizing: border-box;
    background-color: #fff;
    border-bottom: 1px solid #f8f8f8;
    .item-title {
      font-size: 32rpx;
      color: #333;
      margin-right: 20rpx;
    }
    .item-centent {
      flex: 1;
      display: flex;
      align-items: center;
    }
    .avatar {
      width: 80rpx;
      height: 80rpx;
      border-radius: 18rpx;
    }
  }
  .avatar-wrapper {
    padding: 0;
  }
  .info-right {
    margin-top: 40rpx;
    input {
      font-size: 36rpx;
      color: #333;
      text-align: center;
    }
  }
  .save-btn {
    width: 40%;
    background-color: #3366dd;
    color: #fff;
    // position: fixed;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 50rpx;
    // bottom: calc(50rpx + env(safe-area-inset-bottom));
  }
}
</style>

 

标签:uniapp,center,res,昵称,params,userInfo,uni,上传,avatar
From: https://www.cnblogs.com/yechangzhong-826217795/p/16879848.html

相关文章

  • linux nginx上传文件配置
    1、参考nginx中上传文件大小报错500怎么办2、nignx配置server{listen8088;#listen443ssl;#ssl_certificate7249692_tlh.kikyo.co......
  • 记录--Uniapp + TypeScript 配置文档
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助0目标使用uniapp +TypeScript为基础栈进行小程序开发uniapp是一个使用Vue.js开发所有前端......
  • 分享jumpserver堡垒机如何解除上传文件限制
    大家好,jumpserver堡垒机是中级运维工程师必备的技能和工具,而今天跟大家分享下jumpserver堡垒机如何解除上传文件限制,解决思路和操作流程如下。故障现象:前一阵子,通过jumpserv......
  • 转载:上传文件
    转载:https://www.jb51.net/article/216739.htm  我的源代码如下,但是有问题的哦,还没有找到原因!importjsonimportrequests#登录系统,并取到token值url='http://te......
  • SpringMVC的单文件上传,多文件上传和下载文件(十二)
    你未看此花时,则此花与汝心同归于寂,你来看此花时,此花颜色一时明白起来,便知此花不在你的心外。上一章简单介绍了SpringMVC的数据验证和JSR303国际化显示(十一),如果没有看......
  • SpringBoot上传和下载文件(二十七)
    当死亡来临,每一个人都不会接受自己的命运,他们会反抗.上一章简单介绍了SpringBoot启用Https(二十六),如果没有看过,​​请观看上一章​​文件上传和下载,是常用的功能可以看老......
  • 网页 WEB怎么实现大文件上传
    ​前言:因自己负责的项目(jetty内嵌启动的SpringMvc)中需要实现文件上传,而自己对java文件上传这一块未接触过,且对Http协议较模糊,故这次采用渐进的方式来学习文件上传的原......
  • simpread-(127 条消息) FastAPI 图片上传接口_waketzheng 的博客 - CSDN 博客_fastapi
    本文由简悦SimpRead转码,原文地址blog.csdn.net需求:上传一个图片,保存到服务器,然后返回一个URL设置静态资源文件夹#main.py#!/usr/bin/envpython3.8import......
  • simpread-(127 条消息) FastAPI 接受 POST 上传文件并保存本地,python_zhangphil 的博
    本文由简悦SimpRead转码,原文地址blog.csdn.netFastAPI接受POST上传文件并保存本地,python设置文件路径读取成二进制数据,然后写入文件importosimport......
  • uniapp的列表项样式丢失
    uniapp的循环列表中,偶发会出现列表中某一项的样式丢失。 语法上完全没问题,问题出在没有写循环项的key。但是并不是每次都出现,在某些列表中,就可以正常显示。......