首页 > 其他分享 >基于JQuery实现业务流图

基于JQuery实现业务流图

时间:2023-04-25 12:11:36浏览次数:37  
标签:JQuery 基于 -- 100% item background var left 流图

最近接手了一个需求,需要将一个业务流中各个系统间交互信息用时间轴方式(设计原型我觉得是基于时间轴)展现出来,正常交互的接口圆点为绿色,未交互的接口圆点为灰色,交互异常的接口圆点为红色,且圆点不仅要展示接口名称,还要请求和响应时间,并且时间后面要跟着可点击链接,在业务流图右边展示交互报文内容。看到这种需求就惊了,这是一个缺少前端经验的我能干出来的。

首先整理数据表存储数据,然后游览JQuery插件库 https://www.jq22.com/ 查看各种流图实现,以下是实现代码,可供参考
jsp页面仅说明流图与文本框部分,样式是easyUI框架中的,我就不展示了

点击查看代码
<div id="step1"></div>
<textarea id="TransDetailXMlvalues" cols="100" rows="15" readonly="readonly" style="text-align: left;"></textarea>

js部分

点击查看代码
(function($) {
    $.fn.extend({
        loadStep: function(stepArr) {          
            var $this = $(this);    
            var step = '<ul class="timeLine"></ul>';
            var $step = $(step);
            $.each(stepArr,function(index,item){
                var stepstart = '<li><div>'+item.port+'<br/>';
                var stepreq ='';
                var stepres ='';               
                if(item.req !== null && item.req !=='' && item.req !== undefined){
                    stepreq = '<span>请求:'+item.req+
                        '&nbsp&nbsp<a href="#" class="easyui-linkbutton e-cis_button" iconCls="icon-search" onclick="searchTransDetailXMl(\''+item.addressreq+'\')">查看报文</a></span><br/>';
                }else{
                    //没有请求报文,节点没有交互,则将圆点置为灰色
                    if(index<stepArr.length-1){
                        stepstart = '<li class="skip"><div>'+item.port+'<br/>';
                    }
                }
                if(item.res !== null && item.res !=='' && item.res !==undefined){
                    stepres = '<span>响应:'+item.res+
                        '&nbsp&nbsp<a href="#" class="easyui-linkbutton e-cis_button" iconCls="icon-search" onclick="searchTransDetailXMl(\''+item.addressres+'\')">查看报文</a></span>';
                }else{
                    //不为首节点 且有请求没有收到返回,则将圆点置为红色
                    if(index>0){
                        if(item.req !== null && item.req !=='' && item.req !== undefined) {
                            stepstart = '<li class="on"><div>' + item.port + '<br/>';
                        }
                    }
                }
                $step.append(stepstart +stepreq+ stepres+'</div></li>');
            });
            $this.append($step);
        }
    })
})(jQuery)
$(function() {
$.ajax({
        async : false,
        cache : false,
        type : "POST",
        data:{"code" :$("#code").val()},
        dataType : "json",
        url : "url",
        error : function() {
            alert("节点信息查询失败");
        },
        success : function(data) {
            if(data===1){
                alert("当前业务的节点信息流图待新增");
            }
            $('#step1').loadStep(data);
        }
    });
}
function searchTransDetailXMl(address){
    $.post("url", {
        'address':address
    }, function(data) {
        $('#TransDetailXMlvalues').text(data);
    });
}
css部分我是参考JQuery中发布的模板修改的
点击查看代码
.timeLine {
    margin: 20px auto 0;
    overflow: hidden;
    position: relative
}

.timeLine li {
    background: linear-gradient(to left, var(--default, #66D533), var(--default, #66D533)) 7.5px top no-repeat;
    background-size: 1px 100%;
    padding-bottom: 30px;
    position: relative;
    display: flex;
    padding-left: 30px;
}

.timeLine li::after {
    content: "";
    width: 15px;
    height: 15px;
    border-radius: 50%;
    border: 1px solid var(--default, #66D533);
    background: radial-gradient(var(--default, #66D533) 25%, transparent 30%) 50% 50% no-repeat,
    linear-gradient(to left, #fff, #fff) left top no-repeat;
    background-size: 100% 100%, 100% 100%;
    position: absolute;
    top: 0;
    left: 0;
}

.timeLine li.on {
    background: linear-gradient(to left, var(--checked, #FF0000), var(--checked, #FF0000)) 7.5px top no-repeat;
    background-size: 1px 100%;
    position: relative;
}

.timeLine li.skip {
    background: linear-gradient(to left, var(--checked, #CCD5CC), var(--checked, #CCD5CC)) 7.5px top no-repeat;
    background-size: 1px 100%;
    position: relative;
}

.timeLine li.on::after {
    content: "";
    border: 1px solid var(--checked, #FF0000);
    background: radial-gradient(var(--checked, #FF0000) 25%, transparent 30%) 50% 50% no-repeat,
    linear-gradient(to left, #fff, #fff) left top no-repeat;
    background-size: 100% 100%, 100% 100%;
}
.timeLine li.skip::after {
    content: "";
    border: 1px solid var(--checked, #CCD5CC);
    background: radial-gradient(var(--checked, #CCD5CC) 25%, transparent 30%) 50% 50% no-repeat,
    linear-gradient(to left, #fff, #fff) left top no-repeat;
    background-size: 100% 100%, 100% 100%;
}

timeLine li:last-child {
    background: linear-gradient(to left, var(--default, #66D533), var(--default, #66D533)) 7.5px top no-repeat;
    background-size: 1px 100%;
    padding-bottom: 30px;
    position: relative;
    display: flex;
    padding-left: 30px;
    /*background: none !important;*/
}

完成本次需求,确实学到了不少,也非常有成就感,实践是最好的老师

标签:JQuery,基于,--,100%,item,background,var,left,流图
From: https://www.cnblogs.com/merycrismers/p/17352230.html

相关文章

  • jquery ajax dataType有哪些
    预期服务器返回的数据类型。如果不指定,jQuery将自动根据HTTP包MIME信息来智能判断,比如XMLMIME类型就被识别为XML。在1.4中,JSON就会生成一个JavaScript对象,而script则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值:•"xml":......
  • [Jquery DataTable] 生成模板文件
    以前生成模板文件,都是在后端放一个文件,前端提供一个链接地址。碰巧看到用DataTable来生成模板文件的方式,特此记录下。原理:创建一个空数据的DataTable,提供导出按钮功能,并隐藏DataTable。页面上就只会显示一个按钮,不显示DataTable.   <!DOCTYPEhtml><htmllang="en">......
  • 我国能源消耗的影响模型分析—基于多元线性回归与岭回归模型
    我国能源消耗的影响模型分析—基于多元线性回归与岭回归模型⭕AdamCY888文章目录我国能源消耗的影响模型分析—基于多元线性回归与岭回归模型一、引言二、回归模型简介(一)多元线性回归模型原理(二)建模步骤三、实证分析(一)构建指标及获取数据(二)......
  • jQuery 在图片和文字中插入内容(多种情况考虑)
    昨天接到一个新的需要,在后台文章编辑器中,每一个文章的正文前面,可以单独添加一个电头字段,但是如果在富文本编辑器中最上面就添加图片的话,图片就会把电头和正文中的文字给隔开。需要做的是获取到电头字段,然后在正文中的文字部分的最前面插入电头字段。具体看下图:原始的代码:<div......
  • 【多臂赌机】基于时变egreedy策略结合强化学习求解多臂赌机问题附matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • m基于EAN13字符编码规则的一维条形码条码宽度计算和数字译码matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要条码技术是在计算机的应用实践中产生和发展起来的一种自动识别技术,条码应用技术就是应用条码系统进行的信息处理技术。条码技术的研究始于20世纪中期,是继计算机技术应用和发展应运而生的。随着70年代微处理器的问......
  • 基于Astar算法的智能避障最短路径搜索matlab仿真,可以任意选择起点和终点
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要Astar算法是一种图形搜索算法,常用于寻路。它是个以广度优先搜索为基础,集Dijkstra算法与最佳优先(bestfit)算法特点于一身的一种算法。它通过下面这个函数来计算每个节点的优先级,然后选择优先级最高的节点作为......
  • 基于互信息和归一化互信息的医学图像配准算法matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要信息论中将互信息定义为信息之间的关系,可以表示为两个随机变量之间统计相关性的度量,由此可以得出图像互信息的计算方法。作为图像多模态配准中的度量,图像互信息利用对图像灰度值的统计数据形成单个图像的灰度值概......
  • tracecompass 基于trace+log 分析系统性能问题的gui 工具
    tracecompass是eclipse社区贡献的,支持对于trace以及log进行方便的分析,可以用来快速分析系统性能问题支持多种trace格式,包含了linux,标准jaeger,linpacp,lltng,gdbtrace是一个很不错的工具,同时官方也提供了比较完备的资料可以参考说明tracecompass是一个值得使用的工具,值得......
  • 基于互信息和归一化互信息的医学图像配准算法matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:      2.算法涉及理论知识概要       信息论中将互信息定义为信息之间的关系,可以表示为两个随机变量之间统计相关性的度量,由此可以得出图像互信息的计算方法。作为图像多模态配准中的度量,图像互信息利用对图像灰......