Homepage-imsyy/src/components/TimeCapsule/index.vue

105 lines
2.5 KiB
Vue
Raw Normal View History

2023-01-15 05:22:30 +00:00
<template>
<div class="time-capsule">
<div class="title">
<hourglass-full
theme="two-tone"
size="24"
:fill="['#efefef', '#00000020']"
/>
<span>时光胶囊</span>
</div>
<span class="text"
2023-03-10 07:51:18 +00:00
>今日已经度过了&nbsp;{{ timeData.day.elapsed }}&nbsp;小时</span
2023-01-15 05:22:30 +00:00
>
<el-progress
:text-inside="true"
:stroke-width="20"
:percentage="timeData.day.pass"
/>
<span class="text"
2023-03-10 07:51:18 +00:00
>本周已经度过了&nbsp;{{ timeData.week.elapsed }}&nbsp;</span
2023-01-15 05:22:30 +00:00
>
<el-progress
:text-inside="true"
:stroke-width="20"
:percentage="timeData.week.pass"
/>
<span class="text"
2023-03-10 07:51:18 +00:00
>本月已经度过了&nbsp;{{ timeData.month.elapsed }}&nbsp;</span
2023-01-15 05:22:30 +00:00
>
<el-progress
:text-inside="true"
:stroke-width="20"
:percentage="timeData.month.pass"
/>
<span class="text"
2023-03-10 07:51:18 +00:00
>今年已经度过了&nbsp;{{ timeData.year.elapsed }}&nbsp;个月</span
2023-01-15 05:22:30 +00:00
>
<el-progress
:text-inside="true"
:stroke-width="20"
:percentage="timeData.year.pass"
/>
2023-02-02 03:06:16 +00:00
<div v-if="startDateText && store.siteStartShow">
<span class="text" v-html="startDateText" />
<!-- <el-progress
:show-text="false"
:indeterminate="true"
:stroke-width="6"
:percentage="80"
:duration="2"
/> -->
</div>
2023-01-15 05:22:30 +00:00
</div>
</template>
<script setup>
import { onMounted, onBeforeUnmount, ref } from "vue";
import { HourglassFull } from "@icon-park/vue-next";
2023-02-02 03:06:16 +00:00
import { getTimeCapsule, siteDateStatistics } from "@/utils/getTime.js";
import { mainStore } from "@/store";
const store = mainStore();
2023-01-15 05:22:30 +00:00
// 进度条数据
let timeData = ref(getTimeCapsule());
2023-02-02 03:06:16 +00:00
let startDate = ref(import.meta.env.VITE_SITE_START);
let startDateText = ref(null);
2023-01-15 05:22:30 +00:00
let timeInterval = null;
onMounted(() => {
timeInterval = setInterval(() => {
timeData.value = getTimeCapsule();
2023-02-02 03:06:16 +00:00
if (startDate.value)
startDateText.value = siteDateStatistics(new Date(startDate.value));
2023-01-15 05:22:30 +00:00
}, 1000);
});
onBeforeUnmount(() => {
clearInterval(timeInterval);
});
</script>
<style lang="scss" scoped>
.time-capsule {
width: 100%;
.title {
display: flex;
flex-direction: row;
align-items: center;
margin: 0.2rem 0 1.5rem;
font-size: 1.1rem;
.i-icon {
display: flex;
justify-content: center;
align-items: center;
margin-right: 6px;
}
}
.text {
display: block;
margin: 1rem 0rem 0.5rem 0rem;
font-size: 0.95rem;
}
}
2023-03-10 07:51:18 +00:00
</style>