el-date-picker的使用,及解决切换type时面板样式错乱问题

这里选择器的类型可以选择日月年和时间范围,根据类型不同,el-date-picker的面板也展示不同,但是会出现el-date-picker错位,或者面板位置和层级等问题。

源代码:

复制代码
     <el-select
        v-model="dateType"
        placeholder="请选择类型"
        size="mini"
        clearable
        @change="handleDateTypeChange"
      >
        <el-option label="日" value="day"></el-option>
        <el-option label="月" value="month"></el-option>
        <el-option label="年" value="year"></el-option>
        <el-option label="时间范围" value="range"></el-option>
      </el-select>

      <el-date-picker
        v-model="selectedDate"
        :type="datePickerType"
        :placeholder="datePickerPlaceholder"
        size="mini"
        style="margin-right: 20px"
      ></el-date-picker>

      dateType: "",
      selectedDate: null,

  computed: {
    datePickerType() {
      switch (this.dateType) {
        case "day":
          return "date";
        case "month":
          return "month";
        case "year":
          return "year";
        case "range":
          return "daterange";
        default:
          return "date";
      }
    },
    datePickerPlaceholder() {
      switch (this.dateType) {
        case "day":
          return "选择日期";
        case "month":
          return "选择月份";
        case "year":
          return "选择年份";
        case "range":
          return "选择时间范围";
        default:
          return "选择日期";
      }
    },
  },

  methods: {
    handleDateTypeChange() {
      // 清空之前选中的日期
      this.selectedDate = null;
    },
  }

最简单的解决方法:在el-date-picker中绑定一个key值:key="datePickerType"

复制代码
     <el-date-picker
        v-model="selectedDate"
        :type="datePickerType"
        :placeholder="datePickerPlaceholder"
        size="mini"
        style="margin-right: 20px"
        :key="datePickerType"
      ></el-date-picker>

以上几个样式问题就都可以解决了。

相关推荐
谢小飞1 天前
如何让AI用一个下午开发上架Chrome插件助我摸鱼
前端·chrome
gyx_这个杀手不太冷静1 天前
OpenCode 进阶使用指南(第一章:Agent 模式)
前端·javascript·ai编程
树上有只程序猿1 天前
继续堆无用代码,真的不如早点用Low code
前端·低代码
wuhen_n1 天前
computed 的缓存哲学:如何避免不必要的重复计算?
前端·javascript·vue.js
闲云一鹤1 天前
本地部署 B 站 IndexTTS2 模型 - AI 文本生语音神器
前端·人工智能
wuhen_n1 天前
watch 与 watchEffect:精准监听,避免副作用滥用
前端·javascript·vue.js
晓得迷路了1 天前
栗子前端技术周刊第 119 期 - ViteLand 月度更新汇总、Angular 21.2、Bun v1.3.10...
前端·javascript·vite
鹏多多1 天前
Flutter使用screenshot进行截屏和截长图以及分享保存的全流程指南
android·前端·flutter
拉不动的猪1 天前
重温Vue异步更新队列
前端·javascript·面试
Mike_jia1 天前
OpenClaw:开源个人AI助手的“执行革命“
前端