tav-ui
Version:
89 lines (84 loc) • 3.49 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var core = require('@vueuse/core');
var dateUtil = require('../../../utils/dateUtil2.js');
var is = require('../../../utils/is2.js');
require('../../../locales/index2.js');
var types = require('./types2.js');
var pluginVue_exportHelper = require('../../../../_virtual/plugin-vue_export-helper.js');
var transfer = require('../../../locales/transfer2.js');
const ONE_SECONDS = 1e3 * 1;
const ONE_MINUTES = ONE_SECONDS * 60;
const ONE_HOUR = ONE_MINUTES * 60;
const ONE_DAY = ONE_HOUR * 24;
const _sfc_main = vue.defineComponent({
name: "TaTime",
props: types.timeProps,
setup(props) {
const date = vue.ref("");
core.useIntervalFn(setTime, props.step * ONE_SECONDS);
vue.watch(() => props.value, () => {
setTime();
}, { immediate: true });
function getTime() {
const { value } = props;
let time = 0;
if (is.isNumber(value)) {
const timestamp = value.toString().length > 10 ? value : value * 1e3;
time = new Date(timestamp).getTime();
} else if (is.isString(value)) {
time = new Date(value).getTime();
} else if (is.isObject(value)) {
time = value.getTime();
}
return time;
}
function setTime() {
const { mode, value } = props;
const time = getTime();
if (mode === "relative") {
date.value = getRelativeTime(time);
} else {
if (mode === "datetime")
date.value = dateUtil.formatToDateTime(value);
else if (mode === "date")
date.value = dateUtil.formatToDate(value);
}
}
function getRelativeTime(timeStamp) {
const currentTime = new Date().getTime();
const isBefore = dateUtil.dateUtil(timeStamp).isBefore(currentTime);
let diff = currentTime - timeStamp;
if (!isBefore)
diff = -diff;
let resStr = "";
const dirStr = isBefore ? transfer.tavI18n("Tav.time.1") : transfer.tavI18n("Tav.time.2");
if (diff < ONE_SECONDS) {
resStr = transfer.tavI18n("Tav.time.3");
} else if (diff < ONE_MINUTES) {
const result = (diff / ONE_SECONDS).toString();
resStr = `${parseInt(result)}${transfer.tavI18n("Tav.time.4")}${dirStr}`;
} else if (diff >= ONE_MINUTES && diff < ONE_HOUR) {
resStr = `${Math.floor(diff / ONE_MINUTES)}${transfer.tavI18n("Tav.time.5")}${dirStr}`;
} else if (diff >= ONE_HOUR && diff < ONE_DAY) {
resStr = `${Math.floor(diff / ONE_HOUR)}${transfer.tavI18n("Tav.time.6")}${dirStr}`;
} else if (diff >= ONE_DAY && diff < 262386e4) {
resStr = `${Math.floor(diff / ONE_DAY)}${transfer.tavI18n("Tav.time.7")}${dirStr}`;
} else if (diff >= 262386e4 && diff <= 3156786e4 && isBefore) {
resStr = dateUtil.dateUtil(timeStamp).format("MM-DD-HH-mm");
} else {
resStr = dateUtil.dateUtil(timeStamp).format("YYYY");
}
return resStr;
}
return { date };
}
});
const _hoisted_1 = { class: "ta-time" };
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("span", _hoisted_1, vue.toDisplayString(_ctx.date), 1);
}
var Time = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/tav-ui/tav-ui/packages/components/time/src/time.vue"]]);
exports["default"] = Time;
//# sourceMappingURL=time2.js.map