年之年的选择,组装版

javascript 复制代码
组件:
javascript 复制代码
<!--
 * @Author: liuyu liuyu@xizhengtech.com
 * @Date: 2023-02-01 16:57:27
 * @LastEditors: wangping wangping@xizhengtech.com
 * @LastEditTime: 2023-06-30 17:25:14
 * @Description: 时间选择年 - 年
-->
<template>
  <div class="year-range-picker">
    <el-date-picker v-model="dateList[0]" :clearable="false" type="year" placeholder="开始年" class="year-picker" format="yyyy" value-format="yyyy" :picker-options="startDatePicker" @change="getTime">
    </el-date-picker>
    <span class="range-word"> 至 </span>
    <el-date-picker v-model="dateList[1]" prefix-icon='0' type="year" placeholder="结束年" class="year-picker" value-format="yyyy" :picker-options="endDatePicker" @change="getTime">
    </el-date-picker>
  </div>
</template>

<script>
export default {
  data() {
    return {
      dateList: [],
      startDatePicker: this.beginDate(),
      endDatePicker: this.processDate(),
      // 开始年度和结束年度 添加限制
      // startDatePicker: {
      //   disabledDate: (time) => {
      //     if (this.startDatePicker) {
      //       return (
      //         time.getTime() > this.startDatePicker ||
      //         time.getTime() > Date.now()
      //       );
      //     }
      //   },
      // },
      // endDatePicker: {
      //   disabledDate: (time) => {
      //     return (
      //       time.getTime() < this.endDatePicker ||
      //       time.getTime() > Date.now()
      //     );
      //   },
      // },
    };
  },
  created() {},
  watch: {
    // dateList(v) {
    //   this.$emit("input", v);
    // },
  },

  methods: {
    getTime(val) {
      console.log("但:", this.dateList);
      if (val == null) {
        this.dateList = [];
      }
      this.$emit("getTime", this.dateList);
    },
    // 选择年份范围选择时开始时间不能大于结束时间,结束时间不能小于开始时间
    // 提出开始时间必须小于提出结束时间
    beginDate() {
      let self = this;
      return {
        disabledDate(time) {
          if (self.dateList[1] !== "" && self.dateList[1] !== null) {
            let fixedTime = new Date(time);
            return fixedTime.getFullYear() > self.dateList[1];
          } else {
            return;
          }
        },
      };
    },
    // 提出结束时间必须大于提出开始时间
    processDate() {
      let self = this;
      return {
        disabledDate(time) {
          // let fixedTime = new Date(self.oldTime).getTime()
          // return time.getTime() < fixedTime
          let fixedTime = new Date(time);
          return fixedTime.getFullYear() < self.dateList[0];
        },
      };
    },
  },
};
</script>
<style lang="scss" scoped>
.year-range-picker {
  width: 260px;
  border: 1px solid #dcdfe6;
  border-radius: 4px;
  display: flex;
  align-items: center;
  ::v-deep.el-date-editor {
    // .el-input__icon {
    //   display: none;
    // }
    .el-input__inner {
      border: none;
      text-align: center;
    }
  }
}
</style>
javascript 复制代码
使用:
javascript 复制代码
<YearYear @getTime="getTime"></YearYear>

 // 获取传过来的时间
getTime(val) {},
相关推荐
IT_陈寒1 小时前
SpringBoot这个自动配置坑我跳了三次
前端·人工智能·后端
kyriewen1 小时前
我用 AI 一周写完了整个项目,上线第一天就崩了——这是我踩过最贵的 5 个坑
前端·javascript·ai编程
Larcher1 小时前
AI Loop:让AI像人一样自主完成任务的核心机制
javascript·人工智能·设计模式
默_笙1 小时前
🃏 JS 只有 8 种数据类型,但我花了 2 天才搞懂 null 和 undefined 的区别
javascript
牧艺1 小时前
从零到协同:构建类飞书在线文档系统的五个技术重难点
前端·人工智能
jump_jump2 小时前
流式 HTML:从 htmx 片段装配到浏览器原生增量渲染
javascript·性能优化·前端工程化
红尘散仙2 小时前
想写一个像样的终端 App?试试把 React 的开发体验搬进 Rust TUI
前端·rust
袋鼠云数栈UED团队3 小时前
一套 Spec-First 的 AI 编程工作流
前端·人工智能
袋鼠云数栈前端3 小时前
一套 Spec-First 的 AI 编程工作流
前端·ai+
angerdream3 小时前
Android手把手编写儿童手机远程监控App之vue3 路由守卫
前端