From 86baa8ff948d2e79588e0dd7efa16f6b8ac3b157 Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期五, 06 十二月 2024 15:29:15 +0800 Subject: [PATCH] ll --- h5/pages/login/login.vue | 331 +++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 210 insertions(+), 121 deletions(-) diff --git a/h5/pages/login/login.vue b/h5/pages/login/login.vue index b209bab..c20258d 100644 --- a/h5/pages/login/login.vue +++ b/h5/pages/login/login.vue @@ -1,122 +1,211 @@ -<template> - <view class="main_app"> - <image class="login_bg" src="@/static/login_bg@2x.png" /> - <view class="h1">瀹夋嘲鐗╂祦鏅烘収鍥尯</view> - <view class="placeholder6 place">璇烽�夋嫨鎮ㄧ殑韬唤</view> - <view class="item" @click="jump('/pages/index/index')"> - <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="staffLogin"> - <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="driverLogin"> - <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> -export default { - methods: { - jump(url) { - console.log(url) - uni.navigateTo({ - url - }) - }, - driverLogin() { - const driverInfo = uni.getStorageSync('driverInfo') || {} - if (driverInfo && driverInfo.memberId) { - uni.navigateTo({ - url: '/pages/driver/index' - }) - }else{ - uni.navigateTo({ - url: '/pages/driver/login' - }) - } - }, - staffLogin() { - const userInfo = uni.getStorageSync('userInfo') || {} - if (userInfo && userInfo.memberId) { - uni.navigateTo({ - url: '/pages/staff/index' - }) - }else{ - uni.navigateTo({ - url: '/pages/staffLogin/login' - }) - } - } - } -} -</script> - -<style lang="scss" > -.main_app { - width: 100%; - 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; - width: 750rpx; - 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; - } - } - } -} +<template> + <view class="main_app"> + <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="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: '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) + 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') - 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) + } + } + } +</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> \ No newline at end of file -- Gitblit v1.9.3