index.vue 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. <template>
  2. <view class="container">
  3. <navBar title="我的" :back="false" color="white" background="green" />
  4. <u-button text="测试获取用户信息" @click="testGetUserInfo" type="primary"></u-button>
  5. <u-button text="测试二维码生成" @click="genQr" type="primary"></u-button>
  6. <!-- 选择头像 -->
  7. <view class="choose-avatar-row">
  8. <button class="avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar"
  9. style="border-radius: 100rpx;">
  10. <image class="avatar" :src="avatarUrl"></image>
  11. </button>
  12. <text>点击选择头像</text>
  13. </view>
  14. <!-- 选择昵称 -->
  15. <view class="choose-nickname-row">
  16. <text>昵称</text>
  17. <input v-model="nickName" @input="inputName" type="nickname" placeholder="请输入昵称" />
  18. </view>
  19. <button open-type="getPhoneNumber" @getphonenumber="getphonenumber">获取用户手机号</button>
  20. <button @click="get_user">获取用户头像昵称等信息</button>
  21. <view class="">
  22. 头像
  23. </view>
  24. <image :src="user_img" mode=""></image>
  25. <view class="">
  26. 昵称:{{user_name}}
  27. </view>
  28. </view>
  29. </template>
  30. <script>
  31. // import navBar from '@/components/navBar/index.vue'
  32. import uploadUrl from '@/common/config.js'
  33. export default {
  34. // components: {
  35. // navBar
  36. // },
  37. data() {
  38. return {
  39. avatarUrl: '',
  40. nickName: '',
  41. PhoneCode: '',
  42. imgUrl: '',
  43. isPhone: false,
  44. user_img: '', //微信头像
  45. user_name: ''
  46. }
  47. },
  48. methods: {
  49. genQr() {
  50. uni.navigateTo({
  51. url: '/pages/qrPage/index'
  52. })
  53. },
  54. get_user() { // 获取用户信息
  55. let _this = this
  56. // uni.getUserProfile({
  57. // desc: '用户登录',
  58. // success: res => {
  59. // console.log(res) // 用户的信息
  60. // this.user_img = res.userInfo.avatarUrl //微信头像
  61. // this.user_name = res.userInfo.nickName // 微信昵称
  62. // }
  63. // })
  64. uni.getUserInfo({
  65. provider: 'weixin',
  66. success: infoRes => {
  67. console.log('getUserInfo返回值:', infoRes);
  68. console.log('用户昵称为:' + infoRes.userInfo.nickName, infoRes.userInfo.avatarUrl);
  69. this.user_img = infoRes.userInfo.avatarUrl //微信头像
  70. this.user_name = infoRes.userInfo.nickName // 微信昵称
  71. // _this.upImg(infoRes.userInfo.avatarUrl)
  72. }
  73. });
  74. },
  75. onChooseAvatar(e) {
  76. console.log('onChooseAvatar返回值:', e);
  77. // this.avatarUrl = e.detail.avatarUrl
  78. this.upImg(e.detail.avatarUrl)
  79. },
  80. upImg(file) {
  81. console.log('upImg的file', file)
  82. let _this = this
  83. uni.uploadFile({
  84. url: uploadUrl.baseUrl, // 上传的 URL 地址
  85. filePath: file, // 要上传的图片本地路径
  86. name: 'file', // 上传图片时使用的字段名
  87. header: { // 自定义请求头
  88. 'Content-Type': 'multipart/form-data'
  89. },
  90. formData: {
  91. 'fileType': 'images',
  92. 'dirName': 'cert'
  93. },
  94. success: function(uploadRes) {
  95. let result = JSON.parse(uploadRes.data)
  96. // localStorage.set('imgUrl', result.data.fileUrl)
  97. if (result.code == 0) {
  98. _this.avatarUrl = result.data.url
  99. // _this.user_img = result.data.url
  100. console.log('上传后的头像url地址', result.data.url)
  101. }
  102. },
  103. fail: function(err) {
  104. console.log('upload failed:', err)
  105. }
  106. })
  107. },
  108. inputName(e) {
  109. this.nickName = e.detail.value
  110. },
  111. testGetUserInfo() {
  112. console.log('testGetUserInfo()------------');
  113. uni.login({
  114. provider: 'weixin',
  115. success: res => {
  116. console.log('uni.login返回值:', res)
  117. if (res.errMsg == 'login:ok') {
  118. // 获取密钥 === 需要登录才可以获取密钥
  119. // return
  120. uni.request({
  121. url: 'https://api.weixin.qq.com/sns/jscode2session', // 请求微信服务器
  122. method: 'GET',
  123. data: {
  124. appid: 'wx98ab2939999e13de', //你的小程序的APPID
  125. secret: '29bad412d9cc5a7f48ca88d2848db8d3', //你的小程序秘钥secret,
  126. js_code: res.code, //wx.login 登录成功后的code
  127. grant_type: 'authorization_code' //此处为固定值
  128. },
  129. success: (res1) => {
  130. console.log('uni.request获取信息', res1);
  131. if (res1.errMsg == 'request:ok') {
  132. console.log('openid和session_key', res1.data);
  133. }
  134. }
  135. });
  136. }
  137. }
  138. });
  139. },
  140. getphonenumber(e) {
  141. console.log('getphonenumber返回值', e);
  142. if (e.errMsg = 'getPhoneNumber:ok') {
  143. console.log('getphonenumber需要传给后端的参数:', {
  144. encryptedData: e.encryptedData,
  145. iv: e.iv
  146. });
  147. }
  148. }
  149. }
  150. }
  151. </script>
  152. <style lang="scss" scoped>
  153. @import "./index.scss";
  154. </style>