ant-design-vue日历面板 a-calendar自定义属性及日期默认选择展示 或手动实现
vue
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
项目地址:https://gitcode.com/gh_mirrors/vu/vue
免费下载资源
·
实现效果
想实现一个日历能正常筛选日期且能在日历看板上标注出给定的日期范围,如下图所示
依附组件 a-calendar原本样式
实现主要思路
官网描述:
dateFullCellRender 作用域插槽,自定义渲染日期单元格,返回内容覆盖单元格
headerRender 自定义头部内容
实现主要过程
<a-calendar
@panelChange="onPanelChange"
:value="value1"
:fullscreen="false"
>
<template slot="headerRender">
<div>
<div class="calendar_select">
<div class="calendar_s_select">
//年、月筛选可通过a-select组件实现,想在改变年、月时改变日历,只需要改变a-calendar组件绑定的value即可
</div>
</div>
</div>
</template>
//利用dateFullCellRender返回的date日期,能返回每个日期点,比较返回的日期点返回不同className,实现自定义样式
<!--主要: 作用域插槽,自定义渲染日期单元格,返回内容覆盖单元格 -->
<template slot="dateFullCellRender" slot-scope="date">
<div :class="['date_default', getDateCss(date)]">
{{ date.date() }}
</div>
</template>
</a-calendar>
//例如给定的数据如下,当yaxis数值大于0时才返回date_select,在css文件中定义date_selec样式即可
getDateCss(val) {
const _data = {
xaxis: [
"2024-03-24",
"2024-03-22",
"2024-03-20",
"2024-03-15",
"2024-03-10",
"2024-01-21"
],
yaxis: [0, 124, 69, 0, 103, 0]
};
let _className = "";
_data.yaxis.forEach((e, i) => {
if (e > 0 && _data.xaxis[i] == val.format("YYYY-MM-DD")) {
_className = "date_select";
return;
}
});
return _className;
}
最后
如果上述利用作用域插槽的方法 不能满足日常应用,也可进行基于ant-design-vue 组件手动开发日历项。
详情可见另一篇文章
GitHub 加速计划 / vu / vue
207.54 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:2 个月前 )
73486cb5
* chore: fix link broken
Signed-off-by: snoppy <michaleli@foxmail.com>
* Update packages/template-compiler/README.md [skip ci]
---------
Signed-off-by: snoppy <michaleli@foxmail.com>
Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 4 个月前
e428d891
Updated Browser Compatibility reference. The previous currently returns HTTP 404. 5 个月前
更多推荐
已为社区贡献1条内容
所有评论(0)