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

  • 水星路由器怎么设置无线桥接(水星路由器怎么改wifi密码)

    水星路由器怎么设置无线桥接(水星路由器怎么改wifi密码)

  • 未发货退款会影响信誉吗(未发货退款会影响卖家吗)

    未发货退款会影响信誉吗(未发货退款会影响卖家吗)

  • ddr4双通道有必要吗(ddr 双通道)

    ddr4双通道有必要吗(ddr 双通道)

  • 数据计算的特点是(数据计算的特点是什么)

    数据计算的特点是(数据计算的特点是什么)

  • 抖音集卡金卡是什么(抖音集卡金卡是真的吗)

    抖音集卡金卡是什么(抖音集卡金卡是真的吗)

  • 充电线越插越松(充电的时候充电线为什么很松)

    充电线越插越松(充电的时候充电线为什么很松)

  • 5g消息是什么意思(5g消息是什么意思是短信吗)

    5g消息是什么意思(5g消息是什么意思是短信吗)

  • 打印机打字不清晰怎么回事(打印机打字不清楚怎么办)

    打印机打字不清晰怎么回事(打印机打字不清楚怎么办)

  • 苹果11发热能退吗(苹果11发热严重可以退货吗)

    苹果11发热能退吗(苹果11发热严重可以退货吗)

  • 苹果引导模式怎么开(苹果引导模式怎么开不了)

    苹果引导模式怎么开(苹果引导模式怎么开不了)

  • 文稿与数据是什么(文稿与数据包括聊天记录吗)

    文稿与数据是什么(文稿与数据包括聊天记录吗)

  • 如何设置手机使用时间(如何设置手机使用时间显示)

    如何设置手机使用时间(如何设置手机使用时间显示)

  • 快手最多可以关注多少人限量吗?(快手最多可以关注多少)

    快手最多可以关注多少人限量吗?(快手最多可以关注多少)

  • kingroot有风险吗(kingroot怎么下架了)

    kingroot有风险吗(kingroot怎么下架了)

  • oppoa11x有没有呼吸灯 (oppo有没有呼叫功能)

    oppoa11x有没有呼吸灯 (oppo有没有呼叫功能)

  • 抖音怎么发完整视频链接(抖音怎么发完整版歌曲图文)

    抖音怎么发完整视频链接(抖音怎么发完整版歌曲图文)

  • 华为mate30怎么打开灭屏显示(华为mate30怎么打开单手操作)

    华为mate30怎么打开灭屏显示(华为mate30怎么打开单手操作)

  • 微信删除照片怎么恢复(微信删除照片怎么删除)

    微信删除照片怎么恢复(微信删除照片怎么删除)

  • 台式机怎么看主板品牌(台式机怎么看主板信息)

    台式机怎么看主板品牌(台式机怎么看主板信息)

  • 怎样修改微信年龄(怎样修改微信年龄信息)

    怎样修改微信年龄(怎样修改微信年龄信息)

  • cad平移的快捷键(cad平移快捷键是什么线段)

    cad平移的快捷键(cad平移快捷键是什么线段)

  • 移动硬盘闪灯但读不出(移动硬盘闪灯但读不出,显示参数错误)

    移动硬盘闪灯但读不出(移动硬盘闪灯但读不出,显示参数错误)

  • 尿急、尿频、尿痛怎么办(图文)(尿急尿频尿不尽吃什么药效果好)

    尿急、尿频、尿痛怎么办(图文)(尿急尿频尿不尽吃什么药效果好)

  • vue3 父子组件传参详解(vue3父子组件传递数组通信)

    vue3 父子组件传参详解(vue3父子组件传递数组通信)

  • Win11系统自带输入法怎么卸载?Win11自带输入法删除方法(Win11系统自带输入法怎么卸载)

    Win11系统自带输入法怎么卸载?Win11自带输入法删除方法(Win11系统自带输入法怎么卸载)

  • 营业执照注销对商标有影响吗
  • 小规模纳税人固定资产可以一次扣除吗
  • 政府工会经费收入如何做凭证
  • 纳税收入包含哪些
  • 外币实收资本入账汇率
  • 增值税发票什么时候认证
  • 支付投资人的投资收益账务处理
  • 企业清算的资产包括
  • 慰问金计入什么明细科目
  • 房地产企业成本包括哪些
  • 小企业以前年度损益调整科目取消了吗
  • 资产负债表要素包括几项
  • 暂估发票到账出入库单要填吗
  • 无形资产资本化会计处理
  • 建筑企业简易计税异地预缴
  • 外贸企业采购货物会计分录
  • 城市建设维护税和教育费附加怎么算
  • 一次性离职补偿个税
  • 制造费用可以直接转入本年利润吗
  • 应付职工薪酬会计科目怎么做
  • 个人所得税完整证明
  • 综合所得收入包括哪些所得项目
  • 政府补助专项资金账务处理
  • 个人借单位的钱要交税吗
  • 计算应纳税所得额时可以扣除的项目有
  • 生产车间的窗帘怎么处理
  • 在windows七中
  • 不计入开办费可以吗
  • 税金的分录
  • php中false的作用
  • 招标单位收取标书费多少钱
  • 酒店装修费用如何抵扣税
  • 自产自销农产品发票如何开具
  • 输入什么验证
  • 费用冲账的会计分录
  • 阿尔萨斯葡萄园
  • 电子退库款
  • Vue(ref和$refs属性介绍与使用)
  • 即征即退先征后返属于政府补助吗
  • 车间打杂工
  • MySQL中Nested-Loop Join算法小结
  • 分期付款的消费税怎么计算
  • 出口汽车配件怎么报关
  • 劳务公司包工包料工程如何账务处理
  • 其他货币资金的六个内容
  • sql server添加语句
  • mysql交互操作过程中使用的语言是什么
  • mysql数据库性能监控
  • 不反写会影响开票吗
  • 企业当期营业收入的计算
  • 开票软件服务费全额抵扣怎么做账
  • 废料如何做分录
  • 避险功能是什么意思
  • 收到某企业一笔发票
  • 注册资金没有到位
  • 企业发生的经济业务主要有哪些
  • 有存货的公司
  • win8系统开机直接进入桌面
  • macos 右键菜单
  • linux操作系统查询命令
  • 如何ie8升级到10
  • win7下安装XP
  • mac连电视
  • 批处理怎么用
  • css一般可以放在几个地方
  • 批处理安装
  • js日历控件代码和效果
  • Android-Canvas.drawText()详解
  • 学习雷锋好榜样
  • unity3d赛车游戏毕业设计
  • javascript 自定义类
  • 烟叶处理
  • 青岛的红叶什么时候红
  • 小规模纳税人利润如何缴税
  • 从批准文号怎么区分国产还是进口
  • 酒店行业区分小巨头企业
  • 税务非正常户要提交什么资料
  • 特定公共服务是什么意思
  • 租赁合同备案后可以更改吗
  • 行政单位,比如什么单位
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设