userInfo.vue 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  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. <view class="photoView" @click="updateAvatar">
  10. <image class="photoImage" :src="userInfo.imgUrl || '/static/ud4.png'"></image>
  11. </view>
  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 disabled name="name" v-model="userInfo.name" 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. <!-- <view class="nikeName flex-row justify-center" @click="showSex = true">-->
  26. <!-- <input name="sex" disabled v-model="userInfo.sex" placeholder="请选择性别"/>-->
  27. <!-- <u-icon name="arrow-right" color="#666" size="18"></u-icon>-->
  28. <!-- </view>-->
  29. <!-- </view>-->
  30. <view class="flex-row justify-between bordBot" >
  31. <view class="key flex-col justify-center ">
  32. <text>手机号</text>
  33. </view>
  34. <view class="nikeName flex-row justify-center">
  35. <input name="phone" disabled v-model="userInfo.phone"/>
  36. </view>
  37. </view>
  38. <view class="flex-row justify-between bordBot" >
  39. <view class="key flex-col justify-center ">
  40. <text>找回密码</text>
  41. </view>
  42. <view class="flex-row justify-end nikeName " @click="updatePassword">
  43. <text>点击修改</text>
  44. <u-icon name="arrow-right" color="#666" size="18"></u-icon>
  45. </view>
  46. </view>
  47. <!-- <button class="updateButton" formType="submit">-->
  48. <!-- <text>保存</text>-->
  49. <!-- </button>-->
  50. </form>
  51. </view>
  52. <view class="logoutButton">
  53. <u-button type="error" text="退出登录" @click="logout"></u-button>
  54. </view>
  55. <!--#ifdef H5-->
  56. <liu-drag-button @clickBtn="back">返回</liu-drag-button>
  57. <!--#endif-->
  58. <u-action-sheet
  59. :show="showSex"
  60. :actions="actions"
  61. title="请选择性别"
  62. @close="showSex = false"
  63. @select="sexSelect">
  64. </u-action-sheet>
  65. </view>
  66. </template>
  67. <script>
  68. export default {
  69. data() {
  70. return {
  71. showSex:false,
  72. photoUrl:'',
  73. userInfo: {},
  74. genderIndex:0,
  75. actions: [{
  76. name: '男',
  77. value:'1'
  78. },
  79. {
  80. name: '女',
  81. value:'0'
  82. },{
  83. name: '保密',
  84. value:'2'
  85. }
  86. ],
  87. };
  88. },
  89. mounted() {
  90. },
  91. onShow() {
  92. // 用户信息
  93. this.userInfo = uni.getStorageSync('spreadUserInfo')
  94. console.log(this.userInfo)
  95. },
  96. methods: {
  97. inputValue(e){
  98. console.log('+++++++++++++inputValue+++++++++++',e)
  99. this.userInfo.name = e.detail.value.name
  100. },
  101. updateAvatar(){
  102. let that = this
  103. uni.chooseImage({
  104. count: 1, //默认9
  105. sizeType: ['original'], //可以指定是原图还是压缩图,默认二者都有
  106. sourceType: ['album'], //从相册选择
  107. success: function (res) {
  108. let tempUrl = res.tempFiles[0].path
  109. uni.uploadFile({
  110. url: that.$baseUrl + '/resource/oss/upload', //仅为示例,非真实的接口地址
  111. filePath:tempUrl,
  112. name: 'file',
  113. header: {
  114. // "Content-Type": "multipart/form-data",
  115. // 'X-Access-Token': uni.getStorageSync('token'),
  116. 'Authorization': 'Bearer ' + uni.getStorageSync('accessToken'),
  117. },
  118. success: (uploadFileRes) => {
  119. let res = JSON.parse(uploadFileRes.data)
  120. console.log('+++++++++++++++++chooseavatar+++++++++++++++++++++++',uploadFileRes.data)
  121. that.userInfo.imgUrl = res.data.url.replace(/^http:/, "https:")
  122. that.userInfo.img = res.data.ossId
  123. that.$api.user.updateUserInfo({
  124. img:res.data.ossId
  125. }).then(res1=>{
  126. console.log(res1)
  127. })
  128. uni.setStorageSync('spreadUserInfo', that.userInfo)
  129. }
  130. });
  131. }
  132. })
  133. },
  134. sexSelect(e) {
  135. this.userInfo.sex = e.name
  136. console.log(e)
  137. },
  138. back() {
  139. let pages = getCurrentPages()
  140. if (pages.length > 1){
  141. uni.navigateBack({
  142. delta: 1,
  143. fail:err=>{
  144. console.log(err)
  145. }
  146. })
  147. }else {
  148. uni.switchTab({
  149. url: '/pages/my/my'
  150. });
  151. }
  152. },
  153. updatePassword(){
  154. uni.navigateTo({
  155. url:'/pages/forgetPassword/forgetPassword'
  156. })
  157. },
  158. logout(){
  159. this.$api.login.logout().then(res=>{
  160. uni.removeStorageSync('accessToken');
  161. uni.removeStorageSync('spreadUserInfo');
  162. uni.reLaunch({
  163. url:'/pages/login/login'
  164. })
  165. })
  166. }
  167. }
  168. };
  169. </script>
  170. <style lang="scss" scoped>
  171. @import './index.rpx.css';
  172. </style>