鱼骨时间轴案例(转自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所占的宽度 = 自身宽度+marginleft
var 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/bottom
var 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+"' onclick=\"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+"' onclick=\"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
如要转载,请注明出处
鱼骨时间轴案例(转自CSDN,原文链接附于文中)的更多相关文章
- jQuery横向上下排列鱼骨图形式信息展示代码时光轴样式(转自CSDN,原文链接附于文中)
原文链接:http://www.jqueryfuns.com/resource/2173 $.fn.fishBone = function(data) { var colors = ['#F89782 ...
- mxGraph实现鱼骨图(因果图)(转自CSDN,链接附于文中)
鱼骨图由日本管理大师石川馨先生所发明,故又名石川图.鱼骨图是一种发现问题“根本原因”的方法,它也可以称之为“Ishikawa”或者“因果图”.其特点是简捷实用,深入直观.它看上去有些象鱼骨,问题或缺陷 ...
- Android实训案例(三)——实现时间轴效果的ListView,加入本地存储,实现恋爱日记的效果!
Android实训案例(三)--实现时间轴效果的ListView,加入本地存储,实现恋爱日记的效果! 感叹离春节将至,也同时感叹时间不等人,一年又一年,可是我依然是android道路上的小菜鸟,这篇讲 ...
- echarts使用结合时间轴timeline动态刷新案例
1.echarts简介 ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Fire ...
- SmohanTimeLine.js 酷炫的时间轴效果
展示地址 点此下载 原文出处 一.参数说明 item : '.item', //项目元素 top : 30, //与下一行的间距 pointWidth : 22, //时间点宽度 cornerWidt ...
- jquery时间轴幻灯展示源代码
查看效果:http://hovertree.com/texiao/jquery/75/ 源代码下载:http://hovertree.com/h/bjaf/8jlpc2wu.htm 效果图如下: 代码 ...
- CSS3实现时间轴效果
原文:CSS3实现时间轴效果 最近打开电脑就能看到极客学院什么新用户vip免费一个月,就进去看看咯,这里就不说它的课程怎么滴了,里面实战路径图页面看到了这个效果: 有点像时间轴的赶脚,而且每一块鼠标悬 ...
- CSS- 横向和纵向时间轴
时间轴在展示公司发展信息,服务流程中用的比较多,常见的注册登录有的是通过引导,一步一步的来完成,上面会通过时间轴告诉用户当前在哪一步,公司在关于我们或者发展流程的时候也特别喜欢用时间轴来展示,简单的实 ...
- Android实现时间轴
昨天群里有讨论时间轴的项目,没有接触过,以为非常吊,研究之后才知道表面都是忽悠人的,使用listview就能实现了,也没有什么新奇的东西 废话少说,直接上图 图片和文字都能够私人订制 没什么好说的,直 ...
随机推荐
- Eclipse中Java build path的使用
1.Eclipse中,工程属性的Java Build Path的Library标签页下,有如下几个按钮:Add Jars...添加JAR包,是指本Eclipse当前包含的工程中的,在工程列表下选取即可 ...
- Spring Boot - AMQP 消息中间件
Message Broker是一种消息验证.传输.路由的架构模式,其设计目标主要应用于下面这些场景: 消息路由到一个或多个目的地 消息转化为其他的表现方式 执行消息的聚集.消息的分解,并将结果发送到他 ...
- NGUI外包开发总结一下今天的收获
先总结一下今天的收获:在一个脚本类中对其成员变量进行初始化时,什么时候在Awake()中,什么时候在Start()中是有讲究的. 1)当成员变量会被外部脚本引用时,尤其是该成员变量是一个自己定义的非脚 ...
- iis重写模块实现程序自动二级域名,微软提供的URL重写2.0版本适用IIS以上
在iis7以后微软提供了url重写2.0版本,可以通过安装重写组件来实现.适用于iis7以上版本. 安装有两种方式可以选择,一是下载安装文件,二是通过“web平台安装程序”安装 1.下载安装文件 下载 ...
- Java Web开发Session超时设置
在Java Web开发中,Session为我们提供了很多方便,Session是由浏览器和服务器之间维护的.Session超时理解为:浏览器和服务器之间创建了一个Session,由于客户端长时间(休眠时 ...
- ios开发的frame、物理屏幕尺寸和图片分辨率
型号 屏幕尺寸(inch) 逻辑分辨率(point) 缩放因子(scale factor) 物理分辨率(pixel) 像素密度(PPI) iPhone3GS 3.5 320 * 480 @1x 320 ...
- WAMP中mysql服务突然无法启动 解决方法
wamp的mysql服务前两天还能用,今天突然不能无法启动了,原因可能是近期电脑强行关机,删除wamp\bin\mysql\mysql5.6.17\data目录下的ib_logfile0和ib_log ...
- ORC 文件存储格式
1.orc列式存储概念 a)列式存储:orc并不是纯粹的列式存储,也是先基于行对数据表进行分组(行组),然后对行组进行列式存储. b)查询数据的时候不需要扫描全部数据(磁盘IO),只需查询指定列即可. ...
- (转)Android之发送短信的两种方式
https://www.cnblogs.com/dongweiq/p/4866022.html if(TextUtils.isEmpty(number)||TextUtils.isEmpty(cont ...
- [ZZ]MTSC 2017 Mobile Testing@Google 演讲的感受
原文地址: https://testerhome.com/topics/9364 Mobile Testing@Google 其实在开始听谷歌的张南和潘岩开始演讲前,了解下 Google Test C ...