|
@@ -0,0 +1,143 @@
|
|
|
|
|
+<template>
|
|
|
|
|
+ <div class="login-choice">
|
|
|
|
|
+ <div class="btn-wrapper">
|
|
|
|
|
+ <button @click="emit('login')">
|
|
|
|
|
+ <h3>登录</h3>
|
|
|
|
|
+ <span>登录后可获得积分,兑换奖品</span>
|
|
|
|
|
+ </button>
|
|
|
|
|
+ <button @click="emit('signUp')">
|
|
|
|
|
+ <h3>注册</h3>
|
|
|
|
|
+ </button>
|
|
|
|
|
+ <button @click="emit('visitor')">
|
|
|
|
|
+ <h3>游客</h3>
|
|
|
|
|
+ <span>游客模式下只能体验游戏<br>无法累积积分</span>
|
|
|
|
|
+ </button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <button
|
|
|
|
|
+ class="close"
|
|
|
|
|
+ @click="emit('close')"
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
|
|
+</template>
|
|
|
|
|
+
|
|
|
|
|
+<script setup>
|
|
|
|
|
+import { ref, computed, watch, onMounted } from "vue"
|
|
|
|
|
+import { useRoute, useRouter } from "vue-router"
|
|
|
|
|
+import { useStore } from "vuex"
|
|
|
|
|
+
|
|
|
|
|
+const route = useRoute()
|
|
|
|
|
+const router = useRouter()
|
|
|
|
|
+const store = useStore()
|
|
|
|
|
+
|
|
|
|
|
+const {
|
|
|
|
|
+ windowSizeInCssForRef,
|
|
|
|
|
+ windowSizeWhenDesignForRef,
|
|
|
|
|
+} = useSizeAdapt(390, 752)
|
|
|
|
|
+
|
|
|
|
|
+const emit = defineEmits(['login', 'signUp', 'visitor', 'close'])
|
|
|
|
|
+
|
|
|
|
|
+</script>
|
|
|
|
|
+
|
|
|
|
|
+<style lang="less" scoped>
|
|
|
|
|
+.login-choice{
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ left: 0;
|
|
|
|
|
+ top: 0;
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ height: 100%;
|
|
|
|
|
+ background: rgba(0,0,0,0.7);
|
|
|
|
|
+ backdrop-filter: blur(calc(20 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef')));
|
|
|
|
|
+ >.btn-wrapper{
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ left: 50%;
|
|
|
|
|
+ top: calc(152 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ transform: translate(-50%, 0);
|
|
|
|
|
+ width: calc(336 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ height: calc(401 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ background: #FFFFFF;
|
|
|
|
|
+ border-radius: calc(11 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ justify-content: space-evenly;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ padding-top: calc(10 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ padding-bottom: calc(10 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ >button{
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+ width: calc(289 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ height: calc(99 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ >h3{
|
|
|
|
|
+ font-size: calc(24 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ font-family: Source Han Sans SC, Source Han Sans SC;
|
|
|
|
|
+ font-weight: bold;
|
|
|
|
|
+ color: #C5A16C;
|
|
|
|
|
+ line-height: calc(28 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ }
|
|
|
|
|
+ >span{
|
|
|
|
|
+ font-size: calc(11 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ font-family: Source Han Sans SC, Source Han Sans SC;
|
|
|
|
|
+ font-weight: 400;
|
|
|
|
|
+ color: #C5A16C;
|
|
|
|
|
+ line-height: calc(13 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ >button:nth-of-type(1) {
|
|
|
|
|
+ background-image: url(@/assets/images/btn-login-bg-2.png);
|
|
|
|
|
+ background-size: cover;
|
|
|
|
|
+ background-repeat: no-repeat;
|
|
|
|
|
+ background-position: center center;
|
|
|
|
|
+ >h3{
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ left: calc(122 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ top: calc(25 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ }
|
|
|
|
|
+ >span{
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ left: calc(122 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ top: calc(57 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ >button:nth-of-type(2) {
|
|
|
|
|
+ background-image: url(@/assets/images/btn-sign-up-bg-2.png);
|
|
|
|
|
+ background-size: cover;
|
|
|
|
|
+ background-repeat: no-repeat;
|
|
|
|
|
+ background-position: center center;
|
|
|
|
|
+ >h3{
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ top: calc(40 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ left: calc(122 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ >button:nth-of-type(3) {
|
|
|
|
|
+ background-image: url(@/assets/images/btn-visitor-bg.png);
|
|
|
|
|
+ background-size: cover;
|
|
|
|
|
+ background-repeat: no-repeat;
|
|
|
|
|
+ background-position: center center;
|
|
|
|
|
+ >h3{
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ left: calc(122 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ top: calc(20 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ }
|
|
|
|
|
+ >span{
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ left: calc(122 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ top: calc(52 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ width: calc(121 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ text-align: left;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ >button.close{
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ left: 50%;
|
|
|
|
|
+ top: calc(582 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ transform: translate(-50%, 0);
|
|
|
|
|
+ width: calc(52 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ height: calc(52 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ background-image: url(@/assets/images/icon-close.png);
|
|
|
|
|
+ background-size: cover;
|
|
|
|
|
+ background-repeat: no-repeat;
|
|
|
|
|
+ background-position: center center;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+</style>
|