<template>
|
<!-- 登录 -->
|
<view>
|
<!-- #ifndef H5 -->
|
<view class="status_bar"></view>
|
<!-- #endif -->
|
<view class="login-header">
|
<!-- <view class="logo-wrap"> -->
|
<image src="../../static/images/logo.png" mode="widthFix" class="logo"></image>
|
<!-- </view> -->
|
|
<text>讯聪美业</text>
|
</view>
|
<view class="login-box">
|
<!-- <text class="title">登录</text> -->
|
<view class="input-group-row">
|
<input v-model="username" type="text" maxlength="60" :disabled="isDisabled" placeholder="请输入账号" placeholder-class='placeholder'/>
|
</view>
|
<template v-if="isHidePwd">
|
<view class="input-group-row mt-10">
|
<input v-model="password" type="password" :disabled="isDisabled" maxlength="60" placeholder="请输入密码" placeholder-class="placeholder" />
|
<text @click="isHidePwd=false" class="iconfont iconyanjing font-18 gray"></text>
|
</view>
|
</template>
|
<template v-else>
|
<view class="input-group-row mt-10">
|
<input v-model="password" type="text" :disabled="isDisabled" maxlength="60" placeholder="请输入密码" placeholder-class="placeholder" />
|
<text @click="isHidePwd=true" class="iconfont iconyanjing1 gray"></text>
|
</view>
|
</template>
|
<navigator class="forget-pwd" url="./forgetPassword" hover-class="none">
|
<text>忘记密码?</text>
|
</navigator>
|
<button :disabled="isDisabled" class="blue-btn" @click="login">登录</button>
|
</view>
|
</view>
|
</template>
|
|
<script>
|
export default {
|
data(){
|
return {
|
username: '',
|
password: '',
|
isDisabled: false,
|
isHidePwd: true
|
}
|
},
|
onLoad(options) {
|
if(!options || options.isNotLogin != 1){
|
this.isLogin();
|
}
|
},
|
onBackPress(options){
|
if (this.lastBackPressed && this.lastBackPressed + 2000 >= Date.now()) {
|
plus.runtime.quit();
|
}else{
|
this.lastBackPressed = Date.now();
|
this.Toast.info('再按一次退出应用');
|
return true;
|
}
|
},
|
methods:{
|
isLogin(){
|
let token = this.$httpUtils.getToken();
|
if(token){
|
uni.switchTab({
|
url: '../workbench/index'
|
})
|
}
|
},
|
valid(){
|
if(!this.username.trim()){
|
this.$toast.info('请输入账号');
|
return false;
|
}
|
if(!this.password.trim()){
|
this.$toast.info('输入密码');
|
return false;
|
}
|
},
|
login(){
|
if(this.valid() === false){
|
return;
|
}
|
this.isDisabled = true;
|
this.$httpUtils.request('/api/common/login', {
|
username: this.username.trim(),
|
password: this.password.trim()
|
}, 'POST').then((res) => {
|
if(res.status == 200){
|
const {mapInfo} = res;
|
uni.setStorage({
|
key: 'userInfo',
|
data: JSON.stringify({
|
token: mapInfo.token,
|
roleInfo: mapInfo.user,
|
userFunction: mapInfo.userFunction
|
}),
|
success: () => {
|
uni.switchTab({
|
url: '../workbench/index'
|
})
|
}
|
});
|
}
|
this.$toast.info(res.info);
|
this.isDisabled = false;
|
}).catch((err) => {
|
this.isDisabled = false;
|
})
|
}
|
}
|
}
|
</script>
|
|
<style>
|
.status_bar{
|
background: #518EFF;
|
}
|
.login-header{
|
background: #518EFF;
|
padding: 60px 0 110px;
|
border-radius: 0 0 20px 20px;
|
text-align: center;
|
font-size: 20px;
|
color: #FFFFFF;
|
}
|
.logo-wrap{
|
display: block;
|
width: 72px;
|
height: 72px;
|
background: #FFFFFF;
|
border-radius: 8px;
|
margin: 0 auto 10px;
|
}
|
.logo{
|
width: 92px;
|
display: block;
|
margin: 0 auto 10px;
|
/* height: 72px; */
|
}
|
.login-box{
|
margin: -50px 10px 0;
|
padding: 30px 20px;
|
background: #FFFFFF;
|
border: 1px solid #EDEAF4;
|
border-radius: 4px;
|
box-shadow:0 6px 6px rgba(237,234,244,0.5);
|
}
|
.login-box .title{
|
display: block;
|
font-size: 20px;
|
font-weight: bold;
|
color: #518EFF;
|
text-align: center;
|
}
|
.input-group-row input{
|
text-align: left;
|
}
|
.forget-pwd{
|
text-align: right;
|
margin-top: 5px;
|
font-size: 14px;
|
color: #518EFF;
|
}
|
.blue-btn{
|
margin-top: 30px;
|
}
|
uni-button[disabled]:not([type]), uni-button[disabled][type=default]{
|
color: #FFFFFF;
|
background-color: rgba(36, 131, 255, 0.6);
|
}
|
</style>
|