assertTypeDetail.js 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  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,debounce} = 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="新增成功",win=null
  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. win = true
  32. renderData(data)
  33. }else{
  34. }
  35. }).catch((e) =>{
  36. })
  37. }else{
  38. if(type =='"edit"'){
  39. $('.partTitle p span').html('修改')
  40. submitMsg="修改成功"
  41. win = true
  42. }else{
  43. $('.partTitle p span').html('复制')
  44. submitMsg="复制成功"
  45. win = true
  46. }
  47. post(api.typeGetById,{id: paramId}).then(res =>{
  48. let result = res.data
  49. if(result.code == '0'){
  50. const data = result.data;
  51. const qcName = data.name
  52. const tabData = data.entryMap
  53. if(type =='"edit"'){
  54. $('.patientNumInp').val(qcName)
  55. }
  56. renderData(tabData)
  57. }else{
  58. }
  59. }).catch((e) =>{
  60. })
  61. }
  62. }
  63. function renderData(data){
  64. dataCopy = data
  65. const dataKeys = Object.keys(dataCopy)
  66. let str = ""
  67. for(let i = 0; i < dataKeys.length; i++){
  68. str += `<div class="caseEntryBlcok ${i===0 ? 'borderTop':''}"><div class="caseEntryName">${dataKeys[i]} <img class="arrow" src=${arrowDown}></div>`
  69. if(dataCopy[dataKeys[i]].length > 0){
  70. str += `<div class="caseEntryDetail"><div class="tabTitle"><span class="opera">操作</span><span class="qcItem">质控条目</span><span class="qcUsed">是否启用</span></div>`
  71. }
  72. for(let j = 0; j < dataCopy[dataKeys[i]].length; j++){
  73. const dataItem = dataCopy[dataKeys[i]][j]
  74. 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>`
  75. }
  76. if(dataCopy[dataKeys[i]].length > 0){
  77. str += `</div>`
  78. }
  79. str += `</div>`
  80. }
  81. $('.listTypeAll').html(str)
  82. bindBlockSlideToggle()
  83. bindCheck()
  84. }
  85. function bindBlockSlideToggle(){
  86. $('.caseEntryName').click(function(){
  87. const display = $(this).parent().find('.caseEntryDetail').css("display");
  88. if(display === "none"){
  89. $(this).find('img').attr('src', arrowUp)
  90. $('.caseEntryDetail').slideUp()
  91. $(this).parent().find('.caseEntryDetail').slideDown()
  92. } else{
  93. $(this).find('img').attr('src', arrowDown)
  94. $('.caseEntryDetail').slideUp()
  95. }
  96. })
  97. }
  98. function bindCheck(){
  99. $('.iconCheck').click(function(){
  100. const checked = $(this).attr('src') == iconCheck;
  101. const index = $(this).parent().attr('data-index')
  102. const pIndex = $(this).parent().attr('data-pIndex')
  103. if(checked){
  104. dataCopy[pIndex][index].sel = 0
  105. $(this).attr('src',iconUnCheck)
  106. } else{
  107. dataCopy[pIndex][index].sel = 1
  108. $(this).attr('src',iconCheck)
  109. }
  110. })
  111. }
  112. $('.submit').click(debounce(function(){
  113. const qcName = $('.patientNumInp').val().trim();
  114. if(!qcName){
  115. $.alerModal({"message":"质控类型不能为空",type:"tip",time:'1000',isFather: true, fatherWrapper: $("#mainBox", parent.document)});
  116. return
  117. }
  118. let qcTypeCasesEntryVOList = []
  119. const dataKeys = Object.keys(dataCopy)
  120. for(let i = 0; i < dataKeys.length; i++){
  121. for(let j = 0; j < dataCopy[dataKeys[i]].length; j++){
  122. const dataItem = dataCopy[dataKeys[i]][j]
  123. if(dataItem.sel == '1'){
  124. qcTypeCasesEntryVOList.push({
  125. caseEntryId: dataItem.id
  126. })
  127. }
  128. }
  129. }
  130. const id = paramType == '"edit"' ? paramId:""
  131. const param = {
  132. id:id,
  133. name: qcName,
  134. qcTypeCasesEntryVOList
  135. }
  136. if(!paramType){
  137. post(api.addqcType,param).then(res =>{
  138. let result = res.data
  139. if(result.code == '0'){
  140. $.alerModal({"message":submitMsg,type:"tip",time:'1000',isFather: true,win:win, fatherWrapper: $("#mainBox", parent.document)});
  141. setTimeout(function(){
  142. $(parent.document).find("#contentIframe").attr("src","./assertType.html")
  143. },1000)
  144. }else{
  145. $.alerModal({"message":res.data.msg,type:"tip",time:'1000',isFather: true,win:"default", fatherWrapper: $("#mainBox", parent.document)});
  146. }
  147. }).catch((e) =>{
  148. })
  149. }else if(paramType == '"edit"'){
  150. post(api.updateqcType,param).then(res =>{
  151. let result = res.data
  152. if(result.code == '0'){
  153. $.alerModal({"message":submitMsg,type:"tip",time:'1000',isFather: true,win:win, fatherWrapper: $("#mainBox", parent.document)});
  154. setTimeout(function(){
  155. $(parent.document).find("#contentIframe").attr("src","./assertType.html")
  156. },1000)
  157. }else{
  158. $.alerModal({"message":res.data.msg,type:"tip",time:'1000',isFather: true,win:"default", fatherWrapper: $("#mainBox", parent.document)});
  159. }
  160. }).catch((e) =>{
  161. })
  162. }else{
  163. post(api.copyqcType,param).then(res =>{
  164. let result = res.data
  165. if(result.code == '0'){
  166. $.alerModal({"message":submitMsg,type:"tip",time:'1000',isFather: true,win:win, fatherWrapper: $("#mainBox", parent.document)});
  167. setTimeout(function(){
  168. $(parent.document).find("#contentIframe").attr("src","./assertType.html")
  169. },1000)
  170. }else{
  171. $.alerModal({"message":res.data.msg,type:"tip",time:'1000',isFather: true,win:"default", fatherWrapper: $("#mainBox", parent.document)});
  172. }
  173. }).catch((e) =>{
  174. })
  175. }
  176. // post(api.saveOrUpdate,param).then(res =>{
  177. // let result = res.data
  178. // if(result.code == '0'){
  179. // $.alerModal({"message":submitMsg,type:"tip",time:'1000',isFather: true,win:win, fatherWrapper: $("#mainBox", parent.document)});
  180. // setTimeout(function(){
  181. // $(parent.document).find("#contentIframe").attr("src","./assertType.html")
  182. // },1000)
  183. // }else{
  184. // $.alerModal({"message":res.data.msg,type:"tip",time:'1000',isFather: true,win:"default", fatherWrapper: $("#mainBox", parent.document)});
  185. // }
  186. // }).catch((e) =>{
  187. // })
  188. },300,true))