From f47ce70afac05ce941b5eafb2d9114c7a017f774 Mon Sep 17 00:00:00 2001 From: 付延余 <f-yanyu@outlook.com> Date: 星期二, 06 九月 2022 20:01:27 +0800 Subject: [PATCH] 新增微信账号快捷登录、账号绑定、换绑功能,及页面更新。 --- pages/login/login.vue | 171 ++++++++++++++++++++++++-------------------------------- 1 files changed, 73 insertions(+), 98 deletions(-) diff --git a/pages/login/login.vue b/pages/login/login.vue index 4956eb1..5654590 100644 --- a/pages/login/login.vue +++ b/pages/login/login.vue @@ -1,125 +1,100 @@ <template> <view class="login"> <image src="@/static/login/banner.png" class="background"></image> - <view class="inputBox"> - <view class="phone"> - <image src="@/static/login/phone.png" mode="鍔犺浇閿欒"></image> - <input type="text" placeholder="璇疯緭鍏ョ敤鎴峰悕/鎵嬫満鍙�" v-model="formData.username" /> - </view> - <view class="password"> - <image src="@/static/login/lock.png" mode="鍔犺浇閿欒" /> - <input type="password" placeholder="璇疯緭鍏ヨ处鍙峰瘑鐮�" v-model="formData.password" /> - </view> - <view class="loginBtn"><button type="default" @click="loginSubmit">鐧诲綍</button></view> - </view> + <view class="loginBtn"><u-button throttleTime="3000" text="寰俊璐﹀彿蹇嵎鐧诲綍" type="success" shape="circle" icon="weixin-fill" @click="wxLogin"></u-button></view> </view> </template> <script> -import { setAccessToken,setTokenType,setRefreshToken,setClientId,setScope,redirectHome,redirectLogin } from '@/utils/status.js' +import { setAccessToken, setTokenType, setRefreshToken, setClientId, setScope, redirectHome, redirectLogin } from '@/utils/status.js'; export default { - name: 'login', data() { return { - formData:{ - username:'', - password:'' - } + wxcode: '' }; }, - onShow(){ - // 娓呴櫎缂撳瓨 - if(uni.getStorageSync('userInfo')||uni.getStorageSync('access_token')||uni.getStorageSync('refresh_token')){ - this.$u.toast('鎴愬姛杩涘叆鐧诲綍椤�'); - uni.clearStorageSync(); - } - }, - methods:{ - loginSubmit(){ - console.log('鐐瑰嚮鐧诲綍'); - // console.log('login'); - uni.showLoading({ - title:'鐧诲綍涓�...' - }); - this.apiLogin(this.formData).then(this.saveUserInfo).catch(this.loginFail); - }, - saveUserInfo(response){ - uni.hideLoading(); - if(response.statusCode === 200){ - // console.log('res',response); - const { data } = response; - const { access_token,refresh_token,token_type,scope } = data; - try { - setAccessToken(access_token); - setTokenType(token_type); - setRefreshToken(refresh_token); - setScope(scope); - this.$store.dispatch('menus') - redirectHome(); - uni.hideLoading(); - } catch (e) { - // error - console.log(e); - } - } else{ - uni.showToast({ - title:response.data.msg, - icon:'error', - duration:2000 - }) - } + onShow() { + // 娓呴櫎缂撳瓨 + if (uni.getStorageSync('userInfo') || uni.getStorageSync('access_token') || uni.getStorageSync('refresh_token')) { + uni.clearStorageSync(); } - + }, + methods: { + wxLogin() { + uni.showLoading({ + title: '鍔犺浇涓�...' + }); + uni.login({ + success: res => { + console.log('鐧诲綍loginRes', res); + if (res.code) { + this.wxcode = res.code; + this.wxSmallLogin(this.wxcode) + .then(res => { + if (res.data.data == '鐢ㄦ埛涓嶅瓨鍦�') { + this.$u.toast('鏈粦瀹氱郴缁熻处鍙凤紝鍗冲皢璺宠浆缁戝畾椤甸潰锛�') + setTimeout(()=>{ + uni.navigateTo({ + url: '/pages/register/register' + }); + },1000) + } else if (res.data.active && res.data.active == true) { + const { access_token, refresh_token, token_type, scope } = res.data; + try { + setAccessToken(access_token); + setTokenType(token_type); + setRefreshToken(refresh_token); + setScope(scope); + this.$store.dispatch('menus'); + redirectHome(); + uni.hideLoading(); + } catch (e) { + // error + console.log(e); + } + } + console.log('寰俊鐧诲綍', res); + }) + .catch(err => { + console.log('閿欒', err); + }); + } else { + uni.showToast({ + title: '寰俊鐧诲綍澶辫触锛�', + duration: 2000 + }); + } + } + }); + } } }; </script> <style lang="scss" scoped> -.login { +::v-deep.login { + height: 100vh; + .background { width: 100%; - height: vww(289); + // height: vww(289); + height: vww(246); } - .inputBox { - width: vww(280); - margin: vww(40) auto; - input { - width: vww(240); - margin-left: vww(8); - } - .phone { - width: vww(280); - height: vww(36); - display: flex; - align-items: center; - border-bottom: vww(1) solid #cccccc; - image { - width: vww(20); - height: vww(20); - } - } - .password { - width: vww(280); - height: vww(36); - display: flex; - align-items: center; - margin-top: vww(40); - border-bottom: vww(1) solid #cccccc; - image { - width: vww(20); - height: vww(20); - } - } - .loginBtn { - margin-top: vww(80); - button { - background-color: #007aff; - color: #ffffff; - font-size: vww(16); - border-radius: vww(22); + .loginBtn { + margin: vww(60) auto; + width: 80%; + .u-button { + .u-icon { + .u-icon__icon { + font-size: vww(30) !important; + } } } + + .u-button--success { + border-style: none; + } } } </style> -- Gitblit v1.9.1