vant 2 :Picker 选择器 自定义时间选择器(年+月)

1.自定义设置起始年份

2.默认选择当前年月

3.可自定义确认取消按钮

样式:

 代码演示(vue2):

<template>
  <div class="number">
    <van-picker
      class="picker"
      show-toolbar
      :columns="columns"
      @change="onChange"
    >
      <slot name="cancel"><div @click="onCancel">自定义取消</div> </slot>
      <slot name="title"> 标题 </slot>
      <slot name="confirm"> <div @click="onConfirm">自定义确认</div> </slot>
    </van-picker>
  </div>
</template>

<script>
export default {
  name: 'Number',
  data () {
    return {
      columns: [],
      checkTime: {}
    }
  },
  created () {
    this.initTimeFn()
    console.log(this.columns)
  },
  methods: {
    initTimeFn () {
      const initTime = 2020
      for (let i = 0; i <= Number(new Date().getFullYear()) - initTime; i++) {
        this.checkTime[`${initTime + i}年`] = [
          '01月',
          '02月',
          '03月',
          '04月',
          '05月',
          '06月',
          '07月',
          '08月',
          '09月',
          '10月',
          '11月',
          '12月',
          '全部'
        ]
      }

      this.checkTime['全部'] = ['全部']
      this.columns = [
        {
          values: Object.keys(this.checkTime),
          defaultIndex: Number(new Date().getFullYear()) - initTime
        },
        {
          values: this.checkTime[`${new Date().getFullYear()}年`],
          defaultIndex: new Date().getMonth()
        }
      ]
    },
    onCancel () {},
    onConfirm () {},
    onChange (picker, values) {
      picker.setColumnValues(1, this.checkTime[values[0]])
    }
  }
}
</script>

<style lang="less">
.number {
  .picker {
    border: 1px solid pink;
  }
}
</style>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值