付延余
2022-09-06 f47ce70afac05ce941b5eafb2d9114c7a017f774
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
<template>
    <view class="login">
        <image src="@/static/login/banner.png" class="background"></image>
        <view class="loginBtn"><u-button throttleTime="3000" text="微信账号快捷登录" type="success" shape="circle" icon="weixin-fill" @click="wxLogin"></u-button></view>
    </view>
</template>
 
<script>
import { setAccessToken, setTokenType, setRefreshToken, setClientId, setScope, redirectHome, redirectLogin } from '@/utils/status.js';
export default {
    data() {
        return {
            wxcode: ''
        };
    },
    onShow() {
        // 清除缓存
        if (uni.getStorageSync('userInfo') || uni.getStorageSync('access_token') || uni.getStorageSync('refresh_token')) {
            uni.clearStorageSync();
        }
    },
    methods: {
        wxLogin() {
            uni.showLoading({
                title: '加载中...'
            });
            uni.login({
                success: res => {
                    console.log('登录loginRes', res);
                    if (res.code) {
                        this.wxcode = res.code;
                        this.wxSmallLogin(this.wxcode)
                            .then(res => {
                                if (res.data.data == '用户不存在') {
                                    this.$u.toast('未绑定系统账号,即将跳转绑定页面!')
                                    setTimeout(()=>{
                                        uni.navigateTo({
                                            url: '/pages/register/register'
                                        });
                                    },1000)
                                } else if (res.data.active && res.data.active == true) {
                                    const { access_token, refresh_token, token_type, scope } = res.data;
                                    try {
                                        setAccessToken(access_token);
                                        setTokenType(token_type);
                                        setRefreshToken(refresh_token);
                                        setScope(scope);
                                        this.$store.dispatch('menus');
                                        redirectHome();
                                        uni.hideLoading();
                                    } catch (e) {
                                        // error
                                        console.log(e);
                                    }
                                }
                                console.log('微信登录', res);
                            })
                            .catch(err => {
                                console.log('错误', err);
                            });
                    } else {
                        uni.showToast({
                            title: '微信登录失败!',
                            duration: 2000
                        });
                    }
                }
            });
        }
    }
};
</script>
 
<style lang="scss" scoped>
::v-deep.login {
    height: 100vh;
 
    .background {
        width: 100%;
        // height: vww(289);
        height: vww(246);
    }
 
    .loginBtn {
        margin: vww(60) auto;
        width: 80%;
        .u-button {
            .u-icon {
                .u-icon__icon {
                    font-size: vww(30) !important;
                }
            }
        }
 
        .u-button--success {
            border-style: none;
        }
    }
}
</style>