userInfo.vue 5.0 KB

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