<template>
|
|
<div class="login-page">
|
|
<div class="logo-box">
|
|
<img class="logo" src="/static/auth/headImage.png" alt="logo" />
|
|
</div>
|
|
<div class="title">瀚涵中文网</div>
|
|
<LoginButton type="primary" @click="onLogin">登录</LoginButton>
|
|
<div class="cancel-row">
|
|
<LoginButton type="secondary" @click="onCancel">取消登录</LoginButton>
|
|
<span class="arrow-icon">◆</span>
|
|
<span class="dashed-line"></span>
|
|
</div>
|
|
<AgreementCheck v-model:checked="checked">
|
|
我已阅读并同意<a href="#">《服务协议》</a>和<a href="#">《隐私政策》</a>
|
|
</AgreementCheck>
|
|
<div class="book-bg"></div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import LoginButton from './components/LoginButton.vue';
|
|
import AgreementCheck from './components/AgreementCheck.vue';
|
|
|
|
export default {
|
|
name: 'NovelLogin',
|
|
components: { LoginButton, AgreementCheck },
|
|
data() {
|
|
return {
|
|
checked: false
|
|
};
|
|
},
|
|
methods: {
|
|
onLogin() {
|
|
if (!this.checked) {
|
|
this.$toast && this.$toast('请先同意协议');
|
|
return;
|
|
}
|
|
// 登录逻辑
|
|
},
|
|
onCancel() {
|
|
// 取消登录逻辑
|
|
}
|
|
}
|
|
};
|
|
</script>
|
|
|
|
<style scoped>
|
|
.login-page {
|
|
min-height: 100vh;
|
|
background: #eef2fc;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
position: relative;
|
|
padding-top: 60px;
|
|
}
|
|
.logo-box {
|
|
width: 120px;
|
|
height: 120px;
|
|
background: #fff;
|
|
border-radius: 16px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
margin-bottom: 16px;
|
|
box-shadow: 0 2px 8px #e0e6f6;
|
|
}
|
|
.logo {
|
|
width: 80px;
|
|
height: 80px;
|
|
object-fit: contain;
|
|
}
|
|
.title {
|
|
font-size: 22px;
|
|
font-weight: bold;
|
|
color: #222;
|
|
margin-bottom: 32px;
|
|
}
|
|
.cancel-row {
|
|
width: 80%;
|
|
display: flex;
|
|
align-items: center;
|
|
position: relative;
|
|
margin-bottom: 8px;
|
|
}
|
|
.arrow-icon {
|
|
color: #fd7e14;
|
|
font-size: 18px;
|
|
margin: 0 6px;
|
|
z-index: 2;
|
|
}
|
|
.dashed-line {
|
|
flex: 1;
|
|
border-bottom: 2px dashed #fd7e14;
|
|
height: 0;
|
|
margin-left: -8px;
|
|
}
|
|
.book-bg {
|
|
position: absolute;
|
|
left: 50%;
|
|
bottom: 0;
|
|
transform: translateX(-50%);
|
|
width: 220px;
|
|
height: 180px;
|
|
background: url('/static/auth/headImage.png') no-repeat center/contain;
|
|
opacity: 0.08;
|
|
z-index: 0;
|
|
}
|
|
</style>
|