vue3 el-date-picker 需求是想既可以输入,也可以选择, 且开始时间不能大于结束时间, 当不符合条件时border变成红色

vue3 el-date-picker 需求是想既可以输入,也可以选择, 且开始时间不能大于结束时间, 当不符合条件时border变成红色

html 复制代码
<template>
  <div class="date-picker-group">
    <el-date-picker
      v-model="startDate"
      type="date"
      placeholder="开始时间"
      :class="{ 'is-error': startDateError }"
      editable
      format="YYYY-MM-DD"
      value-format="YYYY-MM-DD"
      @change="handleDateChange"
    />
    <span class="line">-</span>
    <el-date-picker
      v-model="endDate"
      type="date"
      placeholder="结束时间"
      :class="{ 'is-error': endDateError }"
      editable
      format="YYYY-MM-DD"
      value-format="YYYY-MM-DD"
      @change="handleDateChange"
    />
  </div>
</template>

<script setup>
import { ref } from 'vue'
const startDate = ref('')
const endDate = ref('')
const startDateError = ref(false)
const endDateError = ref(false)

const handleDateChange = () => {
  if (!startDate.value || !endDate.value) {
    startDateError.value = false
    endDateError.value = false
    return
  }
  const isValid = new Date(startDate.value) <= new Date(endDate.value)
  startDateError.value = !isValid
  endDateError.value = !isValid
}
</script>

<style scoped>
.date-picker-group {
  display: flex;
  align-items: center;
  gap: 10px;
}
.line {
  margin: 0 5px;
  color: #999;
}

:deep(.el-date-editor.el-input.is-error),
:deep(.el-date-editor.el-input__wrapper) {
  border: 1px solid #f56c6c !important;
}
</style>
相关推荐
IT_陈寒28 分钟前
SpringBoot自动配置失效?你可能漏了这个小开关
前端·人工智能·后端
kyriewen31 分钟前
我写了1个复盘Skill,和AI协作踩过的坑第二天自动变成护栏
前端·程序员·ai编程
风骏时光牛马31 分钟前
AI提示词异常故障复盘分析
前端
SoaringHeart1 小时前
Flutter 进阶:NCanvasImageLoader 让 Canvas 也能画网络图
前端·flutter
计算机魔术师1 小时前
英伟达两个月叫停360亿美元生意:芯片巨头怕了反垄断?
前端
创新技术阁1 小时前
FastapiAdmin 前后端启动全流程详解
前端·后端·fastapi
七牛开发者2 小时前
实测推荐 3 个 Skill,轻松上手 Codex 网页设计与交付流程
前端·javascript·后端
七牛开发者2 小时前
拆解 dsh 系列:从源码和版本变化看 DeepSeek Harness 的设计取舍
前端·javascript·后端
谭光志2 小时前
如何从网站提取设计风格:DOM、计算样式与 DESIGN.md
前端·javascript·agent
深念Y2 小时前
登录日志与管理员审计日志存储决策
前端·arm开发·后端·微服务·云原生·架构