首页 > 其他分享 >element ui 自定义的快捷选项的日期选择器并格式化

element ui 自定义的快捷选项的日期选择器并格式化

时间:2024-03-15 09:46:51浏览次数:45  
标签:picker end 自定义 element start Date new 选择器 const

效果图

时间日期选择器(el-date-picker)
设置为段时间:
type="datetimerange"
规范格式:
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"

1 .给日期选择器el-date-picker标签添加picker-options属性,传入变量pickerOptions

<el-date-picker //日期选择器
    v-model="timeCycle" //双向绑定一个value值
    type="datetimerange" // 时间选择器的类型
    :picker-options="pickerOptions" //绑定一个变量获取到快捷键
    range-separator="至" // 日期选择器上开始和结束时间中间的文字
    start-placeholder="开始日期"
    end-placeholder="结束日期"
    format="yyyy-MM-dd"   //格式化日期
    value-format="yyyy-MM-dd"//value值的格式规定时间格式
>
</el-date-picker>

2日期选择器绑定变量timeCycle

<script>
export default {
    data(){
      return {
          timeCycle:[]
      }
    }
}
</script>

3给pickerOptions变量设置shortcuts属性
完整的如下:

export default {
    data(){
      return {
          timeCycle:[] ,
        pickerOptions: {
          shortcuts: [{
            text: '今天',
            onClick(picker) {
              picker.$emit('pick', [new Date(), new Date()]);
            }
          }, {
            text: '昨天',
            onClick(picker) {
              const date = new Date();
              date.setTime(date.getTime() - 3600 * 1000 * 24);
              picker.$emit('pick', [date,date]);
            }
          }, 
            {
            text: '近7天',
            onClick(picker) {
              const end = new Date();
              const start = new Date();
              end.setTime(start.getTime() - 3600 * 1000 * 24 )
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
              picker.$emit('pick', [start, end]);
            }
          }, {
            text: '近30天',
            onClick(picker) {
              const end = new Date();
              const start = new Date();
              end.setTime(start.getTime() - 3600 * 1000 * 24 )
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
              picker.$emit('pick', [start, end]);
            }
          }, {
            text: '近90天',
            onClick(picker) {
              const end = new Date();
              const start = new Date();
              end.setTime(start.getTime() - 3600 * 1000 * 24 )
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
              picker.$emit('pick', [start, end]);
            },
          },
           {
            text: '近180天',
            onClick(picker) {
              const end = new Date();
              const start = new Date();
              end.setTime(start.getTime() - 3600 * 1000 * 24 )
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 180);
              picker.$emit('pick', [start, end]);
            },
          },
          {
            text: '近一年',
            onClick(picker) {
              const end = new Date();
              const start = new Date();
              end.setTime(start.getTime() - 3600 * 1000 * 24 )
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 365);
              picker.$emit('pick', [start, end]);
            },
          },
          {text: '本周',
              onClick(picker) {
                 const end = new Date();
                 const start = new Date();
                 end.setTime(start.getTime() - 3600 * 1000 * 24 )
                 //现在星期几;0代表星期天,6代表星期六
                 var thisDay = start.getDay();
                 //现在是一个月的第几天
                 var thisDate = start.getDate();
                 console.log(thisDay)
                 console.log(thisDate)
                 if (thisDay != 0) {
                     start.setDate(thisDate - thisDay+1);
                 }
                   picker.$emit('pick', [start, end]);
              }
           },
           {
              text: '本月',
              onClick(picker) {
                  const end = new Date();
                  const start = new Date();
                  end.setTime(start.getTime() - 3600 * 1000 * 24 )
                  start.setDate(1);
                  picker.$emit('pick', [start, end]);
              }
            },
            {
              text: '本季度',
              onClick(picker) {
                  var oDate = new Date();
                  var thisYear = oDate.getFullYear();
                  var thisMonth = oDate.getMonth() + 1;
                  var n = Math.ceil(thisMonth / 3); // 季度
                  var Month = n * 3 - 1;
                  var start = new Date(thisYear, Month - 2, 1);
                  var end = new Date();
                  end.setTime(end.getTime() - 3600 * 1000 * 24 )
                  picker.$emit('pick', [start, end]);
            }
          },
          {
              text: '本年',
              onClick(picker) {
                  const end = new Date();
                  const start = new Date();
                  start.setMonth(0);
                  start.setDate(1);
                  end.setTime(end.getTime() - 3600 * 1000 * 24 )
                  picker.$emit('pick', [start, end]);
              }
          }, 
          ]
        },
      }
    }
}

4.选好收结果是个数组

this.timeCycle 可以获取到所选的结果

标签:picker,end,自定义,element,start,Date,new,选择器,const
From: https://www.cnblogs.com/zh76412950/p/18074722

相关文章

  • QT6.6下android编译及调用自定义so库方法
    一.问题概述   最近需要把QT程序从5.12的桌面环境移植到QT6.6的android下,项目中有很多DLL库要重新编译为so文件,移植到android环境然后调用,中间有很多坑,虽然大体和桌面系统用法相同,但细节上还是有区别的,尤其是so库的调用方法上,过程中也是debug了两天才解决,如果你也遇到了同......
  • vue3 引入 ElementUI
     vue3使用elementUI会报错,需要引入elementUIPlus。Plus官网:https://element-plus.gitee.io/zh-CN/guide/quickstart.htmlUI官网:https://element.eleme.cn/#/zh-CN/component/installation1.安装ElementUIPlusnpminstallelement-plus--savepackage.json检查。......
  • QT 自定义QGraphicsItem 缩放后旋转 图形出现漂移问题
    实现自定义QGraphicsItem缩放和旋转时,遇到了这样一个问题:将item旋转一个角度,然后拖拽放大,再次进行旋转时图像会发生漂移。原本以为是放大后中心点位置没有改变,导致旋转时以原中心的旋转出现了偏移,但是重新设置旋转中心setTransformOriginPoint(rect.center());并没有起作用,图像......
  • 【SpringBoot】自定义工具类实现Excel数据新建表存入MySQL数据库
    ......
  • 有手就会Python自定义模块使用
    1.自定义模块自定义模块一般是在项目中根据自己的需求进行的封装项目中自定义了额一个模块,module.pyname="张三"age=23weight=160height=187deftest():print("测试的方法")defdemo():print("天使的眼泪")deffn():print("老鼠爱大米")2.......
  • sed 替换时自定义分隔符
    如果嫌转义字符转来转去麻烦,也可以自定义替换里的分隔符,而不是用默认的”\”。在替换命令s里自定义替换分隔符,这里用的@,也可以用|、!、^等特殊符号。前提是文本内不会出现该分隔符。注意,这里指定的分隔符不支持多个字符,比如@|作为一个分隔符是不支持的。将文件内的/替换为\cat......
  • 【Vue3】element-plus按需自动导入的配置 以及icon不显示的解决方案
    首先需要安装unplugin-vue-components,unplugin-auto-import,unplugin-icons三款插件。npminstall-Dunplugin-vue-componentsunplugin-auto-importunplugin-icons然后vite.config.js里加入下面的配置:import{defineConfig}from"vite";importVuefrom"@vitejs/plug......
  • CRM端自定义数据抽取增强为输入值抽取
    因某些原因,导致一些数据没有从ERP传到CRM。R3AR2中定义客户,物料,或者价格等的请求。然后修改R3AR4程序:REPORTzcrm_bdoc_batch_startMESSAGE-IDsmof.INCLUDEsmofdirekt.*---------------------------------------------------------------------*Tabledefinitions*......
  • MATLAB神经网络——如何自定义属于自己的训练流程
    网络上大部分matlab神经网络训练流程都应用matlab内置的相关训练函数进行训练,如何让matlab神经网络训练过程拥有像pytorch一样的训练过程呢?本文将通过一个案例介绍如何利用matlab自定义自己的训练流程,希望对你有所启迪,让我们开始吧!clear,clc加载并处理原始数据  我们使用......
  • [LeetCode] 2789. Largest Element in an Array after Merge Operations
    Youaregivena0-indexedarraynumsconsistingofpositiveintegers.Youcandothefollowingoperationonthearrayanynumberoftimes:Chooseanintegerisuchthat0<=i<nums.length-1andnums[i]<=nums[i+1].Replacetheelementnums......