From 2c11814ecf148a5fe5a80d03e29481476e47f34d Mon Sep 17 00:00:00 2001 From: 付延余 <f-yanyu@outlook.com> Date: 星期一, 19 十二月 2022 16:13:34 +0800 Subject: [PATCH] test push two --- pages/login/login.vue | 411 ++++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 327 insertions(+), 84 deletions(-) diff --git a/pages/login/login.vue b/pages/login/login.vue index 35995e9..2b7adac 100644 --- a/pages/login/login.vue +++ b/pages/login/login.vue @@ -1,111 +1,354 @@ -<template> +<!-- <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 class="login-container"> + <view class="loginBtn"><u-button text="寰俊璐﹀彿蹇嵎鐧诲綍" type="success" shape="circle" icon="weixin-fill" @click="toGrantAuthorization"></u-button></view> + <view class="utils"><text @click="toBindPage">缁戝畾绯荤粺璐﹀彿</text></view> + </view> + <view class="loginBottom"><text>灏忕▼搴忎粎渚涘凡鎷ユ湁绯荤粺璐﹀彿鐗瑰畾鍐呴儴浜哄憳浣跨敤</text></view> + <u-modal + @confirm="wxLoginConfirm" + @cancel="wxLoginCancel" + @close="wxLoginClose" + :show="wxLoginModal.show" + :title="wxLoginModal.title" + :content="wxLoginModal.content" + :showCancelButton="true" + ></u-modal> + <view class="toGrantAuthorization-container"> + <u-popup :show="popupShow" mode="bottom" @close="closePopup" @open="openPopup" round="10" :safeAreaInsetBottom="true"> + <view class="popup-warp"> + <view class="body"><text>鏈皬绋嬪簭锛屼粎渚涘凡鎷ユ湁绯荤粺璐﹀彿鐗瑰畾鍐呴儴浜哄憳鐧诲綍浣跨敤锛岀偣鍑诲悓鎰忓嵆琛ㄧず鎮ㄥ凡鍚屾剰鐩稿簲淇℃伅鎺堟潈銆�</text></view> + <view class="btn"> + <u-button @click="popupShow = false" type="error" text="涓嶅悓鎰�" shape="circle" :plain="true"></u-button> + <u-button @click="wxLogin" type="error" text="鍚屾剰" throttleTime="3000" shape="circle"></u-button> + </view> + </view> + </u-popup> </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:'fyy', - password:'123456!@#' - } + wxcode: '', //寰俊code + wxLoginModal: { + show: false, + title: '鎻愮ず', + content: '' + }, + popupShow: false }; }, - methods:{ - loginSubmit(){ - // 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); - } - } + onShow() { + // 娓呴櫎缂撳瓨 + if (uni.getStorageSync('userInfo') || uni.getStorageSync('access_token') || uni.getStorageSync('refresh_token')) { + uni.clearStorageSync(); } - + }, + methods: { + toGrantAuthorization() { + this.popupShow = true; + }, + wxLogin() { + this.popupShow = false; + 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('鏈粦瀹氱郴缁熻处鍙凤紝鍗冲皢璺宠浆缁戝畾椤甸潰锛�'); + this.wxLoginModal.content = '鏈粦瀹氱郴缁熻处鍙凤紝鏄惁璺宠浆璐﹀彿缁戝畾椤甸潰锛�'; + this.wxLoginModal.show = true; + } 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 + }); + } + } + }); + }, + toBindPage() { + uni.navigateTo({ + url: '/pages/register/register' + }); + }, + // 妯℃�佹 + wxLoginConfirm() { + uni.navigateTo({ + url: '/pages/register/register' + }); + this.wxLoginModal.show = false; + }, + wxLoginCancel() { + this.wxLoginModal.show = false; + }, + wxLoginClose() { + this.wxLoginModal.show = false; + }, + // 寮瑰嚭妗� + openPopup() { + console.log('open'); + }, + closePopup() { + this.popupShow = false; + console.log('close'); + } } }; </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); - } - } + .login-container { + margin: vww(60) auto; + width: 80%; .loginBtn { - margin-top: vww(80); - - button { - background-color: #007aff; - color: #ffffff; - font-size: vww(16); - border-radius: vww(22); + .u-button { + .u-icon { + .u-icon__icon { + font-size: vww(30) !important; + } + } + .u-button__text { + font-size: vww(17) !important; + font-weight: 530; + } + } + + .u-button--success { + border-style: none; + background-color: #3ebc17; + } + } + + .utils { + font-size: vww(14); + margin-top: vww(20); + text-align: center; + color: #346a9d; + } + } + + .loginBottom { + color: #aaaaaa; + margin-top: vww(180); + font-size: vww(14); + text-align: center; + } + + // 寮瑰嚭妗� + .toGrantAuthorization-container { + .u-popup { + .u-transition { + .u-popup__content { + .popup-warp { + height: vww(200); + padding: vww(10) vww(20); + .body { + width: 100%; + height: 70%; + } + .btn { + display: flex; + justify-content: space-between; + .u-button { + width: 40%; + } + } + } + } } } } } </style> + --> + + <template> + <view class="login"> + <u-overlay :show="show" @click="show = false"></u-overlay> + <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> + </template> + + <script> + import { setAccessToken, setTokenType, setRefreshToken, setClientId, setScope, redirectHome, redirectLogin } from '@/utils/status.js'; + export default { + name: 'login', + data() { + return { + show:false, + formData: { + // username: 'zhangjialiang', + // password: '123456aaa', + // username: 'gequan', + // password: 'gequan!@#$', + username: '', + password: '' + }, + bindData: { + state: 'MINI', + code: '' + } + }; + }, + onShow() { + // 娓呴櫎缂撳瓨 + if (uni.getStorageSync('userInfo') || uni.getStorageSync('access_token') || uni.getStorageSync('refresh_token')) { + uni.clearStorageSync(); + } + }, + methods: { + loginSubmit() { + if(this.formData.username == ''){ + uni.showToast({ + title:'璇疯緭鍏ョ敤鎴峰悕锛�', + icon:'none' + }) + } else if(this.formData.password == ''){ + uni.showToast({ + title:'璇疯緭鍏ュ瘑鐮侊紒', + icon:'none' + }) + } else { + this.show = true; + uni.showLoading({ + title: '鐧诲綍涓�...' + }); + this.apiLogin(this.formData) + .then(this.saveUserInfo) + .catch(this.loginFail); + } + }, + saveUserInfo(response) { + uni.hideLoading(); + this.show = false; + if (response.statusCode === 200) { + const { access_token, refresh_token, token_type, scope } = response.data; + try { + setAccessToken(access_token); + setTokenType(token_type); + setRefreshToken(refresh_token); + setScope(scope); + this.$store.dispatch('menus'); + uni.hideLoading(); + redirectHome(); + } catch (e) { + console.log('妫�娴嬪埌閿欒',e); + } + } else { + uni.showToast({ + title: response.data.msg, + icon:'none', + duration: 2000 + }); + } + }, + loginFail(err) { + this.show = false; + console.log('鐧诲綍鎺ュ彛閿欒', err); + } + } + }; + </script> + + <style lang="scss" scoped> + .login { + .background { + width: 100%; + 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); + } + } + } + } + </style> + \ No newline at end of file -- Gitblit v1.9.1