当前位置:   article > 正文

element ui 中日期选择器disabledDate的几种用法

disableddate

用法一:

写法1:可以直接在data 中定义,但是需要处理复制的,那就是需要在methods中定义的

  1. <template>
  2. <el-date-picker
  3. v-model="queryParams.fodTimeStart"
  4. value-format="yyyy-MM-dd-HH-mm-ss"
  5. type="datetime"
  6. size="mini"
  7. prefix-icon="el-icon-date"
  8. :picker-options="pickerOptions1"
  9. placeholder="开始时间"
  10. />
  11. </template>
  12. data(){
  13. return {
  14. pickerOptions1: {
  15. // 此时,日期选择器 只能选择当前时间之前的,
  16. return time.getTime() > Date.now();
  17. }
  18. }
  19. }

用法二:

对于复制的逻辑,可以在methods中定义,然后在引用

  1. <template>
  2. <!-- 开始时间 -->
  3. <el-date-picker
  4. v-model="queryParams.fodTimeStart"
  5. value-format="yyyy-MM-dd-HH-mm-ss"
  6. type="datetime"
  7. size="mini"
  8. prefix-icon="el-icon-date"
  9. :picker-options="pickerOptions1"
  10. placeholder="开始时间"
  11. />
  12. <!-- 终止时间 -->
  13. <el-date-picker
  14. v-model="queryParams.fodTimeEnd"
  15. value-format="yyyy-MM-dd-HH-mm-ss"
  16. type="datetime"
  17. size="mini"
  18. prefix-icon="el-icon-date"
  19. :picker-options="pickerOptions2"
  20. placeholder="截止时间"
  21. />
  22. </template>
  23. data(){
  24. return{
  25. queryParams: {
  26. // 开始时间
  27. fodTimeStart: null,
  28. // 终止时间
  29. fodTimeEnd: null,
  30. },
  31. // 开始时间,我们设置选中的时间不允许超过当前的时间
  32. pickerOptions1: {
  33. disabledDate(time) {
  34. return time.getTime() > Date.now();
  35. },
  36. },
  37. // 结束时间,结束时间我们选择,是要在开始时间之前的禁用,然后,当天以后的时间也禁用
  38. // 比如,开始时间我选择周二,今天是周五,那么就是 周二到周五可以选择,其他的禁止选择
  39. // 这样我需要拿到在data中定义的开始时间,就是要在methods来写了
  40. // pickerOptions3 是在上面模板中定义的
  41. pickerOptions3: {
  42. // this.disabledDate2 是在methods中定义的
  43. disabledDate: this.disabledDate2,
  44. },
  45. }
  46. },
  47. // 可以在watch 做一个小小的优化
  48. watch: {
  49. // 选择开始时间,结束时间 直接清空,用户体检上会更好
  50. "queryParams.fodTimeStart"(newVal, oldVal) {
  51. this.queryParams.fodTimeEnd = "";
  52. },
  53. },
  54. methods:{
  55. disabledDate(time) {
  56. // 判断有没有 开始时间 ,如果没有,直接禁用当天之后的时间
  57. if (this.queryParams.fodTimeStart != null) {
  58. // 拿到开始选择的时间 为什么要去掉后九位是因为我的时间格式不能转化为时间戳而做的处理
  59. const truncatedString = this.queryParams.fodTimeStart.slice(0, -9); // 去掉后九位字符
  60. // 转化时间戳 减去86400000 是24小时的毫秒数
  61. const timestamp = new Date(truncatedString).getTime() - 86400000;
  62. // 做出判断
  63. return time.getTime() < timestamp || time.getTime() > Date.now();
  64. } else {
  65. return time.getTime() > Date.now();
  66. }
  67. },
  68. }

效果图:初始选择时间 

结束时间

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/412334
推荐阅读
相关标签
  

闽ICP备14008679号