需要根据 后端返回的时间 来设置 el–date–picker 可以选范围。最好的办法就是等请求回来的时候在渲染页面,可是ui给的页面设计是在请求之前就需要展示 el–date-picker 组件。
elementPlus 提供的 el–date-picker 组件 disabled–date 属性又是一个方法,没有办法直接通过监听属性值的变化而变法。只有另辟蹊径,通过 computed 计算属性嵌套方法,代码如下:
需求:
<el-date-picker
v-model="staffFormData.employmentDate"
placeholder="请选择日期"
style="width: 100%"
value-format="YYYY-MM-DD"
:disabled-date="disabledDate"
v-if="isp"
></el-date-picker>
<script setup lang="ts">
// 使用 dayjs 方便 时间的操作,写原生的话就不需要 dayjs
import dayjs from 'dayjs'
const departureDate = ref('')
// 模拟异步请求
setTimeout(() => {
// 可以选择时间在 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(() => {
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进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。