news 2026/8/28 8:11:17

vue 甘特图组件 vxe-gantt 自定义右侧任务视图列头样式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
vue 甘特图组件 vxe-gantt 自定义右侧任务视图列头样式

在甘特图的实际应用中,通过自定义列头样式可以显著提升数据的可读性。例如,高亮周末或特定日期,能帮助团队更直观地识别工作日和非工作日。vxe-gantt 提供了 taskViewConfig.scales 中的 headerCellStyle 回调函数,让你可以灵活地为时间轴上的每个刻度单元格定制样式。

核心配置:headerCellStyle

通过在 scales 配置中为特定层级(如 day、date)添加 headerCellStyle 函数,你可以根据日期信息返回自定义的样式对象。

taskViewConfig:{scales:[{type:'month'},{type:'day',headerCellStyle({dateObj}){// 根据 dateObj 返回样式对象if(dateObj.e===0||dateObj.e===6){// 周日或周六return{color:'#65c16f'}// 文字颜色变绿}return{}// 默认样式}}]}

代码

<template><div><vxe-ganttv-bind="ganttOptions"></vxe-gantt></div></template><scriptsetup>import{reactive}from'vue'constganttOptions=reactive({border:true,taskViewConfig:{showNowLine:true,scales:[{type:'month'},{type:'day',headerCellStyle({dateObj}){// 周六周日高亮if(dateObj.e===0||dateObj.e===6){return{color:'#65c16f'}}return{}}},{type:'date',headerCellStyle({dateObj}){// 周六周日高亮if(dateObj.e===0||dateObj.e===6){return{backgroundColor:'#f6ca9d'}}return{}}}]},taskBarConfig:{showProgress:true,showContent:true,barStyle:{round:true,bgColor:'#f56565',completedBgColor:'#65c16f'}},columns:[{field:'title',title:'任务名称'},{field:'start',title:'开始时间',width:100},{field:'end',title:'结束时间',width:100}],data:[{id:10002,title:'任务C30456572349',start:'2024-03-03',end:'2024-03-08',progress:10},{id:10004,title:'任务P687',start:'2024-03-05',end:'2024-03-11',progress:15},{id:10006,title:'任务B567',start:'2024-03-10',end:'2024-03-21',progress:5},{id:10007,title:'任务V513802134450',start:'2024-04-15',end:'2024-04-24',progress:70},{id:10008,title:'任务G110',start:'2024-04-20',end:'2024-04-29',progress:50}]})</script>

参数详解

headerCellStyle 回调接收一个包含 dateObj 的对象,dateObj 提供了关于当前刻度日期的详细信息:

属性说明示例值
dateObj.y年份2024
dateObj.M月份(0-11)2 (代表3月)
dateObj.d日期(1-31)15
dateObj.e星期几(0-6,0=周日,1=周一 … 6=周六)0 或 6

例如,动态获取节假日数据

如果需要标记法定节假日,可以结合外部数据源:

// 假设从 API 获取的节假日列表constholidays=['2024-05-01','2024-10-01']{type:'date',headerCellStyle({dateObj}){constdateStr=`${dateObj.y}-${String(dateObj.m+1).padStart(2,'0')}-${String(dateObj.d).padStart(2,'0')}`if(holidays.includes(dateStr)){return{backgroundColor:'#ffcccc',color:'#d32f2f'}}return{}}}

通过 taskViewConfig.scales 中 headerCellStyle 回调,你可以为 vxe-gantt 的时间轴列头赋予无限的自定义能力。无论是简单的周末高亮,还是复杂的动态样式,都能通过几行代码轻松实现,让甘特图更贴合业务场景和视觉需求。

https://gantt.vxeui.com

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/28 8:10:44

蓝桥杯国赛JavaB组攻略:从算法思维到实战策略的进阶之路

1. 从省一到国赛&#xff1a;我的JavaB组参赛心路历程去年春天&#xff0c;当省赛成绩公布&#xff0c;看到自己名字后面跟着“一等奖”三个字时&#xff0c;心情是复杂的。兴奋是肯定的&#xff0c;这意味着拿到了通往国赛的门票&#xff0c;但随之而来的是一种更强烈的紧迫感…

作者头像 李华
网站建设 2026/8/28 8:09:16

蓝桥杯Python国赛复盘:状态压缩DP与多维BFS实战解析

1. 项目概述&#xff1a;一次竞赛复盘的价值最近整理硬盘&#xff0c;翻到了2021年参加蓝桥杯国赛时的一些笔记和代码。虽然过去几年了&#xff0c;但当时那种面对难题的紧张感、解出题目后的兴奋感&#xff0c;以及赛后复盘时“原来可以这样优化”的顿悟&#xff0c;依然记忆犹…

作者头像 李华
网站建设 2026/8/28 8:09:08

万相3.0接入Replicate:云端视频生成API调用与批量任务实战指南

这次我们来看万相3.0在 Replicate 平台上的接入方式。万相3.0是阿里云通义万相系列在视频生成方向上的新版本&#xff0c;这次直接登陆 Replicate 意味着用户不再需要准备高配显卡、下载大体积权重、折腾 CUDA 环境&#xff0c;而是直接在云端通过 API 发起视频生成任务&#x…

作者头像 李华
网站建设 2026/8/28 8:08:22

海外短剧百强榜:网页端B25Drama登顶与AI剧崛起信号

7月海外短剧&AI剧百强榜发布后&#xff0c;很多人的第一反应是&#xff1a;排在第一的为什么不是TikTok或ReelShort上的当红剧目&#xff1f;等我认真把榜单标题和榜单现象拆开看&#xff0c;反而觉得最值得说的不是某部剧&#xff0c;而是那个容易被当作普通细节的信息——…

作者头像 李华
网站建设 2026/8/28 8:08:17

自动驾驶责任追溯下的路径规划合理性评估与日志链路构建

当道路交通安全法修订草案把“自动驾驶违法由车企担责”这个方向摆到台面上时&#xff0c;很多自动驾驶从业者第一反应是法律问题&#xff0c;但真正落地时会发现&#xff0c;这首先是一个工程问题。车企要承担责任&#xff0c;就必须回答三个非常具体的问题&#xff1a;系统当…

作者头像 李华