以下是一个使用Vant组件库的代码示例,实现了通过同一个DatetimePicker组件来选择不同的年、月、日。

<template>
  <div class="container">
    <van-cell title="选择年份" @click="showYearPicker" :value="selectedYear"></van-cell>
    <van-cell title="选择月份" @click="showMonthPicker" :value="selectedMonth"></van-cell>
    <van-cell title="选择日期" @click="showDatePicker" :value="selectedDate"></van-cell>
    <van-datetime-picker
      v-model="showPicker"
      :type="pickerType"
      :min-date="minDate"
      :max-date="maxDate"
      @confirm="handleConfirm"
    ></van-datetime-picker>
  </div>
</template>

<script>
export default {
  data() {
    return {
      showPicker: false,
      pickerType: 'year',
      minDate: new Date(2000, 0, 1), // 最小日期
      maxDate: new Date(2030, 11, 31), // 最大日期
      selectedYear: null,
      selectedMonth: null,
      selectedDate: null
    };
  },
  methods: {
    showYearPicker() {
      this.pickerType = 'year';
      this.showPicker = true;
    },
    showMonthPicker() {
      this.pickerType = 'month';
      this.showPicker = true;
    },
    showDatePicker() {
      this.pickerType = 'date';
      this.showPicker = true;
    },
    handleConfirm(value) {
      this.showPicker = false;
      if (this.pickerType === 'year') {
        this.selectedYear = value.getFullYear();
      } else if (this.pickerType === 'month') {
        this.selectedMonth = value.getMonth() + 1;
      } else if (this.pickerType === 'date') {
        this.selectedDate = value.getDate();
      }
    }
  }
};
</script>

在上面的示例中,我们通过点击不同的van-cell组件来显示不同的选择器。pickerType变量用于标识当前选择器的类型,它会在点击不同的van-cell时进行设置。showPicker变量用于控制选择器的显示和隐藏。

当用户点击选择器的确认按钮时,会触发confirm事件,我们在handleConfirm方法中根据选择器的类型来更新对应的年、月、日的值。

注意,我们通过v-model指令将showPickervan-datetime-picker组件的显示状态进行绑定,以实现选择器的显示和隐藏。

此外,我们还可以通过设置min-datemax-date属性来限制用户选择的日期范围。

希望对你有帮助

vant代码实现用同一个DatetimePicker完成不同dialog的年月日选择实例

原文地址: https://www.cveoy.top/t/topic/hRef 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录