首页 > 其他分享 >日期选择器:年 月 日 动态切换显示

日期选择器:年 月 日 动态切换显示

时间:2024-05-28 16:56:58浏览次数:23  
标签:endPickerType value 选择器 dateTypeList 日期 切换 year month startPickerType

1. 组件样式部分(elementUI)实现

      <el-row>
        <el-col :span="10">
          <el-button-group>
            <el-button :class="{ 'is-active': selectedButton === 'year' }" @click="changeToYearPicker">年</el-button>
            <el-button :class="{ 'is-active': selectedButton === 'month' }" @click="changeToMonthPicker">月</el-button>
            <el-button :class="{ 'is-active': selectedButton === 'day' }" @click="changeToDayPicker">日</el-button>
          </el-button-group>
          <el-date-picker v-model="startDate" :picker-options="startPickerOptions" :type="startPickerType"  @change="handleStartDateChange"
            placeholder="开始日期" :editable="false" style="margin-left: 20px;">
          </el-date-picker>
          <el-date-picker v-model="endDate" :picker-options="endPickerOptions" :type="endPickerType"   @change="handleEndDateChange"
           placeholder="结束日期" :editable="false">
          </el-date-picker>
        </el-col>
        <el-col :span="14">
          <!-- 首页 搜索 -->
          <el-form :inline="true" :model="queryForm" ref="queryForm0" class="query-form">
            <el-form-item label="科室">
              <el-select v-model="queryForm.department" placeholder="请选择" clearable>
                <el-option v-for="item in departmentinfoList" :label="item.label" :value="item.value" :key="item.value">
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item>
              <el-button type="primary" @click="submitQuery">查询</el-button>
              <el-button @click="resetForm">重置</el-button>
            </el-form-item>
          </el-form>
        </el-col>
      </el-row>

2. 方法的实现

2.1 点击年月日按钮的切换日期选择器显示状态

    //年
   changeToYearPicker() {
      this.startPickerType = 'year';
      this.endPickerType = 'year';
      this.selectedButton = 'year'; // 更新选中按钮状态
      // 对应处理逻辑,比如点击按钮切换为年选择器
    },
     //月
    changeToMonthPicker() {
      this.startPickerType = 'month';
      this.endPickerType = 'month';
      this.selectedButton = 'month'; // 更新选中按钮状态

    },
    //日
    changeToDayPicker() {
      this.startPickerType = 'date';
      this.endPickerType = 'date';
      this.selectedButton = 'date'; // 更新选中按钮状态

    },

2.2 点击日期的时候处理日期格式化

处理之前:(Wed May 01 2024 00:00:00 GMT+0800 (中国标准时间))

处理结果:年: 2024, 月; 2024-02, 日; 2024-10-23

//开始日期
handleStartDateChange(value) {
  if (this.startPickerType === 'year') {
    this.startDate = value.getFullYear().toString(); 
    // 如果 startPickerType 是 'year',则获取选择的年份
    this.dateTypeList = '1'
  } else if (this.startPickerType === 'month') {
    this.startDate = `${value.getFullYear()}-${(value.getMonth() + 1).toString().padStart(2, '0')}`;
    // 如果 startPickerType 是 'month',则获取年月的格式:YYYY-MM
    this.dateTypeList = '4'
  } else {
    this.startDate = value.toISOString().substring(0, 10);
    // 其他情况,直接获取完整的年月日数据:YYYY-MM-DD
    this.dateTypeList ='365'
  }
},
    //结束日期
handleEndDateChange(value) {
  if (this.endPickerType === 'year') {
    this.endDate = value.getFullYear().toString(); 
    this.dateTypeList = '1'
  } else if (this.endPickerType === 'month') {
    this.endDate = `${value.getFullYear()}-${(value.getMonth() + 1).toString().padStart(2, '0')}`;
    this.dateTypeList = '4'
  } else {
    this.endDate = value.toISOString().substring(0, 10);
    this.dateTypeList ='365'
  }
},

2.3 重置按钮

    resetForm() {
      this.$refs.queryForm0.resetFields();
      this.queryForm = {
        department: '',
      },
      this.startDate = ''
      this.endDate = ''
      this.dateTypeList = ''
      this.dateType = ''
    },

标签:endPickerType,value,选择器,dateTypeList,日期,切换,year,month,startPickerType
From: https://www.cnblogs.com/mahmud/p/18218408

相关文章

  • 【uni-app】 textarea组件的auto-hieght属性,显隐切换时高度异常,无法自适应内容撑开。
    bug1:在uni-app中,在使用多文本输入框时,如果输入框存在if的显隐切换时,真机调试中auto-height计算高度有误(一般是高于正常高度),导致小程序页面渲染出现很大问题。案例代码如下:<viewclass="content_right"v-if="editable"> <textareaplaceholder="请输入地址"......
  • windows系统桌面壁纸切换的三种csharp办法,兼容win10及旧版,还有一个现成桌面小程序
    我自己用这些代码做的小app如下: 最新版本已经改成了服务的方式,也可以选择性添加系统的右键菜单,并且我自己使用的源码库已经开源到了nuget,大家可以直接拿来做二次开发,新版的下载地址为:https://www.zhaimaojun.cn/P/桌面壁纸管理器/开源库为(可以直接在vs的nuget包管理中搜索......
  • ubuntu java版本间切换
    今天在编译rk3288安卓5.1时出错,提示需要java1.7.x版本的jdk,而我的ubuntu默认已经安装了java 1.8.0_362版本,下面介绍下我是如何进行java版本切换的。1.从官网上下载得到java 1.7.0_80压缩包(找个QQ邮箱注册账号后就可以直接下载了)https://www.oracle.com/java/technol......
  • 《python本机环境多版本切换》-两种方式以及具体使用--venv/pyenv+pycharm测试
    阿丹:sourcemyenv/bin/activate    在开发使用rasa的时候发现自己安装的python环境是3.12的,和rasa不兼容,所以实践一下更换多python环境。使用虚拟环境在Python中使用虚拟环境来切换Python版本是一个常见的做法,这可以帮助你为不同的项目维持独立的Python环境和依赖......
  • 【python】自动化登录学习通页面-多表单切换
    fromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromselenium.common.exceptionsimportStaleElementReferenceExceptionfromselenium.webdriver.support.uiimportWebDriverWaitfromselenium.webdriver.supportimportexpected_cond......
  • C# 在Excel中添加、应用或删除筛选器 (日期筛选、文本筛选、数字筛选)
    自动筛选器是Excel中的一个基本但极其有用的功能,它可以让你根据特定的条件来自动隐藏和显示你的数据。当有大量的数据需要处理时,这个功能可以帮你快速找到你需要的信息,从未更加有效地分析和处理相关数据。下面将介绍如何使用免费.NETExcel库在Excel中添加、应用和删除自动筛选......
  • npm下载依赖太慢?镜像源切换与设置!
    目录项目背景​编辑 接下来讲讲镜像源切换的两种设置模式]一、命令行模式1、查看当前镜像源2、删除镜像3、小结二、文件配置模式  常用的镜像项目背景依赖安装中断或响应特别慢。可以看到当前所用的镜像是https://registry.npmjs.org。 切换淘宝镜像之后......
  • day13——常用API&日期类
    day13——常用API&日期类一、StringBuilder类StringBuilder代表可变字符串对象,相当于是一个容器,它里面的字符串是可以改变的,就是用来操作字符串的。好处:StringBuilder比String更合适做字符串的修改操作,效率更高,代码也更加简洁。1.1StringBuilder方法演示接下来我们用......
  • HTML并集,交集,子代,后代选择器
    1,交集选择器他们必须满足既是p又是.box的关系(直接连写,没有任何符号)p.box{color:red;}<divclass="box">1</div><pclass="box">2</p><p>3</p>2.并集选择器将div,p,span同时设置一种样式,颜色啥的都可以设置。(中间用逗号分隔)div,p,span{color:red;......
  • CSS介绍、选择器、属性相关
    CSS层叠样式表:就是给HTML标签添加样式的,让其变得更加好看【CSS的使用,以及三种引入方式】11.注释2/*单行注释*/34/*5多行注释6多行注释7*/892.用来划定样式区域10/*这是博客园首页的css样式文件*/11/*顶部导航样式*/......