login.vue 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. <template>
  2. <view>
  3. <view class="w-750 position-relative" style="height: 100vh;">
  4. <image src="/pages/subpack/static/images/bg-login.jpg" style="width: 100%;height: 100%;" mode="aspectFill">
  5. </image>
  6. </view>
  7. <view class="w-750 position-absolute top-0 left-0" style="height: 100vh;">
  8. <u-navbar title="特困户看护平台" bg-color="transparent" :left-icon="null"
  9. :title-style="{fontWeight:'bold'}"></u-navbar>
  10. <view class="w-750 flex-column align-center" style="margin-top: 1100rpx;">
  11. <view class="flex-row align-center justify-center"
  12. style="width: 606rpx;height: 96rpx;background: linear-gradient( 90deg, #2086FF 0%, #305BFF 100%);box-shadow: 0rpx 8rpx 16rpx 0rpx rgba(48,91,255,0.32);border-radius: 50rpx;border: 2rpx solid #FFFFFF;"
  13. @click="handleLoginPwd">
  14. <text class="text-white font-md font-weight-500">账号密码登录</text>
  15. </view>
  16. </view>
  17. <!-- <view class="w-750 flex-column align-center" style="margin-top: 20rpx;">
  18. <view class="flex-row align-center justify-center"
  19. style="width: 606rpx;height: 96rpx;background: linear-gradient( 90deg, #2086FF 0%, #305BFF 100%);box-shadow: 0rpx 8rpx 16rpx 0rpx rgba(48,91,255,0.32);border-radius: 50rpx;border: 2rpx solid #FFFFFF;"
  20. @click="handleLoginPwd">
  21. <text class="text-white font-md font-weight-500">账号密码登录</text>
  22. </view>
  23. </view> -->
  24. </view>
  25. </view>
  26. </template>
  27. <script>
  28. import {
  29. loginUrl,
  30. getUserInfoUrl
  31. } from '@/common/config/api.js'
  32. export default {
  33. data() {
  34. return {}
  35. },
  36. methods: {
  37. handleLoginPwd() {
  38. uni.navigateTo({
  39. url:'/pages/subpack/login-pwd/login-pwd'
  40. })
  41. },
  42. getUserInfo() {
  43. // {
  44. // custom: {
  45. // catch: true
  46. // }
  47. // }
  48. getUserInfoUrl()
  49. .then(res => {
  50. uni.hideLoading();
  51. console.log('用户信息', res);
  52. let user = {
  53. avatar: this.avatarImg,
  54. nickName: res.user.nickName,
  55. phonenumber: res.user.phonenumber,
  56. roles: res.roles
  57. }
  58. this.$u.vuex('vuex_user', user);
  59. uni.switchTab({
  60. url: '/pages/tabbar/application/application'
  61. })
  62. })
  63. .catch(err => {
  64. uni.hideLoading();
  65. console.log(err);
  66. })
  67. },
  68. // 利用code登录
  69. loginByCode(code) {
  70. // console.log('code', code);
  71. loginUrl({
  72. params: {
  73. code
  74. }
  75. })
  76. .then(res => {
  77. console.log('微信登录', res);
  78. // return uni.$u.route('/pages/subpack/pages/bindInfo/bindInfo', {
  79. // openId: res.openId
  80. // });
  81. if (res.token) {
  82. this.$u.vuex('vuex_token', res.token);
  83. return this.getUserInfo();
  84. };
  85. if (res.openId) {
  86. // 没有注册过
  87. return uni.$u.route('/pages/subpack/pages/bindInfo/bindInfo', {
  88. openId: res.openId
  89. });
  90. }
  91. })
  92. .catch(err => {
  93. console.log('err', err);
  94. })
  95. },
  96. // 微信登录
  97. loginByWechat() {
  98. uni.login({
  99. provider: 'weixin',
  100. timeout: 10000,
  101. success: (res) => {
  102. console.log('login', res);
  103. if (res.code) {
  104. // 利用code登录
  105. this.loginByCode(res.code);
  106. } else {
  107. uni.$u.toast('获取临时票据失败,请稍后再试')
  108. }
  109. },
  110. fail: (err) => {
  111. console.log('login-Err', err);
  112. uni.$u.toast('微信登录失败,请退出后再试')
  113. }
  114. })
  115. },
  116. // 处理登录
  117. handleLogin() {
  118. // 获取provider
  119. uni.getProvider({
  120. service: 'oauth',
  121. success: (res) => {
  122. console.log('getProvider', res);
  123. if (res.provider.includes('weixin')) {
  124. // 微信登录
  125. this.loginByWechat();
  126. } else {
  127. uni.$u.toast('请前往微信小程序登录')
  128. }
  129. },
  130. fail: (err) => {
  131. console.log('getProvider-Err', err);
  132. uni.$u.toast('登录异常,请检查运行环境')
  133. }
  134. })
  135. }
  136. // goToPwdLogin(flag) {
  137. // uni.$u.route('/pages/subpack/common/login-pwd/login-pwd', {
  138. // flag
  139. // });
  140. // }
  141. }
  142. }
  143. </script>
  144. <style>
  145. </style>