// disabledTime 是另一个表单字段表示禁用的时间
<ProFormDependency name={['datetimeRange']}>
{
({ datetimeRange }) => {
const [, disabledTime] = datetimeRange || []
return <ProFormDateTimeRangePicker
name="voteTimeRange"
label="投票时间"
placeholder={['开始时间', '结束时间']}
rules={[{ required: true, message: '请选择投票时间' }]}
fieldProps={{
disabledDate: (dateM) => {
if (dateM && disabledTime) {
return dayjs(dateM.format('YYYY-MM-DD HH:mm:ss')).isBefore(disabledTime, 'day')
}
},
disabledTime: (dateM, type) => {
if (type === 'start') {
if (dateM && disabledTime) {
const isSameDay = dayjs(dateM).isSame(disabledTime, 'day')
if (isSameDay) {
return {
disabledHours: () => {
const startHour = dayjs(disabledTime).hour()
return range(0, startHour)
},
disabledMinutes: () => {
const startMinute = dayjs(disabledTime).minute()
const isSameHour = dayjs(dateM).isSame(disabledTime, 'hour')
if (isSameHour) {
return range(0, startMinute)
} else {
return []
}
},
disabledSeconds: () => {
const startSecond = dayjs(disabledTime).second()
const isSameHour = dayjs(dateM).isSame(disabledTime, 'hour')
const isSameMinute = dayjs(dateM).isSame(disabledTime, 'minute')
if (isSameHour && isSameMinute) {
return range(0, startSecond)
} else {
return []
}
}
}
}
}
}
}
}}
/>
}
}
</ProFormDependency>
04-10
370
