Fork me on GitHub

antd DatePicker赋值,取值,限制日期的问题

antd的DatePicker组件fuzhishi 需要使用moment,否则会报错,moment依赖自行安装

初始化赋值:

复制代码
const getDetails = () => {
    form.resetFields()
    let initialValues = {}
    result.data.inputOutPutDTO.buOutputDetailDTOList.forEach((obj) => {
      if (obj.output_form === '60') { // 下拉框
        initialValues[obj.id] = obj.dropDataDic
      } else if (obj.output_form === '40') { // 时间
        // 先进行判断是否能正常格式化,否则报错Invalid date
        initialValues[obj.id] = obj.fillInTheValue === '' ? null : moment(obj.fillInTheValue)
      } else {
        initialValues[obj.id] = obj.fillInTheValue
      }
    })
    console.log('initialValues', initialValues);
    form.setFieldsValue(initialValues)
  }
复制代码

 

格式化:

 const format = (value) => { return moment(value).format('yyyy-MM-DD')//将时间格式转成yyyy-MM-DD } 

 

之前日期不可选:

 const disabledDate = (current) => { return current && current < moment().subtract(1, 'days') //当天之前的不可选,不包括当天

// return current&&current<moment().endOf('day') //当天之前的不可选,包括当天 } 

 

提交时针对时间格式做处理:

复制代码
const handleSubmit = () => {
    console.log('handleSubmit');
    form.validateFields()
      .then(val => {

        let arr = []
        //遍历得到所有涉及到DatePicker时间框的对象的Id
        result.data.inputOutPutDTO.buOutputDetailDTOList.forEach((obj) => {
          if (obj.output_form === '40') {
            arr.push(obj.id)
          }
        })

        // 针对提交的value中涉及到DatePicker的时间数据进行格式处理 -> 'YYYY-MM-DD'
        Object.keys(val).map((item) => {
          // arr.indexOf(item) !== -1 ? (val[item] = format(val[item])) : null
          arr.indexOf(item) !== -1 ? (format(val[item]) === 'Invalid date' ? val[item] = '' : val[item] = format(val[item])) : null
        })

        console.log('val', val);
      })
  }
复制代码

render中的组件:

                            <Item
                              name={obj.id}
                              label={obj.inoutlistDesc}
                              style={{ marginRight: '20px' }}
                              key={index}
                            >
                              <DatePicker disabledDate={disabledDate} format={dateFormat} onChange={dateOnchange} />
                            </Item>

 

posted @   让梓航飞  阅读(2305)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
点击右上角即可分享
微信分享提示