html:
<a-time-picker
class="picklength"
v-model="form.startTime"
:disabledHours="disabledStartHours"
:disabledMinutes="disabledStartMinutes"
:disabledSeconds="disabledStartSeconds"
@change="onChangeStartTime"
placeholder="开始时间"
/>
<span style="margin: 0 5px">~</span>
<a-time-picker
class="picklength"
v-model="form.endTime"
:disabledHours="disabledEndHours"
:disabledMinutes="disabledEndMinutes"
:disabledSeconds="disabledEndSeconds"
@change="onChangeEndTime"
placeholder="结束时间"
/>
data():
form: {
startTime: '',
endTime: ''
},
// 开始时间
onChangeStartTime(time) {
if (!time) {
this.$message.info('请选择时间')
} else {
const hh = time.hour()
const mm = time.minutes()
const ss = time.seconds()
let timeH = ''
let timeM = ''
let timeS = ''
hh < 10 ? (timeH = `0${hh}:`) : (timeH = `${hh}:`)
mm < 10 ? (timeM = `0${mm}:`) : (timeM = `${mm}:`)
ss < 10 ? (timeS = `0${ss}`) : (timeS = `${ss}`)
const tiemStart = timeH + timeM + timeS
this.addFormDetails.effectTime.alarmTimeStart = tiemStart
}
},
// 结束时间
onChangeEndTime(time) {
if (!time) {
this.$message.info('请选择时间')
} else {
const hh = time.hour()
const mm = time.minutes()
const ss = time.seconds()
let timeH = ''
let timeM = ''
let timeS = ''
hh < 10 ? (timeH = `0${hh}:`) : (timeH = `${hh}:`)
mm < 10 ? (timeM = `0${mm}:`) : (timeM = `${mm}:`)
ss < 10 ? (timeS = `0${ss}`) : (timeS = `${ss}`)
const tiemStart = timeH + timeM + timeS
this.addFormDetails.effectTime.alarmTimeEnd = tiemStart
}
},
// 获取不可选择的小时
disabledStartHours() {
if (this.form.endTime) {
const hours = []
const hour = moment(this.form.endTime).hour()
for (let i = hour + 1; i < 24; i++) {
hours.push(i)
}
return hours
}
},
// 获取不可选择的分钟
disabledStartMinutes(selectedHour) {
if (this.form.endTime) {
const minutes = []
const hour = moment(this.form.endTime).hour()
const minute = moment(this.form.endTime).minute()
if (selectedHour === hour) {
for (let i = minute + 1; i < 60; i++) {
minutes.push(i)
}
}
return minutes
}
},
// 获取不可选择的秒
disabledStartSeconds(selectedHour, selectedMinute) {
if (this.form.endTime) {
const seconds = []
const hour = moment(this.form.endTime).hour()
const minute = moment(this.form.endTime).minute()
const second = moment(this.form.endTime).second()
if (selectedHour === hour && selectedMinute === minute) {
for (let i = second + 1; i < 60; i++) {
seconds.push(i)
}
}
return seconds
}
},
// 获取不可选择的小时
disabledEndHours() {
if (this.form.startTime) {
const hours = []
const hour = moment(this.form.startTime).hour()
for (let i = 0; i < hour; i++) {
hours.push(i)
}
return hours
}
},
// 获取不可选择的分钟
disabledEndMinutes(selectedHour) {
if (this.form.startTime) {
const minutes = []
const hour = moment(this.form.startTime).hour()
const minute = moment(this.form.startTime).minute()
if (selectedHour === hour) {
for (let i = 0; i < minute; i++) {
minutes.push(i)
}
}
return minutes
}
},
// 获取不可选择的秒
disabledEndSeconds(selectedHour, selectedMinute) {
if (this.form.startTime) {
const seconds = []
const hour = moment(this.form.startTime).hour()
const minute = moment(this.form.startTime).minute()
const second = moment(this.form.startTime).second()
if (selectedHour === hour && selectedMinute === minute) {
for (let i = 0; i < second; i++) {
seconds.push(i)
}
}
return seconds
}
},