element时间选择器的默认值

概览:vue使用element组件,需要给时间选择器设置默认值,场景一:默认时间选择器,场景二:时间范围选择器,开始时间和结束时间。

一、默认时间选择器

实现思路:

element组件的v-model绑定的数据变化,则时间选择器的默认值变化。可以在生命周期mounted() 或者 onMounted()组件挂载时进行赋值。

实现代码:

1.1布局:

html 复制代码
<div class="search_right">
      <div class="echart1_titleBox">时间:</div>
      <div class="searchInnerBox">
           <el-date-picker 
            v-model="data.crewOverViewTime" 
            type="date" value-format="YYYY-MM-DD"
            placeholder="请选择" 
            clearable 
            :default-value="new Date()"
            @change="handleChangeTime" 
            />
       </div>
</div>

1.2逻辑:

javascript 复制代码
/** 
 * 默认选中当前时间
 */
let defalutTime = replaceTime(new Date());
data.crewOverViewTime = defalutTime
const replaceTime = (date) => {
  // 获取当前月份
  let nowMonth = date.getMonth() + 1;

  // 获取当前是几号
  let strDate = date.getDate();

  // 添加分隔符"-"
  let seperator = "-";

  // 对月份进行处理,1-9月在前面添加一个"0"
  if (nowMonth >= 1 && nowMonth <= 9) {
    nowMonth = "0" + nowMonth;
  }

  // 对月份进行处理,1-9号在前面添加一个"0"
  if (strDate >= 0 && strDate <= 9) {
    strDate = "0" + strDate;
  }

  // 最后拼接字符串,得到一个格式为(yyyy-MM-dd)的日期
  let nowDate = date.getFullYear() + seperator + nowMonth + seperator + strDate;

  return nowDate;
};

1.3效果展示

二、时间范围选择器

实现思路:

element组件的v-model绑定数据,在组件挂载的生命周期onMounted()进行赋值。注意:时间范围选择器的v-modle绑定的动态数据data是一个数组,数组索引=0是开始时间,数组索引=1是结束时间。

实现代码:

1.1页面:

html 复制代码
<div class="searchTimerBox">
     <div class="searchTimerBox_titleBox">时间:</div>
     <div class="searchInnerBox">
          <el-date-picker 
              v-model="data.valueTwoTimer" 
              type="monthrange" 
              value-format="YYYY-MM"
              range-separator="到" 
              start-placeholder="开始时间" 
              end-placeholder="结束时间"
              :unlink-panels="true" 
              @change="handleChangeTime" 
           />
      </div>
</div>

1.2逻辑:

javascript 复制代码
/**
 * 默认选中此月往前推的12个月
 */
const getTimerPiker = () => {
    let newData = new Date()
    let seperator = "-";
    let nowMonth = newData.getMonth() + 1
    if (nowMonth >= 1 && nowMonth <= 9) {
        nowMonth = "0" + nowMonth;
    }
    nowMonth = newData.getFullYear() + seperator + nowMonth;
    const beforeMonth = minDate(newData, 11)
    data.valueTwoTimer.push(beforeMonth)
    data.valueTwoTimer.push(nowMonth)
}
//获取当前日期的 前n个月
const minDate = (_nowDate,_latestMonth) => {
  _nowDate.setMonth(_nowDate.getMonth() - _latestMonth)
  let year = _nowDate.getFullYear();
  let month = (_nowDate.getMonth() + 1).toString().padStart(2, '0');
  let time = year + '-' + month
  return time
};

1.3效果展示

相关推荐
软件技术NINI10 小时前
基于SpringBoot和Vue的新能源汽车销售推荐系统
java·vue.js·spring boot·后端·汽车·毕业设计·毕设
招风的黑耳12 小时前
SpringBoot+Vue+MySQL 民宿在线预定平台 完整可运行版(源码+文档)
vue.js·spring boot·mysql
10share1 天前
基于大模型的 i18n 方案:把中文原文当 Key,轻松搞定多语言维护
前端·vue.js
啾咪orJIUMI1 天前
Vue 3 + 高德地图封装实战:点位、区域、Loca 流光与 Vue 信息窗体
前端·vue.js
FRing031 天前
vue2干货总结8(路由模块封装、router-link、声明式导航、路由重定向、编程式导航)
开发语言·前端·vue.js·vue2
无懈可击2 天前
Vue 可视化AI表单设计器 FcDesigner v3.6 版本发布,支持导出 SQL功能!
vue.js·开源·ai编程
徐小夕2 天前
JitArchives,一款基于JitWord协同AI文档打造的企业级电子档案系统
前端·vue.js·github
头发还在的女程序员2 天前
基于 Spring Boot + Vue 3 + uni-app 的灵活用工系统:四端架构与业务流程设计
vue.js·spring boot·uni-app·灵活用工·灵工系统
FRing032 天前
vue2干货总结7(自定义指令、插槽、单页应用程序、路由的使用(VueRouter))
开发语言·前端·vue.js·vue2
ruanno_top3 天前
点全选,已选的被清空了:Transfer 三态复选框的三个 bug
vue.js