0


vue3 日期选择组件,年,月 ,日,时

<script setup> import { reactive } from 'vue'; const data = reactive({ currentSwitch: "day", dateType: "day", valueTwoTimer: [], // 初始化为空数组 }); const myType = [ { label: "年", value: "year" }, { label: "月", value: "month" }, { label: "日", value: "day" }, { label: "时", value: "time" }, ]; const setTimeRange = (time) => { return time.getTime() >= Date.now() - 8.64e6; }; const handleClickBtn = (_index) => { data.currentSwitch = myType[_index].value; // 直接使用 value data.dateType = myType[_index].value; // 这里可能不需要单独设置 dateType,除非有特定用途 data.valueTwoTimer = data.currentSwitch === 'year' ? ['', ''] : []; }; const handleClickLook = () => { console.log("点了查看按钮"); }; </script> <template>
  1. <div class="myTimeRager_home">
  2. <div class="switchBox">
  3. <div class="typeChange-box">
  4. <span> </span>
  5. </div>
  6. <div class="leftBox">
  7. <div
  8. class="yearBtn"
  9. :class="{ isActive: data.currentSwitch === 'year' }"
  10. @click="handleClickBtn(0)"
  11. >
  12. </div>
  13. <div
  14. class="yearBtn"
  15. :class="{ isActive: data.currentSwitch === 'month' }"
  16. @click="handleClickBtn(1)"
  17. >
  18. </div>
  19. <div
  20. class="yearBtn"
  21. :class="{ isActive: data.currentSwitch === 'day' }"
  22. @click="handleClickBtn(2)"
  23. >
  24. </div>
  25. <div
  26. class="yearBtn"
  27. :class="{ isActive: data.currentSwitch === 'time' }"
  28. @click="handleClickBtn(3)"
  29. >
  30. </div>
  31. </div>
  32. <div class="search_right">
  33. <template v-if="data.currentSwitch === 'year'">
  34. <el-date-picker
  35. v-model="data.valueTwoTimer[0]"
  36. type="year"
  37. format="YYYY"
  38. value-format="YYYY"
  39. placeholder="开始时间"
  40. style="width: 100px"
  41. ></el-date-picker>
  42. <div style="margin: 0px 15px 0px 30px">-</div>
  43. <el-date-picker
  44. v-model="data.valueTwoTimer[1]"
  45. type="year"
  46. format="YYYY"
  47. value-format="YYYY"
  48. placeholder="结束时间"
  49. style="width: 100px; margin-right: 20px"
  50. ></el-date-picker>
  51. </template>
  52. <template v-else-if="data.currentSwitch === 'month'">
  53. <el-date-picker
  54. v-model="data.valueTwoTimer"
  55. type="monthrange"
  56. start-placeholder="开始时间"
  57. end-placeholder="结束时间"
  58. value-format="YYYY-MM"
  59. ></el-date-picker>
  60. </template>
  61. <template v-else-if="data.currentSwitch === 'day'">
  62. <el-date-picker
  63. v-model="data.valueTwoTimer"
  64. type="daterange"
  65. start-placeholder="开始时间"
  66. end-placeholder="结束时间"
  67. value-format="YYYY-MM-DD"
  68. ></el-date-picker>
  69. </template>
  70. <template v-else>
  71. <el-date-picker
  72. :disabledDate="setTimeRange"
  73. start-placeholder="开始时间"
  74. end-placeholder="结束时间"
  75. v-model="data.valueTwoTimer"
  76. type="datetimerange"
  77. range-separator="-"
  78. value-format="YYYY-MM-DD HH"
  79. unlink-panels
  80. ></el-date-picker>
  81. </template>
  82. </div>
  83. <div class="rightBox">
  84. <el-button class="hdtbutton look" @click="handleClickLook">
  85. 查询
  86. </el-button>
  87. </div>
  88. </div>
  89. </div>
</template> <style scoped> .myTimeRager_home { width: 100%; height: 100%; } .myTimeRager_home .switchBox { width: 60%; height: 4.8%; margin-bottom: 10px; font-size: calc(100vw * 16 / 1920); display: flex; align-items: center; } .myTimeRager_home .switchBox .isActive { font-weight: bold; color: #fff; background: #4279ca; } .myTimeRager_home .switchBox .leftBox { width: 24%; height: 100%; display: flex; } .myTimeRager_home .switchBox .leftBox .yearBtn { width: 36px; height: 100%; padding: 0px 10px; margin-right: 7px; color: #4279ca; background-color: #ebf0f5; border: 1px solid #fff; border-radius: 4px; display: flex; justify-content: center; align-items: center; cursor: pointer; } .myTimeRager_home .switchBox .leftBox .yearBtn:hover { background-color: #d6e4f2; /* 可选:添加悬停效果 */ } .myTimeRager_home .switchBox .search_right { width: 53%; height: 100%; display: flex; align-items: center; border-radius: 6px; border: 1px solid rgba(234, 243, 253, 1); background-color: rgba(247, 248, 250, 1); flex: 1; } .myTimeRager_home .switchBox .search_right .el-date-editor { --el-date-editor-datetimerange-width: 290px; .el-input__inner { text-align: center; } } .myTimeRager_home .switchBox .search_right .el-date-editor { width: 400px !important; --el-input-bg-color: rgba(247, 248, 250, 1); --el-input-border-color: rgba(247, 248, 250, 1); --el-input-focus-border-color: rgba(247, 248, 250, 1); --el-input-hover-border-color: rgba(247, 248, 250, 1); } .myTimeRager_home .switchBox .rightBox .hdtbutton { width: 104px; height: 39px; border-radius: 6px; padding: 0; display: inline-block; line-height: 39px; text-align: center; margin-left: 10 } </style>

本文转载自: https://blog.csdn.net/Lanran177/article/details/143447322
版权归原作者 Lanran177 所有, 如有侵权,请联系我们删除。

“vue3 日期选择组件,年,月 ,日,时”的评论:

还没有评论