assertTypeDetail.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. const $ = require('jquery');
  2. require("../css/assertTypeDetail.less");
  3. require('./modal.js');
  4. const {api} = require('./api.js')
  5. const {post,getCookie,getUrlArgObjectNew,getUrlArgObject} = require('./utils.js')
  6. const iconCheck= require("./../images/icon_check.png")
  7. const iconUnCheck = require("./../images/icon_unchecked.png")
  8. const arrowUp = require("./../images/arrow_up22.png")
  9. const arrowDown = require("./../images/arrow_down22.png")
  10. let dataCopy,paramType,paramId,submitMsg="新增成功"
  11. $(function(){
  12. let srcUrl = $("#contentIframe",parent.document).attr("src")
  13. paramType = getUrlArgObject("type")||""
  14. paramId = getUrlArgObject("id")||""
  15. getList(paramType)//获取条目列表
  16. })
  17. function setInpWidth(){
  18. const winWidth = $(window).width()
  19. $('.patientNumInp').css('width', winWidth-155-15 +'px')
  20. }
  21. setInpWidth()
  22. $(window).resize(function(){
  23. setInpWidth()
  24. })
  25. function getList(type){
  26. if(!type){
  27. post(api.getEntryByHospital,{}).then(res =>{
  28. let result = res.data
  29. if(result.code == '0'){
  30. const data = result.data;
  31. renderData(data)
  32. }else{
  33. }
  34. }).catch((e) =>{
  35. })
  36. }else{
  37. if(type =='"edit"'){
  38. $('.partTitle p span').html('修改')
  39. submitMsg="修改成功"
  40. }else{
  41. $('.partTitle p span').html('复制')
  42. submitMsg="复制成功"
  43. }
  44. post(api.typeGetById,{id: paramId}).then(res =>{
  45. let result = res.data
  46. if(result.code == '0'){
  47. const data = result.data;
  48. const qcName = data.name
  49. const tabData = data.entryMap
  50. if(type =='"edit"'){
  51. $('.patientNumInp').val(qcName)
  52. }
  53. renderData(tabData)
  54. }else{
  55. }
  56. }).catch((e) =>{
  57. })
  58. }
  59. }
  60. function renderData(data){
  61. dataCopy = data
  62. const dataKeys = Object.keys(dataCopy)
  63. let str = ""
  64. for(let i = 0; i < dataKeys.length; i++){
  65. str += `<div class="caseEntryBlcok ${i===0 ? 'borderTop':''}"><div class="caseEntryName">${dataKeys[i]} <img class="arrow" src=${arrowDown}></div>`
  66. if(dataCopy[dataKeys[i]].length > 0){
  67. str += `<div class="caseEntryDetail"><div class="tabTitle"><span class="opera">操作</span><span class="qcItem">质控条目</span><span class="qcUsed">是否启用</span></div>`
  68. }
  69. for(let j = 0; j < dataCopy[dataKeys[i]].length; j++){
  70. const dataItem = dataCopy[dataKeys[i]][j]
  71. str += `<div class="tabInfo"><span data-pIndex=${dataKeys[i]} data-index=${j} class="opera">${dataItem.sel == '1' ? `<img class="iconCheck" src=${iconCheck} />`:`<img class="iconCheck" src=${iconUnCheck} />`}</span><span class="qcItem">${dataItem.name}</span><span class="qcUsed"><span class="usedRes">${dataItem.isUsed == '1' ? "是":"否"}</span></span></div>`
  72. }
  73. if(dataCopy[dataKeys[i]].length > 0){
  74. str += `</div>`
  75. }
  76. str += `</div>`
  77. }
  78. $('.listTypeAll').html(str)
  79. bindBlockSlideToggle()
  80. bindCheck()
  81. }
  82. function bindBlockSlideToggle(){
  83. $('.caseEntryName').click(function(){
  84. const display = $(this).parent().find('.caseEntryDetail').css("display");
  85. if(display === "none"){
  86. $(this).find('img').attr('src', arrowUp)
  87. $('.caseEntryDetail').slideUp()
  88. $(this).parent().find('.caseEntryDetail').slideDown()
  89. } else{
  90. $(this).find('img').attr('src', arrowDown)
  91. $('.caseEntryDetail').slideUp()
  92. }
  93. })
  94. }
  95. function bindCheck(){
  96. $('.iconCheck').click(function(){
  97. const checked = $(this).attr('src') == iconCheck;
  98. const index = $(this).parent().attr('data-index')
  99. const pIndex = $(this).parent().attr('data-pIndex')
  100. if(checked){
  101. dataCopy[pIndex][index].sel = 0
  102. $(this).attr('src',iconUnCheck)
  103. } else{
  104. dataCopy[pIndex][index].sel = 1
  105. $(this).attr('src',iconCheck)
  106. }
  107. })
  108. }
  109. $('.submit').click(function(){
  110. const qcName = $('.patientNumInp').val().trim();
  111. if(!qcName){
  112. $.alerModal({"message":"质控类型不能为空",type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
  113. return
  114. }
  115. let qcTypeCasesEntryVOList = []
  116. const dataKeys = Object.keys(dataCopy)
  117. for(let i = 0; i < dataKeys.length; i++){
  118. for(let j = 0; j < dataCopy[dataKeys[i]].length; j++){
  119. const dataItem = dataCopy[dataKeys[i]][j]
  120. if(dataItem.sel == '1'){
  121. qcTypeCasesEntryVOList.push({
  122. caseEntryId: dataItem.id
  123. })
  124. }
  125. }
  126. }
  127. const id = paramType == '"edit"' ? paramId:""
  128. const param = {
  129. id:id,
  130. name: qcName,
  131. qcTypeCasesEntryVOList
  132. }
  133. post(api.saveOrUpdate,param).then(res =>{
  134. let result = res.data
  135. if(result.code == '0'){
  136. $.alerModal({"message":submitMsg,type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
  137. setTimeout(function(){
  138. $(parent.document).find("#contentIframe").attr("src","./assertType.html")
  139. },1000)
  140. }else{
  141. $.alerModal({"message":res.data.msg,type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
  142. }
  143. }).catch((e) =>{
  144. })
  145. })