金诚优选前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

346 lines
8.7 KiB

<template>
<view>
<lf-nav title="登录/注册" :showIcon="true" bgColor="#fff"></lf-nav>
<view class="illustration">
<image class="img" src="../../../static/images/empty.png" mode="aspectFill"></image>
</view>
<view class="fixed-btn">
<button class="btn1" hover-class="lf-opacity" @click="toPhoneLogin">手机号登录</button>
<button class="btn2" hover-class="lf-opacity" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">微信授权登录</button>
</view>
</view>
</template>
<script>
import { config, wechat, GetUrl } from '@/common/js/utils.js';
export default {
data(){
return {
code: '',
url: '',
logo: '',
author: config.PACKAGES.author,
config: '',
showAgreement: false,
agreement: '',
open_id: '',
h5_url: ''
}
},
onShow(){
var token = this.$cookieStorage.get('user_token');
// this.setData({
// token: token
// });
this.token = token;
var initInfo = this.$cookieStorage.get('init');
if (initInfo && initInfo.shop_show_logo) {
this.setData({
logo: initInfo.shop_show_logo
});
}
if (token) {
// uni.switchTab({
// url: '/pages/user/personal/personal'
// });
this.$url('/pages/user/my/center', {type: 'launch'})
} else {
// #ifdef MP-WEIXIN
this.wxLogin();
// #endif
}
},
onLoad(e){
// 第三方平台配置颜色
var bgConfig = this.$cookieStorage.get('globalConfig') || '';
this.setData({
config: bgConfig
});
if (e.url) {
this.url = decodeURIComponent(e.url);
console.log('this.url',this.url)
}
if (e.shop_id) {
this.$cookieStorage.set('shop_id', e.shop_id);
}
this.getGreementInfo();
},
methods: {
// 获取用户协议
getGreementInfo() {
console.log("获取协议")
// this.$http.get({
// api: 'api/user/agreement'
// }).then(res => {
// if (res.statusCode == 200) {
// res = res.data;
// if (res.status) {
// this.setData({
// agreement: res.data
// });
// }
// }
// });
},
// 小程序静默登录
wxLogin(){
uni.showLoading({
title: '正在自动登录',
mask: true
});
uni.login({
success: res => {
console.log(res);
if (res.code) {
this.autoLogin(res.code);
} else {
this.$msg('获取code失败');
}
},
});
},
// 通过code自动登录
autoLogin(code) {
this.$http.post({
api: 'api/oauth/miniprogram/login',
data: {
code: code,
open_type: 'miniprogram',
shop_id: this.$cookieStorage.get('shop_id') || '',
agent_code: this.$cookieStorage.get('coupon_agent_code') || this.$cookieStorage.get('agent_code') || '',
clerk_id: this.$cookieStorage.get('clerk_id') || '',
agent_code_time: this.$cookieStorage.get('agent_code_time') || '',
shop_id_time: this.$cookieStorage.get('shop_id_time') || ''
}
}).then(res => {
res = res.data;
if (res.data && res.data.open_id) {
this.setData({
open_id: res.data.open_id
});
} // 如果接口返回token就直接登录,如果没有则弹出授权
if (res.data.access_token) {
console.log('已经返回给我了token');
uni.hideLoading();
var access_token = res.data.token_type + ' ' + res.data.access_token;
var expires_in = res.data.expires_in || 315360000;
this.$cookieStorage.set("user_token", access_token, expires_in);
if (this.url) {
uni.redirectTo({
url: "/" + this.url,
// fail: () => {
// uni.switchTab({
// url: "/" + this.url
// });
// }
})
} else {
// uni.switchTab({
// url: '/pages/user/personal/personal'
// });
this.$url('/pages/user/my/center', {type: 'launch'})
}
} else {
uni.hideLoading();
}
}).catch(rej => {
uni.hideLoading();
uni.showModal({
content: '请求失败,请重试',
showCancel: false,
success: res => {
if (res.confirm || !res.cancel && !res.confirm) {
this.wxLogin();
}
}
});
});
},
// 获取用户手机号
getPhoneNumber(e) {
if (e.detail.encryptedData) {
uni.login({
success: res => {
if (res.code) {
this.setData({
code: res.code
});
this.phone(e);
} else {
uni.showModal({
content: " 获取code失败",
showCancel: false
});
}
}
});
return;
} else {
this.toPhoneLogin();
}
},
// 通过手机号登录注册
phone(e) {
uni.showLoading({
title: '正在登录',
mask: true
});
this.$http.post({
api: 'api/oauth/miniprogram/mobile',
data: {
open_type: 'miniprogram',
code: this.code,
encryptedData: e.detail.encryptedData,
iv: e.detail.iv,
open_id: this.open_id,
shop_id: this.$cookieStorage.get('shop_id') || '',
agent_code: this.$cookieStorage.get('coupon_agent_code') || this.$cookieStorage.get('agent_code') || '',
clerk_id: this.$cookieStorage.get('clerk_id') || '',
agent_code_time: this.$cookieStorage.get('agent_code_time') || '',
shop_id_time: this.$cookieStorage.get('shop_id_time') || ''
}
}).then(res => {
if (res.statusCode == 200) {
res = res.data;
if (res.data.access_token) {
var access_token = res.data.token_type + ' ' + res.data.access_token;
var expires_in = res.data.expires_in || 315360000; // debugger;
this.$cookieStorage.set("user_token", access_token, expires_in); // this.$cookieStorage.set("user_token",access_token,expires_in);
// uni.setStorageSync("user_token",access_token);
if (this.url) {
// var path = ['pages/entity/store/store', 'pages/index/index/index',
// 'pages/index/classification/classification', 'pages/store/tabCart/tabCart', 'pages/user/personal/personal',
// 'pages/travels/index/index', 'pages/user/collar/collar'
// ];
// var pathIndex = path.indexOf(this.url);
// if (pathIndex == -1) {
// uni.redirectTo({
// url: "/" + this.url
// });
// } else {
// uni.switchTab({
// url: "/" + this.url
// });
// }
this.$url("/" + this.url, {type: 'redirect'});
} else {
// uni.switchTab({
// url: '/pages/user/personal/personal'
// });
this.$url('/pages/user/my/center', {type: 'launch'})
}
} else {
uni.showModal({
content: res.message || '请求失败,请重试',
showCancel: false
});
}
} else {
uni.showModal({
content: '请求失败,请重试',
showCancel: false
});
}
uni.hideLoading();
}).catch(rej => {
uni.hideLoading();
uni.showModal({
content: '请求失败,请重试',
showCancel: false
});
});
},
// 跳转到手机号验证码登录
toPhoneLogin(){
if (this.url) {
// uni.navigateTo({
// url: '/pages/user/loginType/loginType?url=' + encodeURIComponent(this.url) + '&open_id=' + this.open_id
// });
this.$url('/pages/user/loginType/loginType?url=' + encodeURIComponent(this.url) + '&open_id=' + this.open_id);
} else {
// wx.navigateTo({
// url: '/pages/user/loginType/loginType?open_id=' + this.open_id
// });
this.$url('/pages/user/loginType/loginType?open_id=' + this.open_id);
}
},
setData: function(obj) {
let that = this;
let keys = [];
let val, data;
Object.keys(obj).forEach(function(key) {
keys = key.split('.');
val = obj[key];
data = that.$data;
keys.forEach(function(key2, index) {
if (index + 1 == keys.length) {
that.$set(data, key2, val);
} else {
if (!data[key2]) {
that.$set(data, key2, {});
}
}
data = data[key2];
});
});
}
}
}
</script>
<style lang="scss" scoped>
.illustration{
width: 750rpx;
height: 750rpx;
position: fixed;
top: 44%;
left: 0;
margin-top: -375rpx;
.img{
width: 100%;
height: 100%;
}
}
.fixed-btn{
width: 630rpx;
height: max-content;
position: fixed;
left: calc(50% - 315rpx);
top: calc(46% + 375rpx);
display: flex;
justify-content: space-between;
.btn1, .btn2{
width: 300rpx;
height: 100rpx;
border-radius: 60rpx;
border: 1rpx solid #15716E;
box-sizing: border-box;
line-height: 100rpx;
font-size: 32rpx;
}
.btn1{
background-color: #F3F8F8;
color: #15716E;
}
.btn2{
background-color: #15716E;
color: #FFFFFF;
}
}
</style>