需要根据 后端返回时间设置 eldatepicker 可以范围。最好的办法就是等请求回来的时候渲染页面,可是ui给的页面设计是在请求之前就需要展示 eldate-picker 组件

elementPlus 提供的 eldate-picker 组件 disableddate 属性又是一个方法没有办法直接通过监听属性值的变化而变法。只有另辟蹊径,通过 computed 计算属性嵌套方法代码如下

需求

       <el-date-picker
        v-model="staffFormData.employmentDate"
        placeholder="请选择日期"
        style="width: 100%"
        value-format="YYYY-MM-DD"
        :disabled-date="disabledDate"
        v-if="isp"
      &gt;</el-date-picker&gt;

<script setup lang="ts"&gt;
// 使用 dayjs 方便 时间操作,写原生的话就不需要 dayjs
import dayjs from 'dayjs'

const departureDate = ref('')
// 模拟异步请求
setTimeout(() =&gt; {
    // 可以选择时间在 3月1  之后
   departureDate.value = "2023-03-01"
}, 300);

const now = dayjs().set('hour', 23).set('minute', 59).set('second', 59).subtract(1, 'day')
const isp = ref(true)
 // 当 departureDate 值发生改变的时候计算属性会重新被调用
const disabledDate = computed(() =&gt; {
  let w
  if (departureDate.value) {
    w = dayjs(departureDate.value)
  }
  // 使用 v-if 卸载组件再重新渲染
  isp.value = false
  setTimeout(() => {
    isp.value = true
  }, 50)
 
  return (value: Date) => {
    const on1 = value.getTime() - 8.64e7 > now.valueOf()
    if (on1) return on1
    if (w) {
      const on2 = value.getTime() < w.valueOf()
      if (on2) return on2
    }
  }
})

</script>

原文地址:https://blog.csdn.net/weixin_45482035/article/details/129420081

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_34912.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注