鱼骨时间轴案例(转自CSDN,原文链接附于文中)

2023-11-05 20:10

本文主要是介绍鱼骨时间轴案例(转自CSDN,原文链接附于文中),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

$.fn.fishBone = function(data) {var colors = ['#F89782','#1A84CE'];/**入口*///1.创建dom$(this).children().remove();$(this).append(creataFishBone(data));//2.自适应var rowcount = fixWindow();//3.翻页滚动效果jQuery(".fishBone").slide({titCell: ".hd ul",mainCell: ".bd>ul",autoPage: true,effect: "left",autoPlay: false,scroll: rowcount,vis: rowcount});/**自适应 平均分布*/function fixWindow() {//item所占的宽度 = 自身宽度+marginleftvar item = $(".fishBone .bd .item");var marginleft = parseInt(item.css('margin-left'))var item_w = item.width() + marginleft;//显示区域var bd_w = $(".fishBone .bd").width();//能显示的个数 取整var rowcount = parseInt(bd_w / item_w);if (rowcount > item.size()) {//rowcount = item.size();$(".fishBone .prev,.fishBone .next").hide()}//设置新的宽度使其平均分布var item_w_temp = bd_w / rowcount - marginleft;item.width(item_w_temp);return rowcount;};/**li左边框线颜色 border-left-color 动态获取*/function getColor(i) {var length = colors.length;var color = 'gray';if (i <= length - 1) {color = colors[i];} else {color = colors[i % length];}return color;};/**轴线上圆点位置纵坐标,见图片line-point.png*/function getLinePointY(i) {var length = colors.length;var y = 0;if (i <= length - 1) {y = -i * 20;} else {y = -(i % length) * 20;}return y + "px";};/**第一行日期圆点位置纵坐标,图片line-first.png*/function getLineFirstY(i) {var length = colors.length;var y = 0;if (i <= length - 1) {y = -i * 60;} else {y = -(i % length) * 60;}return y + "px";};/** .title-left背景纵坐标,0px开始,见图片title.png*/function getTitleLeftY(i,val) {var length = colors.length;var y = 0;//图片位置if(val == 'zy'){y+=-i*60;}else if(val == 'mz'){y+=-(i % length)*60;}return y + "px";};/** .title-center背景纵坐标,600px开始,见图片title.png*/function getTitleCenterY(i,val) {var length = colors.length;var y = -598;//图片位置if(val == 'zy'){y+=-i*60;}else if(val == 'mz'){y+=-(i % length)*60;}return y + "px";};/**.title-right背景纵坐标,1200px开始,见图片title.png*/function getTitleRightY(i,val) {var length = colors.length;var y = -1200;//图片位置if(val == 'zy'){y+=-i*60;}else if(val == 'mz'){y+=-(i % length)*60;}return y + "px";};/**创建dom结构*/function creataFishBone(data) {var fishBone = $("<div class='fishBone'/>");var wrapper = $("<div class='wrapper'></div>");var bd = $("<div class='bd'></div>");var ul_item = $("<ul/>");//遍历数据$(data).each(function(index,e) {var itemclass=itemClass(index);//显示在轴上方或下方标识 top/bottomvar  i = 0;var color = '';if(e.encounterType=='zy'){color = colors[0];index = 0;}else if(e.encounterType=='mz'){color = colors[1];index = 1;}//var color = getColor(i);var lineFirstY = getLineFirstY(index);var titleLeftY = getTitleLeftY(index,e.encounterType);var titleCenterY = getTitleCenterY(index,e.encounterType);var titleRightY = getTitleRightY(index,e.encounterType);var ul = $("<ul></ul>");//遍历封装属性$.each(this, function(name, value){if (name == 'mpiId'){mpiId = value;}                       		});//判断是门诊还是住院var val="住院记录";$.each(this, function(name, value) {if (name == 'encounterType' ) {if(value=='zy'){val="住院记录";}else if(value='mz'){val="门诊记录";}}});//出院时间var outDate="";var inHosOrgCode="";//outpatientNo住院号var outpatientNo="";//inpatient_record_id var inpatientRecordId="";        var jobType=""var emrId=""$.each(this, function(name, value) {if(name=='outDate'){outDate=value;}else if(name=='inDate'){inDate=value;}else if(name == 'diagName'){diagName=value;}else if(name=='inHosOrgCode'){//机构编码inHosOrgCode=value;}else if(name=='outpatientNo'){outpatientNo=value;}else if(name=='inpatientRecordId'){inpatientRecordId=value;}else if(name=='jobType'){jobType=value;}else if(name=='emrId'){emrId=value;}else if(name='bedNo'){bedNo=value;}});if(itemclass=='top'){$.each(this, function(name, value) {if (name == 'encounterType') {var li = $("<li class='line-first'>" + orgCodeName+val + "</li>").css('background-position-y', (parseInt(lineFirstY)+9)+"px");//9是原计算结果的偏移量,显示位置正合适li.appendTo(ul);return;}});if(val=="住院记录"){$.each(this, function(name, value) {if (name == 'inHosNo') {var li = $("<li class='title'></li>");var titleLeft =  $("<span class='title-left'> </span>").css('background-position-y',titleLeftY);var titleCenter =  $("<span class='title-center'><a  style=\"text-decoration: underline;color: #fff;cursor:pointer;\" title='"+inpatientRecordId+"' οnclick=\"getPatientHealthTree('"+mpiId+"','"+value+"','"+outDate+"','"+inHosOrgCode+"','zy','"+outpatientNo+"','"+inpatientRecordId+"','"+jobType+"','"+emrId+"','"+inDate+"','"+outDate+"')\"> 入院时间:"+inDate+"</a></span>").css('background-position-y',titleCenterY);var titleRight =  $("<span class='title-right'> </span>").css('background-position-y',titleRightY);li.append(titleLeft).append(titleCenter).append(titleRight);li.appendTo(ul);return;}});}else if(val=="门诊记录"){$.each(this, function(name, value) {if (name == 'outpatientNo') {var li = $("<li class='title'></li>");var titleLeft =  $("<span class='title-left'> </span>").css('background-position-y',titleLeftY);var titleCenter =  $("<span class='title-center'><a  style=\"text-decoration: underline;color: #fff;cursor:pointer;\" title='"+inpatientRecordId+"' οnclick=\"getPatientHealthTree('"+mpiId+"','"+value+"','','"+inHosOrgCode+"','mz','"+outpatientNo+"','"+inpatientRecordId+"','"+jobType+"','"+emrId+"')\"> 就诊时间:"+inDate+"</a></span>").css('background-position-y',titleCenterY);var titleRight =  $("<span class='title-right'> </span>").css('background-position-y',titleRightY);li.append(titleLeft).append(titleCenter).append(titleRight);li.appendTo(ul);return;}});}//封装其他属性$.each(this, function(name, value) {if(name=='diagName'){var li =$("<li>诊断:" + value + "</li>").css("border-left","1px solid "+color);li.appendTo(ul);}});$.each(this, function(name, value) {if(name=='bedNo'){var li =$("<li>床号:" + value + "</li>").css("border-left","1px solid "+color);li.appendTo(ul);}});$.each(this, function(name, value) {if(name=='deptName'){var li =$("<li>就诊科室:" + value + "</li>").css("border-left","1px solid "+color);li.appendTo(ul);}  	 });                         }//封装轴线上的圆点var linePointY = getLinePointY(index);var point = $("<li class='line-last line-point'></li>").css('background-position', '0px ' + linePointY);point.appendTo(ul);//生成一个item(一个完整的案件)var li_item = $("<li class='item'></li>");var content = $("<div class='content'></div>");ul.appendTo(content);content.appendTo(li_item);li_item.addClass(itemClass(index)).appendTo(ul_item);});ul_item.appendTo(bd);bd.appendTo(wrapper);var prev = $("<a class='prev'></a>");var next = $("<a class='next'></a>");var line = $("<div class='line'/>")fishBone.append(wrapper).append(prev).append(next).append(line);return fishBone;};/**item添加样式,显示在上方或下方*/function itemClass(index) {index += 1;if (index % 2 == 0) {//偶数显示到下方return "top";} else {//奇数显示到上方return "top";}}
}
效果图:如下:

原文链接:https://blog.csdn.net/LuuvyJune/article/details/80352141

如要转载,请注明出处

 

  

转载于:https://www.cnblogs.com/jjSunyet/p/9876954.html

这篇关于鱼骨时间轴案例(转自CSDN,原文链接附于文中)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/352186

相关文章

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Java 正则表达式的使用实战案例

《Java正则表达式的使用实战案例》本文详细介绍了Java正则表达式的使用方法,涵盖语法细节、核心类方法、高级特性及实战案例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、正则表达式语法详解1. 基础字符匹配2. 字符类([]定义)3. 量词(控制匹配次数)4. 边

Python Counter 函数使用案例

《PythonCounter函数使用案例》Counter是collections模块中的一个类,专门用于对可迭代对象中的元素进行计数,接下来通过本文给大家介绍PythonCounter函数使用案例... 目录一、Counter函数概述二、基本使用案例(一)列表元素计数(二)字符串字符计数(三)元组计数三、C

Spring Boot 整合 SSE(Server-Sent Events)实战案例(全网最全)

《SpringBoot整合SSE(Server-SentEvents)实战案例(全网最全)》本文通过实战案例讲解SpringBoot整合SSE技术,涵盖实现原理、代码配置、异常处理及前端交互,... 目录Spring Boot 整合 SSE(Server-Sent Events)1、简述SSE与其他技术的对

MySQL 临时表与复制表操作全流程案例

《MySQL临时表与复制表操作全流程案例》本文介绍MySQL临时表与复制表的区别与使用,涵盖生命周期、存储机制、操作限制、创建方法及常见问题,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小... 目录一、mysql 临时表(一)核心特性拓展(二)操作全流程案例1. 复杂查询中的临时表应用2. 临时

MySQL 数据库表与查询操作实战案例

《MySQL数据库表与查询操作实战案例》本文将通过实际案例,详细介绍MySQL中数据库表的设计、数据插入以及常用的查询操作,帮助初学者快速上手,感兴趣的朋友跟随小编一起看看吧... 目录mysql 数据库表操作与查询实战案例项目一:产品相关数据库设计与创建一、数据库及表结构设计二、数据库与表的创建项目二:员

C#中的Drawing 类案例详解

《C#中的Drawing类案例详解》文章解析WPF与WinForms的Drawing类差异,涵盖命名空间、继承链、常用类及应用场景,通过案例展示如何创建带阴影圆角矩形按钮,强调WPF的轻量、可动画特... 目录一、Drawing 是什么?二、典型用法三、案例:画一个“带阴影的圆角矩形按钮”四、WinForm

setsid 命令工作原理和使用案例介绍

《setsid命令工作原理和使用案例介绍》setsid命令在Linux中创建独立会话,使进程脱离终端运行,适用于守护进程和后台任务,通过重定向输出和确保权限,可有效管理长时间运行的进程,本文给大家介... 目录setsid 命令介绍和使用案例基本介绍基本语法主要特点命令参数使用案例1. 在后台运行命令2.

RabbitMQ消费端单线程与多线程案例讲解

《RabbitMQ消费端单线程与多线程案例讲解》文章解析RabbitMQ消费端单线程与多线程处理机制,说明concurrency控制消费者数量,max-concurrency控制最大线程数,prefe... 目录 一、基础概念详细解释:举个例子:✅ 单消费者 + 单线程消费❌ 单消费者 + 多线程消费❌ 多