UNPKG

create-iking-admin

Version:

金合技术中台脚手架

69 lines (57 loc) 1.34 kB
/* * @Author: wfl * @LastEditors: wfl * @description: * @updateInfo: * @Date: 2022-07-29 11:45:14 * @LastEditTime: 2022-08-29 11:32:28 */ import { tryOnMounted, tryOnUnmounted } from '@vueuse/core'; import { dayjs } from 'iking-utils'; import { reactive, toRefs } from 'vue'; export function useNow(immediate = true) { let timer: IntervalHandle; const state = reactive({ year: 0, month: 0, week: '', day: 0, hour: '', minute: '', second: 0, meridiem: '', }); const update = () => { const now = dayjs(); const h = now.format('HH'); const m = now.format('mm'); const s = now.get('s'); state.year = now.get('y'); state.month = now.get('M') + 1; state.week = '星期' + ['日', '一', '二', '三', '四', '五', '六'][now.day()]; state.day = now.get('date'); state.hour = h; state.minute = m; state.second = s; state.meridiem = now.format('A'); }; function start() { update(); clearInterval(timer); timer = setInterval(() => update(), 1000); } function stop() { clearInterval(timer); } tryOnMounted(() => { immediate && start(); }); tryOnUnmounted(() => { stop(); }); return { ...toRefs(state), start, stop, }; }