assertTypeDetail.js 5.4 KB

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