login.vue 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. <template>
  2. <view class="content">
  3. <view class="login-logo">
  4. <view class="login-logo-body">
  5. <image src="/static/image/logo.png"></image>
  6. <view class="logo-text">奥莱优品</view>
  7. </view>
  8. </view>
  9. <view class="test">
  10. <textarea v-model="loginInfo" maxlength="-1" style="height: 120upx;"></textarea>
  11. </view>
  12. <view class="logi-btn">
  13. <button class="u-button full" @click="getUserInfo" v-if="checkTrueState">快捷一键登录</button>
  14. <!-- <button class="u-button full" open-type="getPhoneNumber" @getphonenumber="toLogin" v-if="checkTrueState">手机号一键登录</button> -->
  15. <button class="u-button full" @click="toLoginCheck" v-else>快捷登录</button>
  16. <button class="u-button" @click="reback">返回</button>
  17. </view>
  18. <view class="login-footer">
  19. <view :class="checkTrueState?'checkBox active':'checkBox'" @click="checkTrue"></view>
  20. <view @click="checkTrue">我已阅读并同意</view>
  21. <text @click="toWeb('privacy')">用户协议、</text><text @click="toWeb('privacy')">隐私协议</text>
  22. </view>
  23. </view>
  24. </template>
  25. <script>
  26. import * as Api from "@/static/api/auth.js";
  27. var app;
  28. export default {
  29. data() {
  30. return {
  31. checkTrueState:false,
  32. avatar:"https://yunenv.oss-cn-shenzhen.aliyuncs.com/poem/avatar.jpg",
  33. nickname:"",
  34. loginShow:false,
  35. reUri:null,
  36. reType:"switchTab",
  37. storeId:"",
  38. loginCode:"",
  39. loginInfo:""
  40. }
  41. },
  42. onLoad({store,type,url}) {
  43. app = this;
  44. app.reType = type?type:"switchTab";
  45. app.reUri = url?url:null;
  46. uni.login({
  47. force:true,
  48. success(res){
  49. app.loginCode = res.code;
  50. }
  51. })
  52. // app.storeId = app.$dialog.shopId();
  53. },
  54. methods: {
  55. reback(){
  56. uni.navigateBack();
  57. },
  58. checkTrue(){
  59. app.checkTrueState = !app.checkTrueState;
  60. },
  61. toWeb(type){
  62. uni.navigateTo({
  63. url:"/pages/web/web?lk="+type
  64. })
  65. },
  66. toLoginCheck(){
  67. if (!app.checkTrueState) {
  68. return app.$dialog.showSuccess("请先阅读并同意用户协议以及隐私政策");
  69. }
  70. },
  71. getUserInfo(e){
  72. uni.getUserProfile({
  73. force: true,
  74. success(resp) {
  75. if (resp.errMsg == 'getUserProfile:ok') {
  76. var detail = {};
  77. detail.avatar = resp.userInfo.avatarUrl
  78. detail.nickname = resp.userInfo.nickName
  79. detail.login = app.loginCode
  80. Api.nickname(detail).then((res)=>{
  81. if (res.code == 0) {
  82. return app.$dialog.showSuccess(res.msg);
  83. }
  84. uni.setStorageSync("user_token", res.data.access_token)
  85. uni.navigateBack();
  86. })
  87. }
  88. },
  89. fail(e) {
  90. console.log(e)
  91. }
  92. })
  93. },
  94. toLogin(e){
  95. var detail = e.detail;
  96. detail.login = app.loginCode;
  97. uni.getUserProfile({
  98. force: true,
  99. success(resp) {
  100. console.log("success",resp)
  101. },
  102. fail(e) {
  103. console.log(e)
  104. }
  105. })
  106. // Api.login(detail).then((res)=>{
  107. // if (res.code == 0) {
  108. // return app.$dialog.showSuccess(res.msg);
  109. // }
  110. // uni.setStorageSync("user_token", res.data.access_token)
  111. // uni.navigateBack();
  112. // })
  113. },
  114. }
  115. }
  116. </script>
  117. <style>
  118. .test{width: 80%;overflow: auto;height: 100upx;}
  119. .content{position: relative;height: 100vh;display: flex;flex-direction: column;}
  120. .login-logo{width: 80%;margin: 60upx auto;text-align: center;height: 40%;display: flex;align-items: center;justify-content: center;}
  121. .login-logo .logo-text{font-size: 32upx;color: #333;font-family: "logofont";margin-top: 20upx;}
  122. .login-logo image{width: 180upx;height: 180upx;}
  123. .logi-btn{width: 50%;margin: 20upx auto;height: 40%;}
  124. .logi-btn .u-button{font-size: 28upx;height: 80upx;border-radius: 40upx;line-height: 80upx;margin-bottom: 40upx;color: #333;border: 2upx solid #007aff;background-color: #fff;}
  125. .logi-btn .u-button.full{background-color: #007aff;color: #fff;}
  126. .login-footer{text-align: center;font-size: 28upx;color: #666;height: 20%;display: flex;align-items: center;justify-content: center;}
  127. .login-footer text{color: #007aff;}
  128. .checkBox{width: 30upx;height: 30upx;margin-right: 20upx;border: 2upx solid #007aff;position: relative;}
  129. .checkBox.active{background-color: #007aff;}
  130. .checkBox.active::after{content: "√";font-size: 24upx;position: absolute;left: 0;top: 0;color: #fff;bottom: 0;right: 0;}
  131. .popup-login{padding: 20upx;}
  132. .popup-login .login-container{margin-top: 20upx;}
  133. .login-control{display: flex;align-items: center;font-size: 28upx;color: #333;border-bottom: 2upx solid #f8f8f8;padding: 20upx 0;}
  134. .login-control .name{margin-right: 40upx;}
  135. .login-control .btn-control{margin-left: 9px;}
  136. .popup-login .mobile-btn{border:2upx solid #fff;background-color: #fff;padding-left: 0;padding-right: 0;font-size: 28upx;color: #999;}
  137. .popup-login .mobile-btn::after{border: 0;}
  138. .avatar-btn-img{width: 80upx;height: 80upx;border-radius: 10upx;}
  139. .popup-login .avatar-btn{width:80upx;height:80upx;line-height:80upx;border-radius:10upx;font-size:24upx;border:0 solid #F6F1E7;background:#fff;padding-left: 0;padding-right: 0;}
  140. .popup-login .avatar-btn::after{border:0}
  141. .popup-login .avatar{margin-left: 9px;}
  142. .popup-login .title-sub{border-bottom: 2upx solid #f8f8f8;font-size: 30upx;color: #000;font-weight: bold;padding: 30upx 0;}
  143. .popup-login .title-sub text{display: block;font-size: 24upx;color: #666;font-weight: normal;margin-top: 20upx;}
  144. .popup-login .title{display: flex;align-items: center;}
  145. .popup-login .title .left{font-size: 28upx;color: #000;font-weight: bold;display: flex;align-items: center;}
  146. .popup-login .title .left image{width: 50upx;height: 50upx;border-radius: 10upx;margin-right: 20upx;}
  147. .popup-login .title .close{margin-left: auto;margin-right: 0;width: 40upx;height: 40upx;background-color: aliceblue;font-size: 24upx;color: #666;border-radius: 40upx;text-align: center;}
  148. </style>