assertTypeDetail.js 5.4 KB

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