当前位置: 首页 > article >正文

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

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

 PC端部分代码:

// 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>

  移动端端部分代码:

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>


http://www.kler.cn/a/538849.html

相关文章:

  • 【大模型】DeepSeek-V3技术报告总结
  • 从零到一:我的元宵灯谜小程序诞生记
  • Kong故障转移参数配置
  • Linux中设置开机运行指令
  • QTreeView和QTableView单元格添加超链接
  • 四次挥手详解
  • Nginx进阶篇 - nginx多进程架构详解
  • SpringBoot速成(八)登录实战:未登录不能访问 P5-P8
  • Vue 3 + Vite + JS 项目中实现组件全局自动化注册的魔法,极致组件自动化注册方案,开发效率飙升300%。
  • linux 基础知识点之工作队列workqueue
  • (done) openMP学习 (Day9: 优化链表操作)
  • DeepSeek介绍,以及本地部署和API使用
  • 内容中台赋能人工智能技术提升业务创新能力
  • Jenkins 使用教程:从入门到精通
  • 如何使用JLINK连接雅特力MCU
  • Ada语言的云计算
  • LeetCode 力扣热题100 将有序数组转换为二叉搜索树
  • fps动作系统7:武器摇摆
  • 人工智能应用实例-自动驾驶A*算法高级应用
  • LS-SDMTSP:粒子群优化算法(PSO)求解大规模单仓库多旅行商问题(LS-SDMTSP),MATLAB代码
  • 写综述小论文的反思
  • 2.9寒假作业
  • 将DeepSeek接入Excel实现交互式对话
  • springboot集成日志
  • Meta AI 最近推出了一款全新的机器学习框架ParetoQ,专门用于大型语言模型的4-bit 以下量化
  • 在Ubuntu云服务器上使用OneFormer模型进行遥感图像水体提取,并替换为客户数据集的详细步骤