jiangping
2023-10-26 ea87c908fb6cdfc3e227a584a53e6730efb8262a
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
<template>
    <view class="login-content plr60">
        <view class="login-bg">
            <image src="@/static/login_bg@2x.png" mode="aspectFill" class="bg-img"></image>
            <image src="@/static/logo@2x.png" mode="aspectFill" class="login-log img180"></image>
            <view class="tc title">DM云工厂</view>
        </view>
        <view class="bg_w rd8 ptb30 pl40 bbox com-input flex input-height">
            <image src="@/static/login_ic_code@2x.png" mode="" class="img40 mr25"></image>
            <u--input placeholder="企业代码" border="none" v-model="form.companyId"></u--input>
        </view>
        <view class="bg_w rd8 ptb30 pl40 bbox mt40 flex input-height">
            <image src="@/static/login_ic_phone@2x.png" mode="" class="img40 mr25"></image>
            <u--input placeholder="手机号" border="none" v-model="form.username"></u--input>
        </view>
        <view class="bg_w rd8 ptb30 pl40 bbox mt40 flex input-height">
            <image src="@/static/login_ic_password@2x.png" mode="" class="img40 mr25"></image>
            <u--input placeholder="密码" border="none" password v-model="form.password"></u--input>
        </view>
        <view class="login-btn mt80" @click="loginAction">立即登录</view>
    </view>
</template>
 
<script>
    import { wxLogin, wxAccountLogin, getUserInfo, wxProgramLogin } from '@/util/api/index.js';
    export default {
        data() {
            return {
                form: {
                    openid: '',
                    unionid: '',
                    companyId: '',
                    username: '',
                    password: ''
                }
            };
        },
        onLoad() {
            var that = this
            uni.login({
                provider: 'weixin',
                success: function (loginRes) {
                    wxProgramLogin({ code: loginRes.code })
                        .then(async (res) => {
                            if (res.code === 200) {
                                // 免登录,直接跳首页
                                if (res.data.loginStatus == 0) {
                                    that.$store.commit('SETSESSION', res.data.session)
                                    let info = await getUserInfo()
                                    if (info.code === 200) {
                                        await that.$store.commit('setEntrance', 'WX')
                                        await that.$store.commit('SETUSERINFO', info.data)
                                        await that.$store.dispatch('getMenuList', 2)
                                        uni.switchTab({
                                            url: '/pages/workbench/workbench'
                                        });
                                    }
                                } else {
                                    that.form.openid = res.data.openid
                                    that.form.unionid = res.data.unionid
                                }
                            }
                        })
                }
            });
        },
        methods: {
            async loginAction() {
                if (!this.form.companyId) return uni.showToast({ title: '企业代码不能为空', icon:"error", duration: 2000 });
                if (!this.form.username) return uni.showToast({ title: '手机号不能为空', icon:"error", duration: 2000 });
                if (!this.form.password) return uni.showToast({ title: '密码不能为空', icon:"error", duration: 2000 });
                let res = await wxAccountLogin(this.form)
                if (res.code === 200) {
                    await this.$store.commit('SETSESSION', res.data)
                    let user = await getUserInfo({})
                    if (user.code === 200) {
                        await this.$store.commit('SETUSERINFO', user.data)
                        await this.$store.dispatch('getMenuList', 2)
                        uni.switchTab({
                            url: '/pages/workbench/workbench'
                        });
                    }
                }
            }
        }
    }
</script>
 
<style lang="scss" scoped>
.login-content {
    height: 100vh;
    background: #FFFFFF linear-gradient(180deg, rgba(66,117,252,0.2) 0%, rgba(66,117,252,0) 100%);
    .login-bg {
        position: relative;
        height: 812rpx;
        .bg-img {
            position: absolute;
            z-index: 1;
            width: 100%;
            height: 100%;
        }
        .login-log {
            margin: 356rpx auto 0 auto ;
            left: 0;
            right: 0;
            position: absolute;
        }
        .title {
            position: absolute;
            margin-top: 576rpx;
            left: 0;
            width: 100%;
            height: 60rpx;
            font-size: 44rpx;
            font-weight: 600;
            color: #333333;
            line-height: 60rpx;
        }
    }
    .input-height {
        height: 100rpx; 
    }
    .com-input {
        margin-top: -60px;
        position: relative;
        z-index: 2;
    }
    .login-btn {
        height: 98rpx;
        background: #4275FC;
        box-shadow: 0rpx 12rpx 24rpx 0rpx rgba(66,117,252,0.2);
        border-radius: 8rpx;
        text-align: center;
        font-size: 32rpx;
        font-weight: 500;
        color: #FFFFFF;
        line-height: 98rpx;
    }
}
</style>