<template>
|
<view class="container">
|
<image class="logo" src="/static/image/logo.png"></image>
|
<!-- 登录信息 -->
|
<view class="user-info">
|
<view class="user-info-item shadow-warp">
|
<view class="icons"><uni-icons type="person" size="20"></uni-icons></view>
|
<text>账号:</text>
|
<input type="text" placeholder="请输入账号!" v-model="user.userName"
|
placeholder-style="font-size:14px;color:#ccc;">
|
</view>
|
<view class="user-info-item shadow-warp">
|
<view class="icons"><uni-icons type="locked" size="20"></uni-icons></view>
|
<text>密码:</text>
|
<input :password="!showPassword" v-model="user.password" placeholder="请输入密码!"
|
placeholder-style="font-size:14px;color:#ccc;">
|
<view class="showPassword" v-if="showPassword" @click="changePassword"><uni-icons type="eye" size="20"></uni-icons></view>
|
<view class="showPassword" v-if="!showPassword" @click="changePassword"><uni-icons type="eye-slash" size="20"></uni-icons></view>
|
</view>
|
</view>
|
<!-- 登录按钮 -->
|
<view class="loging">
|
<button class="button" @click="onLogin()" :loading="load.loading">{{load.btnText}}</button>
|
</view>
|
<!-- #ifdef APP-PLUS -->
|
<view class="version">
|
当前版本: {{version}}
|
</view>
|
<!-- #endif -->
|
</view>
|
</template>
|
|
<script>
|
import md5 from '../../common/md5.js'
|
export default {
|
data() {
|
return {
|
version: '',
|
showPassword: false,
|
user: {
|
userName: '',
|
password: '',
|
},
|
load: {
|
loading: false,
|
btnText: '登录'
|
}
|
}
|
},
|
onLoad:function(){
|
this.user.userName = uni.getStorageSync('userName')
|
// #ifdef APP-PLUS
|
var that=this
|
plus.runtime.getProperty( plus.runtime.appid, function ( wgtinfo ) {
|
that.version=wgtinfo.version
|
});
|
// #endif
|
|
|
},
|
methods: {
|
changePassword: function() {
|
this.showPassword = !this.showPassword;
|
},
|
onLogin() {
|
let that = this
|
uni.request({
|
url: 'http://localhost:9528/login.action',
|
fail(result) {
|
uni.showToast({title: '请求失败'})
|
},
|
data: {
|
username:that.user.userName,
|
password:md5.hex_md5(that.user.password)
|
},
|
header: {
|
"content-type": "application/json"
|
},
|
success(result) {
|
let res = result.data
|
if (res.code === 200 ){
|
that.load.loading = true;
|
that.load.btnText = '登录中';
|
uni.setStorageSync('token', res.data.token);
|
uni.setStorageSync('userName', that.user.userName);
|
setTimeout(()=> {
|
uni.showToast({title: '登录成功'})
|
setTimeout(()=> {
|
uni.reLaunch({
|
url: '../index/index'
|
});
|
},300)
|
},700)
|
} else {
|
uni.showToast({title: res.msg})
|
}
|
},
|
|
|
})
|
},
|
}
|
}
|
</script>
|
|
<style>
|
.container {
|
display: flex;
|
flex-direction: column; // 表示垂直方向,由上到下
|
width: 100%;
|
min-height: 93.4vh;
|
}
|
.logo {
|
width: 300px;
|
height: 163px;
|
margin-top: 100rpx;
|
margin-left: auto;
|
margin-right: auto;
|
margin-bottom: 50rpx;
|
}
|
.user-info {
|
display: flex;
|
align-items:center;
|
flex-direction: column;
|
width: 100%;
|
height: 400rpx;
|
font-size: 14px;
|
letter-spacing:1px;
|
}
|
.user-info-item {
|
display: flex;
|
width:650rpx;
|
height: 100rpx;
|
line-height: 100rpx;
|
align-items:center;
|
background-color: #fff;
|
margin-bottom: 30rpx;
|
font-size: 28rpx;
|
font-weight: 500;
|
}
|
.user-info-item>input{
|
width: 400rpx;
|
color:#606266;
|
font-weight: 500;
|
caret-color:#606266; // 光标颜色
|
}
|
.icons {
|
margin-left: 20rpx;
|
margin-right: 18rpx;
|
}
|
.showPassword {
|
position: absolute;
|
right: 10rpx;
|
}
|
.shadow-warp {
|
position: relative;
|
box-shadow: 0 0 10upx rgba(0, 0, 0, 0.1);
|
}
|
.shadow-warp:before,
|
.shadow-warp:after {
|
position: absolute;
|
content: "";
|
top: 20upx;
|
bottom: 30upx;
|
left: 20upx;
|
width: 50%;
|
box-shadow: 0 30upx 20upx rgba(0, 0, 0, 0.2);
|
transform: rotate(-3deg);
|
z-index: -1;
|
}
|
.shadow-warp:after {
|
right: 20upx;
|
left: auto;
|
transform: rotate(3deg);
|
}
|
.loging {
|
position: fixed;
|
bottom: 100rpx;
|
left:0;
|
right:0;
|
margin-left:auto;
|
margin-right:auto;
|
}
|
.button {
|
color: #fff;
|
background-color: #409EFF;
|
width: 150px;
|
height: 40px;
|
line-height: 40px;
|
}
|
button::after{border: initial;}
|
.button-hover {
|
color:#fff;
|
background-color:#6fc1ff;
|
}
|
.version {
|
width: 100%;
|
position: fixed;
|
bottom: 30rpx;
|
left:0;
|
right:0;
|
margin-left:auto;
|
margin-right:auto;
|
text-align: center;
|
font-size: 10px;
|
color: #C0C4CC;
|
}
|
.input {
|
display: block;
|
font-size: 14px;
|
}
|
.uni-input {
|
height: 50rpx;
|
padding: 15rpx 25rpx;
|
line-height:50rpx;
|
font-size:28rpx;
|
background:#FFF;
|
flex: 1;
|
}
|
|
</style>
|