index.vue 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <template>
  2. <view class="collectPersonInfoIdx o-w o-h c-bg-f">
  3. <view class="headerCon l-flex-center o-mt-30">
  4. <button style="width: 200rpx;height: 200rpx;border-radius: 50%;padding: 0;" open-type="chooseAvatar"
  5. @chooseavatar="onChooseAvatar">
  6. <image style="width: 200rpx;height: 200rpx;border-radius: 50%;" :src="avatarNick.avatarUrl"></image>
  7. </button>
  8. </view>
  9. <view class="l-flex-RC o-plr-24 o-mtb-30"
  10. style="height: 100rpx;border-top: 1px solid #eee;border-bottom: 1px solid #eee;">
  11. <text class="o-mr-40">昵称</text>
  12. <input @blur="nickNameBlur" v-model="avatarNick.nickName" type="nickname" placeholder="请输入昵称" />
  13. </view>
  14. <view class="o-plr-24 o-mtb-30">
  15. <button @click="saveAvatarNick" type="primary"
  16. style="width: 100%;height: 100rpx;border-radius: 10rpx;line-height: 100rpx;background-color: #3c9cff;">确定</button>
  17. </view>
  18. </view>
  19. </template>
  20. <script>
  21. export default {
  22. data() {
  23. return {
  24. avatarNick: {
  25. avatarUrl: '',
  26. nickName: ''
  27. },
  28. };
  29. },
  30. onLoad() {
  31. const {
  32. avatarUrl,
  33. nickName
  34. } = this.$store.state.common.$S_mine_avatarNick;
  35. this.avatarNick = {
  36. avatarUrl,
  37. nickName,
  38. }
  39. },
  40. methods: {
  41. // 解决获取input的获取nickname时没触发赋值问题
  42. nickNameBlur(e) {
  43. this.avatarNick.nickName = e.detail.value;
  44. },
  45. // 选择微信头像
  46. onChooseAvatar(e) {
  47. const {
  48. avatarUrl
  49. } = e.detail
  50. this.avatarNick.avatarUrl = avatarUrl;
  51. },
  52. // 保存信息
  53. saveAvatarNick() {
  54. const {
  55. nickName
  56. } = this.avatarNick;
  57. if (!nickName || nickName == '暂无昵称') {
  58. uni.showToast({
  59. title: '请输入昵称',
  60. icon: 'none'
  61. });
  62. return;
  63. }
  64. this.$store.commit('MUTA_AVATARNICK', this.avatarNick);
  65. uni.navigateBack();
  66. }
  67. }
  68. };
  69. </script>