$.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,原文链接附于文中)相关推荐

  1. python绘制时间轴_python – matplotlib图中的链接时间轴(x轴)

    这是基于生成第二个x轴,如上一篇文章所述: 下面是生成具有两个x轴的图的代码,该图表示相同数据的两个不同时间单位:相对时间(rel_time)和绝对时间(abs_time).虽然上述方法很好地生成了两 ...

  2. Android自定义时间轴

    本文讲述Android自定义时间轴的实现过程 相关视频链接: Android自定义控件系列 http://edu.csdn.net/course/detail/3719/65396 Android视频 ...

  3. Android实训案例(三)——实现时间轴效果的ListView,加入本地存储,实现恋爱日记的效果!

    Android实训案例(三)--实现时间轴效果的ListView,加入本地存储,实现恋爱日记的效果! 感叹离春节将至,也同时感叹时间不等人,一年又一年,可是我依然是android道路上的小菜鸟,这篇讲 ...

  4. android 炫酷时间轴,这38款超级炫酷的时间轴特效代码案例,总有一款是你需要的...

    最近,看到一些很漂亮的时间轴图表,效果真的非常不错.这些图表,写到需要的项目中,也是非常棒的.当然,你也可以拿它来当作学习的小练习.时间轴,在很多企业官网或者关于企业历史大事件介绍的时候,使用的频率还 ...

  5. 数据标注案例分析-足球比赛时间轴打点标注项目

    什么是时间轴打点标注? 时间轴打点标注是按照时间顺序直观地表明某一事件或某一过程的步骤,使得复杂的信息易于理解. 时间轴打点标注广泛应用于项目管理.业务分析和演示.体育行业.教学中. 我们通过打点标注 ...

  6. 【MarkDown】CSDN Markdown之时间轴图timeline详解

    文章目录 时间轴图 一个关于时间轴图的例子 语法 分组 长`时间段`或`事件文本`换行 `时间段`和`事件文本`样式 自定义颜色方案 主题 基础主题 森林主题 黑色主题 默认主题 中性主题 与库或网站 ...

  7. PhotoShop简单案例(2)——利用时间轴功能制作制作省略号GIF动画

    目录 一.项目介绍 二.基本流程 2.1 新建画布 2.2 输入文字 2.3 增删省略号 2.4 创建视频时间轴 三.效果演示 一.项目介绍 本文将介绍利用时间轴功能制作制作省略号GIF动画,制作完成 ...

  8. Echarts(三):含有时间轴的可视化案例1

    这是一篇小白的实现时间轴的可视化的笔记. Timeline说明 timeline 需要操作多个option. "我们把传入 setOption 第一个参数,称为 ECOption,称传统的 ...

  9. android时间轴折线图,echarts时间轴折线图

    当使用echarts折线图时,每个数据会打点,在数据量小的时候,美观又快捷,但是当数据量过大时,会非常的卡,以及不美观 例如: series: { symbol:'circle', } > EC ...

  10. 推荐几款jQuery时间轴插件Timeline

    原文地址:http://blog.csdn.net/xiaokui_wingfly/article/details/51907045 查看原文 查看在线演示Demo和更多原文内容教程:  http:/ ...

最新文章

  1. C++ while 循环与 do...while 循环
  2. 超越卷积、自注意力机制:强大的神经网络新算子involution
  3. VUEX源码学习笔记(第5~6章 共6章)
  4. 百万级数据库优化方案[转载]
  5. strstr,strrchr,strpos,strrpos的区别http://blog.qit...
  6. 微型计算机的主要硬件以及技术指标,微型计算机主要技术指标
  7. python亲密度_Python OpenCV 图像2D直方图,取经之旅第 25 天
  8. tcpcopy使用方法
  9. Why Redis 4.0?
  10. tesseract linux 训练
  11. Java——Set 集合
  12. 敢问多任务学习优化算法路在何方?|附代码
  13. 超赞,1万字的后端面试题及面试经验分享!
  14. 使用regedit导入导出环境变量
  15. 如何更改微信小程序二维码物料颜色
  16. Linux基础命令实例
  17. ns3网络模拟器使用相关问题
  18. Flask 消息提示与异常处理
  19. VMware 笔试题目:猫和老鼠玩象棋
  20. CSS3 animation-fill-mode 属性

热门文章

  1. 比 rm 更安全的删除文件命令:shred
  2. iOS不同屏幕适配字体大小
  3. java毕业设计摄影网站源码+lw文档+mybatis+系统+mysql数据库+调试
  4. 人智导(十八):知识表示与自动推理(Ⅰ)
  5. ElaticSearch最详细的学习笔记,2020年
  6. 用于静电除尘的高频高压供电电源的设计
  7. Python就业后能拿高薪吗
  8. 关于“番茄花园”的危机
  9. 软件测试输入准则,软件测试准则-明明白白结束之六脉神剑
  10. 王浩算法 c语言,华尔街日报(1-10) 8 Nationalists in Japan Feed Asia Strife.docx