index.vue 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <template>
  2. <view>
  3. <view v-if="showLogin">
  4. <login :ocode="ocode" :appkey="appkey" scope="snsapi_userinfo" :visible="visible" @success="loginSuccess"
  5. @fail="loginFail" @cancel="loginCancel" />
  6. </view>
  7. </view>
  8. </template>
  9. <script>
  10. export default {
  11. data() {
  12. return {
  13. // 获取用户信息
  14. ocode: '1015730314',
  15. // 商户appkey
  16. // appkey: '3183DC96A6DABA8D',
  17. appkey: '9D6ACFE8CF9AFD07',
  18. // 是否授权可见
  19. visible: false,
  20. // 是否启动授权
  21. showLogin: false,
  22. // 获取用户信息
  23. appid: 'wxd6f090391d410534',
  24. }
  25. },
  26. onLoad() {
  27. this.hasUserInfo()
  28. },
  29. methods: {
  30. // 检查是否存在用户信息
  31. hasUserInfo() {
  32. let userInfo = uni.getStorageSync('userInfo');
  33. console.log(userInfo);
  34. if (userInfo) {
  35. uni.navigateTo({
  36. url: "/pages/home/home"
  37. })
  38. } else {
  39. console.log("重新授权");
  40. this.showLogin = true
  41. this.visible = true
  42. }
  43. },
  44. // 授权成功回调
  45. loginSuccess(res) {
  46. console.log(res);
  47. console.log("成功");
  48. let wxcode = res.detail.wxcode
  49. // 获取wxcode后请求登录
  50. this.login(wxcode)
  51. },
  52. // 授权失败回调
  53. loginFail() {
  54. console.log("授权失败");
  55. uni.showModal({
  56. title: '提示',
  57. content: '授权:请先领取校园卡、并激活!',
  58. confirmText: '领取',
  59. success: (res) => {
  60. if (res.confirm) {
  61. uni.navigateTo({
  62. url: "/pages/qr_code/qr_code"
  63. });
  64. } else if (res.cancel) {
  65. uni.reLaunch({
  66. url: "/pages/404/404"
  67. })
  68. }
  69. }
  70. });
  71. },
  72. // 授权取消回调
  73. loginCancel() {
  74. console.log("取消");
  75. uni.showModal({
  76. title: '提示',
  77. content: '请先授权,否则无法使用该功能',
  78. confirmText: '授权',
  79. success: (res) => {
  80. if (res.confirm) {
  81. uni.reLaunch({
  82. url: "/pages/index/index"
  83. })
  84. } else if (res.cancel) {
  85. uni.reLaunch({
  86. url: "/pages/404/404"
  87. })
  88. }
  89. }
  90. });
  91. },
  92. async login(wxcode) {
  93. console.log(123);
  94. let res = await this.$myRequest({
  95. url: "/attendance/api/system/user/login/app",
  96. method: "post",
  97. data: {
  98. redirect_uri: `mnp://${this.appid}`,
  99. wxcode
  100. }
  101. })
  102. console.log(res);
  103. }
  104. }
  105. }
  106. </script>
  107. <style lang="scss" scoped>
  108. </style>