合同小程序前端代码仓库
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.
 
 
 
 
 

346 lines
7.1 KiB

<template>
<view class="login-container">
<!-- 顶部欢迎语 -->
<view class="login_image">
<image class="login_image_img" src="/static/image/组件 3 – 1.png" ></image>
</view>
<view class="welcome">
<text class="welcome-text">欢迎登陆车辆合同生成</text>
</view>
<!-- 账号输入框 -->
<view class="input-container">
<uni-easyinput prefixIcon="person" class="input" placeholder="请输入您的账号" v-model="username" :inputBorder='false' :clearable='false' >
</uni-easyinput>
<view class="underline"></view>
</view>
<!-- 密码输入框 -->
<view class="input-container">
<uni-easyinput prefixIcon="locked" class="input" type="password" placeholder="请输入您的密码" v-model="password" :inputBorder='false' :passwordIcon="false" :clearable='false'></uni-easyinput>
<view class="underline"></view>
</view>
<!-- 协议提示 -->
<view class="agreement">
<radio class = "login-agree" value="r1" :checked="checked" @click="changeCK">登录即代表同意
</radio>
<text class="link" @click="showModals">《用户协议》</text>
<text class="login-agree">与</text>
<text class="link" @click="showModal">《隐私政策》</text>
</view>
<view class = 'button_container'>
<!-- 登录按钮 -->
<view class="login-button" @click="handleLogin">
<button class="login-buttons" >登陆</button>
</view>
</view>
<mosowe-confirm-popup
v-model="popupNoCancelShow"
title="服务协议和隐私政策"
confirmText
cancelText
>
<text v-html="privacy"></text>
<template v-slot:footer>
<view class="mini_container">
<button class="mini-btn" type="primary" size="mini" @click="closeModal">取消</button>
<button class="mini-btn" type="primary" size="mini" @click="getConfirm">确认</button>
</view>
</template>
</mosowe-confirm-popup>
<mosowe-confirm-popup
v-model="popupNoCancelShow1"
title="用户协议"
confirmText
cancelText
>
<text v-html="agreement"></text>
<template v-slot:footer>
<view class="mini_container">
<button class="mini-btn" type="primary" size="mini" @click="closeModals">取消</button>
<button class="mini-btn" type="primary" size="mini" @click="getConfirms">确认</button>
</view>
</template>
</mosowe-confirm-popup>
</view>
</template>
<script>
import {login,getInfoList} from '@/api.uts';
export default {
data() {
return {
username: '', // 账号
password: '', // 密码
isModalVisible: false, // 控制弹窗显示
modalTitle: '', // 弹窗标题
modalContent: '' ,// 弹窗内容
popupNoCancelShow: false,
popupNoCancelShow1:false,
checked:false,
agreement:'',
privacy:''
};
},
mounted() {
getInfoList().then((res)=>{
getApp().aboutUs = res.result[0].aboutUs;
this.privacy = res.result[0].privacy;
this.agreement = res.result[0].agreement;
})
},
methods: {
// 处理登录逻辑
handleLogin() {
if (!this.username || !this.password) {
uni.showToast({ title: '请输入账号和密码', icon: 'none' });
return;
}else{
if(this.checked){
let usr = {
'username' : this.username,
'password' :this.password
}
login(usr).then((res)=>{
uni.setStorageSync('token',res.result.token);
getApp().usrInfo = res.result.userInfo;
if(res.success){
uni.showToast({
title: '登录成功',
icon: 'success',
success: (res) => {
uni.switchTab({ url: '/pages/home/home' });
}
})
}
}).catch(
(err)=>{
uni.showToast({ title: '账号或密码错误,请重新输入!', icon: 'none' });
}
)
}else{
uni.showToast({ title: '请勾选服务协议', icon: 'none' });
}
}
},
// 显示弹窗
showModal() {
this.popupNoCancelShow = true ;
},
showModals(){
this.popupNoCancelShow1 = true ;
},
// 关闭弹窗
closeModal() {
this.popupNoCancelShow = false ;
},
closeModals() {
this.popupNoCancelShow1 = false ;
},
change(e) {
},
changeCK(){
if(this.checked){
this.checked = false;
}else{
this.checked = true;
}
},
// 处理选中事件
getConfirm(){
if(this.checked){
this.checked = this.checked;
}else{
this.checked = true;
}
this.popupNoCancelShow = false;
},
getConfirms(){
if(this.checked){
this.checked = this.checked;
}else{
this.checked = true;
}
this.popupNoCancelShow1 = false;
}
}
};
</script>
<style>
/* 页面容器 */
.login-container {
display: flex;
flex-direction: column;
align-items: center;
background-color: #ffffff;
height: 100vh;
width: 100%;
}
.button-text {
color: #fff;
font-size: 12rem;
}
/* 登录图片 */
.login_image{
width: 100%;
height: 40%;
}
.login_image_img{
width: 100%;
height: 100%;
}
/* 欢迎语 */
.welcome {
height: 15%;
margin-bottom: 10%;
display: flex;
justify-content: end;
align-items: center;
}
.welcome-text {
font-size: 1.3rem;
font-weight: bold;
color: #044f7a;
}
/* 输入框容器 */
.input-container {
width: 70%;
height: 7%;
/* background-color: #007aff; */
display: flex;
flex-direction: column;
align-items: center;
}
/* 输入框样式 */
.input {
width: 100%;
height: 99%;
font-size: 1rem;
border: none;
outline: none;
background-color: transparent;
/* z-index: 99; */
}
/* 下划线样式 */
.underline {
width: 100%;
height: 0.1%;
background-color: #f2f2f2;
}
/* 协议提示 */
.agreement {
font-size: 1rem;
color: #666;
margin-bottom: 1.2rem;
width: 90%;
left:10%;
display: flex;
flex-direction: row;
align-items: center;
}
.login-agree{
font-size: 0.6rem;
transform: scale(0.9);
}
.link {
color: #007aff;
text-decoration: underline;
font-size: 0.6rem;
}
.button_container{
width: 100%;
height: 40%;
display: flex;
align-items: center;
/* background-color: #007aff; */
}
/* 登录按钮 */
.login-button {
width: 70%;
height: 10%;
line-height: 10%;
background-color: #044f7a;
color: #fff;
border: none;
border-radius: 4rem;
font-size: 1rem;
position: absolute;
top:15%;
left:15%;
display: flex;
justify-content: center;
align-items: center;
}
.login-buttons{
width: 100%;
background-color: #044f7a;
color: #fff;
}
/* 弹窗样式 */
.modal {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
justify-content: center;
align-items: center;
}
.modal-content {
width: 80%;
background-color: #fff;
border-radius: 0.5rem;
padding: 1.5rem;
}
.modal-header {
display: flex;
justify-content: space-between;
align-items: center;
font-size: 1rem;
font-weight: bold;
margin-bottom: 1rem;
}
.close {
font-size: 1.5rem;
cursor: pointer;
}
.modal-body {
font-size: 1rem;
line-height: 1.5;
}
.mini_container{
display: flex;
flex-direction: row;
align-items: center;
}
/* 按钮 */
.mini-btn{
width: 30%;
margin-left: 15%;
}
</style>