位置: IT常识 - 正文

element ui datepicker时间控件实现范围选择周,季,年。(element ui datepicker 源码)

编辑:rootadmin
element ui datepicker时间控件实现范围选择周,季,年。

推荐整理分享element ui datepicker时间控件实现范围选择周,季,年。(element ui datepicker 源码),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:element ui datepicker组件的值,element ui datepicker 默认展开,element ui datepicker 默认展开,element ui datepicker 源码,element ui datepicker 回调,element ui datepicker 回调,element ui datepicker 回调,element ui datepicker 源码,内容如对您有帮助,希望把文章链接给更多的朋友!

因项目要求,需日,周,月,季,年五种日期范围选择器,故参考文章(在末尾)后分享

一.效果图

 

 

element ui datepicker时间控件实现范围选择周,季,年。(element ui datepicker 源码)

二、版本及下载 1.实现需要修改源码,目前修改的版本为2.15.3,所以想要实现该方法,请先将elementui升级或者降到2.15.3.

2.将lib包替换到node_module/element-ui下的lib lib包下载地址 https://download.csdn.net/download/qq_39019765/44321511

具体参考:原文链接:https://blog.csdn.net/m0_67391518/article/details/123266454

三、代码中的使用

此为utils下的common.js文件,用于处理周选择器显示

//将日期转换成一年中的第几周export function getYearWeek(date) { //按照国际标准 let time, week, checkDate = new Date(date); checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7)); time = checkDate.getTime(); checkDate.setMonth(0); checkDate.setDate(1); week = Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1; return week;}//返回格式 2019年第23周,特别注意跨年一周的问题export function getYearAndWeek(date, anotherDate) { let week = getYearWeek(date); let year = date.substring(0, 4); let anotherYear = anotherDate.substring(0, 4); //处理跨年特殊日期 if (anotherDate > date) { let betweenDay = getBetweenDay(new Date(date), new Date(anotherDate)); if (betweenDay == 7 && anotherYear != year) { if (week == 1) { year = parseInt(year) + 1; } } } else { let betweenDay = getBetweenDay(new Date(anotherDate), new Date(date)); if (betweenDay == 7 && anotherYear != year) { if (week != 1) { year = parseInt(year) - 1; } } } return `${year}年第${week}周`;}export function getBetweenDay(beginDate, endDate) { let dateSpan = endDate - beginDate; dateSpan = Math.abs(dateSpan); let days = Math.floor(dateSpan / (24 * 3600 * 1000)); return days + 1;}

type新增季选择器:quarterrange,年选择器:yearrange,周选择器直接在日选择器daterange上修改的,通过添加format来进行判断

代码中,通过添加key值实现点击切换,判断timeName是否为周来进行周选择器处理数据

<el-date-picker ref="refDatePicker" v-model="birthday" :type="TimeType" :key="TimeType" @change="changeDate" :format="timeName === '周' ? format : ''" start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="pickerOptions" value-format="yyyy-MM-dd"></el-date-picker>// 引入common的getYearAndWeek用于处理周选择器import { getYearAndWeek } from "@/utils/common.js"<script>import { getYearAndWeek } from "@/utils/common.js"import dayjs from 'dayjs' // 引入dayjsexport default { data() { // 处理点击切换type时选择器的层级问题 const clickFuncGenerator = (picker, type, text) => { this.TimeType = type picker.$emit('pick', new Date()) setTimeout(() => { this.$refs.refDatePicker.focus() this.timeName = text }, 200) } return { TimeType:'daterange', dataForm:{}, time: "week", timeName:"", birthday: '', pickerOptions: { firstDayOfWeek: 1, shortcuts: [{ text: '日', onClick: picker => clickFuncGenerator(picker, 'daterange', '日') }, { text: '周', onClick: picker => clickFuncGenerator(picker, 'daterange', '周') }, { text: '月', onClick: picker => clickFuncGenerator(picker, 'monthrange', '月') }, { text: '季', onClick: picker => clickFuncGenerator(picker, 'quarterrange', '季') }, { text: '年', onClick: picker => clickFuncGenerator(picker, 'yearrange', '年') }] }, }; }, computed: { //用于处理周选择器 format: { get() { let timeType = this.time; let date = this.birthday; if ("week" == timeType && date && date.length > 0) { let beginYearWeek = getYearAndWeek(date[0], date[1]); let endYearWeek = getYearAndWeek(date[1], date[0]); return beginYearWeek + endYearWeek; } else { return ""; } } } } methods: { changeDate() { if (this.birthday) { // 如果已选择 if (this.timeName !== '周') { this.advancedSearch.beginTime = this.birthday[0] this.advancedSearch.endTime = this.birthday[1] this.getDataList() } else { // 如果是周选择器,引入day用于处理周选择器,开始和结束的周时间加1天 this.advancedSearch.beginTime = dayjs(this.birthday[0]).startOf('week').add(1, 'day').format('YYYY-MM-DD') this.advancedSearch.endTime = dayjs(this.birthday[1]).endOf('week').add(1, 'day').format('YYYY-MM-DD') this.getDataList() } } else { this.advancedSearch.beginTime = '' this.advancedSearch.endTime = '' this.getDataList() } }, },};</script>

 dayjs的官方网站Day.js中文网

此文参考:

1.vue elementui时间控件,(单框同时选)范围选择周,季,年。_打杂的程序员的博客-CSDN博客_vue 时间控件

2.element-ui中的el-date-picker日期选择器, 周选择器获取当前选中周,并显示当日期时间段_八神异步的博客-CSDN博客_el-date-picker 选择周

本文链接地址:https://www.jiuchutong.com/zhishi/278769.html 转载请保留说明!

上一篇:navapp.exe - navapp是什么进程文件 作用是什么

下一篇:iconfig.exe进程是什么文件的 iconfig进程查询(icon files)

  • 怎样让你的群发邮件病毒式传播(怎样让你的群发给别人)

    怎样让你的群发邮件病毒式传播(怎样让你的群发给别人)

  • 网站推广方法系列之网站内容(网站推广的几种方法)

    网站推广方法系列之网站内容(网站推广的几种方法)

  • 谷歌浏览器怎么设置无痕(谷歌浏览器怎么才能正常使用)

    谷歌浏览器怎么设置无痕(谷歌浏览器怎么才能正常使用)

  • 小米应用隐藏在哪设置(小米应用隐藏了)

    小米应用隐藏在哪设置(小米应用隐藏了)

  • 苹果图标自动补位怎么关闭(苹果图标自动补位)

    苹果图标自动补位怎么关闭(苹果图标自动补位)

  • qq快传为什么连接不上(qq快传为什么老是断开)

    qq快传为什么连接不上(qq快传为什么老是断开)

  • 超薄低音炮三个旋钮怎么调(超薄低音炮三个旋钮调试教程)

    超薄低音炮三个旋钮怎么调(超薄低音炮三个旋钮调试教程)

  • 为什么苹果蓝牙打开了没有显示(为什么苹果蓝牙连不上设备)

    为什么苹果蓝牙打开了没有显示(为什么苹果蓝牙连不上设备)

  • 淘宝邀请新人注册有什么奖励(淘宝邀请新人注册有什么奖励2021)

    淘宝邀请新人注册有什么奖励(淘宝邀请新人注册有什么奖励2021)

  • 抖音不显示在线状态是怎么回事(抖音不显示在线时间)

    抖音不显示在线状态是怎么回事(抖音不显示在线时间)

  • 脏数据是指什么(在db技术中脏数据是指什么)

    脏数据是指什么(在db技术中脏数据是指什么)

  • 电脑e盘在哪里打开(电脑e盘在哪里找)

    电脑e盘在哪里打开(电脑e盘在哪里找)

  • 手机面容识别不了(手机面容识别不了怎么办)

    手机面容识别不了(手机面容识别不了怎么办)

  • 格力空调制热外机声音大怎么回事(格力空调制热外机漏水是正常现象吗)

    格力空调制热外机声音大怎么回事(格力空调制热外机漏水是正常现象吗)

  • word文档怎么添加页面(word文档怎么添加方框)

    word文档怎么添加页面(word文档怎么添加方框)

  • 打印机扫描文件到电脑哪里找(打印机扫描文件显示连接至计算机)

    打印机扫描文件到电脑哪里找(打印机扫描文件显示连接至计算机)

  • mate20pro扬声器在哪(华为mete20pro扬声器)

    mate20pro扬声器在哪(华为mete20pro扬声器)

  • vivo手机怎么看电池寿命(vivo手机怎么看激活时间)

    vivo手机怎么看电池寿命(vivo手机怎么看激活时间)

  • 抖音密码忘了手机号换了(抖音密码忘了手机号不用了怎么重新登陆)

    抖音密码忘了手机号换了(抖音密码忘了手机号不用了怎么重新登陆)

  • 快手注销了还能申请吗(快手注销了还能查到吗)

    快手注销了还能申请吗(快手注销了还能查到吗)

  • 一周cp怎么加好友(一周cp怎么找人)

    一周cp怎么加好友(一周cp怎么找人)

  • vue视频保存相册找不到(vue保存不了视频咋整)

    vue视频保存相册找不到(vue保存不了视频咋整)

  • rtk单点解决办法(rtk一直单点)

    rtk单点解决办法(rtk一直单点)

  • 苹果xs max通话录音怎么设置

    苹果xs max通话录音怎么设置

  • pdf如何像ppt一样播放(pdf弄成ppt)

    pdf如何像ppt一样播放(pdf弄成ppt)

  • 显示器dp接口和hdmi有什么区别(显示器dp接口是什么样子?)

    显示器dp接口和hdmi有什么区别(显示器dp接口是什么样子?)

  • 电脑任务栏在右边怎么办?(电脑任务栏在右边怎么调回下边)

    电脑任务栏在右边怎么办?(电脑任务栏在右边怎么调回下边)

  • 国内外人工智能AI工具网站大全(一键收藏,应有尽有)(国内外人工智能发展现状,及最新的人工智能应用?)

    国内外人工智能AI工具网站大全(一键收藏,应有尽有)(国内外人工智能发展现状,及最新的人工智能应用?)

  • 税收优惠属于政策吗
  • 存货跌价准备影响当期损益吗
  • 安置残疾人税收优惠
  • 甲是乙公司依法设立的分公司
  • 费用会计具体工作总结
  • 在建工程试运行收入和成本怎么处理
  • 合作社土地入股协议
  • 银行理财产品赎回
  • 加油站汽油损耗多少
  • 保险公司多赔付的钱需要退还吗
  • 待处置资产损溢在什么科目
  • 特许权使用费个税计算公式
  • 污水处理费计入哪里
  • 银行没有流水怎么开证明
  • 年度中期是几月份
  • 固定资产折旧计算方法
  • 应交税费应交增值税明细科目设置
  • 购入设备超过多少才允许一次性扣除
  • 公司党支部的费用入账
  • 长期股权投资是金融性资产吗
  • 个体户生产所得税怎么计算
  • window10环境变量
  • win10专业版激活密钥永久2023
  • 多缴的企业所得税如何处理
  • 出口退税 免税
  • mac系列电脑
  • ffmpeg安装教程linux
  • linux中链接
  • php变量如何定义
  • 工业厂房修建需要哪些手续
  • php assign
  • 自产产品管理部门领用
  • 销售货物收到普票会计分录
  • 劳务派遣应纳税额如何计算
  • 日落时有什么变化
  • yolov5 anchors 中 K-means聚类
  • 危废处理账务处理
  • 云E办接口文档
  • uni-app是干嘛的
  • 小迪安全2021
  • ab1562a固件
  • php 弱类型变量是怎么实现的
  • 土地租赁费计入哪个科目
  • 营改增后的劳务费怎么开
  • 物业公司购买空调合法吗
  • 赠送代金券账务怎么处理
  • 计提地税会计分录怎么做
  • 退货开增值税专票可以用负数吗
  • 异地出租房屋
  • 存货的进口关税计入成本吗
  • 收到国税退税收怎么做账
  • 支付金额和实付金额的区别
  • 转账支票一定要填写支付密码吗?
  • 员工办理健康证费用由谁支付
  • 月初计提工资,月中发放
  • 如何开展服务工作
  • 购买食品应注意哪些问题?
  • 公司注销记账凭证还有用吗
  • XP系统怎么设置双屏幕
  • XP系统提示QQprotect.exe损坏文件的解决方法图文教程
  • userexperience是什么意思
  • win7更改win10系统要怎么更改
  • win10预览设置
  • ubuntu左侧菜单不见了
  • windows search进程
  • linux远程gui
  • win8的系统
  • 如何解决在沟通中产生的漏斗效应
  • linux里面vim
  • oracle中提取日期时间的特定部分
  • Python爬取网易云音乐歌单内歌曲歌手封面播放地址
  • unity游戏加密
  • jqueryfor
  • python for循环删除元素
  • 为什么python那么难
  • 贵州网上税务局官网登录
  • 税盘换电脑怎么登陆
  • 河南省地方税务局电话
  • 拒绝税务机关检查
  • 城市维护建设税减半征收政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设