vant倒序年月日期组件封装实例详解

 更新时间:2024年03月08日 10:12:14   作者:Y丶小琪  
这篇文章主要介绍了vant倒序年月日期组件封装实例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

如图,时间选择,倒序排列。时间格式  202312,可以根据自己的格式改一下数据处理方式

组件:

<template>
  <div class="number">
    <van-cell-group>
      <van-field class="date-select" readonly clickable v-model="date" placeholder="选择时间"
        @click="showPicker = true" />
      <van-popup v-model="showPicker" round position="bottom">
        <van-picker class="picker" show-toolbar :columns="columns" @change="onChange"
          @cancel="showPicker = false" @confirm="onConfirm">
        </van-picker>
      </van-popup>
    </van-cell-group>
  </div>
</template>
  <script>
export default {
  name: 'DateSelect',
  props: {
    default: {
      type: String,
      default: ''
    },
    minYear: {
      type: String,
      default: '2014'
    }
  },
  data() {
    return {
      date: this.default,
      initTime: this.minYear,
      columns: [],
      checkTime: {},
      showPicker: false
    }
  },
  created() {
    this.initTimeFn()
  },
  methods: {
    initTimeFn() {
      const initTime = this.initTime
      const defaultYear = this.default.substring(0, 4)
      const defaultMonth = this.default.substring(4)
      // for (let i = 0; i <= Number(new Date().getFullYear()) - initTime; i++) {
      for (let i = Number(new Date().getFullYear()); i >= initTime; i--) {
        this.checkTime[`${i}年`] = [
          '01月',
          '02月',
          '03月',
          '04月',
          '05月',
          '06月',
          '07月',
          '08月',
          '09月',
          '10月',
          '11月',
          '12月'
        ]
      }
      const yearIndex = Object.keys(this.checkTime).findIndex((item) =>
        item.includes(defaultYear)
      )
      this.columns = [
        {
          values: Object.keys(this.checkTime),
          defaultIndex: yearIndex //Number(new Date().getFullYear()) - initTime
        },
        {
          values: this.checkTime[`${new Date().getFullYear()}年`],
          defaultIndex: Number(defaultMonth) //new Date().getMonth()
        }
      ]
    },
    onCancel() {
      this.showPicker = false
    },
    onConfirm(value) {
      this.showPicker = false
      let year = value && value[0].split('年')[0]
      let month = value && value[1].split('月')[0]
      this.date = this.userListForm = `${year}${month}`
      this.$emit('getDate', this.userListForm)
    },
    onChange(picker, values) {
      picker.setColumnValues(1, this.checkTime[values[0]])
    }
  }
}
</script>
  <style lang="less">
.number {
  width: 2.4rem;
  .picker {
    font-size: 0.32rem;
  }
  .van-cell {
    padding: 0;
  }
  .date-select {
    border: 1px solid rgb(74, 119, 246);
    padding-left: 0.1rem;
    border-radius: 0.1rem;
    font-size: 0.32rem;
    line-height: 1.5;
  }
}
</style>

使用:

  <DateSelect @getDate="getDate" default="202312" />
  getDate(date) {
      this.date = date    //自己组件使用的时间变量
      this.getList()
    },

到此这篇关于vant倒序年月日期组件封装的文章就介绍到这了,更多相关vant倒序年月日期组件封装内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 通过bootstrap全面学习less

    通过bootstrap全面学习less

    这篇文章主要为大家详细介绍了如何通过bootstrap学习less,LESS CSS是一种动态样式语言,属于CSS预处理语言的一种,感兴趣的朋友可以参考下
    2016-11-11
  • 如何实现表格中行点击时的渐扩效果!

    如何实现表格中行点击时的渐扩效果!

    如何实现表格中行点击时的渐扩效果!...
    2007-01-01
  • uni-app实现全局水印示例详解

    uni-app实现全局水印示例详解

    这篇文章主要为大家介绍了uni-app实现全局水印示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • js实现控制整个页面滚动条的位置

    js实现控制整个页面滚动条的位置

    这篇文章主要介绍了js实现控制整个页面滚动条的位置,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • DOM 事件的深入浅出(一)

    DOM 事件的深入浅出(一)

    本文主要介绍了不同DOM级别下的事件处理程序,同时介绍了事件冒泡和捕获的触发原理和方法。熟练地使用不同级别的DOM事件并且解决相应的浏览器兼容性问题对我们的前端项目开发会很有帮助。
    2016-12-12
  • 原生js 封装get ,post, delete 请求的实例

    原生js 封装get ,post, delete 请求的实例

    下面小编就为大家带来一篇原生js 封装get ,post, delete 请求的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • JavaScript运算符小结

    JavaScript运算符小结

    本文主要给大家详细总结了下javascript中的运算符,包括常见的算数运算符、比较运算符和逻辑运算符。十分的清晰,有需要的小伙伴可以参考下。
    2015-06-06
  • TypeScript 类class与修饰符的详细使用教程

    TypeScript 类class与修饰符的详细使用教程

    通过 class 关键字定义一个类,然后通过 new 关键字可以方便的生产一个类的实例对象,这个生产对象的过程叫 实例化,类的成员就是类中所有的属性和方法,这篇文章主要介绍了TypeScript 类class与修饰符的详细使用,需要的朋友可以参考下
    2022-06-06
  • JavaScript 通过模式匹配实现重载

    JavaScript 通过模式匹配实现重载

    昨天rank同学向我提出一个问题,在实际应用中有些接口需要提供类似于函数重载的功能,以方便开发者组织代码逻辑,简化使用者调用。
    2010-08-08
  • 如何利用Three.js实现web端显示点云数据

    如何利用Three.js实现web端显示点云数据

    这篇文章主要给大家介绍了关于如何利用Three.js实现web端显示点云数据的相关资料,最近在项目中遇到需求,需要在web端显示点云数据,将我的实现步骤介绍在这里供大家参考,需要的朋友可以参考下
    2023-11-11

最新评论