<template>
|
<view class="normal-login-container">
|
<view class="logo-content align-center justify-center flex">
|
<image style="width: 100rpx;height: 100rpx;" :src="globalConfig.appInfo.logo" mode="widthFix">
|
</image>
|
<text class="title">体检中心移动端</text>
|
</view>
|
<view class="login-form-content">
|
<!-- <view class="input-item flex align-center">
|
<view class="iconfont icon-user icon"></view>
|
<input v-model="loginForm.username" class="input" type="text" placeholder="请输入账号" maxlength="30" />
|
</view>
|
<view class="input-item flex align-center">
|
<view class="iconfont icon-password icon"></view>
|
<input v-model="loginForm.password" type="password" class="input" placeholder="请输入密码" maxlength="20" />
|
</view>
|
<view class="action-btn">
|
<button @click="handleLogin" class="login-btn cu-btn block bg-blue lg round">登录</button>
|
</view> -->
|
|
<view class="action-btn">
|
<button class="login-btn cu-btn block bg-blue lg round" @click="getWxToken">微信授权登录</button>
|
</view>
|
</view>
|
|
<view class="xieyi text-center">
|
<checkbox-group @change="checkboxChange">
|
<checkbox value="cb" style="transform:scale(0.7)" class="blue"/>
|
<text class="text-grey1">登录即代表同意</text>
|
<text @click="handleUserAgrement" class="text-blue">《用户协议》</text>
|
<text @click="handlePrivacy" class="text-blue">《隐私协议》</text>
|
</checkbox-group>
|
|
</view>
|
</view>
|
</template>
|
|
<script>
|
import {
|
getCodeImg,
|
loadUnionid,
|
getWxInfo
|
} from '@/api/login'
|
import {
|
getToken,
|
setToken,
|
removeToken
|
} from '@/utils/auth'
|
//import Cookies from "js-cookie";
|
//import { encrypt, decrypt } from '@/utils/jsencrypt'
|
|
export default {
|
name: "Login",
|
data() {
|
return {
|
val: "",
|
userInfo: {},
|
codeUrl: "",
|
//captchaEnabled: false,
|
globalConfig: getApp().globalData.config,
|
loginForm: {
|
username: "",
|
password: "",
|
code: "",
|
uuid: "",
|
type: false,
|
mobile: false,
|
},
|
loading: false,
|
}
|
},
|
created() {
|
//this.getCode()
|
},
|
onShow() {
|
this.localtoken = uni.getStorageSync('localtoken');
|
},
|
methods: {
|
/**
|
* 微信授权登录
|
*/
|
wechatLogin() {
|
return new Promise((resolve, reject) => {
|
uni.login({
|
success: (res) => {
|
resolve(res.code);
|
console.log(res.code,666);
|
},
|
fail: (err) => {
|
reject(err);
|
}
|
})
|
})
|
},
|
getUserProfile() {
|
return new Promise((resolve, reject) => {
|
uni.getUserProfile({
|
desc: "获取您的微信昵称、头像",
|
success: (res) => {
|
// console.log(res.userInfo);
|
resolve(res);
|
// console.log(res);
|
|
uni.setStorageSync('iv', res.iv);
|
uni.setStorageSync('encryptedData', res.encryptedData);
|
},
|
fail: (err) => {
|
reject(err);
|
}
|
})
|
})
|
},
|
|
getWxToken() {
|
if (this.val == 'cb') {
|
let wx_login = this.wechatLogin();
|
let get_user_profile = this.getUserProfile();
|
wx_login.then(code => {
|
return code;
|
}).then(code => {
|
return new Promise((resolve, reject) => {
|
get_user_profile.then(res => {
|
resolve({
|
code,
|
encryptedData: res.encryptedData,
|
iv: res.iv,
|
userInfo: res.userInfo
|
});
|
}).catch(err => {
|
reject(err);
|
})
|
})
|
}).then(res => {
|
|
let data = {
|
iv: res.iv,
|
number: res.encryptedData,
|
code: res.code,
|
}
|
console.log(data);
|
loadUnionid(data).then(res1 => {
|
|
let data = {
|
token: res1.data.token,
|
username: res.userInfo.nickName,
|
avatar: res.userInfo.avatarUrl
|
}
|
this.$store.dispatch('WxLogin', data).then(() => {
|
this.$modal.closeLoading()
|
setToken(res1.data.token)
|
this.$tab.reLaunch('/pages/mine/index')
|
})
|
uni.setStorageSync('sessionKey', res1.data.sessionKey);
|
uni.setStorageSync('openId', res1.data.openId);
|
if (res1.code == 200) {
|
getWxInfo().then(res => {
|
console.log(res)
|
uni.setStorageSync('phone', res.data.phone);
|
})
|
}
|
})
|
}).catch(err => {
|
this.$modal.msgError(err)
|
})
|
} else {
|
this.$modal.msgError("请勾选协议")
|
}
|
},
|
// 判断复选框选中状态
|
checkboxChange: function(e) {
|
// console.log('checkbox发生change事件,携带value值为:', e.detail.value)
|
this.val = e.detail.value
|
if (this.val == 'cb') {}
|
},
|
|
// 隐私协议
|
handlePrivacy() {
|
let site = this.globalConfig.appInfo.agreements[0]
|
this.$tab.navigateTo(`/pages/common/webview/index?title=${site.title}&url=${site.url}`)
|
},
|
// 用户协议
|
handleUserAgrement() {
|
let site = this.globalConfig.appInfo.agreements[1]
|
this.$tab.navigateTo(`/pages/common/webview/index?title=${site.title}&url=${site.url}`)
|
},
|
|
// 登录方法
|
async handleLogin() {
|
if (this.loginForm.username === "") {
|
this.$modal.msgError("请输入您的账号")
|
} else if (this.loginForm.password === "") {
|
this.$modal.msgError("请输入您的密码")
|
} else {
|
this.$modal.loading("登录中,请耐心等待...")
|
this.pwdLogin()
|
}
|
},
|
// 密码登录
|
async pwdLogin() {
|
this.$store.dispatch('Login', this.loginForm).then(() => {
|
this.$modal.closeLoading()
|
this.loginSuccess()
|
}).catch(() => {
|
if (this.captchaEnabled) {
|
// this.getCode()
|
}
|
})
|
},
|
// 登录成功后,处理函数
|
loginSuccess(result) {
|
// 设置用户信息
|
this.$store.dispatch('GetInfo').then(res => {
|
this.loginForm.username = wx.getStorageSync('userInfo').nickName;
|
this.$tab.reLaunch('/pages/mine/index')
|
})
|
}
|
|
|
}
|
}
|
</script>
|
|
<style lang="scss">
|
.normal-login-container {
|
width: 100%;
|
|
.logo-content {
|
width: 100%;
|
font-size: 21px;
|
text-align: center;
|
padding-top: 15%;
|
|
image {
|
border-radius: 4px;
|
}
|
|
.title {
|
margin-left: 10px;
|
}
|
}
|
|
.login-form-content {
|
text-align: center;
|
margin: 20px auto;
|
margin-top: 15%;
|
width: 80%;
|
|
.input-item {
|
margin: 20px auto;
|
background-color: #f5f6f7;
|
height: 45px;
|
border-radius: 20px;
|
|
.icon {
|
font-size: 38rpx;
|
margin-left: 10px;
|
color: #999;
|
}
|
|
.input {
|
width: 100%;
|
font-size: 14px;
|
line-height: 30px;
|
text-align: left;
|
padding-left: 15px;
|
z-index: 10;
|
}
|
|
}
|
|
.login-btn {
|
margin-top: 40px;
|
height: 45px;
|
}
|
|
.xieyi {
|
color: #333;
|
margin-top: 20px;
|
}
|
}
|
}
|
</style>
|