刮刮前端
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.
 
 
 
 

353 lines
8.6 KiB

<!-- 账号密码登录页 -->
<template>
<view class="uni-content" style="padding: 0px 53px;">
<view class="nav_area"></view>
<view class="logo_area">
<image src="../../../../static/home/logo.png" mode=""></image>
<!-- <view class="close" @click="backPrev()"></view> -->
<view class="selece_box">
<uni-data-select :clear="false"
v-model="value"
:localdata="range"
@change="changeType"
></uni-data-select>
</view>
</view>
<text class="title title-box">欢迎登陆顶呱刮</text>
<uni-forms>
<uni-forms-item name="username">
<uni-easyinput :focus="focusUsername" @blur="focusUsername = false" class="input-box"
:inputBorder="false" v-model="username" placeholder="请输入手机号/账号" />
</uni-forms-item>
<uni-forms-item name="password">
<uni-easyinput :focus="focusPassword" @blur="focusPassword = false" class="input-box" clearable
type="password" :inputBorder="false" v-model="password" placeholder="请输入密码" />
</uni-forms-item>
</uni-forms>
<uni-captcha v-if="needCaptcha" focus ref="captcha" scene="login-by-pwd" v-model="captcha" />
<!-- 带选择框的隐私政策协议组件 -->
<!-- <uni-id-pages-agreements scope="login" ref="agreements"></uni-id-pages-agreements> -->
<button class="uni-btn login-btn" type="primary" @click="pwdLogin">登录</button>
<!-- 忘记密码 -->
<view class="link-box">
<view v-if="!config.isAdmin">
<!-- <text class="forget" @click="toRetrievePwd">忘记密码</text> -->
<!-- <text class="link">找回密码</text> -->
</view>
<text class="link" @click="toRegister">{{config.isAdmin ? '注册管理员账号': '新注册'}}</text>
<!-- <text class="link" @click="toRegister" v-if="!config.isAdmin">注册账号</text> -->
</view>
<view style="width: 100vw;text-align: center;color: #dcdcdc;font-size: 14px;line-height: 28px;position: fixed;bottom: 50px;left:0px">
温馨提示:<br/>
验证码需要跟代理/平台客服获取
</view>
<!-- 悬浮登录方式组件 -->
<!-- <uni-id-pages-fab-login ref="uniFabLogin"></uni-id-pages-fab-login> -->
</view>
</template>
<script>
import mixin from '@/uni_modules/uni-id-pages/common/login-page.mixin.js';
import API from '@/common/js/api.js'
import updateTabBar from '@/common/js/updateTabBar.js'
// const uniIdCo = uniCloud.importObject("uni-id-co", {
// errorOptions: {
// type: 'toast'
// }
// })
export default {
mixins: [mixin],
data() {
return {
"password": "",
"username": "",
"captcha": "",
"needCaptcha": false,
"focusUsername": false,
"focusPassword": false,
"logo": "/static/logo.png",
userType: 'user',//user|agent|background
value: 0,
range: [
{ value: 0, text: "用户登录" },
{ value: 1, text: "代理登录" },
{ value: 2, text: "后台登录" },
],
}
},
onLoad(e) {
if(e.phone){
this.username = e.phone;
}
},
onShow() {
// #ifdef H5
document.onkeydown = event => {
var e = event || window.event;
if (e && e.keyCode == 13) { //回车键的键值为13
this.pwdLogin()
}
};
// #endif
},
methods: {
// 页面跳转,找回密码
toRetrievePwd() {
let url = '/uni_modules/uni-id-pages/pages/retrieve/retrieve'
//如果刚好用户名输入框的值为手机号码,就把它传到retrieve页面,根据该手机号找回密码
if (/^1\d{10}$/.test(this.username)) {
url += `?phoneNumber=${this.username}`
}
uni.navigateTo({
url
})
},
/**
* 密码登录
*/
pwdLogin() {
if (!this.username.length) {
this.focusUsername = true
return uni.showToast({
title: '请输入手机号',
icon: 'none',
duration: 3000
});
}
if (!/^1\d{10}$/.test(this.username)) {
this.focusUsername = true
return uni.showToast({
title: '请输入正确格式的手机号',
icon: 'none',
duration: 3000
});
}
if (!this.password.length) {
this.focusPassword = true
return uni.showToast({
title: '请输入密码',
icon: 'none',
duration: 3000
});
}
// if (this.needCaptcha && this.captcha.length != 4) {
// this.$refs.captcha.getImageCaptcha()
// return uni.showToast({
// title: '请输入验证码',
// icon: 'none',
// duration: 3000
// });
// }
// if (this.needAgreements && !this.agree) {
// return this.$refs.agreements.popup(this.pwdLogin)
// }
let data = {
"password": this.password,
"phone": this.username
}
// if (/^1\d{10}$/.test(this.username)) {
// data.mobile = this.username
// } else if (/@/.test(this.username)) {
// data.email = this.username
// } else {
// data.username = this.username
// }
if(this.userType=='user'){
updateTabBar.changeUser();
API.login(data, res=>{
console.log(res);
// this.loginSuccess()
uni.showToast({
title: res.msg
})
uni.setStorageSync('user_token', res.data.token);
uni.setStorageSync('userType', 'user');
setTimeout(()=>{
uni.switchTab({
url:'/pages/home/home'
})
}, 1500)
})
}
if(this.userType=='agent'){
updateTabBar.changeAgent();
API.request('/passport/agentLogin', {
phone: this.username,
password: this.password
}, res=>{
console.log(res);
uni.showToast({
title: res.msg
})
uni.setStorageSync('user_token', res.data.token);
uni.setStorageSync('userType', 'agent');
setTimeout(()=>{
uni.switchTab({
url:'/pages/home/home'
})
}, 1500)
})
}
if(this.userType=='background'){
updateTabBar.changebackground();
API.request('/passport/adminLogin', {
account_number: this.username,
password: this.password
}, res=>{
console.log(res);
uni.showToast({
title: res.msg
})
uni.setStorageSync('user_token', res.data.token);
uni.setStorageSync('userType', 'background');
setTimeout(()=>{
uni.switchTab({
url:'/pages/home/home'
})
}, 1500)
})
}
// uniIdCo.login(data).then(e => {
// this.loginSuccess(e)
// }).catch(e => {
// if (e.errCode == 'uni-id-captcha-required') {
// this.needCaptcha = true
// } else if (this.needCaptcha) {
// //登录失败,自动重新获取验证码
// this.$refs.captcha.getImageCaptcha()
// }
// })
},
/* 前往注册 */
toRegister() {
uni.navigateTo({
url: this.config.isAdmin ? '/uni_modules/uni-id-pages/pages/register/register-admin' :
'/uni_modules/uni-id-pages/pages/register/register',
fail(e) {
console.error(e);
}
})
},
backPrev(){
uni.navigateBack({
delta: 1
})
},
changeType(e){
// console.log(e);
switch (e){
case 0:
this.userType = 'user';
break;
case 1:
this.userType = 'agent';
break;
case 2:
this.userType = 'background';
break;
}
}
}
}
</script>
<style lang="scss" scoped>
@import "@/uni_modules/uni-id-pages/common/login-page.scss";
@media screen and (min-width: 690px) {
.uni-content {
height: 600px;
}
}
.nav_area{
background-color: #fff;
width: 750rpx;
height: 88rpx;
padding-top: var(--status-bar-height);
}
.logo_area{
width: 269px;
height: 50px;
margin: 4px auto;
position: relative;
image{
width: 50px;
height: 47px;
}
.close{
width: 24px;
height: 24px;
position: absolute;
top: 0px;
right: -24px;
background-image: url("../../../../static/home/close2.png");
background-size: contain;
}
.selece_box{
width: 200rpx;
height: 60rpx;
position: absolute;
top: -10px;
right: -24px;
/deep/ .uni-select__input-text{
color: #999;
}
}
}
.title-box{
font-size: 26px;
color: #444;
margin-bottom: 20px;
}
.uni-content /deep/ .uni-easyinput__content{
background-color: #fff !important;
border-bottom: 1px solid #ebebeb;
font-size: 16px !important;
}
.uni-easyinput__placeholder-class{
font-size: 16px;
color: #cecece;
}
/deep/ .uni-easyinput__content-input{
padding-left: 0px !important;
// flex: 0.45;
}
/deep/ .content-clear-icon{
// flex: 1;
}
.login-btn{
border-radius: 10px;
}
.forget {
font-size: 14px;
color: #999;
}
.link-box {
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex-direction: row;
justify-content: space-between;
margin-top: 20px;
}
.link {
font-size: 14px;
color: #444;
}
</style>