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_陈寒11 分钟前
Redis主从切换竟让业务卡了3秒?这个坑我替你踩了
前端·人工智能·后端
天若有情67315 分钟前
独立开发复盘:我用 Node.js 做了个在线工具箱
前端·json·工具
xieliyu.19 分钟前
前端基础:常见CSS选择器用法
前端·css·笔记·vscode
zttbee41 分钟前
前端测试内容
前端
2603_965896621 小时前
async/await|JS同步写法解决异步终极方案
前端·javascript
A24207349303 小时前
TCP 三次握手与四次挥手:从原理到状态机一次讲清
前端
GreenTea10 小时前
GrokBot 核心成员 Lauren Tan:每月交付 2000 个 PR 的人,是怎么用 AI 的
前端·后端·架构
mCell11 小时前
用 Knip 清理 AI Coding 留下的冗余代码
前端·ai编程·前端工程化
dy171711 小时前
vue2树节点刷新后定位到上一节点展开
vue.js
笃行35012 小时前
使用Rokid AIUI做了一个童年推箱子游戏
前端