vue使用element中的el-date-picker实现每月的第几周

最近写的项目里面有一个功能是实现选择周的(如图 1),第一反应是使用element里面的el-date-picker组件,但是有一个问题,就是el-date-picker的周选择组件是一整年的第几周(如图 2),而不是每个月的第几周,然后就去查了一下,发现element里面也没有实现选择每个月的第几周的,那么只能自己改了。

图 1

图 2

  1. 首先我们要把el-date-picker里面显示改为图1所示的样子
  2. 结构有了就要实现功能了,简单点想就是点击选择日期的时候根据选中的日期来判断是这个月的第几周,然后修改选择框的内容。
  3. 加上默认显示值,需要获取当天的年月日以及对应月的第几周来实现

实现如下代码所示:

<template><div class="test-box"><span>每周</span><el-date-picker:clearable="false"v-model="queryParam.value":format="'yyyy-MM 第' + queryParam.week + '周'"@change="weekChange"value-format="yyyy-M-d"class="inp"size="medium"type="week"placeholder="请选择":picker-options="{'firstDayOfWeek': 1}"></el-date-picker></div>
</template><script>
export default {data() {return {queryParam: {value: '',week: ''}};},created() {this.getDay();},methods: {// 初始化日期getDay() {var date = new Date();var year = date.getFullYear();var month = date.getMonth() + 1;var day = date.getDate();if (month < 10) {month = '0' + month;}if (day < 10) {day = '0' + day;}let nowDay = year + '-' + month + '-' + day;this.queryParam.week = this.getWeekInMonth(new Date(nowDay));this.queryParam.value = year + '-' + month + '-' + day;},weekChange(val) {if (val) {let arr = val.split('-');this.queryParam.week = this.getWeekInMonth(new Date(val));}},// 根据日期判断是月的第几周getWeekInMonth(t) {if (t == undefined || t == '' || t == null) {t = new Date();} else {var _t = new Date();_t.setYear(t.getFullYear());_t.setMonth(t.getMonth());_t.setDate(t.getDate());var date = _t.getDate(); //给定的日期是几号_t.setDate(1);var d = _t.getDay(); //1. 得到当前的1号是星期几。var fisrtWeekend = d;if (d == 0) {fisrtWeekend = 1;//1号就是星期天} else {fisrtWeekend = 7 - d + 1; //第一周的周未是几号}if (date <= fisrtWeekend) {return 1;} else {return 1 + Math.ceil((date - fisrtWeekend) / 7);}}}}
};
</script><style lang="less" scoped="scoped">
.test-box {background: #ffffff;height: 31.25rem;padding: 1.875rem 0 0 1.875rem;.inp {margin: 0 0 0 0.625rem;}
}
</style>

最终效果如下图所示:

好了,今天就分享到这里,我们下次见,see you…

vue使用element中的el-date-picker实现每月的第几周相关推荐

  1. vue.js + element中el-select实现拼音匹配,分词、缩写、多音字匹配能力

    1.既然要用到拼音搜索,我们就需要一个拼音库,在这里我推荐一个第三方包:https://github.com/xmflswood/pinyin-match,在这里首先对这个包的开发者表示万分的感谢. ...

  2. vue自定义插件 封装一个类似 element 中 message 消息提示框的插件

    vue自定义插件 封装一个类似 element 中 message 消息提示框的插件 一.资源文档 1.vue内置组件 transition 2.Vue.use() 3.Vue.extend() 4. ...

  3. Vue:Vue的element组件中的el-row的属性gutter什么意思?

    Vue:Vue的element组件中的el-row的属性gutter什么意思? 资源 gutter elementui中gutter和offset的区别

  4. element中根据条件判断按钮是否禁用_从零动手封装一个通用的vue按钮组件

    我们在使用目前最主流的前端框架vue在开发过程中,组件是一个非常重要的组成部分,可以这么说,所有的vue应用,都是由一个一个的小组件拼装而成的. 正是由于vue组件如此重要,所以vue的生态中,也非常 ...

  5. Vue + TypeScript + Element 搭建简洁时尚的博客网站及踩坑记

    前言 本文讲解如何在 Vue 项目中使用 TypeScript 来搭建并开发项目,并在此过程中踩过的坑 . TypeScript 具有类型系统,且是 JavaScript 的超集,TypeScript ...

  6. 渣渣枫初识Vue与Element

    渣渣初学Vue与Element 一.Vue 1.初识Vue 2.Vue的入门 3.Vue入门升级 4.小结 二.Vue常用指令 1.常用指令 2.文本插值 3.绑定属性 4.条件渲染 5.列表渲染 6 ...

  7. Vue和Element

    1.Vue 快速入门 1.1.Vue的介绍 Vue是一套构建用户界面的渐进式前端框架. 只关注视图层,并且非常容易学习,还可以很方便的与其它库或已有项目整合. 通过尽可能简单的API来实现响应数据的绑 ...

  8. JAVA—— Vue和Element

    文章目录 1.Vue 快速入门 1.1.Vue的介绍 1.2.Vue的快速入门 1.3.Vue快速入门详解 1.4.Vue快速入门的升级 1.5.Vue小结 2.Vue 常用指令 2.1.指令介绍 2 ...

  9. Node mysql mvc vue_net MVC +Vue.js+Element UI 笔记

    最近项目需求,要在MVC里用Vue 与 Element UI,故而做个笔记来记录一些遇到的问题和处理思路 (方式比较麻瓜,如果不是临时用的话,建议还是学一下Vue-cli,新项目还是老老实实前后端分离 ...

最新文章

  1. 贝叶斯定理核心在后验概率是对先验概率的修正,即后验概率是描述来自先验概率的概率
  2. Android FM模块学习之一 FM启动流程
  3. SQLite.NET在Win7(64位)下使用的问题
  4. MangosCfg文件中文说明
  5. qr码生成_从Java程序生成QR码图像
  6. scala入门-10 隐式转换、隐式参数、隐式类
  7. Qt工作笔记-QSplitter的使用(老版本里面发现的神控件在新版本内使用)
  8. iOS核心动画 - CALayer
  9. 强烈推荐 | 算法/深度学习/NLP面试笔记
  10. 第一章 Shell基础知识
  11. 独立同分布(iid)随机变量的一些趣题
  12. Csharp: Searching Within a String
  13. docker-containerd 启动流程分析
  14. 第1章 MatConvNet简介
  15. 软件架构设计说明书该怎么写?
  16. vbnet 操作autoCAD之 给出矩形如何画内切椭圆
  17. HTML文档的基本结构
  18. Ubuntu在物理机系统安装和teamviewer安装过程问题和解决的记录
  19. html五线谱编辑器,​Notation Pad五线谱乐谱编辑器
  20. 大数据基础教程丨TiDB数据库从入门到实践

热门文章

  1. Pandas中的这3个函数,没想到竟成了我数据处理的主力
  2. 一拖二服务器硬件,电脑一拖二怎么配置 电脑一拖二配置方法【教程介绍】
  3. 2006年全球十大宜居城市
  4. gql怎么写_全栈 React + GraphQL 教程(一)
  5. WINDOWS XP完全安装极度第五版(两种版本供选择)配图
  6. 提升进程权限-OpenProcessToken等函数的用法(转载)
  7. 常见Dom操作有哪些?
  8. 中介代收房款被正式叫停
  9. html5自动换图,html5教你做炫酷的碎片式图片切换 (canvas)
  10. JavaScript判断数据类型