| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <script setup lang="ts">
- import { ContentWrap } from '@/components/ContentWrap'
- import { useI18n } from '@/hooks/web/useI18n'
- import { CountTo } from '@/components/CountTo'
- import { ElRow, ElCol, ElInputNumber, ElInput } from 'element-plus'
- import { ref, unref } from 'vue'
- const { t } = useI18n()
- const countRef = ref<ComponentRef<typeof CountTo>>()
- const startVal = ref(0)
- const endVal = ref(1314512)
- const duration = ref(3000)
- const decimals = ref(0)
- const separator = ref(',')
- const prefix = ref('¥ ')
- const suffix = ref(' rmb')
- const autoplay = ref(false)
- const start = () => {
- unref(countRef)?.start()
- }
- const pauseResume = () => {
- unref(countRef)?.pauseResume()
- }
- </script>
- <template>
- <ContentWrap :title="t('countToDemo.countTo')" :message="t('countToDemo.countToDes')">
- <div class="text-center mb-40px">
- <CountTo
- ref="countRef"
- :start-val="startVal"
- :end-val="endVal"
- :duration="duration"
- :decimals="decimals"
- :separator="separator"
- :prefix="prefix"
- :suffix="suffix"
- :autoplay="autoplay"
- class="text-30px font-bold text-[var(--el-color-primary)]"
- />
- </div>
- <ElRow :gutter="20" justify="space-between">
- <ElCol :xl="8" :lg="8" :md="12" :sm="24" :xs="24">
- <div class="flex mb-20px items-center">
- <span class="min-w-90px text-right">{{ t('countToDemo.startVal') }}:</span>
- <ElInputNumber v-model="startVal" :min="0" />
- </div>
- </ElCol>
- <ElCol :xl="8" :lg="8" :md="12" :sm="24" :xs="24">
- <div class="flex mb-20px items-center">
- <span class="min-w-90px text-right">{{ t('countToDemo.endVal') }}:</span>
- <ElInputNumber v-model="endVal" :min="1" />
- </div>
- </ElCol>
- <ElCol :xl="8" :lg="8" :md="12" :sm="24" :xs="24">
- <div class="flex mb-20px items-center">
- <span class="min-w-90px text-right">{{ t('countToDemo.duration') }}:</span>
- <ElInputNumber v-model="duration" :min="1000" />
- </div>
- </ElCol>
- <ElCol :xl="8" :lg="8" :md="12" :sm="24" :xs="24">
- <div class="flex mb-20px items-center">
- <span class="min-w-90px text-right">{{ t('countToDemo.separator') }}:</span>
- <ElInput v-model="separator" />
- </div>
- </ElCol>
- <ElCol :xl="8" :lg="8" :md="12" :sm="24" :xs="24">
- <div class="flex mb-20px items-center">
- <span class="min-w-90px text-right">{{ t('countToDemo.prefix') }}:</span>
- <ElInput v-model="prefix" />
- </div>
- </ElCol>
- <ElCol :xl="8" :lg="8" :md="12" :sm="24" :xs="24">
- <div class="flex mb-20px items-center">
- <span class="min-w-90px text-right">{{ t('countToDemo.suffix') }}:</span>
- <ElInput v-model="suffix" />
- </div>
- </ElCol>
- <ElCol :span="24">
- <div class="text-center">
- <BaseButton type="primary" @click="start">{{ t('countToDemo.start') }}</BaseButton>
- <BaseButton @click="pauseResume">
- {{ t('countToDemo.pause') }}/{{ t('countToDemo.resume') }}
- </BaseButton>
- </div>
- </ElCol>
- </ElRow>
- </ContentWrap>
- </template>
|