bug
jiangping
2023-11-07 64b432916af9c9218ab3f3eca614e26c542142ae
minipro_standard/pages/login/login.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,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>