60 lines
1.4 KiB
Vue
60 lines
1.4 KiB
Vue
|
<template>
|
|||
|
<div style="display: flex; align-items: center">
|
|||
|
<span>预约时间段:</span>
|
|||
|
<!-- <el-form-item label="" prop="time">-->
|
|||
|
<!-- 开始时间选择 -->
|
|||
|
<el-time-picker
|
|||
|
v-model="startTime"
|
|||
|
format="HH:mm"
|
|||
|
placeholder="开始时间"
|
|||
|
@change="onTimeChange"
|
|||
|
:minute-step="1"
|
|||
|
:hour-step="1"
|
|||
|
size="default"
|
|||
|
style="width: 100px; margin-right: 10px"
|
|||
|
/>
|
|||
|
<!-- 结束时间选择 -->
|
|||
|
<el-time-picker
|
|||
|
v-model="endTime"
|
|||
|
format="HH:mm"
|
|||
|
placeholder="结束时间"
|
|||
|
@change="onTimeChange"
|
|||
|
:minute-step="1"
|
|||
|
:hour-step="1"
|
|||
|
size="default"
|
|||
|
style="width: 100px"
|
|||
|
/>
|
|||
|
|
|||
|
<!-- </el-form-item>-->
|
|||
|
</div>
|
|||
|
</template>
|
|||
|
|
|||
|
<script lang="ts" setup>
|
|||
|
import {onMounted, ref} from 'vue'
|
|||
|
import emitter from "@/utils/emitter";
|
|||
|
import dayjs from "dayjs";
|
|||
|
|
|||
|
const startTime = ref('')
|
|||
|
const endTime = ref('')
|
|||
|
|
|||
|
// 处理时间选择变化
|
|||
|
|
|||
|
onMounted(() => {
|
|||
|
emitter.on('clearTimeSlot', () => {
|
|||
|
startTime.value = ''
|
|||
|
endTime.value = ''
|
|||
|
})
|
|||
|
})
|
|||
|
|
|||
|
const onTimeChange = (e:any) => {
|
|||
|
if (startTime.value && endTime.value) {
|
|||
|
const time = dayjs(startTime.value).format('HH:mm') + "-" + dayjs(endTime.value).format('HH:mm')
|
|||
|
emitter.emit('getTimeSlot', time)
|
|||
|
}
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
<style scoped>
|
|||
|
|
|||
|
</style>
|