| <template>  | 
|     <view class="main_app">  | 
|         <image class="login_bg" src="@/static/staff/shenfen_bg@2x.png" mode="widthFix" />  | 
|         <view class="h1">安泰物流智慧园区</view>  | 
|         <view class="placeholder6 place">请选择您的身份</view>  | 
|         <view class="item" @click="userAuth(1)">  | 
|             <image class="avatar" src="@/static/ic_visitor@2x.png" />  | 
|             <view class="content">  | 
|                 <view class="name">我是访客</view>  | 
|                 <view class="placeholder6">VISITOR</view>  | 
|             </view>  | 
|             <u-icon name="arrow-right" size="24" color="#979797" />  | 
|         </view>  | 
|         <view class="item" @click="userAuth(2)">  | 
|             <image class="avatar" src="@/static/ic_staff@2x.png" />  | 
|             <view class="content">  | 
|                 <view class="name">我是员工</view>  | 
|                 <view class="placeholder6">STAFF</view>  | 
|             </view>  | 
|             <u-icon name="arrow-right" size="24" color="#979797" />  | 
|         </view>  | 
|         <view class="item" @click="userAuth(0)">  | 
|             <image class="avatar" src="@/static/ic_driver@2x.png" />  | 
|             <view class="content">  | 
|                 <view class="name">我是物流车司机</view>  | 
|                 <view class="placeholder6">DRIVER</view>  | 
|             </view>  | 
|             <u-icon name="arrow-right" size="24" color="#979797" />  | 
|         </view>  | 
|     </view>  | 
| </template>  | 
|   | 
| <script>  | 
|     import {  | 
|         wxAuthorizea,  | 
|         getUserInfo  | 
|     } from '@/api'  | 
|     import {  | 
|         baseUrl  | 
|     } from "@/utils/config.js"  | 
|     export default {  | 
|         data() {  | 
|             return {  | 
|                 code: 'qqq'  | 
|             }  | 
|         }, | 
|         onLoad(option) { | 
|             console.log('onLoad'); | 
|             if(option.ywid){ | 
|                 uni.setStorageSync('ywinfo', { | 
|                     type: option.type, | 
|                     yw: option.yw, | 
|                     ywid: option.ywid | 
|                 }) | 
|             } | 
|         },  | 
|         onShow() {  | 
|             var that = this  | 
|             let url = 'https://atwl.ahzyssl.com/zhyq_h5/#/'  | 
|             let code = ''  | 
|             if (window.location.href.indexOf('code=') !== -1 || this.code) {  | 
|                 const ywinfo = uni.getStorageSync('ywinfo') || {} | 
|                  if(ywinfo.ywid && (ywinfo.type || ywinfo.type == 0)){ | 
|                      this.userAuth(ywinfo.type) | 
|                  }  | 
|             } else {  | 
|                 // 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)  | 
|                 uni.navigateTo({  | 
|                     url  | 
|                 })  | 
|             },  | 
|             driverLogin(flag) {  | 
|                 // const driverInfo = uni.getStorageSync('driverInfo') || {}  | 
|                 if (flag) {  | 
|                     uni.navigateTo({  | 
|                         url: '/pages/driver/index'  | 
|                     })  | 
|                 } else {  | 
|                     uni.navigateTo({  | 
|                         url: '/pages/driver/login'  | 
|                     })  | 
|                 }  | 
|             },  | 
|             staffLogin(flag) {  | 
|                 // const userInfo = uni.getStorageSync('userInfo') || {}  | 
|                 if (flag) {  | 
|                     uni.navigateTo({  | 
|                         url: '/pages/staff/index'  | 
|                     })  | 
|                 } else {  | 
|                     uni.navigateTo({  | 
|                         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')  | 
|                             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)  | 
|                             }  | 
|                             let flag = res.data.member && res.data.member.id  | 
|                             if (source == 0) { | 
|                                 if (res.data.token) { | 
|                                     that.$store.commit('setToken', res.data.token) | 
|                                     getUserInfo().then(ress => { | 
|                                         that.$store.commit('setDriverInfo', ress.data) | 
|                                     }) | 
|                                 } | 
|                                 this.driverLogin(flag) | 
|                             } else if (source == 2) { | 
|                                 if (res.data.token) { | 
|                                     that.$store.commit('setToken', res.data.token) | 
|                                     getUserInfo().then(ress => { | 
|                                         that.$store.commit('setUserInfo', ress.data) | 
|                                     }) | 
|                                 } | 
|                                 this.staffLogin(flag) | 
|                             } else { | 
|                                 this.jump('/pages/index/index') | 
|                             }  | 
|                         }  | 
|                     })  | 
|                 }  | 
|             }  | 
|         }  | 
|     }  | 
| </script>  | 
|   | 
| <style lang="scss">  | 
|     .main_app {  | 
|         width: 100vw;  | 
|         box-sizing: border-box;  | 
|         overflow: hidden;  | 
|         margin: 0;  | 
|         height: 100vh;  | 
|         padding-top: 80rpx;  | 
|         background: linear-gradient(180deg,  | 
|                 rgba(39, 155, 170, 0.2) 0%,  | 
|                 rgba(39, 155, 170, 0) 100%);  | 
|   | 
|         .login_bg {  | 
|             position: absolute;  | 
|             top: 0;  | 
|             left: 0;  | 
|             width: 100%;  | 
|             z-index: -1;  | 
|         }  | 
|   | 
|         .h1 {  | 
|             font-weight: 600;  | 
|             font-size: 48rpx;  | 
|             color: #222222;  | 
|             line-height: 66rpx;  | 
|             margin-bottom: 16rpx;  | 
|         }  | 
|   | 
|         .place {  | 
|             margin-bottom: 98rpx;  | 
|         }  | 
|   | 
|         .item {  | 
|             width: 690rpx;  | 
|             height: 200rpx;  | 
|             background: #ffffff;  | 
|             border-radius: 8rpx;  | 
|             display: flex;  | 
|             align-items: center;  | 
|             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;  | 
|                     color: #222222;  | 
|                     margin-bottom: 20rpx;  | 
|                 }  | 
|             }  | 
|         }  | 
|     }  | 
| </style> |