老师,问一个关于ant desgin vue 的问题

来源:1-2 代码库和在线文档使用注意事项(必看)

RadiomM

2021-01-26

<template>
  <a-date-picker
    v-model:value="startValue"
    :disabled-date="disabledStartDate"
    show-time
    format="YYYY-MM-DD HH:mm:ss"
    placeholder="Start"
    @openChange="handleStartOpenChange"
  />
  <a-date-picker
    v-model:value="endValue"
    :disabled-date="disabledEndDate"
    show-time
    format="YYYY-MM-DD HH:mm:ss"
    placeholder="End"
    :open="endOpen"
    @openChange="handleEndOpenChange"
  />
</template>
<script>
export default {
  data() {
    return {
      startValue: null,
      endValue: null,
      endOpen: false,
    };
  },
  watch: {
    startValue(val) {
      console.log('startValue', val);
    },
    endValue(val) {
      console.log('endValue', val);
    },
  },
  methods: {
    disabledStartDate(startValue) {
      const endValue = this.endValue;
      if (!startValue || !endValue) {
        return false;
      }
      return startValue.valueOf() > endValue.valueOf();
    },
    disabledEndDate(endValue) {
      const startValue = this.startValue;
      if (!endValue || !startValue) {
        return false;
      }
      return startValue.valueOf() >= endValue.valueOf();
    },
    handleStartOpenChange(open) {
      if (!open) {
        this.endOpen = true;
      }
    },
    handleEndOpenChange(open) {
      this.endOpen = open;
    },
  },
};
</script>

我想问的是,这disabledStartDate跟disabledEndDate中的return false 跟return startValue.valueOf() > endValue.valueOf()是啥子意思啊…看了半天没看懂,这个返回的是无效时间,还是有效时间。其实最看不懂的就是,加入我只选了开始时间,那么结束时间是还没有选择的,这个时候结束时间的面板跳出来的时候,居然是可以当前时间的前面日期都不能选…这是我没看懂的地方。有劳老师解答一下。

写回答

2回答

张轩

2021-01-27

同学你好 这个函数返回的是 布尔值,当返回 false 的时候,当前的日历选择不会被禁用,都可以选择。当返回 true 的时候,整个日历被禁用,不可以选择。valueOf 是 moment 上面的一个方法,返回时间戳,越大的代表越晚。也就是说当 startValue 开始时间 大于(也就是晚于) endValue 结束时间,这个时候开始日历就不能选择了。结束时间是一个意思。

0
3
RadiomM
回复
张轩
有的,就是自定义范围,右边差不多最后的。
2021-01-29
共3条回复

张轩

2021-01-26

同学你使用的新版的还是旧版的 ant-design-vue?2 版本是支持 vue3的,搞清楚版本我明天帮你调试看看

0
1
RadiomM
用的是2版本的,就是vue3
2021-01-26
共1条回复

Vue3 + TS 仿知乎专栏企业级项目

带你完成前后端分离复杂项目,率先掌握 vue3 造轮子技能

3142 学习 · 2313 问题

查看课程