保誠-保戶業務員媒合平台
HelenHuang
2022-06-09 9bdb95c9e34cef640534e5e5a1e2225a80442000
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
 
 
<template>
    <div class="dateTime">
        <UiDatePicker
            @changeDate="changeDateTime($event, 'date')"
            :disabledBeforeSpecificDate="disabledBeforeSpecificDate"
            :isPastDateDisabled="isPastDateDisabled"
            :isFutureDateDisabled="isFutureDateDisabled"
            :defaultValue="defaultValue"
        ></UiDatePicker>
        <UiTimePicker
            @changeTime="changeDateTime($event, 'time')"
            :defaultValue="defaultValue"
            :isPastDateDisabled="isPastDateDisabled"
            :isFutureDateDisabled="isFutureDateDisabled"
            :changeDate="changeDate"
        ></UiTimePicker>
    </div>
</template>
 
<script lang="ts">
import { Component, Emit, Prop, Vue, Watch } from "nuxt-property-decorator";
 
@Component
export default class DateTimePicker extends Vue {
    changeDate: Date | string = '';
    changeTime!: string;
 
    @Prop()
    defaultValue!: string;
 
    @Prop()
    isPastDateDisabled!: boolean;
 
    @Prop()
    isFutureDateDisabled!: boolean;
 
    @Prop()
    disabledBeforeSpecificDate?: string;
 
    @Emit('changeDateTime')
    changeDateTime(event, type) {
        if (type === 'date') {
            this.changeDate = event;
        }
        if (type === 'time') {
            this.changeTime = event;
        }
        if (this.changeDate && this.changeTime) {
            const hour = this.changeTime.split(':')[0];
            const minute = this.changeTime.split(':')[1];
            const interViewTime = new Date(this.changeDate).setHours(+hour, +minute);
            return new Date(interViewTime);
        }
        return '';
    }
 
}
</script>
 
<style lang="scss" scoped>
.dateTime {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    font-size: 20px;
}
</style>