index.vue 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <script setup lang="ts">
  2. import router from '@/router'
  3. definePage({
  4. name: 'common-user-center',
  5. islogin: true,
  6. style: {
  7. navigationBarTitleText: '账户设置',
  8. },
  9. })
  10. const { userInfo, getUserAvatar } = storeToRefs(useUserStore())
  11. async function handleChooseAvatar(e: UniHelper.ButtonOnChooseavatarEvent) {
  12. const res = await Apis.sys.uploadFile({ data: { filePath: e.avatarUrl, name: 'file' }, fileType: 'image', requestType: 'upload', headers: {
  13. 'Content-Type': 'multipart/form-data',
  14. } })
  15. useUserStore().updataUserInfo({ ...userInfo.value, avatarUrl: res.url })
  16. }
  17. </script>
  18. <template>
  19. <view class="pages p24rpx">
  20. <view class="rounded-16rpx bg-white bg-white p24rpx">
  21. <view class="flex items-center justify-between">
  22. <view>头像</view>
  23. <view class="h60rpx w60rpx">
  24. <wd-button :icon="getUserAvatar" type="icon" open-type="chooseAvatar" @chooseavatar="handleChooseAvatar" />
  25. </view>
  26. </view>
  27. <view class="mt26rpx flex items-center justify-between" @click="router.push({ name: 'common-nickName' })">
  28. <view>昵称</view>
  29. <view>{{ userInfo.nickName }}</view>
  30. </view>
  31. </view>
  32. </view>
  33. </template>
  34. <style scoped lang="scss">
  35. .btn{
  36. all: unset;
  37. }
  38. .pages{
  39. :deep(){
  40. .wd-icon--image{
  41. width: 60rpx !important;
  42. height: 60rpx !important;
  43. }
  44. }
  45. }
  46. </style>