k94314517
2024-12-06 3ac695aaee5aab01d8cb39a56388c2740913dbec
h5/pages/login/login.vue
@@ -1,9 +1,9 @@
<template>
  <view class="main_app">
    <image class="login_bg" src="@/static/login_bg@2x.png" />
      <image class="login_bg" src="@/static/login_bg@2x.png" mode="widthFix" />
    <view class="h1">安泰物流智慧园区</view>
    <view class="placeholder6 place">请选择您的身份</view>
    <view class="item" @click="jump('/pages/index/index')">
      <view class="item" @click="userAuth(1)">
      <image class="avatar" src="@/static/ic_visitor@2x.png" />
      <view class="content">
        <view class="name">我是访客</view>
@@ -11,7 +11,7 @@
      </view>
      <u-icon name="arrow-right" size="24" color="#979797" />
    </view>
    <view class="item" @click="staffLogin">
      <view class="item" @click="userAuth(2)">
      <image class="avatar" src="@/static/ic_staff@2x.png" />
      <view class="content">
        <view class="name">我是员工</view>
@@ -19,7 +19,7 @@
      </view>
      <u-icon name="arrow-right" size="24" color="#979797" />
    </view>
    <view class="item" @click="driverLogin">
      <view class="item" @click="userAuth(0)">
      <image class="avatar" src="@/static/ic_driver@2x.png" />
      <view class="content">
        <view class="name">我是物流车司机</view>
@@ -31,7 +31,36 @@
</template>
<script>
   import {
      wxAuthorizea,
      getUserInfo
   } from '@/api'
   import {
      baseUrl
   } from "@/utils/config.js"
export default {
      data() {
         return {
            code: '091RVIkl2SZXDe4WySll2pAL8D1RVIkb'
         }
      },
      onLoad() {
         var that = this
         let url = window.location.href
         let code = ''
         if (url.indexOf('code=') !== -1) {
         } else {
            return
            let url = window.location.href
            const appID = 'wx173e6caf5abc718a'
            let uri = encodeURIComponent(url)
            let authURL =
               `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appID}&redirect_uri=${uri}&response_type=code&scope=snsapi_base#wechat_redirect`
            window.location.href = authURL
         }
      },
  methods: {
    jump(url) {
      console.log(url)
@@ -39,9 +68,9 @@
        url
      })
    },
      driverLogin() {
         const driverInfo = uni.getStorageSync('driverInfo') || {}
         if (driverInfo && driverInfo.memberId) {
         driverLogin(flag) {
            // const driverInfo = uni.getStorageSync('driverInfo') || {}
            if (flag) {
           uni.navigateTo({
             url: '/pages/driver/index'
           })
@@ -51,9 +80,9 @@
           })
         }
      },
    staffLogin() {
      const userInfo = uni.getStorageSync('userInfo') || {}
      if (userInfo && userInfo.memberId) {
         staffLogin(flag) {
            // const userInfo = uni.getStorageSync('userInfo') || {}
            if (flag) {
        uni.navigateTo({
          url: '/pages/staff/index'
        })
@@ -62,6 +91,57 @@
          url: '/pages/staffLogin/login'
        })
      }
         },
         // source   来源:0=司机;1=访客;2=内部员工
         userAuth(source) {
            var that = this
            let url = window.location.href
            let code = ''
            if (url.indexOf('code=') !== -1 || this.code) {
               // const query = url.split('?')
               // for (const q of query) {
               //    if (q.indexOf('code=') !== -1) {
               //       let statusIndex = q.indexOf('&state') - 1
               //       code = q.substring(q.indexOf('code=') + 5, statusIndex)
               //    }
               // }
               wxAuthorizea({
                  code: code || this.code,
                  source: source
               }).then(res => {
                  if (res.code === 200) {
                     that.$store.commit('setOpenId', res.data.openid)
                     if (res.data.member) {
                        that.$store.commit('setMember', res.data.member)
                     }
                     if (res.data.token) {
                        that.$store.commit('setToken', res.data.token)
                        getUserInfo().then(ress => {
                          that.$store.commit('setUserInfo', ress.data)
                        })
                     }
                     let flag = res.data.member && res.data.member.id
                     setTimeout(() => {
                        if (source == 0) {
                           this.driverLogin(flag)
                        } else if (source == 2) {
                           this.staffLogin(flag)
                        } else {
                           this.jump('/pages/index/index')
                        }
                     }, 300)
                  }
               })
            }
            // }
            // 刷新token
            // setTimeout(() => {
            //    refreshToken().then(res => {
            //       if (res.code && res.code === 200) {
            //          this.$store.commit('setToken', res.data)
            //       }
            //    })
            // }, 3000)
    }
  }
}
@@ -69,20 +149,24 @@
<style lang="scss" >
.main_app {
  width: 100%;
      width: 100vw;
      box-sizing: border-box;
      overflow: hidden;
      margin: 0;
  height: 100vh;
  padding-top: 80rpx;
  background: linear-gradient(
    180deg,
      background: linear-gradient(180deg,
    rgba(39, 155, 170, 0.2) 0%,
    rgba(39, 155, 170, 0) 100%
  );
            rgba(39, 155, 170, 0) 100%);
  .login_bg {
    position: absolute;
    top: 0;
    width: 750rpx;
         left: 0;
         width: 100%;
    z-index: -1;
  }
  .h1 {
    font-weight: 600;
    font-size: 48rpx;
@@ -90,9 +174,11 @@
    line-height: 66rpx;
    margin-bottom: 16rpx;
  }
  .place {
    margin-bottom: 98rpx;
  }
  .item {
    width: 690rpx;
    height: 200rpx;
@@ -103,13 +189,16 @@
    padding: 40rpx;
    font-size: 26rpx;
    margin-bottom: 40rpx;
    .avatar {
      width: 120rpx;
      height: 120rpx;
      margin-right: 30rpx;
    }
    .content {
      flex: 1;
      .name {
        font-weight: 600;
        font-size: 38rpx;