antd-react日期组件disabledDate不可选择的日期 (置灰)属性

**需求:**原定结项时间表单里回显为2025-02-06,延期时间的选择范围要设置从2025-02-07开始选择包括2.7号的; 2.7号之前的置灰,不可选择


PC端部分代码:

javascript 复制代码
// react的函数组件写法
const disabledDate = function (current) {
        console.log(current, 'current')
    const times = pro.proLimted ? pro.proLimted : '' // 从pro这恶对象里取出proLimted参数,即原定结项时间字段:2025-02-06 17:00:00
        console.log(pro.proLimted, 'pro.proLimted')
    // moment()里不能为空,否则报错,所以取值times的时候做下判断
    const proTIME = moment(times).format('YYYY-MM-DD') // 转化下时间格式, 类似为2025-02-06
        console.log(proTIME , 'proTIME')
    const d = new Date(proTIME ) //
        console.log(d, 'd')
    d.setDate(d.getDate() + 1)
        console.log(d.getDate(), 'd.getDate()')
    return current && current.valueOf() < d.getDate()
}



<FormItem {...formItemLayout} label='延期结项时间'>
    {getFieldDecorator('csTime', {
        rules: [{require: true, message: '时间不能为空'}],
        initialValue: moment('csTime', 'YYYY-MM-DD')
    })(
        <DatePicker
            format='YYYY-MM-DD'
            disabledDate={disabledDate}
            placeholder='请选择延期结项时间'
        />
    )}
</FormItem>


移动端端部分代码:

javascript 复制代码
import { List, Flex, DatePicker } from 'antd-mobile'

const minDateFun = () => {
    const proLimit = contents && contents[0] && contents[0].proLimit
    if(proLimit && proLimit !== undefined && proLimit !== null && proLimit !== ''){
        const d = moment().set({
            year: new Date(proLimit).getFullYear(),
            month: new Date(proLimit).getMonth(),
            date: new Date(proLimit).getDate() +1
        })
        return new Date(d)
    }
}

const changeDatePick = (data) => {
    const proId = id
    saveLimitedTime({ // 这块调接口
        proId, proLimited: moment(data).format(YYYY-MM-DD 17:00:00)
    })
}

<div>
    <Flex align='baseline'>
        <Flex.Item style={
   
   { flex: 2.8 }}>
            <div>原定结项时间</div>
        </Flex.Item>
        <Flex.Item style={
   
   { flex: 7.2 }}>
            <div>
                <DatePicker 
                    mode='date'
                    title='请选择时间'
                    extra='请选择结项时间'
                    format='YYYY-MM-DD'
                    minDate={new Date()}
                    maxDate={new Date(moment().set({ yaer: new Date().getFullYear()+1, data: new Date().getDate() }))}
                    onChange={data => changeDatePick(data)}
                >
                 <list.Item arrow='horizontal'>{projrctTime || '请选择结项时间'}</list.Item>   
                </DatePicker>
            </div>
        </Flex.Item>
    </Flex>
</div>

<div>
    <Flex align='baseline'>
        <Flex.Item style={
   
   { flex: 2.8 }}>
            <div>延期结项时间</div>
        </Flex.Item>
        <Flex.Item style={
   
   { flex: 7.2 }}>
            <div>
                <DatePicker 
                    mode='date'
                    title='请选择时间'
                    extra='&emsp'
                    format='YYYY-MM-DD 17:00:00'
                    minDate={minDateFun()}
                    onChange={onChange}
                >
                 <list.Item arrow='horizontal'>{projrctTime || '请选择结项时间'}</list.Item>   
                </DatePicker>
            </div>
        </Flex.Item>
    </Flex>
</div>
相关推荐
じòぴé南冸じょうげん10 分钟前
小程序的project.private.config.json是无依赖文件,那可以删除吗?
前端·小程序·json
会豪19 分钟前
Electron主进程渲染进程如何优雅的进行通信
前端
jianghaha201120 分钟前
前端 Word 模板参入特定数据 并且下载
前端·word
跟橙姐学代码20 分钟前
轻松搞定 Python 模块与包导入:新手也能秒懂的入门指南
前端·python·ipython
aiwery26 分钟前
大模型场景下的推送技术选型:轮询 vs WebSocket vs SSE
前端·agent
会豪27 分钟前
前端插件-不固定高度的DIV如何增加transition
前端
却尘27 分钟前
Server Actions 深度剖析(2):缓存管理与重新验证,如何用一行代码干掉整个客户端状态层
前端·客户端·next.js
小菜全27 分钟前
Vue 3 + TypeScript 事件触发与数据绑定方法
前端·javascript·vue.js
Hilaku31 分钟前
面试官开始问我AI了,前端的危机真的来了吗?
前端·javascript·面试
zheshiyangyang41 分钟前
TypeScript学习【一】
javascript·学习·typescript