租房小程序前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

138 lines
3.8 KiB

11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
  1. <template>
  2. <view>
  3. <view class="se-pt-200 se-flex se-flex-h-c se-flex-ff-cw">
  4. <image class="se-w-150 se-h-150" src="@/static/image/logo.png" mode=""></image>
  5. <view class="se-flex se-flex-h-c se-fs-34 se-fw-6 se-c-black se-mt-40">
  6. 租房小程序
  7. </view>
  8. <view class="se-mt-20 se-fs-26 se-c-black se-flex se-flex-h-c">
  9. 申请获取您的头像昵称
  10. </view>
  11. </view>
  12. <view class="se-mx-40 se-py-100">
  13. <view class="se-b-t se-b-b se-flex se-h-140 se-lh-140 se-flex-h-sb">
  14. <text>头像</text>
  15. <button class="se-w-100 se-h-100 se-p-0 se-m-0" open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
  16. <image v-if="imagUrl" class="se-w-100 se-h-100" :src="imagUrl"></image>
  17. <image v-else class="se-w-100 se-h-100" src="@/static/image/header.png" mode=""></image>
  18. </button>
  19. </view>
  20. <view class=" se-b-b se-flex se-h-140 se-lh-140 se-flex-h-sb">
  21. <text>昵称</text>
  22. <input type="nickname" placeholder="请输入昵称" v-model="nameUser"
  23. @blur="bindblur" class="se-h-80 se-lh-80 se-w-320 se-fs-24 se-ta-r" placeholder-class="se-fs-24 se-ta-r" />
  24. </view>
  25. <view class=" se-b-b se-flex se-h-140 se-lh-140 se-flex-h-sb">
  26. <text>手机号</text>
  27. <button v-if="phone" class="default-btn se-h-100 se-p-0 se-m-0" open-type="getPhoneNumber" @getphonenumber="onPhonenumber">{{phone}}</button>
  28. <button v-else class="se-w-140 se-h-60 se-lh-60 se-fs-20 se-bgc-green se-c-white se-py-0 se-br-30 se-px-20 se-m-0" open-type="getPhoneNumber" @getphonenumber="onPhonenumber">
  29. 获取手机号
  30. </button>
  31. </view>
  32. </view>
  33. <view class="se-mx-40">
  34. <view @click="onUpdateInfo" class="se-br-40 se-flex-h-c se-h-80 se-lh-80 se-ta-c se-fs-32 se-c-white se-bgc-green">
  35. 确认
  36. </view>
  37. </view>
  38. </view>
  39. </template>
  40. <script>
  41. import { UpdateInfo,bindPhone } from "@/common/api.js"
  42. export default {
  43. name : 'Login',
  44. data() {
  45. return {
  46. nameUser:"",
  47. imagUrl:"",
  48. phone:"",
  49. back:0
  50. }
  51. },
  52. onLoad(options) {
  53. if(options.back==1){
  54. this.imagUrl = uni.getStorageSync('userInfo').headImage
  55. this.nameUser = uni.getStorageSync('userInfo').nickName
  56. this.phone = uni.getStorageSync('userInfo').phone
  57. this.back = options.back
  58. }
  59. },
  60. methods: {
  61. bindblur(event) {
  62. this.nameUser = event.target.value
  63. },
  64. onChooseAvatar(res) {
  65. let self = this
  66. self.$Oss.ossUpload(res.target.avatarUrl).then(url => {
  67. self.imagUrl = url
  68. })
  69. },
  70. onPhonenumber(event){
  71. let that = this
  72. var detail = event.detail;
  73. if(detail.errMsg=='getPhoneNumber:ok'){
  74. let params={
  75. code : detail.code,
  76. encryptedData: detail.encryptedData,
  77. iv:detail.iv,
  78. sessionKey: uni.getStorageSync('sessionKey'),
  79. openid:uni.getStorageSync('userInfo').appletOpenid
  80. }
  81. bindPhone(params).then((response) => {
  82. console.info(response)
  83. console.info(JSON.parse(response.result).phone_info.phoneNumber)
  84. that.phone = JSON.parse(response.result).phone_info.phoneNumber
  85. }).catch(error=>{
  86. })
  87. }
  88. },
  89. onUpdateInfo(){
  90. let that = this
  91. let params={
  92. avatarUrl:that.imagUrl,
  93. nickName:that.nameUser,
  94. phone:that.phone
  95. }
  96. // &&that.phone
  97. if (that.$utils.verificationAll(params, {
  98. avatarUrl: '请选择头像',
  99. nickName: '请填写昵称',
  100. phone: '请填写手机号',
  101. })) {
  102. return
  103. }
  104. UpdateInfo(params).then((response) => {
  105. if(this.back==1){
  106. uni.navigateBack({
  107. delta:1
  108. })
  109. }else{
  110. uni.switchTab({
  111. url:"/pages/home/index"
  112. })
  113. }
  114. }).catch((error) =>{
  115. })
  116. }
  117. }
  118. }
  119. </script>
  120. <style scoped lang="scss">
  121. .default-btn{
  122. background-color: #fff;
  123. }
  124. .default-btn::after{
  125. content: "";
  126. border: none;
  127. }
  128. </style>