wechat-article / components /base /DatePicker.vue
asemxin2000's picture
Deploy wechat-article-exporter to Space
6e41657 verified
Raw
History Blame Contribute Delete
1.13 kB
<script setup lang="ts">
import { DatePicker as VCalendarDatePicker } from 'v-calendar';
import 'v-calendar/dist/style.css';
import dayjs from 'dayjs';
import { MP_ORIGIN_TIMESTAMP } from '~/config';
defineOptions({
inheritAttrs: false,
});
const props = defineProps({
modelValue: {
type: Number,
default: null,
},
});
const emit = defineEmits(['update:model-value', 'close']);
const date = computed({
get: () => dayjs.unix(props.modelValue).toDate(),
set: value => {
emit('update:model-value', dayjs(value).unix());
emit('close');
},
});
const attrs = {
transparent: true,
borderless: true,
locale: 'zh-CN',
color: 'gray',
'is-dark': { selector: 'html', darkClass: 'dark' },
'first-day-of-week': 2,
'min-date': dayjs.unix(MP_ORIGIN_TIMESTAMP).toDate(),
'max-date': new Date(),
};
function onDayClick(_: any, event: MouseEvent): void {
const target = event.target as HTMLElement;
target.blur();
}
</script>
<template>
<VCalendarDatePicker v-model="date" v-bind="{ ...attrs, ...$attrs }" @dayclick="onDayClick" />
</template>