index.vue 6.3 KB

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