qcScore.js 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. require("../css/qcScore.less");
  2. const $ = require('jquery');
  3. require('jquery-templates');
  4. require('./modal.js');
  5. const {api,post,getUrlArgObject} = require('./utils.js');
  6. //本页全局变量
  7. let global_flawData = {}; //缺陷数据
  8. const global_id=getUrlArgObject("id");
  9. let global_activeTab=$(".sub-menu .page.active").attr("code"); //当前激活菜单项
  10. $(function(){
  11. //getSubMenu();
  12. //initScoreItem();
  13. getRecordDetail();
  14. function initMenu(data){
  15. //菜单数据填充
  16. $("#subMenuTmpl").tmpl(data).appendTo("#subMenu");
  17. //菜单收起展开
  18. $(".list-1").on("click",function(){
  19. $(".list-1 .slide-up").removeClass('slide-up');
  20. $(this).toggleClass('slide-up');
  21. $(this).find("ul").slideToggle();
  22. });
  23. $(".list-1 li").on("click",function(e){
  24. e.stopPropagation();
  25. });
  26. //右侧内容切换
  27. $(".page").on("click",function(){
  28. //选中样式
  29. $(".sub-menu .active").removeClass('active');
  30. $(this).addClass("active");
  31. //显示对应内容
  32. const code=$(this).attr("code");
  33. global_activeTab=code;
  34. $(".content-item,.flaw-item").hide();
  35. $(".content-item[code='"+code+"']").show();
  36. showFlawList();
  37. });
  38. }
  39. /*function getSubMenu(){
  40. post(api.getSubMenu).then(function(res){
  41. if(res.data.code==='0'){
  42. const data = res.data.data;
  43. initMenu(data);
  44. $(".sub-menu li:first-child.page").addClass("active");
  45. }
  46. });
  47. };*/
  48. //获取病例明细
  49. function getRecordDetail(){
  50. post(api.getRecordDetail,{'behospitalCode':global_id}).then(function(res){
  51. if(res.data.code==='0'){
  52. const data = res.data.data;
  53. const {beHospital,result,msg} = data;
  54. const info=Object.assign(beHospital,result);
  55. initMenu(JSON.parse(result.menuData));
  56. $(".sub-menu li:first-child.page").addClass("active");
  57. global_activeTab=$(".sub-menu .page.active").attr("code");
  58. initPatientInfo(info);
  59. initContent(result.pageData);
  60. initScoreItem(msg);
  61. global_flawData=msg;
  62. }
  63. });
  64. }
  65. //填充患者信息
  66. function initPatientInfo(data){
  67. const date = data.birthday.substr(0,10);
  68. const age=new Date(date).getTime()/(365*24*60*60*1000);
  69. const obj=Object.assign({},data,{age:Math.floor(-age)});
  70. $("#infoTmpl").tmpl(obj).appendTo("#patientInfo");
  71. }
  72. //显示病例模块明细
  73. function initContent(data){
  74. const obj = JSON.parse(data);
  75. for(let k in obj){
  76. $("#contentTmpl").tmpl({title:k,info:obj[k]}).appendTo("#contentInfo");
  77. }
  78. $(".content-item[code="+global_activeTab+"]").show();
  79. console.log(obj)
  80. }
  81. //评分项数据填充
  82. function initScoreItem(data){
  83. $("#flaws .flaw-box").html("");
  84. for(let k in data){
  85. $("#flawTmpl").tmpl(data[k]).appendTo("#flaws .flaw-box");
  86. }
  87. //$(".flaw-item[code="+global_activeTab+"]").show();
  88. showFlawList();
  89. $(".flaw-item .oper a").click(function () {
  90. //const activeTab=$(".sub-menu .page.active").attr("code");
  91. const i = $(".flaw-item[code="+global_activeTab+"]").index($(this).parents(".flaw-item"));
  92. const code=$(this).attr("code");
  93. const isEdit = $(this).is(".edit-flaw");
  94. showModal(isEdit?'0':'1',code,i);
  95. })
  96. }
  97. //显示缺陷列表
  98. function showFlawList(){
  99. const hml = $(".flaw-item[code="+global_activeTab+"]");
  100. if(hml.length){
  101. hml.show();
  102. $("#flaws .empty").hide();
  103. }else{
  104. $("#flaws .empty").length?$("#flaws .empty").show():$("#emptyTmpl").tmpl().appendTo("#flaws .flaw-box");
  105. }
  106. }
  107. //删除评分项
  108. function delScore(id){
  109. const param={
  110. 'behospitalCode':global_id,
  111. 'optResultAlgVO':{
  112. 'id':id
  113. }
  114. };
  115. post(api.delScore,param).then(function(res){
  116. if(res.data.code==='0'){
  117. $("#delModal").hide();
  118. updateFlaws();
  119. $.alerModal({"message":"删除成功",type:"tip",time:'1000'});
  120. }
  121. });
  122. }
  123. //修改评分项
  124. function editScore(info){
  125. const param={
  126. "behospitalCode": global_id,
  127. "optResultAlgVO": info
  128. };
  129. post(api.editScore,param).then(function(res){
  130. if(res.data.code==='0'){
  131. $("#delModal").hide();
  132. updateFlaws();
  133. $.alerModal({"message":"修改成功",type:"tip",time:'1000'});
  134. }
  135. });
  136. }
  137. //显示删除/修改弹窗
  138. function showModal(flag,code,i){
  139. $("#delModal .modal-body").html("");
  140. $("#delModal").show();
  141. $("#delModal .confirm").off("click");
  142. $("#qcScore").off("input");
  143. const info = global_flawData[global_activeTab][i];
  144. if(flag==='0'){ //修改
  145. $("#delModal .title").text("修改评分");
  146. $("#editTmpl").tmpl(info).appendTo("#delModal .modal-body");
  147. $("#qcScore").on("input",function(){
  148. const val=$(this).val();
  149. if(/^[0-9]\d*$|^[0-9]\d*(.\d)?$/.test(val)){
  150. $(".edit-box .warning").hide();
  151. }else{
  152. $(".edit-box .warning").show();
  153. }
  154. });
  155. $("#delModal .confirm").click(function(){
  156. if($(".edit-box .warning").is(":visible")){
  157. return;
  158. }
  159. const obj = Object.assign({},info,{msg:$("#delModal #qcMsg").val(),score:$("#delModal #qcScore").val()});
  160. editScore(obj);
  161. });
  162. }else{
  163. $("#delModal .title").text("删除评分");
  164. $("#delModal .modal-body").html('<p>确定要删除该评分记录吗?</p>');
  165. $("#delModal .confirm").click(function(){
  166. delScore(code,info);
  167. });
  168. }
  169. }
  170. //更新缺陷列表
  171. function updateFlaws(){
  172. const param = {
  173. 'behospitalCode':global_id,
  174. 'paramStr':[
  175. "msg"
  176. ]
  177. };
  178. post(api.getRecordDetail,param).then(function(res){
  179. if(res.data.code==='0'){
  180. const data = res.data.data;
  181. const {msg} = data;
  182. initScoreItem(msg);
  183. global_flawData=msg;
  184. }
  185. });
  186. }
  187. });