You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在syncfusion_flutter_charts中按条件设置虚线及隐藏点间连线

用户操作时间轴示意图

实现方案

核心逻辑

先计算相邻两次操作的日期间隔,再根据间隔值控制连线状态:

  • 间隔≥3天:隐藏两点间连线
  • 间隔>2天且<3天:显示两点间虚线
  • 间隔≤2天:显示正常实线(默认)

具体步骤

  1. 日期间隔计算
    将操作日期转为时间戳后计算差值,再转换为天数:
// JavaScript示例:计算两个日期的间隔天数
function getDayDiff(date1, date2) {
  const oneDayMs = 24 * 60 * 60 * 1000;
  return Math.round(Math.abs((date1.getTime() - date2.getTime()) / oneDayMs));
}
  1. 动态控制连线样式
    以前端DOM操作为例,根据日期差修改连线元素的样式或类:
const prevOpDate = new Date(prevOperation.date);
const currOpDate = new Date(currentOperation.date);
const dayDiff = getDayDiff(prevOpDate, currOpDate);
const lineElement = document.getElementById(`line-${prevOperation.id}`);

if (dayDiff >= 3) {
  lineElement.style.display = 'none';
} else if (dayDiff > 2) {
  lineElement.classList.add('dashed-line');
} else {
  lineElement.classList.add('solid-line');
}
  1. CSS样式定义
    提前预设样式类,让代码更易维护:
.connection-line {
  height: 2px;
  width: 100%;
  margin: 8px 0;
}
.connection-line.dashed-line {
  background: none;
  border-top: 2px dashed #666;
}
.connection-line.solid-line {
  background-color: #666;
}
  1. 后端渲染场景适配
    如果是后端模板渲染(如Django、Thymeleaf),可提前计算日期差并绑定样式类:
<!-- Django模板示例 -->
<div class="connection-line
  {% if day_diff >= 3 %}hidden{% elif day_diff > 2 %}dashed-line{% else %}solid-line{% endif %}">
</div>

内容的提问来源于stack exchange,提问作者Ahmed Ashraf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 12:30:58