staticSearch.js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. require('./../css/staticSearch.css');
  2. require('./../images/del_nor.png')
  3. var $ = require("jquery");
  4. var { post,config,getUrlArgObject,openNewWin,isIe8 } = require('./promise.js');
  5. let checkOffImg = require('./../images/check_off.png')
  6. let checkOnImg = require('./../images/check_on.png')
  7. let medicalTypesList = []
  8. let first = true
  9. const is8Ie = isIe8() //判断是否为IE8
  10. if(is8Ie) {
  11. let reg = /undefined/g
  12. checkOffImg = checkOffImg.replace(reg, '')
  13. checkOnImg = collapseImg.replace(reg, '')
  14. }
  15. $(".staticSearchT input").keyup(function(e) {
  16. const ev = e||window.event;
  17. const val = $(this).val();
  18. $(this).parents(".staticSearchT").find("i").css({display:val==""?"none":"inline-block"})
  19. if(val == ''){
  20. $(".searchKnowledge .staticSearchB .empty").css({display:'none'})
  21. $(".searchKnowledge .staticSearchB .tip").css({display:'none'})
  22. $(".searchKnowledge .staticSearchB ul").html('')
  23. }
  24. ev.keyCode == 13&&getKnowledgeData(val);
  25. })
  26. document.title = "医学知识搜索"
  27. $(".searchScale").css({display:'none'})
  28. $(".searchKnowledge").css({display:'block'})
  29. $(".searchKnowledge .staticSearchT").on('click','button',function() {
  30. var val = $(this).parents(".staticSearchT").find("input").val()
  31. val!=''&&getKnowledgeData(val)
  32. })
  33. function getMedicalTypes() {
  34. post(config.dictionaryInfo,{}).then((res) =>{
  35. const data = res.data
  36. if(data.code == 0) {
  37. medicalTypesList = res.data.data[7]
  38. medicalTypesList[0].checked = true
  39. renderMedicalType(medicalTypesList)
  40. } else {
  41. console.log(res)
  42. }
  43. })
  44. }
  45. function renderMedicalType(medicalTypesList) {
  46. let str = ''
  47. for(let i = 0; i < medicalTypesList.length; i++) {
  48. str += `<span class='medicalTypeItem' data-index=${i}><img src = ${medicalTypesList[i].checked? checkOnImg:checkOffImg}>${medicalTypesList[i].name}</span>`
  49. }
  50. $('.searchTypeBox').html(str)
  51. bindMedicalTypeClick();
  52. }
  53. function bindMedicalTypeClick() {
  54. $('.searchTypeBox .medicalTypeItem').on("click", function(){
  55. const index = $(this).attr('data-index')
  56. if(index == 0) {
  57. if(medicalTypesList[0].checked) {
  58. medicalTypesList[0].checked = false
  59. }else {
  60. for(let i = 0; i < medicalTypesList.length; i++) {
  61. medicalTypesList[i].checked = false
  62. }
  63. medicalTypesList[0].checked = true
  64. }
  65. renderMedicalType(medicalTypesList)
  66. } else {
  67. if(medicalTypesList[0].checked) {
  68. medicalTypesList[0].checked = false
  69. }
  70. medicalTypesList[index].checked = !medicalTypesList[index].checked
  71. }
  72. renderMedicalType(medicalTypesList)
  73. })
  74. }
  75. getMedicalTypes()
  76. function getKnowledgeData(value) {
  77. if(first) {
  78. adjustHeight()
  79. first =false
  80. }
  81. let medicalTypes = []
  82. for(let i = 0; i < medicalTypesList.length; i++) {
  83. if(medicalTypesList[i].checked) {
  84. if(i !== 0) {
  85. medicalTypes.push(medicalTypesList[i].val)
  86. }
  87. }
  88. }
  89. post(config.getStaticKnowledge,{
  90. inputStr: value.replace(/\\/g,'\\\\').replace(/%/g,'\\%').replace(/\_/g,'\\_'),
  91. types:medicalTypes
  92. }).then((res) => {
  93. const data = res.data
  94. if(data.code == 0) {
  95. var knowledgeLis = data.data;
  96. var lisStr = ''
  97. if(knowledgeLis&&knowledgeLis.length>0){
  98. for(var i = 0;i<knowledgeLis.length;i++){
  99. var tmpPart = knowledgeLis[i]
  100. var tmpLi = `<li data-name='${tmpPart.name}' data-uname='${tmpPart.uniqueName}' data-type='${tmpPart.libTypeId}' data-sign='${tmpPart.type}'>
  101. <p>${tmpPart.name}<i>${tmpPart.libTypeName?('( '+tmpPart.libTypeName+' )'):''}</i></p>
  102. ${tmpPart.retrievalName?('<span>• '+tmpPart.retrievalName+'</span>'):''}
  103. </li>`
  104. lisStr += tmpLi
  105. }
  106. $(".searchKnowledge .staticSearchB .empty").css({display:'none'})
  107. $(".searchKnowledge .staticSearchB .tip").css({display:'block'})
  108. $(".searchKnowledge .staticSearchB ul").html(lisStr)
  109. }else{
  110. $(".searchKnowledge .staticSearchB .empty").css({display:'block'})
  111. $(".searchKnowledge .staticSearchB .tip").css({display:'none'})
  112. $(".searchKnowledge .staticSearchB ul").html('')
  113. }
  114. }else{
  115. console.log(res)
  116. }
  117. })
  118. }
  119. function adjustHeight() {
  120. var ht = window.innerHeight;
  121. var containerHt = $(".medicalKonwledgeWrap .container").height()
  122. var ht2 = $(".searchTypeBox").outerHeight(true)
  123. $(".staticSearchB ul").height(ht - 120-10-40 - ht2 + "px");
  124. }
  125. $(window).on('resize', function(){
  126. adjustHeight()
  127. })
  128. $(".staticSearchB ul").on("click","li",function(){
  129. const infoMsgName = $(this).attr('data-name')
  130. const infoMsgUName = $(this).attr('data-uname')
  131. const type = $(this).attr('data-type')
  132. const sign = $(this).attr('data-sign')
  133. if(type != 48){
  134. openNewWin(`information.html?type=${encodeURIComponent(sign)}&position=0&name=${encodeURIComponent(infoMsgName)}&uname=${encodeURIComponent(infoMsgUName)}`)
  135. }else{
  136. let msg = JSON.parse(getUrlArgObject("msg"));
  137. const msg1 = JSON.parse(JSON.stringify(msg))
  138. console.log('scaleName', msg,infoMsgName)
  139. msg1.scaleName = infoMsgName
  140. msg1.featureType = 21
  141. openNewWin(`scale.html?msg=${encodeURIComponent(JSON.stringify(msg1))}`)
  142. }
  143. })
  144. $(".staticSearchT").on('click','#clearKnowledge',function() {
  145. $(".staticSearchT input").val("")
  146. $(".searchKnowledge .staticSearchB ul").html('')
  147. $(".searchKnowledge .staticSearchB .tip").css({display:'none'})
  148. $(".searchKnowledge .staticSearchB .empty").css({display:'none'})
  149. $(this).prev('.ipt').find('input').focus()
  150. $(this).css({display:"none"})
  151. })