|
@@ -0,0 +1,410 @@
|
|
|
|
|
+<template>
|
|
|
|
|
+ <div class="game-view">
|
|
|
|
|
+ <img
|
|
|
|
|
+ class="title"
|
|
|
|
|
+ src="@/assets/images/plant-tree-title.png"
|
|
|
|
|
+ alt=""
|
|
|
|
|
+ draggable="false"
|
|
|
|
|
+ >
|
|
|
|
|
+ <!-- 左上角按钮 -->
|
|
|
|
|
+ <div class="btn-group">
|
|
|
|
|
+ <button
|
|
|
|
|
+ class="return-home"
|
|
|
|
|
+ @click="onClickReturnHome"
|
|
|
|
|
+ />
|
|
|
|
|
+ <button class="game-rule" />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <!-- 树苗 -->
|
|
|
|
|
+ <transition
|
|
|
|
|
+ name="fade-in-out"
|
|
|
|
|
+ mode="out-in"
|
|
|
|
|
+ >
|
|
|
|
|
+ <img
|
|
|
|
|
+ v-if="currentStepIdx === 0 || currentStepIdx === 1"
|
|
|
|
|
+ class="tree"
|
|
|
|
|
+ :style="{
|
|
|
|
|
+ width: `calc(108 / ${windowSizeWhenDesignForRef} * ${windowSizeInCssForRef})`,
|
|
|
|
|
+ }"
|
|
|
|
|
+ src="@/assets/images/plant-tree-tree-1.png"
|
|
|
|
|
+ alt=""
|
|
|
|
|
+ draggable="false"
|
|
|
|
|
+ >
|
|
|
|
|
+ <img
|
|
|
|
|
+ v-else-if="currentStepIdx === 2 || currentStepIdx === 3"
|
|
|
|
|
+ class="tree"
|
|
|
|
|
+ :style="{
|
|
|
|
|
+ width: `calc(242 / ${windowSizeWhenDesignForRef} * ${windowSizeInCssForRef})`,
|
|
|
|
|
+ }"
|
|
|
|
|
+ src="@/assets/images/plant-tree-tree-2.png"
|
|
|
|
|
+ alt=""
|
|
|
|
|
+ draggable="false"
|
|
|
|
|
+ >
|
|
|
|
|
+ <img
|
|
|
|
|
+ v-else-if="currentStepIdx === 4"
|
|
|
|
|
+ class="tree"
|
|
|
|
|
+ :style="{
|
|
|
|
|
+ width: `calc(380 / ${windowSizeWhenDesignForRef} * ${windowSizeInCssForRef})`,
|
|
|
|
|
+ }"
|
|
|
|
|
+ :src="require(`@/assets/images/plant-tree-tree-3.png`)"
|
|
|
|
|
+ alt=""
|
|
|
|
|
+ draggable="false"
|
|
|
|
|
+ >
|
|
|
|
|
+ </transition>
|
|
|
|
|
+ <!-- 进度条 -->
|
|
|
|
|
+ <div class="progress-wrapper">
|
|
|
|
|
+ <div
|
|
|
|
|
+ class="current-progress"
|
|
|
|
|
+ :style="{
|
|
|
|
|
+ width: `${stepList[currentStepIdx].progress}%`,
|
|
|
|
|
+ }"
|
|
|
|
|
+ />
|
|
|
|
|
+ <div
|
|
|
|
|
+ v-show="progress >= 5"
|
|
|
|
|
+ class="highlight"
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <!-- 提示 -->
|
|
|
|
|
+ <div
|
|
|
|
|
+ class="tip"
|
|
|
|
|
+ v-html="stepList[currentStepIdx].tip()"
|
|
|
|
|
+ />
|
|
|
|
|
+ <!-- 工具栏 -->
|
|
|
|
|
+ <div
|
|
|
|
|
+ v-show="!isOver"
|
|
|
|
|
+ class="tool-bar"
|
|
|
|
|
+ >
|
|
|
|
|
+ <button
|
|
|
|
|
+ v-for="tool in toolList"
|
|
|
|
|
+ :key="tool.toolIdx"
|
|
|
|
|
+ @click="onClickTool(tool.toolIdx)"
|
|
|
|
|
+ >
|
|
|
|
|
+ <img
|
|
|
|
|
+ class=""
|
|
|
|
|
+ :src="require(`@/assets/images/plant-tree-tool-${tool.toolIdx + 1}.png`)"
|
|
|
|
|
+ alt=""
|
|
|
|
|
+ draggable="false"
|
|
|
|
|
+ >
|
|
|
|
|
+ </button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <!-- 游戏结束后按钮 -->
|
|
|
|
|
+ <button
|
|
|
|
|
+ v-show="isOver"
|
|
|
|
|
+ class="game-over-confirm"
|
|
|
|
|
+ >
|
|
|
|
|
+ 返回首页
|
|
|
|
|
+ </button>
|
|
|
|
|
+ <!-- 底部信息栏 -->
|
|
|
|
|
+ <div
|
|
|
|
|
+ v-show="!isOver"
|
|
|
|
|
+ class="common-info-group"
|
|
|
|
|
+ >
|
|
|
|
|
+ <div class="info-item bonus-point">
|
|
|
|
|
+ <img
|
|
|
|
|
+ class="icon"
|
|
|
|
|
+ src="@/assets/images/icon_bonus_point.png"
|
|
|
|
|
+ alt=""
|
|
|
|
|
+ draggable="false"
|
|
|
|
|
+ >
|
|
|
|
|
+ <span class="number">{{ bonusPoint }}</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+</template>
|
|
|
|
|
+
|
|
|
|
|
+<script setup>
|
|
|
|
|
+import useSizeAdapt from "@/useFunctions/useSizeAdapt"
|
|
|
|
|
+import { ref, computed, watch, onMounted, onBeforeUnmount, nextTick } from "vue"
|
|
|
|
|
+import { useRoute, useRouter } from "vue-router"
|
|
|
|
|
+import { useStore } from "vuex"
|
|
|
|
|
+import dayjs from 'dayjs'
|
|
|
|
|
+import { showDialog } from 'vant'
|
|
|
|
|
+import { shuffle } from 'lodash'
|
|
|
|
|
+
|
|
|
|
|
+const route = useRoute()
|
|
|
|
|
+const router = useRouter()
|
|
|
|
|
+const store = useStore()
|
|
|
|
|
+
|
|
|
|
|
+const {
|
|
|
|
|
+ windowSizeInCssForRef,
|
|
|
|
|
+ windowSizeWhenDesignForRef,
|
|
|
|
|
+} = useSizeAdapt(390, 752)
|
|
|
|
|
+
|
|
|
|
|
+function onClickReturnHome() {
|
|
|
|
|
+ router.push({
|
|
|
|
|
+ name: 'HomeView',
|
|
|
|
|
+ })
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * 游戏规则
|
|
|
|
|
+ */
|
|
|
|
|
+const bonusPoint = ref(0)
|
|
|
|
|
+const toolList = ref([
|
|
|
|
|
+ {
|
|
|
|
|
+ toolIdx: 0,
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ toolIdx: 1,
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ toolIdx: 2,
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ toolIdx: 3,
|
|
|
|
|
+ },
|
|
|
|
|
+])
|
|
|
|
|
+toolList.value = shuffle(toolList.value)
|
|
|
|
|
+const stepList = [
|
|
|
|
|
+ {
|
|
|
|
|
+ tip: () => {
|
|
|
|
|
+ return '为树苗浇水'
|
|
|
|
|
+ },
|
|
|
|
|
+ progress: 0,
|
|
|
|
|
+ toolIdx: 1,
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ tip: () => {
|
|
|
|
|
+ return '为树苗施肥'
|
|
|
|
|
+ },
|
|
|
|
|
+ progress: 25,
|
|
|
|
|
+ toolIdx: 3,
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ tip: () => {
|
|
|
|
|
+ return '为树苗除虫'
|
|
|
|
|
+ },
|
|
|
|
|
+ progress: 50,
|
|
|
|
|
+ toolIdx: 2,
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ tip: () => {
|
|
|
|
|
+ return '请修剪枝干'
|
|
|
|
|
+ },
|
|
|
|
|
+ progress: 75,
|
|
|
|
|
+ toolIdx: 0,
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ tip: () => {
|
|
|
|
|
+ return `您已完成种植,获得<span class="number">${bonusPoint.value}</span>积分<br>请明天再来`
|
|
|
|
|
+ },
|
|
|
|
|
+ progress: 100,
|
|
|
|
|
+ },
|
|
|
|
|
+]
|
|
|
|
|
+const currentStepIdx = ref(0)
|
|
|
|
|
+const lastPlayTimeStr = localStorage.getItem('plant-tree-last-time')
|
|
|
|
|
+if (process.env.VUE_APP_CLI_MODE !== 'dev') {
|
|
|
|
|
+ if (lastPlayTimeStr) {
|
|
|
|
|
+ const lastPlayTime = new Date(Number(lastPlayTimeStr))
|
|
|
|
|
+ const lastPlayYear = lastPlayTime.getFullYear()
|
|
|
|
|
+ const lastPlayMonth = lastPlayTime.getMonth()
|
|
|
|
|
+ const lastPlayDay = lastPlayTime.getDay()
|
|
|
|
|
+
|
|
|
|
|
+ const currentTime = new Date()
|
|
|
|
|
+ const currentYear = currentTime.getFullYear()
|
|
|
|
|
+ const currentMonth = currentTime.getMonth()
|
|
|
|
|
+ const currentDay = currentTime.getDay()
|
|
|
|
|
+
|
|
|
|
|
+ if (lastPlayYear === currentYear && lastPlayMonth === currentMonth && lastPlayDay === currentDay) {
|
|
|
|
|
+ currentStepIdx.value = 4
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+const isOver = computed(() => {
|
|
|
|
|
+ return currentStepIdx.value === stepList.length - 1
|
|
|
|
|
+})
|
|
|
|
|
+watch(isOver, (vNew) => {
|
|
|
|
|
+ if (vNew) {
|
|
|
|
|
+ localStorage.setItem('plant-tree-last-time', (new Date()).getTime())
|
|
|
|
|
+ }
|
|
|
|
|
+})
|
|
|
|
|
+function onClickTool(toolIdx) {
|
|
|
|
|
+ if (toolIdx !== stepList[currentStepIdx.value].toolIdx ) {
|
|
|
|
|
+ showDialog({
|
|
|
|
|
+ message: '请选择正确的道具',
|
|
|
|
|
+ theme: 'round-button',
|
|
|
|
|
+ })
|
|
|
|
|
+ } else {
|
|
|
|
|
+ if (currentStepIdx.value < stepList.length - 1) {
|
|
|
|
|
+ currentStepIdx.value++
|
|
|
|
|
+ bonusPoint.value += 10
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+</script>
|
|
|
|
|
+
|
|
|
|
|
+<style lang="less" scoped>
|
|
|
|
|
+.game-view{
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ left: 0;
|
|
|
|
|
+ top: 0;
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ height: 100%;
|
|
|
|
|
+ background-image: url(@/assets/images/plant-tree-bg.jpg);
|
|
|
|
|
+ background-size: cover;
|
|
|
|
|
+ background-repeat: no-repeat;
|
|
|
|
|
+ background-position: center bottom;
|
|
|
|
|
+ >img.title{
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ left: 50%;
|
|
|
|
|
+ top: calc(10 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ transform: translate(-50%, 0);
|
|
|
|
|
+ width: calc(173 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ height: calc(85 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ >.btn-group{
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ top: calc(36 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ right: calc(12 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: calc(16 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ >button.return-home{
|
|
|
|
|
+ background-image: url(@/assets/images/icon_home_dark.png);
|
|
|
|
|
+ background-size: contain;
|
|
|
|
|
+ background-repeat: no-repeat;
|
|
|
|
|
+ background-position: center center;
|
|
|
|
|
+ width: calc(40 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ height: calc(40 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ }
|
|
|
|
|
+ >button.game-rule{
|
|
|
|
|
+ background-image: url(@/assets/images/icon_rules_dark.png);
|
|
|
|
|
+ background-size: contain;
|
|
|
|
|
+ background-repeat: no-repeat;
|
|
|
|
|
+ background-position: center center;
|
|
|
|
|
+ width: calc(40 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ height: calc(40 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ >img.tree{
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ left: 50%;
|
|
|
|
|
+ bottom: calc(260 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ transform: translate(-50%, 0);
|
|
|
|
|
+ }
|
|
|
|
|
+ >.progress-wrapper{
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ left: 50%;
|
|
|
|
|
+ bottom: calc(230 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ transform: translate(-50%, 0);
|
|
|
|
|
+ background-image: url(@/assets/images/plant-tree-progress-frame.png);
|
|
|
|
|
+ background-size: contain;
|
|
|
|
|
+ background-repeat: no-repeat;
|
|
|
|
|
+ background-position: center center;
|
|
|
|
|
+ width: calc(185 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ height: calc(20 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ padding-left: calc(6 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ padding-right: calc(6 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ padding-top: calc(4.5 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ padding-bottom: calc(4 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ >.current-progress{
|
|
|
|
|
+ height: 100%;
|
|
|
|
|
+ background: linear-gradient(181deg, #EDC540 0%, #FFF170 100%);
|
|
|
|
|
+ box-shadow: inset 0px 1px 1px 0px #F7E2A6;
|
|
|
|
|
+ border-radius: calc(6 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ }
|
|
|
|
|
+ >.highlight{
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ top: calc(5 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ left: calc(9 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ width: calc(3 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ height: calc(2 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ background: #FFFFFF;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ >.tip{
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ left: 50%;
|
|
|
|
|
+ bottom: calc(200 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ transform: translate(-50%, 50%);
|
|
|
|
|
+ font-size: calc(16 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ font-family: Source Han Sans SC, Source Han Sans SC;
|
|
|
|
|
+ font-weight: 400;
|
|
|
|
|
+ color: #3E5851;
|
|
|
|
|
+ line-height: calc(19 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ white-space: pre;
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ :deep(>.number){
|
|
|
|
|
+ font-size: calc(32 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ font-family: heiti;
|
|
|
|
|
+ font-weight: 400;
|
|
|
|
|
+ color: #FFFFFF;
|
|
|
|
|
+ line-height: 1.5;
|
|
|
|
|
+ margin-left: 0.2em;
|
|
|
|
|
+ margin-right: 0.2em;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ >.tool-bar{
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ left: 50%;
|
|
|
|
|
+ bottom: calc(120 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ transform: translate(-50%, 50%);
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ gap: calc(7 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ >button{
|
|
|
|
|
+ width: calc(85 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ height: calc(85 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ >img{
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ height: 100%;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ >button.game-over-confirm{
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ left: 50%;
|
|
|
|
|
+ bottom: calc(120 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ transform: translate(-50%, 50%);
|
|
|
|
|
+ width: calc(300 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ height: calc(70 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ background: linear-gradient(180deg, #F6D340 0%, #EFB622 100%);
|
|
|
|
|
+ box-shadow: 0px calc(4 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef')) calc(11 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef')) 0px rgba(0,0,0,0.25);
|
|
|
|
|
+ border-radius: calc(35 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ opacity: 1;
|
|
|
|
|
+ border: calc(6 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef')) solid #FFFFFF;
|
|
|
|
|
+ font-size: calc(28 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ font-family: Source Han Sans SC, Source Han Sans SC;
|
|
|
|
|
+ font-weight: 800;
|
|
|
|
|
+ color: #FFFFFF;
|
|
|
|
|
+ line-height: calc(32 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ -webkit-text-stroke: calc(2 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef')) #4E3933;
|
|
|
|
|
+ }
|
|
|
|
|
+ >.common-info-group{
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ left: 50%;
|
|
|
|
|
+ bottom: calc(23 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ transform: translate(-50%, 0);
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ gap: calc(11 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ >.info-item{
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ align-items: flex-end;
|
|
|
|
|
+ width: calc(143 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ height: calc(28 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ padding-left: calc(5 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ padding-right: calc(18 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ padding-bottom: calc(3 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ background: #6ABC63;
|
|
|
|
|
+ border-radius: calc(14 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ box-shadow: #2E9A4F calc(2 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef')) calc(3 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef')) 0 0;
|
|
|
|
|
+ >.icon{
|
|
|
|
|
+ }
|
|
|
|
|
+ >.number{
|
|
|
|
|
+ font-size: calc(20 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ font-family: heiti;
|
|
|
|
|
+ font-weight: 400;
|
|
|
|
|
+ color: #FFFFFF;
|
|
|
|
|
+ line-height: calc(23 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ >.bonus-point{
|
|
|
|
|
+ >.icon{
|
|
|
|
|
+ width: calc(46 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ height: calc(41 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+</style>
|