判断当前选择的日期区间有无对应的周

 dom层

<Form onFinish={onFinish}>
    <Form.Item {...formItemLayout} name='date' label='日期' rules={
        [
            {
                required: true, message: '请选择日期!'
            }
        ]
    }>
         <RangePicker format={'YYYY-MM-DD'} disabledDate={disabledDate} 
            allowEmpty={[true, true]}/>
    </Form.Item>
    <Form.Item {...formItemLayout} name='weeks' label='选择周' rules={
        [
            {
                required: true, message: '请选择周!'
            }
        ]
    }>
        <Checkbox.Group options={weekOptions} />
    </Form.Item>
    <Form.Item>
        <Button htmlType='submit' type='primary'>确认</Button>
    </Form.Item>
</Form>

const weekOptions = [
    {
        label: '周一',
        value: 1
    },
    {
        label: '周...',
        value: 1-7
    },
    {
        label: '周日',
        value: 7
    },
]

事件层

const onFinish = (values) => {
    const { date, weeks } = values,
        startD = getDay(moment(date[0] || date[1]).day()),
        endD = getDay(moment(date[1] || date[0]).day()),
        startW = moment(date[0] || date[1]).week(),
        endW = moment(date[1] || date[0]).week();
    
    if(startD || endD) {
        if(startW === endW) { // 同周
            // 不在范围内提示
            const isError = weeks.find(v =>!(v <= endD && v >= startD))
            if(isError) {
                message.info('请选择正确周')
            } else {
                onSubmit(res)
            }
                        
    } else {
        // 不同周 先分开判断startD、endD
        let isError
        if(endW - startW < 2) {
            isError =  weeks.find( v =>
                !((v >= startD && v <= 7) || ( v <= endD && v >= 1)))
        }
        if(isError) {
            message.info('请选择正确周')
        } else {
            onSubmit(res)
        }
    }

}

const onSubmit = (res) => {
    // 处理提交
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值