<!-- 登录页面 -->
|
|
<template>
|
|
<view class="login bx">
|
|
|
|
<!-- 背景图片 -->
|
|
<view class="bg-box">
|
|
<image @click="showSelectLanguageProp" class="language" src="@/static/login/language.png" mode="aspectFit"></image>
|
|
<image src="@/static/logo.png" mode="aspectFit"></image>
|
|
</view>
|
|
|
|
<!-- 加载效果 -->
|
|
<loading :loading="loading" @close="closeLoading"></loading>
|
|
|
|
<view v-if="!loading" class="main">
|
|
<!-- 登录标题 -->
|
|
<view class="login-title">
|
|
|
|
<view class="title">{{ $t('page.login.title') }}</view>
|
|
|
|
<view class="login-descript">{{ $t('page.login.please-login') }}</view>
|
|
|
|
</view>
|
|
|
|
<!-- 输入框列表 -->
|
|
<view class="input-list">
|
|
|
|
<view class="input-item">
|
|
<view class="input-descript">{{ $t('page.login.username') }}</view>
|
|
|
|
<input v-model="form.account" type="text" :placeholder="$t('page.login.username-placeholder')" />
|
|
</view>
|
|
|
|
<view class="input-item">
|
|
<view class="input-descript">{{ $t('page.login.password') }}</view>
|
|
|
|
<input v-model="form.pass" type="password" :placeholder="$t('page.login.password-placeholder')" />
|
|
</view>
|
|
|
|
</view>
|
|
|
|
<!-- 忘记密码 -->
|
|
<view class="forgot-password">
|
|
<text @click="forgetPass">{{ $t('page.login.forgot-password') }}</text>
|
|
</view>
|
|
|
|
<!-- 按钮组 -->
|
|
<view class="btns">
|
|
|
|
<view @click="Login" class="now-login-btn">{{ $t('page.login.login') }}</view>
|
|
|
|
<view @click="toRegister" class="now-register-btn">{{ $t('page.login.register') }}</view>
|
|
|
|
</view>
|
|
</view>
|
|
|
|
<!-- 切换语言 -->
|
|
<changeLanguage :show.sync="showSelectLanguage" @close="closeSelectLanguageProp"></changeLanguage>
|
|
|
|
<!-- 客服列表 -->
|
|
<serviceList :show="showService" :serverList="serverList" @close="closeServiceList"></serviceList>
|
|
|
|
<!-- 初始页面 -->
|
|
<pageInit></pageInit>
|
|
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import changeLanguage from '../../components/changeLanguage/changeLanguage.vue';
|
|
import serviceList from '@/components/serviceList/serviceList.vue';
|
|
import pageInit from '@/components/pageInit/pageInit.vue'
|
|
import loading from '@/components/pageInit/loading.vue'
|
|
|
|
export default {
|
|
components : { changeLanguage , serviceList , pageInit , loading },
|
|
data() {
|
|
return {
|
|
form: {
|
|
account: '',
|
|
pass: '',
|
|
loginIp : ''
|
|
},
|
|
showSelectLanguage : false,
|
|
showService : false,
|
|
serverList : [],
|
|
loading : true
|
|
}
|
|
},
|
|
created() {
|
|
|
|
},
|
|
methods: {
|
|
//登录
|
|
Login() {
|
|
this.$play()
|
|
let _self = this;
|
|
let { account , pass } = this.form
|
|
if(account.trim() == ''){
|
|
return uni.showToast({title: this.$t('page.login.accountEmpty'),icon : 'none'});
|
|
}
|
|
if(pass.trim() == ''){
|
|
return uni.showToast({title: this.$t('page.login.passEmpty'),icon : 'none'});
|
|
}
|
|
|
|
return uni.request({
|
|
url: 'https://api.ipify.org?format=json',
|
|
success: function(res) {
|
|
_self.form.loginIp = res.data.ip;
|
|
_self.request('login', {}, _self.form).then(res => {
|
|
if(res.code == 200){
|
|
localStorage.setItem("userInfo",JSON.stringify(res.result.userInfo))
|
|
localStorage.setItem("token", res.result.token)
|
|
uni.navigateTo({
|
|
url: '/pages/home/home'
|
|
})
|
|
}
|
|
})
|
|
}
|
|
});
|
|
|
|
},
|
|
|
|
//跳转注册页面
|
|
toRegister() {
|
|
this.$play()
|
|
uni.navigateTo({
|
|
url: '/pages/register/register'
|
|
})
|
|
},
|
|
|
|
//显示选择语言弹框
|
|
showSelectLanguageProp(){
|
|
this.$play()
|
|
this.showSelectLanguage = true
|
|
},
|
|
|
|
//关闭语言选择弹框
|
|
closeSelectLanguageProp(){
|
|
this.showSelectLanguage = false
|
|
},
|
|
|
|
//显示客服列表
|
|
revealServiceList(){
|
|
this.$play()
|
|
this.showService = true;
|
|
},
|
|
|
|
//关闭客服列表
|
|
closeServiceList(){
|
|
this.showService = false;
|
|
},
|
|
|
|
//关闭加载效果
|
|
closeLoading(){
|
|
this.loading = false;
|
|
},
|
|
|
|
//忘记密码
|
|
forgetPass(){
|
|
this.request('forgetPass').then(res => {
|
|
if(res.code == 200){
|
|
this.serverList = res.result
|
|
this.revealServiceList()
|
|
}
|
|
})
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.login {
|
|
width: 750rpx;
|
|
height: 100vh;
|
|
margin: 0px auto;
|
|
background: black;
|
|
background-image: url('@/static/login/bg.png');
|
|
background-size: 100%;
|
|
background-repeat: no-repeat;
|
|
box-sizing: border-box;
|
|
padding: 0rpx 20rpx;
|
|
|
|
.bg-box {
|
|
position: relative;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
height: 40%;
|
|
|
|
.language {
|
|
position: absolute;
|
|
top: 30rpx;
|
|
right: 30rpx;
|
|
width: 60rpx;
|
|
height: 60rpx;
|
|
z-index: 999;
|
|
}
|
|
}
|
|
|
|
.login-title {
|
|
padding: 0rpx 10rpx;
|
|
box-sizing: border-box;
|
|
|
|
.title {
|
|
font-size: 36rpx;
|
|
font-weight: bold;
|
|
color: #B0C73B;
|
|
margin-bottom: 10rpx;
|
|
}
|
|
|
|
.login-descript {
|
|
font-size: 32rpx;
|
|
color: white;
|
|
margin-bottom: 20rpx;
|
|
}
|
|
}
|
|
|
|
.input-list {
|
|
padding: 0rpx 10rpx;
|
|
box-sizing: border-box;
|
|
margin: 40rpx 0rpx;
|
|
|
|
.input-item {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
border: 1px solid #B0C73B;
|
|
padding: 20rpx;
|
|
border-radius: 5rpx;
|
|
margin-bottom: 25rpx;
|
|
box-sizing: border-box;
|
|
font-size: 28rpx;
|
|
|
|
.input-descript {
|
|
color: #B0C73B;
|
|
}
|
|
|
|
input {
|
|
color: #B0C73B;
|
|
}
|
|
}
|
|
}
|
|
|
|
.forgot-password {
|
|
color: #B0C73B;
|
|
text-align: center;
|
|
|
|
text {
|
|
border-bottom: 1rpx solid #ccc;
|
|
}
|
|
}
|
|
|
|
.btns {
|
|
padding: 0rpx 10rpx;
|
|
margin-top: 40rpx;
|
|
|
|
.now-login-btn,
|
|
.now-register-btn {
|
|
background: #B0C73B;
|
|
border-radius: 10rpx;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
margin-bottom: 20rpx;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.now-login-btn {
|
|
height: 90rpx;
|
|
font-size: 40rpx;
|
|
}
|
|
|
|
.now-register-btn {
|
|
height: 60rpx;
|
|
width: 90%;
|
|
font-size: 28rpx;
|
|
margin: 0 auto;
|
|
}
|
|
}
|
|
}
|
|
</style>
|