<template>
|
|
<div class="login">
|
|
<!-- logo -->
|
|
<div class="logo">
|
|
打卡系统
|
|
</div>
|
|
|
|
<!-- 标题 -->
|
|
<view class="login-title">工程项目打卡系统</view>
|
|
|
|
<!-- 使用说明 -->
|
|
<view class="usage-notice">
|
|
<text class="notice-icon">⚠️</text>
|
|
<text class="notice-text">仅限公司内部人员使用</text>
|
|
<text class="notice-desc">请确保您是本公司员工,未经授权禁止使用</text>
|
|
</view>
|
|
|
|
<!-- 登录按钮 -->
|
|
<view @click="login" class="login-btn">
|
|
<uni-icons type="weixin" size="30" color="#fff"></uni-icons>
|
|
<text class="wx">微信登录</text>
|
|
</view>
|
|
|
|
<!-- 隐私政策 -->
|
|
<view class="privacy">
|
|
<uv-radio-group>
|
|
<uv-checkbox-group v-model="consent">
|
|
<uv-checkbox :size="30" shape="circle" active-color="#05C160" :name="privacy"></uv-checkbox>
|
|
</uv-checkbox-group>
|
|
已同意
|
|
<!-- <text class="privacy-title">《隐私政策》</text> -->
|
|
<text class="privacy-title" @click="$refs.popup.open('bottom')">《服务条款》</text>
|
|
</uv-radio-group>
|
|
</view>
|
|
|
|
<uv-popup ref="popup" :round="30" :customStyle="{height: '50vh'}">
|
|
<view class="content">
|
|
<uv-parse :content="content"></uv-parse>
|
|
</view>
|
|
</uv-popup>
|
|
|
|
<!-- 隐私政策弹框 -->
|
|
<PrivacyAgreementPoup></PrivacyAgreementPoup>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import PrivacyAgreementPoup from '@/components/PrivacyAgreementPoup/PrivacyAgreementPoup.vue'
|
|
import txt from './txt.js'
|
|
export default {
|
|
name : "Login",
|
|
components : { PrivacyAgreementPoup },
|
|
data() {
|
|
return {
|
|
consent : [],
|
|
content : '',
|
|
}
|
|
},
|
|
onLoad() {
|
|
this.content = txt.txt.replaceAll('\n', '<br>')
|
|
},
|
|
methods: {
|
|
login() {
|
|
if(this.consent.length <= 0){
|
|
return uni.showToast({
|
|
icon: "none",
|
|
title: "请勾选隐私协议"
|
|
})
|
|
}
|
|
this.$store.commit('login')
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.login {
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
align-items: center;
|
|
min-height: 100vh;
|
|
background: white;
|
|
// logo
|
|
.logo {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 20rpx 0rpx;
|
|
width: 40%;
|
|
color: white;
|
|
background: linear-gradient(180deg, #4C9EEA, #6DB9FF);
|
|
border-radius: 45rpx 13rpx 45rpx 13rpx;
|
|
font-size: 60rpx;
|
|
}
|
|
|
|
// 标题
|
|
.login-title {
|
|
font-size: 40rpx;
|
|
font-weight: bold;
|
|
margin: 20rpx 0rpx;
|
|
}
|
|
|
|
// 使用说明
|
|
.usage-notice {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
width: 80%;
|
|
margin: 40rpx 0rpx;
|
|
padding: 30rpx 20rpx;
|
|
background: linear-gradient(135deg, #fff3e0, #ffecb3);
|
|
border: 2rpx solid #ff9800;
|
|
border-radius: 20rpx;
|
|
box-shadow: 0rpx 4rpx 12rpx rgba(255, 152, 0, 0.2);
|
|
|
|
.notice-icon {
|
|
font-size: 32rpx;
|
|
margin-bottom: 10rpx;
|
|
}
|
|
|
|
.notice-text {
|
|
font-size: 28rpx;
|
|
font-weight: bold;
|
|
color: #e65100;
|
|
margin-bottom: 8rpx;
|
|
text-align: center;
|
|
}
|
|
|
|
.notice-desc {
|
|
font-size: 22rpx;
|
|
color: #bf360c;
|
|
text-align: center;
|
|
line-height: 1.4;
|
|
}
|
|
}
|
|
|
|
//登录按钮
|
|
.login-btn {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
width: 70%;
|
|
background: #05C160;
|
|
height: 90rpx;
|
|
border-radius: 45rpx;
|
|
color: white;
|
|
margin-top: 200rpx;
|
|
|
|
.wx {
|
|
margin-left: 10rpx;
|
|
}
|
|
}
|
|
|
|
//隐私政策
|
|
.privacy {
|
|
display: flex;
|
|
align-items: center;
|
|
margin-top: 20rpx;
|
|
|
|
&::v-deep .uv-checkbox-group {
|
|
align-items: center !important;
|
|
justify-content: center !important;
|
|
flex-wrap : nowrap !important;
|
|
}
|
|
|
|
.privacy-title {
|
|
color: #05C160;
|
|
}
|
|
}
|
|
|
|
.content{
|
|
padding: 30rpx 20rpx;
|
|
overflow: scroll;
|
|
height: 100%;
|
|
box-sizing: border-box;
|
|
}
|
|
}
|
|
</style>
|