vue 实现月日选择

需求描述

最近需要实现一个只选择月和日的组件,如下图
在这里插入图片描述
本来想实现像elementUI 日期选择器类似的功能,但是element没有,网上也没有找到合适的,最后换了一个思路,利用element的Cascader 级联选择器实现了一个,感觉看上去也还行在此分享一下

实现效果
在这里插入图片描述
实现起来挺简单,主要是为大家提供一种思路

代码如下

   <el-cascader
         v-model="date"
         :options="options"
         separator=""
         :props="{ expandTrigger: 'hover' }"
	></el-cascader>     

  data() {
    return {
      date: [],
      options: [],
    };
  },  
  mounted() {
    this.initDate();
  },
  methods: {
	 initDate() {
      let { options } = this;
      for (let i = 0; i < 12; i++) {
        let month = { value: `${i + 1}月`, label: `${i + 1}月` };
        let children = [];
        for (let j = 0; j < 31; j++) {
          let day = { value: `${j + 1}号`, label: `${j + 1}号` };
          if (j < 29) {
            children.push(day);
          }
          if (j == 29) {
            if (i != 1) {
              children.push(day);
            }
          }
          if (j == 30) {
            if ([1, 3, 5, 7, 8, 10, 12].includes(i + 1)) {
              children.push(day);
            }
          }
        }
        this.$set(month, "children", children);
        options.push(month);
      }
    },
  }   



  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值