tnblog
首页
视频
资源
登录

element plus 日期组件el-date-picker增加时间日期范围,本周上周本月上月本季度上季度时间段。快捷选择

209人阅读 2025/5/13 11:41 总访问:724884 评论:0 收藏:0 手机
分类: 前端

代码如下:

  1. <el-date-picker
  2. style="width: 100%"
  3. v-model="searchForm.dateRange"
  4. type="daterange"
  5. :shortcuts="shortcuts"
  6. range-separator="至"
  7. start-placeholder="开始日期"
  8. end-placeholder="结束日期"
  9. value-format="YYYY-MM-DD"
  10. clearable
  11. />

ts:

  1. const shortcuts = [
  2. {
  3. text: '本周',
  4. value: () => {
  5. const end = dayjs().endOf('week').add(1, 'day').format('YYYY-MM-DD');
  6. const start = dayjs().startOf('week').add(1, 'day').format('YYYY-MM-DD');
  7. return [start, end];
  8. },
  9. },
  10. {
  11. text: '上周',
  12. value: () => {
  13. const end = dayjs().add(-1, 'week').endOf('week').add(1, 'day').format('YYYY-MM-DD');
  14. const start = dayjs().add(-1, 'week').startOf('week').add(1, 'day').format('YYYY-MM-DD');
  15. return [start, end];
  16. },
  17. },
  18. {
  19. text: '本月',
  20. value: () => {
  21. const start = dayjs().startOf('month').format('YYYY-MM-DD');
  22. const end = dayjs().endOf('month').format('YYYY-MM-DD');
  23. return [start, end];
  24. },
  25. },
  26. {
  27. text: '上月',
  28. value: () => {
  29. const start = dayjs().add(-1, 'month').startOf('month').format('YYYY-MM-DD');
  30. const end = dayjs().add(-1, 'month').endOf('month').format('YYYY-MM-DD');
  31. return [start, end];
  32. },
  33. },
  34. {
  35. text: '本季度',
  36. value: () => {
  37. return getQuarterDates();
  38. },
  39. },
  40. {
  41. text: '上季度',
  42. value: () => {
  43. return getLastQuarterDates();
  44. },
  45. },
  46. ];
  47. // 计算本季度的开始和结束日期
  48. function getQuarterDates() {
  49. // 获取当前日期
  50. const now = dayjs();
  51. // 获取当前季度(1-4)
  52. const quarter = Math.floor((now.month() + 3) / 3);
  53. // 获取当前年份
  54. const year = now.year();
  55. const quarterMonth = (quarter - 1) * 3; // 季度对应的第一个月(0-based)
  56. const startDate = dayjs(new Date(year, quarterMonth, 1));
  57. const endDate = dayjs(new Date(year, quarterMonth + 3, 0)); // 下个月第0天即本月最后一天
  58. return [startDate.format('YYYY-MM-DD'), endDate.format('YYYY-MM-DD')];
  59. }
  60. // 计算上季度的开始和结束日期
  61. function getLastQuarterDates() {
  62. // 获取当前日期
  63. const now = dayjs();
  64. // 获取当前季度(1-4)
  65. const currentQuarter = Math.floor((now.month() + 3) / 3);
  66. // 获取当前年份
  67. const currentYear = now.year();
  68. const previousQuarter = currentQuarter === 1 ? 4 : currentQuarter - 1;
  69. const previousYear = currentQuarter === 1 ? currentYear - 1 : currentYear;
  70. const quarterMonth = (previousQuarter - 1) * 3; // 季度对应的第一个月(0-based)
  71. const startDate = dayjs(new Date(previousYear, quarterMonth, 1));
  72. const endDate = dayjs(new Date(previousYear, quarterMonth + 3, 0)); // 下个月第0天即本月最后一天
  73. return [startDate.format('YYYY-MM-DD'), endDate.format('YYYY-MM-DD')];
  74. }

欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

vue3 element plus 表单输入框放到一行

当垂直方向空间受限且表单较简单时,可以在一行内放置表单。 通过设置 inline 属性为 true 可以让表单域变为行内的表单域...

element plus 下拉列表select的使用下拉列表无法选择值

下拉列表无法选择值要给一个v-model: 而且要给对,在下面对应的要有:

element plus 下拉列表默认选中有延迟

会先加载id或者编号,然后有点延迟的时间才转换成内容。 [TOC]可以这样解决,绑定的时候给中文名字,然后在改变的时候给Id...

vue elementui,vue3 element plus 文件上传的时候设置其他参数后台.net接收传递的额外参数图片上传

比如上传文件的时候额外传递两个select选择的值 前台前面上传文件的时候要提供默认参数很简单,el-upload绑定一个data即可...

vue3 element plus 表格使用vue3常用界面搭配vue3基础模板使用

一个简单的表格加时间搜索界面效果如下: 代码如下: &lt;template&gt; &lt;div class=&quot;app-container&quot;&g...

element plus table 表格 获取选中的行

官网的表格文档就有,直接一个方法就搞定了,看官网表格的文档中的方法介绍就有了 使用getSelectionRows方法即可 &lt;el-...

element plus 日期选择器 限制日期范围限制只能选择当前月份之后的月份

element plus 日期选择器 可以用disabledDate来限制日期范围。例如限制只能选择当前月份以及之后的月份。 &lt;el-date-pi...

element plus 带提交内容的删除确认框element plus 确认框

[TOC]Element Plus 带提交内容的删除确认框 ElMessageBox.prompt(&#39;是否确认删除数据,涉及到的数据将会被物理删除,...

vue3 element plus table+Sortable.js 行拖动,表格拖动

要先安装好Sortable.js依赖 cnpm install sortable.js 实现拖动的代码如下可以直接复制运行 &lt;template&gt; &lt;...

element plus与element ui 多选表格判断某行是否选中

element plus 多选表格判断每行是否选中@select=&quot;selectRow&quot; const selectRow = (selection: any, row: any) ...

element plus 表格 table分页状态或者条件类型切换下实现勾选记录

实现这种切换的时候勾选的复选框状态保持,如果是分页其实实现思路也一样。 实现思路:有一个缓存,存储的是选中的行,...

element plus tree 获取选中节点的父节点树获取所有选中的节点

[TOC]element plus tree 获取选中节点的父节点通过 treeRef.value.getNode(data) 获取到当前节点的实例,随后通过 node.par...
真诚,善良,美好,温柔,皆是你
排名
9
文章
120
粉丝
5
评论
5
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术