<template> <view> <form @submit="formSubmit"> <view class="uni-forms-item"> <button class="avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar"> <image class="avatar" :src="userinfo.avatar"></image> </button> </view> <view class="uni-forms-item"> <input type="text" class="alias-input" maxlength="6" v-model="userinfo.alias"/> </view> <view class="uni-forms-item"> <button form-type="submit" class="alias-submit" type="primary">确认修改</button> </view> </form> </view> </template> <script> import { mapMutations, mapState } from 'vuex' export default { computed: { ...mapState('m_user', ['userinfo']) }, data() { return { }; }, methods: { ...mapMutations('m_user', ['updateUserInfo']), onChooseAvatar(e) { const { avatarUrl } = e.detail this.userinfo.avatar = avatarUrl }, // 表单提交 async formSubmit(e) { // 将昵称提交到后端 const query = { alias: this.userinfo.alias, avatar: this.userinfo.avatar } const { data: result } = await uni.$http.get('/ucenter/mini-program-openid-uid/wxAlias', query) console.log(result) uni.$showMsg('修改成功!', 3000) // 更新成功 // 将数据更新到vuex中 this.updateUserInfo(this.userinfo) // 跳转个人信息页面 uni.switchTab({ url: '/pages/my/my' }) } } } </script> <style lang="scss" scoped> .alias-input { height: 100rpx; font-size: 40rpx; border: 1px solid #aaa; } .alias-submit { margin-top: 50rpx; } </style>