staticSearch.js 6.9 KB

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