|
|
<template> <div class="tw-flex tw-flex-col-reverse md:tw-flex-row md:tw-items-center"> <button class="select-date tw-transition tw-w-fit tw-btn-md tw-border tw-border-solid tw-border-secondary-default tw-text-secondary-default tw-bg-white tw-px-[16px] tw-py-[10px] tw-rounded-xl hover:tw-bg-secondary-default hover:tw-text-white"> <client-only> <a-date-picker v-model="time1" placeholder="Select Time" :disabled-date="disabledDate" format="YYYY.MM.DD" @change="onChange" @ok="onOk"> <span class="tw-text-secondary-default hover:tw-text-white tw-cursor-pointer">{{ $t("Select Date") }}</span> </a-date-picker> </client-only> </button> <!-- <a-range-picker v-model="time2"> <span> {{ time2 ? time2 : "请选择" }} </span> </a-range-picker> --> <div v-show="time1" class="tw-text-secondary-dark tw-body-4 tw-font-medium tw-mb-[15px] md:tw-mb-0 md:tw-ml-[20px]"> {{ $t("Selected: ") }}{{ startDate }} </div> </div> </template> <script> import moment from "moment"; export default { props: { start: { type: String }, end: { type: String } }, data() { return { time1: undefined, time2: undefined, }; }, computed: { startDate() { return moment(this.time1).format("YYYY.MM.DD"); }, endDate() { return moment(this.time2).format("YYYY.MM.DD"); }, }, methods: { onChange(value, dateString) { console.log("Selected Time: ", value); console.log("Formatted Selected Time: ", dateString); this.$emit('selected', dateString); }, onOk(value) { console.log("onOk: ", value); }, clearTime() { this.time1 = undefined; this.$emit('selected', ''); }, disabledDate(current) { // const today = new Date();
// today.setHours(0, 0, 0, 0);
const startDate = new Date(this.start); const endDate = new Date(this.end); startDate.setHours(0, 0, 0, 0); endDate.setHours(0, 0, 0, 0); endDate.setDate(endDate.getDate() + 1); return current < startDate || current > endDate; }, }, }; </script> <style lang="scss" scoped> .select-date { &:hover { span { color: #fefefe !important; } } } </style>
|