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.

244 lines
4.7 KiB

<template>
<view class="login">
<view class="bkg">
<u-image src="/static/login/bkg-login.png" width="100vw" height="100vh"></u-image>
</view>
<view class="content">
<view class="title">
<view class="top-word">HELLO</view>
<view class="bottom-word">欢迎使用四世同堂管理系统</view>
</view>
<view class="username">
<view class="left-name">账户名</view>
<u-input v-model="form.username" placeholder="请输入账户名" :custom-style="inputStyle"
:placeholder-style="placeholderStyle">
</u-input>
</view>
<view class="password">
<view class="left-name">密码</view>
<u-input v-model="form.password" placeholder="请输入密码" type="password" :custom-style="inputStyle"
:placeholder-style="placeholderStyle"></u-input>
</view>
<view class="save-state">
<view class="radio" @click="isRemeber = !isRemeber">
<u-icon name="checkbox-mark" color="#fff" size="28" v-show="isRemeber">
</u-icon>
</view>
<view class="radio-text">记住当前状态</view>
</view>
<view class="btn">
<u-button :custom-style="btnStyle" :ripple="false" :hair-line="false" @click="login">登陆</u-button>
</view>
<view class="bottom"> 2022四世同堂服务有限公司 </view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
placeholderStyle: "color:'#999';font-size:'28rpx';font-weight:'500';",
inputStyle: {
color: "#999",
minHeight: "40rpx",
height: "40rpx",
flex: "1",
lineHeight: "40rpx",
fontSize: "28rpx",
fontWeight: "500",
},
btnStyle: {
color: "#fff",
fontFamily: "PingFang-SC-Medium, PingFang-SC;",
fontWeight: "500",
background: "#4CBD8D",
width: "600rpx",
height: "90rpx",
borderRadius: "6rpx",
border: "none",
fontSize: "28rpx",
letterSpacing: "10rpx",
marginTop: "66rpx",
},
isRemeber: true,
form: {
username: "",
password: "",
},
};
},
methods: {
login() {
if (this.form.username == "") {
uni.showToast({
icon: "none",
title: `请正确填写登录名`,
});
return false
}
if (this.form.password == "") {
uni.showToast({
icon: "none",
title: `请正确填写密码`,
});
return false
}
this.$u.api.login(this.form).then(res => {
this.$u.vuex("vuex_token", res.access_token);
this.getInfo();
})
},
async getInfo() {
await this.$store.dispatch('me')
uni.showToast({
icon: "none",
title: `欢迎回来,${this.vuex_user.name}`,
});
setTimeout(() => {
uni.switchTab({
url: "/pages/home/home"
});
}, 1500)
},
},
computed: {},
};
</script>
<style scoped lang="scss">
/deep/.u-input__right-icon {
display: none !important;
}
.login {
width: 100vw;
height: 100vh;
background: #187bfa;
.bkg {
z-index: 0;
position: fixed;
top: 0;
left: 0;
}
}
.content {
z-index: 1;
position: relative;
.title {
color: #fff;
padding: 414rpx 0 60rpx 76rpx;
.top-word {
width: 400rpx;
height: 168rpx;
font-size: 120rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
line-height: 168rpx;
}
.bottom-word {
width: 384rpx;
height: 46rpx;
font-size: 32rpx;
font-family: PingFang-SC-Medium, PingFang-SC;
font-weight: 500;
line-height: 46rpx;
padding-top: calc(576 - 414) rpx;
}
}
.input {
height: 90rpx;
width: 600rpx;
border-radius: 6rpx;
display: flex;
align-items: center;
background: #fff;
border: 2rpx solid #fffefe;
margin: 0 auto;
.left-name {
width: 84rpx;
height: 40rpx;
font-size: 28rpx;
font-family: PingFang-SC-Medium, PingFang-SC;
font-weight: 500;
color: #666666;
line-height: 40rpx;
text-align-last: justify;
margin: 0 34rpx 0 32rpx;
}
}
.username {
@extend .input;
}
.password {
@extend .input;
margin-top: 40rpx;
}
.save-state {
display: flex;
align-items: center;
margin-top: 40rpx;
margin-left: 76rpx;
.radio {
width: 28rpx;
height: 28rpx;
border-radius: 6rpx;
border: 2rpx solid #ffffff;
display: flex;
justify-content: center;
align-items: center;
}
.radio-text {
width: 144rpx;
height: 34rpx;
font-size: 24rpx;
font-family: PingFang-SC-Medium, PingFang-SC;
font-weight: 500;
color: #fff;
line-height: 34rpx;
margin-left: 30rpx;
}
}
.bottom {
width: 298rpx;
height: 34rpx;
font-size: 24rpx;
font-family: PingFang-SC-Medium, PingFang-SC;
font-weight: 500;
color: #ffffff;
line-height: 34rpx;
margin: 418rpx auto 0 auto;
}
}
</style>