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>
相关推荐
_骁2 分钟前
记两次谷歌浏览器升级引起的bug
前端
轻语呢喃11 分钟前
DeepSeek 接口调用:从 HTTP 请求到智能交互
javascript·deepseek
风之舞_yjf42 分钟前
Vue基础(14)_列表过滤、列表排序
前端·javascript·vue.js
belldeep1 小时前
QuickJS 如何发送一封邮件 ?
javascript·curl·smtp·quickjs
BillKu1 小时前
scss(sass)中 & 的使用说明
前端·sass·scss
疯狂的沙粒1 小时前
uni-app 项目支持 vue 3.0 详解及版本升级方案?
前端·vue.js·uni-app
Jiaberrr2 小时前
uniapp Vue2 获取电量的独家方法:绕过官方插件限制
前端·javascript·uni-app·plus·电量
谢尔登2 小时前
【React】React 18 并发特性
前端·react.js·前端框架
Joker`s smile2 小时前
使用React+ant Table 实现 表格无限循环滚动播放
前端·javascript·react.js
国家不保护废物2 小时前
🌟 React 魔法学院入学指南:从零构建你的第一个魔法阵(项目)!
前端·react.js·架构