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>
相关推荐
霍理迪14 分钟前
Vue的响应式和生命周期
前端·javascript·vue.js
李剑一19 分钟前
别再瞎写了!Cesium 模型 360° 环绕,4 套源码全公开,项目直接用
前端
小码哥_常36 分钟前
Android消息机制:Handler、Looper和Message的深度剖析
前端
小码哥_常39 分钟前
安卓开发新姿势:文件Picker全攻略,无痛适配不再难
前端
happymaker06261 小时前
web前端学习日记——DAY04
前端·学习
发现一只大呆瓜1 小时前
React-路由监听 / 跳转 / 守卫全攻略(附实战代码)
前端·react.js·面试
swipe2 小时前
为什么 RAG 一定离不开向量检索:从文档向量化到语义搜索的工程实现
前端·llm·agent
OpenTiny社区2 小时前
AI-Extension:让 AI 真的「看得到、动得了」你的浏览器
前端·ai编程·mcp
IT_陈寒2 小时前
Redis缓存击穿:3个鲜为人知的防御策略,90%开发者都忽略了!
前端·人工智能·后端
竹林8183 小时前
在Web3前端用Node.js子进程批量校验钱包,我踩了这些性能与安全的坑
javascript·node.js