user_detail.vue 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <template>
  2. <view>
  3. <form @submit="formSubmit">
  4. <view class="uni-forms-item">
  5. <button class="avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
  6. <image class="avatar" :src="userinfo.avatar"></image>
  7. </button>
  8. </view>
  9. <view class="uni-forms-item">
  10. <input type="text" class="alias-input" maxlength="6" v-model="userinfo.alias"/>
  11. </view>
  12. <view class="uni-forms-item">
  13. <button form-type="submit" class="alias-submit" type="primary">确认修改</button>
  14. </view>
  15. </form>
  16. </view>
  17. </template>
  18. <script>
  19. import { mapMutations, mapState } from 'vuex'
  20. export default {
  21. computed: {
  22. ...mapState('m_user', ['userinfo'])
  23. },
  24. data() {
  25. return {
  26. };
  27. },
  28. methods: {
  29. ...mapMutations('m_user', ['updateUserInfo']),
  30. onChooseAvatar(e) {
  31. const { avatarUrl } = e.detail
  32. this.userinfo.avatar = avatarUrl
  33. },
  34. // 表单提交
  35. async formSubmit(e) {
  36. // 将昵称提交到后端
  37. const query = {
  38. alias: this.userinfo.alias,
  39. avatar: this.userinfo.avatar
  40. }
  41. const { data: result } = await uni.$http.get('/ucenter/mini-program-openid-uid/wxAlias', query)
  42. console.log(result)
  43. uni.$showMsg('修改成功!', 3000)
  44. // 更新成功
  45. // 将数据更新到vuex中
  46. this.updateUserInfo(this.userinfo)
  47. // 跳转个人信息页面
  48. uni.switchTab({
  49. url: '/pages/my/my'
  50. })
  51. }
  52. }
  53. }
  54. </script>
  55. <style lang="scss" scoped>
  56. .alias-input {
  57. height: 100rpx;
  58. font-size: 40rpx;
  59. border: 1px solid #aaa;
  60. }
  61. .alias-submit {
  62. margin-top: 50rpx;
  63. }
  64. </style>