vue3+eleement plus日历选择季度

<template><div class="el-quarter-wrap"><el-popover width="280" v-model="visible"><template #reference><el-input v-model="quarterDate" placeholder="请选择季度" clearable :prefix-icon="Calendar" readonly@change="quarterDateChange" style="width: 300px;"><template #suffix><el-icon v-if="quarterDate" class="el-quarter-clear" @click="clearData"><Close /></el-icon></template></el-input></template><div class="el-quarter__header"><span class="el-quarter-btn el-quarter-btn__pre" @click="changeShowYear(-1)"><el-icon><DArrowLeft /></el-icon></span><div class="el-quarter__header-text" @click="showYearList">{{ quarterTitle }}</div><span class="el-quarter-btn el-quarter-btn__next" @click="changeShowYear(1)"><el-icon><DArrowRight /></el-icon></span></div><div class="el-quarter__content" v-if="!isEditYear"><div class="el-quarter__row"><span class="quarter-index" :class="{ 'is-active': showYear === pickerYear && quarterIndex === index }" @click="pickerQuarte(index)"v-for="(item, index) in ['第一季度', '第二季度','第三季度','第四季度',]">{{ item }}</span></div></div><div class="el-year__content" v-else><div class="el-year-item" v-for="item in yearList"><div class="cell" :class="{ 'is-active': showYear == item }" @click="selectYear(item)">{{ item }}</div></div></div></el-popover></div></template><script lang="ts" setup>import { DArrowLeft, DArrowRight, Close, Calendar } from '@element-plus/icons-vue'import { computed, onMounted, reactive, ref } from 'vue'let visible = ref(false)let quarterDate = ref('')let pickerYear = ref('') as anylet showYear = ref('') as anylet quarterIndex = ref(-1)let isEditYear = ref(false)let startYear = ref('') as anylet yearList = reactive([] as any)const quarterTitle = computed(() => {if(isEditYear.value) {return startYear.value+ "年 - " + (startYear.value + 9) + "年"} else {return showYear.value + '年'}})function pickerQuarte(index:number) {quarterIndex.value = indexpickerYear.value = showYear.valuequarterDate.value = pickerYear.value + "-Q" + index}function changeShowYear(num: number) {if(isEditYear.value) {startYear.value = startYear.value + (num * 10)changeYearList()} else {showYear.value = showYear.value + num}}function clearData() {quarterDate.value = ''pickerYear.value = ''showYear.value = new Date().getFullYear()quarterIndex.value = 0}function quarterDateChange(value:any) {const splitArray = value.split('-Q')if (splitArray.length < 2) {pickerYear.value = ''showYear.value = new Date().getFullYear()quarterIndex.value = 0} else {pickerYear.value = splitArray[0]showYear.value = splitArray[0]quarterIndex.value = splitArray[1]}}function changeYearList() {yearList = []let year = startYear.valuefor (let i = 0; i < 10; i++) {yearList.push(year++)}}function showYearList() {if(!isEditYear.value) {startYear.value = Number(Math.floor(showYear.value / 10) + '0')changeYearList()isEditYear.value = true} else {isEditYear.value = false}}function selectYear(item:any) {showYear.value = itemisEditYear.value = false}onMounted(() => {showYear.value = new Date().getFullYear()startYear.value = Number(Math.floor(showYear.value / 10) + '0')changeYearList()})</script><style lang="scss">.el-quarter__header {padding-bottom: 12px;border-bottom: 1px solid #ebeef5;display: flex;align-items: center;justify-content: space-between;.el-quarter-btn {font-size: 12px;}.el-quarter__header-text {font-size: 16px;font-weight: 500;text-align: center;cursor: pointer;}}.el-quarter__content {min-height: 60px;box-sizing: border-box;display: flex;flex-direction: column;justify-content: space-around;.el-quarter__row {display: flex;justify-content: space-around;flex-wrap: wrap;.quarter-index {display: block;padding: 4px 10px;width: 50%;text-align: center;cursor: pointer;&:hover {color: #337ecc}}.is-active {color: #409eff}}}.el-quarter-clear {position: relative;color: #909399;display: none;height: 12px;width: 12px;cursor: pointer;&::after {content: '';position: absolute;height: 14px;width: 14px;margin: auto;border-radius: 50%;border: 1px solid #909399}}.el-input {&:hover {.el-quarter-clear {display: flex;}}}.el-year__content {min-height: 100px;display: flex;padding: 10px 0;flex-wrap: wrap;.el-year-item {width: calc(100% / 4);display: flex;align-items: center;justify-content: center;.cell {padding: 4px 10px;width: fit-content;cursor: pointer;cursor: pointer;white-space: nowrap;&:hover {color: #337ecc}}.is-active {color: #409eff}}}</style>
相关文章:
vue3+eleement plus日历选择季度
<template><div class"el-quarter-wrap"><el-popover width"280" v-model"visible"><template #reference><el-input v-model"quarterDate" placeholder"请选择季度" clearable :prefix-icon&qu…...
实现动态业务规则的方法(Java)
实现动态业务规则的方法(Java) 企业信息化系统核心在于业务领域的概念模型及于此基础上复杂多变的业务规则,实现中通常抽象规则的接口方法,使用继承或策略等设计模式实现不同的业务规则的实现。领域的概念模型在特定领域是稳定的…...
leetcodeTOP100(26)两数相加
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 …...
performance_schema
插桩名称的最左边部分表示插桩类型,其余部分从左到右依次表示到特定的子系统 mysql> select * from performance_schema.setup_instruments where documentation is not null limit 5,5\G; *************************** 1. row ***************************NAME:…...
全新UI基于Thinkphp的最新自助打印系统/云打印小程序源码/附教程
这是一款全新的基于Thinkphp的最新自助打印系统,最新UI界面设计的云打印小程序源码,带有简单的教程。 下载地址:https://bbs.csdn.net/topics/617324130...
Android 13.0 framework层系统手势增加上滑手势home事件功能(相当于Home键)
1.概述 在13.0的定制化开发系统手势功能的时候,客户需求要求在上滑手势的时候,在底部上滑时候进入系统桌面,也就是增加 home键功能,所以就需要分析相关的系统手势上滑事件,然后添加home事件这样 就可以实现这个功能了 2.framework层系统手势增加上滑手势home事件功能的核…...
webp格式及其转成
"WebP" 是一种现代的图像压缩格式,由谷歌公司开发。它旨在提供高质量的图像压缩,同时减小图像文件的大小,从而加快网络加载速度。WebP 格式通常使用 ".webp" 扩展名来标识。 WebP 图像格式主要有以下几个特点和优点&…...
echo cat find grep命令
目录 cat echo grep find cat cat命令可以理解为英文单词concatenate的缩写,其功能是连接多个文件并且打印到屏幕输出,或者重定向到指定文件中。此命令常用于显示单个文件内容,或者将几个文件内容连接起来一起显示,还可以从标…...
Linux学习第20天:Linux按键输入驱动开发: 大道至简 量入为出
Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 中国文化博大精深,太极八卦,阴阳交合,变化无穷。在程序的开发中也是这样,数字0和1也是同样的道理。就本节来说&am…...
WordPress主题开发( 七)之—— 模版文件继承规则
WordPress主题开发( 七)之—— 模版文件继承规则 概述模板文件层次结构示例可视化概述层次结构详细信息主页显示首页显示单文章页面单页分类目录标签自定义分类自定义文章类型作者显示日期搜索结果404(未找到)附件嵌入功能非ASCII…...
Simulink 封装
快捷键: Edit Mask:CtrlM Look Under Mask:CtrlU 封装之后的模型: Edit Mask界面: 双击模块后的提示界面: 封装的模块内部:...
【AI视野·今日Robot 机器人论文速览 第三十六期】Tue, 19 Sep 2023
AI视野今日CS.Robotics 机器人学论文速览 Tue, 19 Sep 2023 (showing first 100 of 112 entries) Totally 112 papers 👉上期速览✈更多精彩请移步主页 Interesting: 📚In-Hand Object Rotation, RotateIt 提出了一种基于视觉与触觉的物体旋转朝向的方法…...
Java随笔
动态SQL 是指根据不同的条件或参数生成不同的SQL语句的技术。在实际开发中,我们经常需要根据用户的输入或其他条件来生成不同的SQL语句,动态SQL就能满足这个需求。 在Java中,使用MyBatis作为ORM框架时,可以通过在Mapper.xml文件…...
ARINC825规范简介
ARINC825规范简介 机载CAN网络通用标准 ARINC825规范全称为机载CAN网络通用标准(The General Standardization of CAN for Airborne Use)。顾名思义,ARINC825规范是建立在CAN物理网络基础上的高层规范。CAN网络使用共享的双绞电缆传输数据&…...
SQLAlchemy列参数的使用和query函数的使用
目录 Column常用参数 代码演示 代码刨析 query函数的使用 基本用法 常见用法示例 查询所有记录 根据条件查询 查询第一条符合条件的记录 查询特定列的值 添加排序规则 使用聚合函数 连接查询 使用filter_by Column常用参数 primary_key:True设置某个字…...
产权未转移登记的离婚析产协议不能对抗债权人
债权人代位析产纠纷作为一个新的民事案由,是民事执行阶段中债务人不能到期清偿债务,又怠于分割共同财产或以诉讼方式分割共同财产,而由债权人请求代替债务人向其他共有人提出分割财产以实现债权的诉讼。债权人代位析产,增加了债权…...
python+nodejs+php+springboot+vue 导师双选系统
为了直观显示系统的功能,运用用例图这样的工具显示分析的结果。分析的导师功能如下。导师管理导师选择信息,管理项目,管理项目提交并对学员提交的项目进行指导。 为了直观显示系统的功能,运用用例图这样的工具显示分析的结果。分析…...
paddle2.3-基于联邦学习实现FedAVg算法
目录 1. 联邦学习介绍 2. 实验流程 3. 数据加载 4. 模型构建 5. 数据采样函数 6. 模型训练 1. 联邦学习介绍 联邦学习是一种分布式机器学习方法,中心节点为server(服务器),各分支节点为本地的client(设备&#…...
伺服丝杠系统常用运算功能块
这篇博客主要介绍伺服、丝杠系统常用的运算功能块,其它相关运算可以查看下面文章链接: 信捷PLC脉冲频率、位移、转速相关计算(C语言编程应用)_RXXW_Dor的博客-CSDN博客里工业控制张力控制无处不在,也衍生出很多张力控制专用控制器,磁粉制动器等,本篇博客主要讨论PLC的张力…...
【Vue】模板语法,事件处理器及综合案例、自定义组件、组件通信
一、事件处理器 我们之前事件监听可以使用v-on 指令 1、事件修饰符 在Vue中我们通过由点(.)表示的指令后缀来调用修饰符,比如: .stop:阻止事件冒泡。当事件触发时,该修饰符将停止事件进一步冒泡到父元素。相当于调用了 event.stop…...
颠覆性创新:为什么Upkie开源轮式双足机器人正在重新定义机器人开发范式
颠覆性创新:为什么Upkie开源轮式双足机器人正在重新定义机器人开发范式 【免费下载链接】upkie Open-source wheeled biped robots 项目地址: https://gitcode.com/gh_mirrors/up/upkie 在传统机器人设计面临轮式与足式两难选择的今天,一个革命性…...
别再死记硬背了!用这5个真实项目案例,彻底搞懂Python函数参数与返回值
别再死记硬背了!用这5个真实项目案例,彻底搞懂Python函数参数与返回值 函数是Python编程的基石,但很多初学者在学完基础语法后,面对实际项目依然无从下手。本文将通过5个真实开发场景,带你从"会用"到"懂…...
通过taotoken审计日志追溯api调用详情与安全分析
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过Taotoken审计日志追溯API调用详情与安全分析 对于将大模型API集成到业务流程中的团队而言,API调用的可见性与可控性…...
终极免费离线OCR解决方案:Umi-OCR完整使用指南
终极免费离线OCR解决方案:Umi-OCR完整使用指南 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。 …...
Fast-GitHub:打破GitHub访问壁垒的智能加速方案
Fast-GitHub:打破GitHub访问壁垒的智能加速方案 【免费下载链接】Fast-GitHub 国内Github下载很慢,用上了这个插件后,下载速度嗖嗖嗖的~! 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 你是否曾因GitHub仓库克…...
解锁GitHub极速体验:智能加速插件深度解析
解锁GitHub极速体验:智能加速插件深度解析 【免费下载链接】Fast-GitHub 国内Github下载很慢,用上了这个插件后,下载速度嗖嗖嗖的~! 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub GitHub加速插件(…...
碧蓝航线自动化脚本:让游戏管理变得轻松高效
碧蓝航线自动化脚本:让游戏管理变得轻松高效 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研,全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 你是否厌倦了每天重…...
从零构建情感大语言模型:基于EmoLLM的实践指南
1. 项目概述:当大语言模型学会“察言观色”最近在折腾一个挺有意思的开源项目,叫SmartFlowAI/EmoLLM。光看名字你可能就猜到了,这玩意儿跟“情绪”和“大语言模型”有关。没错,它的核心目标就是让冷冰冰的LLM(Large La…...
从开源物理拼图游戏学习Unity 2D物理引擎与游戏架构设计
1. 项目概述与核心价值 最近在GitHub上看到一个挺有意思的项目,叫“openclaw-puzzle-game”。光看名字,你可能会觉得这又是一个普通的开源拼图游戏,但点进去仔细研究后,我发现它的设计思路和实现方式,对于想学习游戏开…...
紧急更新!Midjourney 6.2.1已悄然修复碳素印相的硫化银衰减模拟缺陷——但97%用户仍在用旧参数,立即校准你的工作流
更多请点击: https://intelliparadigm.com 第一章:碳素印相的视觉本质与Midjourney 6.2.1修复的底层动因 碳素印相的物质性光感逻辑 碳素印相并非数字渲染的模拟,而是一种基于明胶-碳黑颗粒物理沉积的连续调成像工艺。其高密度阴影区呈现哑…...
