位置: 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)

  • 苹果13怎么添加小组件(苹果13怎么添加重庆公交卡)

    苹果13怎么添加小组件(苹果13怎么添加重庆公交卡)

  • ipad钉钉怎么设置虚拟背景(iPad钉钉怎么设置虚拟背景)

    ipad钉钉怎么设置虚拟背景(iPad钉钉怎么设置虚拟背景)

  • 苹果维修id在哪查(苹果手机维修id在哪里)

    苹果维修id在哪查(苹果手机维修id在哪里)

  • iphone图书怎么添加本地书(iphone图书怎么添加字体)

    iphone图书怎么添加本地书(iphone图书怎么添加字体)

  • 华为荣耀8手机如何长截屏(华为荣耀8手机负一屏怎么关闭)

    华为荣耀8手机如何长截屏(华为荣耀8手机负一屏怎么关闭)

  • 抖音授权什么意思(抖音授权是干什么的)

    抖音授权什么意思(抖音授权是干什么的)

  • 微信朋友圈发送失败轻触以再次发送(微信朋友圈发送失败是什么原因)

    微信朋友圈发送失败轻触以再次发送(微信朋友圈发送失败是什么原因)

  • 钉钉传视频会压缩吗(钉钉传视频压缩吗)

    钉钉传视频会压缩吗(钉钉传视频压缩吗)

  • 苹果一共能试几次密码(苹果最多)

    苹果一共能试几次密码(苹果最多)

  • 抖音同一个人看播放量会增加吗(抖音同一个人看了浏览量还会增加吗)

    抖音同一个人看播放量会增加吗(抖音同一个人看了浏览量还会增加吗)

  • 荣耀30pro屏幕刷新率(荣耀30pro刷机教程)

    荣耀30pro屏幕刷新率(荣耀30pro刷机教程)

  • soul怎么知道对方卸载(soul怎么知道对方隐身)

    soul怎么知道对方卸载(soul怎么知道对方隐身)

  • 淘宝第三方是什么意思(淘宝店铺第三方)

    淘宝第三方是什么意思(淘宝店铺第三方)

  • ppt2007怎么自动播放(ppt2007怎么自动放映幻灯片)

    ppt2007怎么自动播放(ppt2007怎么自动放映幻灯片)

  • ipad air3充满电要多久(ipadair充满电要多久)

    ipad air3充满电要多久(ipadair充满电要多久)

  • 计算机的存储设备有哪些(计算机的存储设备有哪些?各有什么特点和作用?)

    计算机的存储设备有哪些(计算机的存储设备有哪些?各有什么特点和作用?)

  • blue link是什么功能(bluelink好用吗)

    blue link是什么功能(bluelink好用吗)

  • 华为荣耀9x上市时间(华为荣耀30)

    华为荣耀9x上市时间(华为荣耀30)

  • 存储单元的内容的概念(存储单元的内容可以多次读出,内容不变)

    存储单元的内容的概念(存储单元的内容可以多次读出,内容不变)

  • 乐视手机自带软件怎么删(乐视手机自带软件下载)

    乐视手机自带软件怎么删(乐视手机自带软件下载)

  • 表格中怎么插虚线(怎么在表格添加虚线)

    表格中怎么插虚线(怎么在表格添加虚线)

  • 话题圈在哪里进入(话题圈app下载)

    话题圈在哪里进入(话题圈app下载)

  • 芒果vip怎么取消续费(芒果vip怎么取消连续包月)

    芒果vip怎么取消续费(芒果vip怎么取消连续包月)

  • 国产手机商为什么用安卓而不用ios(国产手机为什么卖这么贵)

    国产手机商为什么用安卓而不用ios(国产手机为什么卖这么贵)

  • 成功解决成功解决selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Chrome bi(成功解决用英语怎么说)

    成功解决成功解决selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Chrome bi(成功解决用英语怎么说)

  • 土地增值税计算题
  • 工会经费的会计核算方法
  • 住宿费收据属于什么凭证
  • 现金股利和现金利润的区别
  • 月初结存材料成本差异
  • 政府性搬迁补偿收入的税务处理
  • 企业销售赠券的增值税如何处理
  • 港币转人民币怎么转账
  • 认缴制下实缴资本流程
  • 应付企业负担的职工社会保险费
  • 用现金支付销售产品的运费
  • 2018年车船税收费标准
  • 公司注销房产如何转给个人
  • 企业合并以外
  • 科技型企业科研项目申报
  • 委托加工应税消费品收回后直接销售
  • 员工有多处收入怎么申报个人所得税
  • 非金融企业之间的借款合同要交印花税吗
  • 公司房产税怎么做分录
  • 劳务费和工资薪金合并计算个人所得税合适吗
  • 这张磁盘有写保护无法格式化
  • 小微企业免征税额度
  • php正则函数内容匹配
  • 坎塔布莱恩
  • 取得交易性金融资产的交易费用
  • php扩展开发参考手册
  • 企业所得税季初数怎么填
  • 局部规划算法
  • php图片库
  • 无形资产评估增值可以入账吗
  • metareg命令
  • 退预收款需要对方同意吗
  • 开票日期已超过开票截止日期是什么意思
  • 非流动资产基金对应的新科目
  • 内账增值税怎么计提
  • python 复选框怎么设置
  • 建筑企业未按规定预缴增值税
  • mongodb使用案例
  • 以前年度损益调整会计分录
  • 2021增值税发票怎么开步骤
  • 什么情况下需要做肠胃镜
  • 累计净值包含业绩吗
  • 补缴纳税款
  • 固定资产改造的配件怎么入账
  • 评估价值高于账面价值怎么账务处理
  • 以货物抵应收账款的分录
  • 建筑公司脚手架租赁费会计分录
  • 应付账款会计分录例题
  • 分公司可以独立签约吗
  • 企业中征码怎么查询
  • 建筑材料检测费入账科目
  • 一般纳税人购买固定资产进项税可以抵扣吗
  • 退回拨款会计分录怎么做
  • 升级ubuntu
  • centos最小化安装配置网络
  • 电脑safari点击没反应
  • win7不识别大于4T的盘
  • Win10 Mobile 10586.36在Lumia640 XL中的体验 很流畅
  • w8系统输入法怎么弄出来
  • Win7系统文件损坏怎么修复
  • android环境搭建实训心得
  • 支持google play
  • 基于python的设计
  • 信号处理函数 strdup
  • unity游戏开发入门经典
  • glsurfaceview特性
  • python xml.etree
  • 支付宝是怎么写
  • unity接入google内购
  • javascript Math.random()随机数函数
  • javascript含义
  • bootstrap js插件
  • 最新设立税务师事务条件
  • 社保由税务部门征收的文件
  • 湖北省电子税务局操作指南
  • 中行网银查询
  • 苏州税务系统
  • 农村复耕复产
  • 国际贸易争端的形式
  • 20万块手表交多少税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设