【PT.SCC实名制管理系统】24.10.01 -30天,考勤打卡小程序
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.
 
 
 
 

179 lines
3.7 KiB

<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>