index.vue 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. <template>
  2. <view class="page">
  3. <view class="outView">
  4. <form @submit="inputValue">
  5. <view class="flex-row justify-between bordBot" >
  6. <view class="key flex-col justify-center ">
  7. <text>头像</text>
  8. </view>
  9. <button class="photoView" open-type="chooseAvatar" @chooseavatar="chooseavatar">
  10. <image class="photoImage" :src="userInfo.selfPhotoUrl || '/static/me/ud4.png'"></image>
  11. </button>
  12. </view>
  13. <view class="flex-row justify-between bordBot" >
  14. <view class="key flex-col justify-center ">
  15. <text>昵称</text>
  16. </view>
  17. <view class="nikeName flex-col justify-center">
  18. <input type="nickname" name="nickname" v-model="userInfo.ncikName" placeholder="请输入昵称"/>
  19. </view>
  20. </view>
  21. <view class="flex-row justify-between bordBot" >
  22. <view class="key flex-col justify-center ">
  23. <text>性别</text>
  24. </view>
  25. <picker class="picker" @change="genderChange" mode='selector' range-key="gender" :value="genderIndex" :range="genderList">
  26. <view class="flex-row justify-end groupItemContent">
  27. <text v-if="userInfo.sex == 0">男</text>
  28. <text v-else-if="userInfo.sex == 1">女</text>
  29. <text v-else-if="userInfo.sex == 2">未知</text>
  30. <text v-else>请选择性别</text>
  31. <u-icon name="arrow-right" color="#666" size="18"></u-icon>
  32. </view>
  33. </picker>
  34. </view>
  35. <view class="flex-row justify-between bordBot" >
  36. <view class="key flex-col justify-center ">
  37. <text>生日</text>
  38. </view>
  39. <picker class="picker" @change="birthdayChange" mode='date' range-key="label" >
  40. <view class="flex-row justify-end groupItemContent">
  41. <text>{{userInfo.birthday || '请选择出生日期' }}</text>
  42. <u-icon name="arrow-right" color="#666" size="18"></u-icon>
  43. </view>
  44. </picker>
  45. </view>
  46. <view class="flex-row justify-between bordBot" >
  47. <view class="key flex-col justify-center ">
  48. <text>手机号</text>
  49. </view>
  50. <view class="flex-row justify-end groupItemContent" @click="settingTelphone">
  51. <text>{{userInfo.phone? userInfo.phone : '绑定手机号' }}</text>
  52. <u-icon name="arrow-right" color="#666" size="18"></u-icon>
  53. </view>
  54. </view>
  55. <!-- <view class="flex-row justify-between bordBot" >-->
  56. <!-- <view class="key flex-col justify-center ">-->
  57. <!-- <text>实名认证</text>-->
  58. <!-- </view>-->
  59. <!-- <view class="flex-row justify-end groupItemContent" @click="gotoRealNameAuth">-->
  60. <!-- <text>{{userInfo.isAttestation? '已认证' : '未实名认证,去认证' }}</text>-->
  61. <!-- <u-icon name="arrow-right" color="#666" size="18"></u-icon>-->
  62. <!-- </view>-->
  63. <!-- </view>-->
  64. <button class="updateButton" formType="submit">
  65. <text>保存</text>
  66. </button>
  67. </form>
  68. </view>
  69. </view>
  70. </template>
  71. <script>
  72. export default {
  73. data() {
  74. return {
  75. photoUrl:'',
  76. userInfo: {},
  77. genderIndex:0,
  78. genderList: [{gender:'男',id:'0'},
  79. {gender:'女',id:'1'},
  80. {gender:'未知',id:'2'}],
  81. };
  82. },
  83. mounted() {
  84. },
  85. onShow() {
  86. // 用户信息
  87. this.userInfo = uni.getStorageSync('userInfo')
  88. if (this.userInfo.selfPhoto){
  89. this.getImgUrlByOssId(this.userInfo.selfPhoto)
  90. }
  91. },
  92. methods: {
  93. settingTelphone(){
  94. uni.navigateTo({
  95. url:'/myPages/setting/setting-telphone'
  96. })
  97. },
  98. inputValue(e){
  99. console.log('+++++++++++++inputValue+++++++++++',e)
  100. this.userInfo.ncikName = e.detail.value.nickname
  101. this.saveUserInfo()
  102. },
  103. // 选择性别
  104. genderChange(e){
  105. console.log(e.detail.value)
  106. this.userInfo.sex = e.detail.value
  107. },
  108. //选择的日期
  109. birthdayChange(e){
  110. console.log(e.detail.value)
  111. this.userInfo.birthday = e.detail.value
  112. },
  113. // 去实名认证
  114. gotoRealNameAuth(){
  115. uni.navigateTo({
  116. url: '/myPages/realNameAuth/index',
  117. })
  118. },
  119. // 保存用户信息
  120. saveUserInfo(){
  121. // 保存数据
  122. this.$api.saveUserInfo(this.userInfo).then((res)=>{
  123. console.log(res)
  124. // 刷新用户信息
  125. this.getUserInfo();
  126. uni.showToast({
  127. title: "操作成功"
  128. })
  129. // setTimeout(res=>{
  130. // uni.switchTab({
  131. // url: '/pages/index/index',
  132. // },2000)
  133. // })
  134. }).catch(() =>{
  135. uni.showToast({
  136. title: "操作失败"
  137. })
  138. });
  139. },
  140. getUserInfo(){
  141. this.$api.getUserInfo().then(res=>{
  142. console.log('++++++++++++获取用户信息++++++++++++++++++',res)
  143. uni.setStorageSync('userInfo',res.data.data)
  144. this.userInfo = res.data.data
  145. if (this.userInfo.selfPhoto){
  146. this.getImgUrlByOssId(this.userInfo.selfPhoto)
  147. }
  148. })
  149. },
  150. getImgUrlByOssId(Id){
  151. this.$api.getImage(Id).then(res=>{
  152. this.userInfo.selfPhotoUrl = res.data.data[0].url.replace(/^http:/, "https:")
  153. this.$set(this.userInfo)
  154. });
  155. },
  156. //头像上传
  157. chooseavatar(e){
  158. let that = this
  159. let avatarUrl =e.detail.avatarUrl
  160. console.log(e.detail.avatarUrl)
  161. uni.uploadFile({
  162. url: that.$baseUrl + '/resource/oss/upload', //仅为示例,非真实的接口地址
  163. filePath:avatarUrl,
  164. name: 'file',
  165. header: {
  166. // "Content-Type": "multipart/form-data",
  167. // 'X-Access-Token': uni.getStorageSync('token'),
  168. 'Authorization': 'Bearer ' + uni.getStorageSync('accessToken'),
  169. },
  170. success: (uploadFileRes) => {
  171. let res = JSON.parse(uploadFileRes.data)
  172. console.log('+++++++++++++++++chooseavatar+++++++++++++++++++++++',uploadFileRes.data)
  173. that.userInfo.selfPhoto=res.data.ossId
  174. that.userInfo.selfPhotoUrl = res.data.url.replace(/^http:/, "https:")
  175. }
  176. });
  177. },
  178. }
  179. };
  180. </script>
  181. <style lang="scss">
  182. @import '/common/css/common.css';
  183. @import './index.rpx.css';
  184. </style>