在vue2中使用el-date-picker组件,我希望实现一个功能,组件接受一个数组,数组内是若干日期,例如dates: ["2023-05-23", "2023-05-22", "2023-05-19"],现在希望在组件的日期下拉框中,在数组对应的日期下面,通过伪元素添加一个蓝色的小圆点(并不影响组件的整体格式,最好小圆点的css层级显示在日期层级的上面),仅用作提示效果(并不禁用其他日期),请给出完整代码示例
时间: 2024-02-16 10:03:51 浏览: 75
好的,这里是完整的代码示例:
```html
<template>
<div>
<el-date-picker
v-model="value"
type="date"
:picker-options="pickerOptions"
ref="datePicker"
></el-date-picker>
</div>
</template>
<script>
export default {
data() {
return {
value: '',
dates: ["2023-05-23", "2023-05-22", "2023-05-19"]
}
},
computed: {
datePicker() {
return this.$refs.datePicker.$refs.popper
}
},
mounted() {
const lis = this.datePicker.querySelectorAll('.el-date-picker__editor-wrap li')
lis.forEach(li => {
const date = li.getAttribute('aria-label')
if (this.dates.indexOf(date) !== -1) {
const dot = document.createElement('span')
dot.className = 'dot'
li.appendChild(dot)
}
})
}
}
</script>
<style>
.el-date-picker__editor-wrap li .dot {
width: 8px;
height: 8px;
border-radius: 50%;
background-color: blue;
position: absolute;
bottom: -8px;
left: 50%;
transform: translateX(-50%);
z-index: 1;
}
</style>
```
这里我们通过`computed`属性获取到`el-date-picker`组件的弹出框元素`popper`,然后在组件挂载后遍历日期下拉框中的所有日期li元素,如果对应的日期在`dates`数组中,则在该li元素上添加一个`span`元素,并在该`span`元素上添加一个`dot`类名,这个类名在CSS中用于控制添加小圆点的样式。这样就可以在日期下面显示小圆点提示了。
阅读全文