货无忧

44 lines
1.0 KiB

2 years ago
/*
* @Author: weisheng
* @Date: 2022-12-14 17:33:21
* @LastEditTime: 2023-05-19 16:02:53
* @LastEditors: weisheng
* @Description:
* @FilePath: \fant-mini-plus\src\uni_modules\fant-mini-plus\components\hd-calendar\index.ts
*
*/
import { InjectionKey, Ref, nextTick, provide, ref } from 'vue'
import type { Calendar } from './types'
/**
* useCalendar key
*
* @internal
*/
export const calendarDefaultKey = Symbol('__CALENDAR_') as InjectionKey<Ref<boolean>>
export function useCalendar(selector: string = ''): Calendar {
const calendarShow = ref<boolean>(false) // 是否展示calendar
const calendarKey = selector ? '__CALENDAR_' + selector : calendarDefaultKey
provide(calendarKey, calendarShow)
const showCalendar = () => {
if (calendarShow.value) {
calendarShow.value = false
nextTick(() => {
calendarShow.value = true
})
} else {
calendarShow.value = true
}
}
const closeCalendar = () => {
calendarShow.value = false
}
return {
showCalendar,
closeCalendar
}
}