tav-ui
Version:
1 lines • 6.89 kB
Source Map (JSON)
{"version":3,"file":"time2.mjs","sources":["../../../../../../../packages/components/time/src/time.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent, ref, watch } from 'vue'\nimport { useIntervalFn } from '@vueuse/core'\nimport { dateUtil, formatToDate, formatToDateTime } from '@tav-ui/utils/dateUtil'\nimport { isNumber, isObject, isString } from '@tav-ui/utils/is'\nimport { tavI18n } from '@tav-ui/locales'\nimport { timeProps } from './types'\nconst ONE_SECONDS = 1000 * 1\nconst ONE_MINUTES = ONE_SECONDS * 60\nconst ONE_HOUR = ONE_MINUTES * 60\nconst ONE_DAY = ONE_HOUR * 24\n\nexport default defineComponent({\n name: 'TaTime',\n props: timeProps,\n setup(props) {\n const date = ref('')\n\n useIntervalFn(setTime, props.step * ONE_SECONDS)\n\n watch(\n () => props.value,\n () => {\n setTime()\n },\n { immediate: true }\n )\n\n function getTime() {\n const { value } = props\n let time = 0\n if (isNumber(value)) {\n const timestamp = value.toString().length > 10 ? value : value * 1000\n time = new Date(timestamp).getTime()\n } else if (isString(value)) {\n time = new Date(value).getTime()\n } else if (isObject(value)) {\n time = value.getTime()\n }\n return time\n }\n\n function setTime() {\n const { mode, value } = props\n const time = getTime()\n if (mode === 'relative') {\n date.value = getRelativeTime(time)\n } else {\n if (mode === 'datetime') date.value = formatToDateTime(value as string)\n else if (mode === 'date') date.value = formatToDate(value as string)\n }\n }\n\n function getRelativeTime(timeStamp: number) {\n const currentTime = new Date().getTime()\n\n // Determine whether the incoming timestamp is earlier than the current timestamp\n const isBefore = dateUtil(timeStamp).isBefore(currentTime)\n\n let diff = currentTime - timeStamp\n if (!isBefore) diff = -diff\n\n let resStr = ''\n const dirStr = isBefore ? tavI18n('Tav.time.1') : tavI18n('Tav.time.2')\n\n if (diff < ONE_SECONDS) {\n resStr = tavI18n('Tav.time.3')\n // Less than or equal to 59 seconds\n } else if (diff < ONE_MINUTES) {\n const result = (diff / ONE_SECONDS).toString()\n resStr = `${parseInt(result)}${tavI18n('Tav.time.4')}${dirStr}`\n // More than 59 seconds, less than or equal to 59 minutes and 59 seconds\n } else if (diff >= ONE_MINUTES && diff < ONE_HOUR) {\n resStr = `${Math.floor(diff / ONE_MINUTES)}${tavI18n('Tav.time.5')}${dirStr}`\n // More than 59 minutes and 59 seconds, less than or equal to 23 hours, 59 minutes and 59 seconds\n } else if (diff >= ONE_HOUR && diff < ONE_DAY) {\n resStr = `${Math.floor(diff / ONE_HOUR)}${tavI18n('Tav.time.6')}${dirStr}`\n // More than 23 hours, 59 minutes and 59 seconds, less than or equal to 29 days, 59 minutes and 59 seconds\n } else if (diff >= ONE_DAY && diff < 2623860000) {\n resStr = `${Math.floor(diff / ONE_DAY)}${tavI18n('Tav.time.7')}${dirStr}`\n // More than 29 days, 59 minutes, 59 seconds, less than 364 days, 23 hours, 59 minutes, 59 seconds, and the incoming timestamp is earlier than the current\n } else if (diff >= 2623860000 && diff <= 31567860000 && isBefore) {\n resStr = dateUtil(timeStamp).format('MM-DD-HH-mm')\n } else {\n resStr = dateUtil(timeStamp).format('YYYY')\n }\n return resStr\n }\n\n return { date }\n },\n})\n</script>\n<template>\n <span class=\"ta-time\">{{ date }}</span>\n</template>\n"],"names":["_openBlock","_createElementBlock","_toDisplayString"],"mappings":"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"}