Riku
2024-08-12 7c3c82d429f86358142adceb080e8922f6a18aa0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
import {
  fetchLoginPW,
  fetchUserInfo,
  fetchUserBaseInfo,
} from '../services/usercenter/fetchUser';
import { loadConfig } from '../behaviors/loadConfig';
import dayjs from 'dayjs';
 
const app = getApp();
 
export const useLogin = Behavior({
  methods: {
    loginPw(accessTokenPW) {
      wx.showLoading({
        title: '登录中',
        mask: true,
      });
      setTimeout(() => {
        wx.hideLoading();
      }, 10000);
      var that = this;
      wx.login({
        success: res => {
          accessTokenPW.code = res.code;
          fetchLoginPW(accessTokenPW).then(data => {
            wx.hideLoading();
            if (data.success) {
              wx.getStorage({
                key: 'accessToken',
                success(res) {
                  app.globalData.accessToken = res.data;
                  app.globalData.accessToken.userId = data.userId;
                  app.globalData.accessToken.suserId = data.suserId;
                  app.globalData.accessToken.openId = data.openId;
                  if (accessTokenPW.userName) {
                    app.globalData.accessToken.userName =
                      accessTokenPW.userName;
                  }
                  if (accessTokenPW.password) {
                    app.globalData.accessToken.password =
                      accessTokenPW.password;
                  }
                  wx.setStorage({
                    key: 'accessToken',
                    data: app.globalData.accessToken,
                  });
                  that.gotoHomePage();
                },
                fail(e) {
                  app.globalData.accessToken = {
                    userName: accessTokenPW.userName,
                    password: accessTokenPW.password,
                    userId: data.userId,
                    suserId: data.suserId,
                    openId: data.openId,
                  };
                  wx.setStorage({
                    key: 'accessToken',
                    data: app.globalData.accessToken,
                  });
                  that.gotoHomePage();
                },
              });
            } else {
              that._onLoginFail();
            }
          });
        },
      });
    },
 
    gotoHomePage() {
      fetchUserBaseInfo(app.globalData.accessToken.userId).then(res => {
        app.globalData.baseInfo = res.data;
      });
      fetchUserInfo(app.globalData.accessToken.userId).then(data => {
        if (!this.isAdmin(data.usertypeid)) {
          wx.showToast({
            title: '账户权限不足',
            duration: 1000,
            icon: 'none',
          });
          this.setData({
            loading: false,
          });
          return;
        }
 
        if (data.uiCreateTime) {
          const registerTime = dayjs(data.uiCreateTime);
          const now = dayjs();
          app.globalData.newUser = now.diff(registerTime, 'months') <= 1;
        }
        app.globalData.userInfo = data;
        app.globalData.userInfo.name = data.realname;
        app.globalData.userInfo.district = data.extension1;
        app.globalData.isLogin = true;
        wx.setStorage({
          key: 'userInfo',
          data: data,
          success: result => {
            loadConfig().then(res => {
              wx.switchTab({
                url: '/pages/home/index',
              });
            });
          },
        });
      });
    },
 
    isAdmin(userTypeId) {
      return userTypeId <= 2;
    },
  },
});