123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- <template>
- <el-row>
- <el-col :span="8">
- <el-countdown title="Start to grab" :value="value" />
- </el-col>
- <el-col :span="8">
- <el-countdown
- title="Remaining VIP time"
- format="HH:mm:ss"
- :value="value1"
- />
- <el-button class="countdown-footer" type="primary" @click="reset"
- >Reset
- </el-button>
- </el-col>
- <el-col :span="8">
- <el-countdown format="DD [days] HH:mm:ss" :value="value2">
- <template #title>
- <div style="display: inline-flex; align-items: center">
- <el-icon style="margin-right: 4px" :size="12">
- <Calendar />
- </el-icon>
- Still to go until next month
- </div>
- </template>
- </el-countdown>
- <div class="countdown-footer">{{ value2.format('YYYY-MM-DD') }}</div>
- </el-col>
- </el-row>
- </template>
- <script lang="ts" setup>
- import { ref } from 'vue'
- import dayjs from 'dayjs'
- import { Calendar } from '@element-plus/icons-vue'
- const value = ref(Date.now() + 1000 * 60 * 60 * 7)
- const value1 = ref(Date.now() + 1000 * 60 * 60 * 24 * 2)
- const value2 = ref(dayjs().add(1, 'month').startOf('month'))
- function reset() {
- value1.value = Date.now() + 1000 * 60 * 60 * 24 * 2
- }
- </script>
- <style scoped>
- .el-col {
- text-align: center;
- }
- .countdown-footer {
- margin-top: 8px;
- }
- </style>
|