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

如何使用ASP.NET MVC展示服务流程的跟踪线效果

ASP.NET MVC 实现流程线性跟踪展示效果方案

1. 调整控制器查询逻辑

原有查询存在未按规则排序、未预加载关联实体的问题,调整后可直接输出符合展示要求的有序数据集:

// 需引入命名空间:using System.Data.Entity;
public ActionResult Display(int? id) // Service's ID passed from another property
{
    if (id == null)
    {
        return new HttpStatusCodeResult(System.Net.HttpStatusCode.BadRequest);
    }
    // 预加载关联的Process实体,按服务序列字段升序排序
    var serviceDetails = db.ServiceDetails
        .Include(sd => sd.Process)
        .Where(x => x.ServiceID == id)
        .OrderBy(x => x.ServiceSequence)
        .ToList();
    return View(serviceDetails);            
}

2. 视图层实现跟踪线效果

采用纯CSS实现节点连线效果,无额外第三方依赖,匹配参考示例图的线性跟踪样式:

2.1 声明强类型模型

在视图顶部添加模型引用:

@model IEnumerable<ServiceDetail>

2.2 配套样式定义

<style>
/* 流程跟踪容器 */
.process-tracker {
    display: flex;
    justify-content: space-between;
    position: relative;
    margin: 50px 20px;
}
/* 贯穿所有节点的基准连接线 */
.process-tracker::before {
    content: '';
    position: absolute;
    top: 20px;
    left: 0;
    right: 0;
    height: 3px;
    background: #ddd;
    z-index: 1;
}
/* 单个流程节点 */
.process-node {
    position: relative;
    z-index: 2;
    width: 18%;
    text-align: center;
}
/* 节点圆形标识 */
.node-circle {
    width: 40px;
    height: 40px;
    line-height: 40px;
    border-radius: 50%;
    background: #2563eb;
    color: #fff;
    margin: 0 auto 12px;
}
/* 节点下方的详情卡片 */
.detail-card {
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 10px;
    margin-top: 12px;
    text-align: left;
    font-size: 14px;
}
</style>

2.3 页面结构渲染

遍历已排序的服务详情列表,逐一生成流程节点和对应详情:

<div class="container">
    <h3>服务全流程跟踪</h3>
    <div class="process-tracker">
        @foreach (var detail in Model)
        {
            <div class="process-node">
                <div class="node-circle">
                    @detail.ServiceSequence
                </div>
                <h5>@detail.Process.ProcessName</h5>
                <div class="detail-card">
                    <p>服务说明:@detail.ServiceDetailDescription</p>
                    <p>预计完成时长:@detail.TimeToComplete.ToString(@"hh\:mm")</p>
                </div>
            </div>
        }
    </div>
</div>

3. 可选适配扩展

  • 若需要实现已完成流程的连线高亮,可根据业务实际进度,动态计算已完成节点的占比,在基准线上叠加一段同高度的高亮色线条,设置对应宽度即可
  • 移动端场景下,可修改CSS将flex横向排列改为纵向排布,将水平基准线调整为垂直基准线,即可适配小屏幕展示,无需改动后端逻辑
  • 若单服务下的流程节点数量较多,可调整.process-node的宽度占比,配合横向滚动容器适配更多节点

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 03:54:10