index.vue 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <template>
  2. <view
  3. class="login-container"
  4. :style="{
  5. background: `url(${getImageUrl(ICON_CFG.login_bg)}) no-repeat `,
  6. backgroundSize: '100%',
  7. }"
  8. >
  9. <button class="login-btn" open-type="getUserInfo" @getuserinfo="getUserInfo">
  10. <u-icon name="weixin-fill" color="#fefefe" size="28"></u-icon>
  11. 一键微信登录
  12. </button>
  13. </view>
  14. </template>
  15. <script>
  16. import { ICON_CFG } from '@/common/EnumConst';
  17. import { getImageUrl, setStorageObj, syncWxlogin } from '@/util';
  18. export default {
  19. name: 'login',
  20. props: {},
  21. data() {
  22. return {
  23. ICON_CFG,
  24. };
  25. },
  26. created() {
  27. },
  28. onLoad() {
  29. },
  30. methods: {
  31. getImageUrl,
  32. // 获取用户信息
  33. async getUserInfo(e) {
  34. if (e.mp.detail.userInfo) {
  35. this.userInfo = e.mp.detail.userInfo;
  36. this.hasUserInfo = true;
  37. const {
  38. success,
  39. data,
  40. } = await syncWxlogin();
  41. if (success) {
  42. // 将用户信息和session存储到本地
  43. setStorageObj('userInfo', data.user);
  44. setStorageObj('token', data.token);
  45. this.realoadPage();
  46. }
  47. } else {
  48. uni.showModal({
  49. title: '警告',
  50. content: '您点击了拒绝授权,将无法进入小程序,请授权之后再进入!',
  51. showCancel: false,
  52. confirmText: '返回授权',
  53. success: function (res) {
  54. if (res.confirm) {
  55. console.log('用户点击了“返回授权”');
  56. }
  57. },
  58. });
  59. }
  60. },
  61. realoadPage() {
  62. let pages = getCurrentPages(); //获取当前页面
  63. let beforePage = pages[pages.length - 2]; //获取上一个页面的实例
  64. //1、调用上一个页面onLoad
  65. beforePage.onLoad();
  66. uni.navigateBack({
  67. delta: 1,
  68. });
  69. },
  70. },
  71. };
  72. </script>
  73. <style lang="scss" src="./index.scss" />;