Ant Design Vue中DatePicker 日期选择框遇到的回显问题

Ant Design Vue中DatePicker 日期选择框遇到的回显问题

  • 使用DatePicker时正常取到选择的时间数据是正常的,但是回显时直接将从后端获取的时间传给该组件,时间能显示但是报错,或者直接不显示。

在这里插入图片描述

  • 正常获取时间数据:
    这个是使用了validateFields,所以数据直接获取,具体参考官方文档form表单
    正常取到时间,timeFoemat是封装的格式化时间工具
  • 回显时一开始我是直接赋值,报错
   getListById() {
            seeBusinessDistrict(this.$route.query.id)
                .then((res) => {
                    this.$message.success("活动获取成功");
                    console.log(res);
                    // 给表单设置值(回显)
                    res.data.areaId = res.data.areaId.split(",");
                    const { setFieldsValue } = this.form;
                    setFieldsValue({
                        title: res.data.title,
                        applyEndTime: res.data.applyEndTime,//这里是直接赋值的时间
                        brief: res.data.brief,
                        areaId: res.data.areaId,
                        address: res.data.address,
                        num: res.data.num,
                    });

                    this.banner = res.data.banner;
                })
                .catch((err) => {
                    this.$message.success("活动获取失败");

                    console.log(err);
                });
        },
  • 解决方法:
    在这里插入图片描述
    datepicker里面选中的时间默认是moment对象,所以要想将时间字符串回显在选择框中,必须先将applyEndTime里面的"2021-04-13 23:34:48"转换成moment形式。
    1.安装moment.js

npm install moment --save

2.引入

import moment from “moment”;

3.使用,拿到处理好的数据直接赋值就解决了

var day = moment(res.data.applyEndTime); //时间回显需要创建moment对象

  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Ant Design VueDatePicker组件来实现开始和结束时间的日期限制。下面是一种常见的方法: 首先,你需要在Vue组件导入DatePicker组件: ```javascript import { DatePicker } from 'ant-design-vue'; ``` 然后,你可以在模板使用DatePicker组件,并为其添加`range`属性来启用日期范围选择: ```html <template> <div> <a-date-picker v-model="dateRange" range></a-date-picker> </div> </template> ``` 接下来,在Vue组件的`data`选项定义一个`dateRange`变量来存储选定的日期范围: ```javascript data() { return { dateRange: null, }; }, ``` 现在,你可以使用`disabledDate`属性来设置开始和结束时间的日期限制。在这个属性,你可以定义一个函数来检查每个日期是否可选。例如,你可以禁用今天之前的日期: ```html <template> <div> <a-date-picker v-model="dateRange" range :disabledDate="disabledDate"></a-date-picker> </div> </template> ``` ```javascript methods: { disabledDate(current) { return current && current.valueOf() < Date.now() - 24 * 60 * 60 * 1000; }, }, ``` 在上述示例,我们使用了`valueOf()`方法来将日期对象转换为毫秒数,然后进行比较。通过返回`true`或`false`来禁用或启用相应的日期。 你还可以根据需要在`disabledDate`函数添加其他逻辑,例如限制最大日期或最小日期。 希望这个例子能够帮助你实现Ant Design VueDatePicker组件的开始和结束时间日期限制!如果有任何疑问,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值