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

  • 荣耀50支持红外线遥控功能吗(荣耀70支持红外线功能吗)

    荣耀50支持红外线遥控功能吗(荣耀70支持红外线功能吗)

  • 红米note11怎么投屏(红米note9怎么投影)

    红米note11怎么投屏(红米note9怎么投影)

  • 抖音更新后怎么没有动态了(抖音更新后怎么保存视频)

    抖音更新后怎么没有动态了(抖音更新后怎么保存视频)

  • oppor9图案密码忘记了怎么办(oppor9手机图案密码忘记了怎么办)

    oppor9图案密码忘记了怎么办(oppor9手机图案密码忘记了怎么办)

  • 抖音作品审核中是不是要上热门了(抖音作品审核中可以删除吗)

    抖音作品审核中是不是要上热门了(抖音作品审核中可以删除吗)

  • 闲鱼如何隐藏来过时间(闲鱼如何隐藏来过)

    闲鱼如何隐藏来过时间(闲鱼如何隐藏来过)

  • 手机号码是空号了还能补办吗(手机号码是空号了,充话费还能用吗?)

    手机号码是空号了还能补办吗(手机号码是空号了,充话费还能用吗?)

  • 抖音被浏览了是不是就会出现记录(抖音被浏览是因为有人进主页看吗)

    抖音被浏览了是不是就会出现记录(抖音被浏览是因为有人进主页看吗)

  • 手机耳机有杂音滋滋(手机耳机有杂音滋滋怎么办)

    手机耳机有杂音滋滋(手机耳机有杂音滋滋怎么办)

  • 文档空白处怎么加横线(文档空白处怎么打下划线)

    文档空白处怎么加横线(文档空白处怎么打下划线)

  • 网页500错误什么意思(打开网页报500错误)

    网页500错误什么意思(打开网页报500错误)

  • qq说说删了名片上还显示(qq说说删掉)

    qq说说删了名片上还显示(qq说说删掉)

  • 荣耀v30pro不能用有线耳机吗(荣耀v30pro不能连wifi了)

    荣耀v30pro不能用有线耳机吗(荣耀v30pro不能连wifi了)

  • dualbios是什么意思(电脑出现dualbios是什么意思)

    dualbios是什么意思(电脑出现dualbios是什么意思)

  • 手机视频聊天怎么分享屏幕(手机视频聊天怎么收费)

    手机视频聊天怎么分享屏幕(手机视频聊天怎么收费)

  • 苹果11pro和pro max区别(苹果11pro和promax手机壳一样吗)

    苹果11pro和pro max区别(苹果11pro和promax手机壳一样吗)

  • id头像换不了怎么回事(id头像换不了怎么办)

    id头像换不了怎么回事(id头像换不了怎么办)

  • 南京地铁电子卡使用范围(微信怎么领取南京地铁电子卡)

    南京地铁电子卡使用范围(微信怎么领取南京地铁电子卡)

  • 抖音怎么开直播教程(抖音怎么开直播放电视剧)

    抖音怎么开直播教程(抖音怎么开直播放电视剧)

  • 拼多多精选在哪里找(拼多多精选推荐在哪里找)

    拼多多精选在哪里找(拼多多精选推荐在哪里找)

  • 小米手环睡眠监测原理(小米手环睡眠监测需要连接手机吗)

    小米手环睡眠监测原理(小米手环睡眠监测需要连接手机吗)

  • AI拍照如何开启(ai照片怎么打开)

    AI拍照如何开启(ai照片怎么打开)

  • 笔记本键帽怎么拆(笔记本键帽怎么装回去)

    笔记本键帽怎么拆(笔记本键帽怎么装回去)

  • 商务数据分析是什么(数据分析主要是做什么)

    商务数据分析是什么(数据分析主要是做什么)

  • opporeno是全网通吗(opporeno5全网通)

    opporeno是全网通吗(opporeno5全网通)

  • 搜狗浏览器如何设置拦截(搜狗浏览器如何把网页保存到桌面)

    搜狗浏览器如何设置拦截(搜狗浏览器如何把网页保存到桌面)

  • 2023最新最全vscode插件精选(2023最新最全的祈祷视频)

    2023最新最全vscode插件精选(2023最新最全的祈祷视频)

  • ps渐变透明效果怎么做(ps渐变透明效果怎么弄)

    ps渐变透明效果怎么做(ps渐变透明效果怎么弄)

  • 企业技术转让享受税收优惠政策应符合哪些条件
  • 实物折扣的增值税
  • 保险公司代收车船税会计分录
  • 借贷利息怎么算
  • 上年多交的增值税能退吗
  • 民营非营利企业会计分录大全
  • 库存现金盘盈盘亏的账务处理
  • 企业股权资本的组成
  • 企业税收标准是多少
  • 用货物抵债如何做分录
  • 支付以前年度的费用会计处理
  • 财政收回项目资金的整改报告
  • 未支付的款项如何做账
  • 通讯费可以抵扣进项税吗
  • 增值税的附加
  • 把水费开成物业费发票有什么风险吗?
  • 天猫企业支付宝怎么提现
  • 没进项发票要交多少税
  • 营改增对资产负债表的影响
  • 借款利息可以入账吗
  • 单位给员工发工资要交税吗
  • 利润表季报表
  • 可以开运费发票的单位有哪些
  • 支付个人利息没有取得发票
  • 联通官网测网速
  • 电脑添加小工具
  • 收到折扣属于什么会计科目
  • PHP:oci_set_prefetch()的用法_Oracle函数
  • 免征的增值税需要纳税调整吗
  • PHP:session_cache_limiter()的用法_Session函数
  • 政府划入资产会计处理
  • 收到现金股利或债券利息时会计分录
  • 特殊行业需要缴什么税
  • 以下关于static
  • 发票多盖了一个发票章咋办
  • 伫立枝头的旅鸫鸟,加拿大 (© marcophotos/Getty Images)
  • 建筑行业有哪些岗位,从事的要求有哪些
  • 海獭妈妈和新生儿的故事
  • 二元运算例子
  • 工程没结算能否竣工验收
  • 时间格式转换成小时数
  • 确认递延所得税资产时,应估计相关可抵扣
  • 帝国cms怎么调用文章随机段落
  • 小企业会计准则和一般企业会计准则的区别
  • python深入浅出
  • MySQL中使用什么语句来更新表中的记录
  • 货到票未到的会计分录怎么做
  • 积分获取和消费的关系
  • 纳税人企业本月纳税额
  • 实际成本法下采购材料的会计分录
  • 商贸公司用购进产品吗
  • 税费滞纳金计入营业外支出吗
  • 收到员工生育津贴怎么做分录
  • 本年利润在明细里怎么填
  • 企业间贴现手续怎么办理
  • 咨询服务费如何合理避税
  • 三证合一后还有纳税人资格证吗
  • mysql5.6解压版安装教程
  • macbookpro 钥匙串
  • linux快速清空大日志文件
  • ubuntu16.04怎么改成中文
  • 电脑久了就会高温
  • centos 7.6安装教程
  • centos安装完为什么没有桌面
  • linux中fdisk -l
  • 代理服务器只能代理客户端http的请求
  • Unity3d Asset Serialization 设置错误导致SVN文件不能同步
  • linux中date命令详解
  • node js入门
  • jsp页面显示日历控件
  • js alert()
  • jquery 延迟对象
  • python cx_Oracle模块的安装和使用详细介绍
  • 怎么利用python爬虫爬数据
  • 新浪微博手机客户端下载
  • 辽宁省国税局网站
  • 联华超市华联超市哪个厉害
  • 广东省国家税务局电子发票系统,网络设置
  • 煤老板的苦恼
  • 内蒙古国税网上办税厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设