body-record.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. (function() {
  2. var request = getRequest(),
  3. patient = request.patiCode || '';
  4. var tabIndex = 0,
  5. dayIndex = 0;
  6. $('.tab-record span').click(function() {
  7. tabIndex = $(this).index();
  8. dataCanvas.labels = [];
  9. dataCanvas.datasets[0].data = [];
  10. dataCanvas.datasets[1].data = [];
  11. indexHover(this);
  12. dayIndex = 0;
  13. var ele = $('.day-record span').get(0)
  14. indexHover(ele);
  15. // 切换数据
  16. getBodyRecord(tabIndex, dayIndex);
  17. });
  18. $('.day-record span').click(function() {
  19. dayIndex = $(this).index();
  20. indexHover(this);
  21. // 切换数据
  22. getBodyRecord(tabIndex, dayIndex);
  23. });
  24. function indexHover(ele) {
  25. $(ele).siblings().removeClass('f-hover');
  26. $(ele).addClass('f-hover');
  27. }
  28. // 时间推算
  29. function getDateFromCurrentDate(fromDate, dayInterval) {
  30. var curDate = new Date(Date.parse(fromDate.replace(/-/g, "/")));
  31. curDate.setDate(curDate.getDate() + dayInterval);
  32. var year = curDate.getFullYear();
  33. var month = (curDate.getMonth() + 1) < 10 ? "0" + (curDate.getMonth() + 1) : (curDate.getMonth() + 1);
  34. var day = curDate.getDate() < 10 ? "0" + curDate.getDate() : curDate.getDate();
  35. return year + "-" + month + "-" + day + " 00:00:00";
  36. };
  37. // 获取最后一条数据
  38. var dataLast = {patient: patient};
  39. var lastXT = '',
  40. lastXY = '';
  41. bodyRecordApis.getBodyRecoredLast({data: dataLast}).then(function(res){
  42. if(res.status == 200){
  43. lastXT = res.data.xt.recordDate;
  44. lastXY = res.data.xy.recordDate;
  45. // 初始化执行
  46. getBodyRecord(tabIndex, dayIndex);
  47. }else{
  48. showWarningMsg(res.msg)
  49. }
  50. })
  51. // 绘制折线图初始定义
  52. var ctx = document.getElementById('canvas').getContext("2d");
  53. var dataCanvas = {
  54. labels : [],
  55. datasets : [
  56. {
  57. fillColor : "rgba(220,220,220,0.5)",
  58. strokeColor : "rgba(220,220,220,1)",
  59. pointColor : "rgba(220,220,220,1)",
  60. pointStrokeColor : "#fff",
  61. data : []
  62. },
  63. {
  64. fillColor : "rgba(151,187,205,0.5)",
  65. strokeColor : "rgba(151,187,205,1)",
  66. pointColor : "rgba(151,187,205,1)",
  67. pointStrokeColor : "rgba(151,187,205,1)",
  68. data : []
  69. }
  70. ]
  71. };
  72. var defaults = {
  73. scaleStartValue : 0,
  74. scaleShowLabels : true,
  75. datasetFill : false, // 是否填充数据集
  76. animation : true, // 是否执行动画
  77. animationSteps : 60, // 动画的时间
  78. animationEasing : "easeOutQuart", // 动画的特效
  79. onAnimationComplete : null // 动画完成时的执行函数
  80. }
  81. var myLineChart = null;
  82. // new Chart(ctx).Line(dataCanvas, defaults);
  83. // 获取数据
  84. function getBodyRecord(tab, day) {
  85. $('.danwei').html(tab == 0 ? '单位(mmol/L)' : '单位(mmHg)');
  86. var dayNum = 0;
  87. switch(day) {
  88. case 0:
  89. dayNum = 7;break;
  90. case 1:
  91. dayNum = 30;break;
  92. case 2:
  93. dayNum = 90;break;
  94. case 3:
  95. dayNum = 365 / 2;break;
  96. }
  97. var type = (tab == 0 ? 1 : 2),
  98. startdate = (tab == 0 ? lastXT : lastXY),
  99. enddate = getDateFromCurrentDate(startdate, -dayNum),
  100. gi_type = (tab == 0 ? 1 : 0);// 字段不清楚暂时不处理
  101. $('.data-record').html(enddate.substr(0, 11) + '至' + startdate.substr(0,11));
  102. var recordData = {
  103. type: type,
  104. begin: enddate,
  105. end: startdate,
  106. gi_type: gi_type,
  107. patient: patient
  108. }
  109. // 获取体征记录
  110. bodyRecordApis.getBodyRecordData({data: recordData}).then(function(res){
  111. if(res.status == 200){
  112. var list = res.list,
  113. len = list.length;
  114. for(var i = 0; i < len; i++) {
  115. if(len == 1) {
  116. dataCanvas.labels = [enddate.substr(5, 5), list[i].date.substr(5, 5)];
  117. dataCanvas.datasets[0].data = [null, list[i].value1];
  118. } else {
  119. dataCanvas.labels[i] = list[i].date.substr(5, 5);
  120. dataCanvas.datasets[0].data[i] = list[i].value1;
  121. }
  122. if(tabIndex == 1) {
  123. if(len == 1) {
  124. dataCanvas.datasets[1].data = [null, list[i].value2];
  125. } else {
  126. dataCanvas.datasets[1].data[i] = list[i].value2;
  127. }
  128. } else {
  129. dataCanvas.datasets[1].data[i] = []
  130. }
  131. }
  132. // 绘制图
  133. if(myLineChart) {// 如果构造过,解析
  134. myLineChart.destroy();
  135. }
  136. myLineChart = new Chart(ctx).Line(dataCanvas, defaults);
  137. }else{
  138. showWarningMsg(res.msg)
  139. }
  140. })
  141. }
  142. })(jQuery)