el-time-select如何设置多个时间段,且每个时间段之间不相互重合

这篇文章介绍了如何在Vue.js应用中使用ElementUI的时间选择器创建并管理报警时间,确保新添加的时间段不会与已存在的时间段冲突,通过数据绑定和方法实现时间验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

点击添加按钮,会判断是否与已有时间段重合
实现效果:

template中:

 <el-form-item label="报警时间" prop="timeList">
              <el-time-select
                placeholder="起始时间"
                style="width: 45%"
                v-model="operationForm.startTime"
                :picker-options="{
                  start: '00:00',
                  step: '00:15',
                  end: '24:00',
                }"
              >
              </el-time-select>
              <el-time-select
                style="width: 45%"
                placeholder="结束时间"
                v-model="operationForm.endTime"
                :picker-options="{
             
`el-time-select`是Element UI中的一个时间选择组件,如果你想在Element UI的时间选择器中设置多个时间段无效,你可以通过自定义渲染和逻辑控制来实现。以下是一种可能的做法: 1. 首先,在数据层面上,创建一个包含有效时间段的对象数组,每个对象都有开始时间和结束时间。 ```javascript data() { return { timeRanges: [ { startTime: '08:00', endTime: '12:00' }, { startTime: '14:00', endTime: '18:00' }, // 其他无效时间段 { startTime: '19:00', endTime: '22:00' } ], selectedTimeRange: null, }; } ``` 2. 然后,在模板中使用v-model绑定到`selectedTimeRange`,并在每个时间段上添加一个`disabled`属性,根据当前选中的时间段和其他已知无效时间段判断是否禁用。 ```html <template> <el-time-select v-model="selectedTimeRange" :picker-options="pickerOptions"> <template slot-scope="{ value }"> <el-time-range-picker :start-placeholder="startTimePlaceholder" :end-placeholder="endTimePlaceholder" :disabled="isDisabled(value)" v-for="(timeRange, index) in timeRanges" :key="index" :value="timeRange" ></el-time-range-picker> </template> </el-time-select> </template> ``` 3. 在`methods`中定义`isDisabled()`函数,检查当前选择的时间段与其他已知无效时间段是否有交集。 ```javascript methods: { isDisabled(timeRange) { for (const invalidRange of this.timeRanges.filter(range => range !== timeRange)) { if ( invalidRange.startTime <= timeRange.endTime && invalidRange.endTime >= timeRange.startTime ) { return true; } } return false; } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值