VUE-日期选择器-结束时间>开始时间

女爷i 2023-08-17 17:46 225阅读 0赞

功能要求:

限制结束时间选择范围,结束时间能够选择的起始日期,随着开始时间的选择而变化,也就是保证结束时间时钟>=开始时间。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2x1Y2t5c3Rhcl85OQ_size_16_color_FFFFFF_t_70

代码片段:(其中最重要的就是startValue)

  1. <script>
  2. //定义全局变量:开始协商记录开始日期
  3. let startValue = 86400000;
  4. export default{
  5. data() {
  6. //发送开始协商内容
  7. startNegotiateModel: {
  8. projectId: "", //项目id
  9. startTime: "", //项目开始时间
  10. endTime: "", //项目结束时间
  11. negotiateContent: "" //开始协商内容
  12. }
  13. }
  14. }
  15. </script>
  16. <template>
  17. <label>开始时间:</label>
  18. <DatePicker
  19. v-model="startNegotiateModel.startTime"
  20. type="date"
  21. :options="startDateOptions"
  22. @on-change="handleChange"
  23. placeholder="开始时间"
  24. :editable="false"
  25. style="width: 150px"
  26. ></DatePicker>
  27. <label class="fromlift">结束时间:</label>
  28. <DatePicker
  29. v-model="startNegotiateModel.endTime"
  30. type="date"
  31. :options="endDateOptions"
  32. placeholder="结束时间"
  33. :editable="false"
  34. style="width: 150px"
  35. ></DatePicker>
  36. </template>
  37. methods: {
  38. //开始时间改变事件
  39. handleChange(date) {
  40. startValue = new Date(date).getTime();
  41. this.endDateOptions = {
  42. disabledDate(date) {
  43. return date && date.valueOf() < startValue - 86400000;
  44. }
  45. };
  46. }
  47. }

实现效果:

开始日期选择了:2019-10-21

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2x1Y2t5c3Rhcl85OQ_size_16_color_FFFFFF_t_70 1

结束时间,只能选择2019-10-21之后的日期

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2x1Y2t5c3Rhcl85OQ_size_16_color_FFFFFF_t_70 2

总结:

不将就,以前做过类似的功能,通常都是在点击确定按钮之后,再去判断结束时间不能小于开始时间,这样做很不友好。这次做这个功能问了好多人,他们给出的建议也是在单击确定之后判断。但是我感觉这是一个时间控件很常见的功能,虽然不知道Vue为什么没有给出明确的解决实例,但是肯定有解决办法,果然功夫不负有心人,特别感谢曹同学的帮助。

发表评论

表情:
评论列表 (有 0 条评论,225人围观)

还没有评论,来说两句吧...

相关阅读