staticSearch.js 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  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 = checkOnImg.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. if(is8Ie&&val){
  33. $(".placeholder").css("display","none")
  34. }
  35. })
  36. function getMedicalTypes() {
  37. post(config.dictionaryInfo,{}).then((res) =>{
  38. const data = res.data
  39. if(data.code == 0) {
  40. medicalTypesList = res.data.data[8]
  41. medicalTypesList[0].checked = true
  42. renderMedicalType(medicalTypesList)
  43. } else {
  44. console.log(res)
  45. }
  46. })
  47. }
  48. function renderMedicalType(medicalTypesList) {
  49. let str = ''
  50. for(let i = 0; i < medicalTypesList.length; i++) {
  51. str += `<span class='medicalTypeItem' data-index=${i}><img src = ${medicalTypesList[i].checked? checkOnImg:checkOffImg}>${medicalTypesList[i].name}</span>`
  52. }
  53. $('.searchTypeBox').html(str)
  54. bindMedicalTypeClick();
  55. }
  56. function bindMedicalTypeClick() {
  57. $('.searchTypeBox .medicalTypeItem').on("click", function(){
  58. const index = $(this).attr('data-index')
  59. if(index == 0) {
  60. if(medicalTypesList[0].checked) {
  61. medicalTypesList[0].checked = false
  62. }else {
  63. for(let i = 0; i < medicalTypesList.length; i++) {
  64. medicalTypesList[i].checked = false
  65. }
  66. medicalTypesList[0].checked = true
  67. }
  68. renderMedicalType(medicalTypesList)
  69. } else {
  70. if(medicalTypesList[0].checked) {
  71. medicalTypesList[0].checked = false
  72. }
  73. medicalTypesList[index].checked = !medicalTypesList[index].checked
  74. }
  75. renderMedicalType(medicalTypesList)
  76. })
  77. }
  78. getMedicalTypes()
  79. function getKnowledgeData(value) {
  80. if(first) {
  81. adjustHeight()
  82. first =false
  83. }
  84. let medicalTypes = []
  85. for(let i = 0; i < medicalTypesList.length; i++) {
  86. if(medicalTypesList[i].checked) {
  87. if(i !== 0) {
  88. medicalTypes.push(medicalTypesList[i].val)
  89. }
  90. }
  91. }
  92. post(config.getStaticKnowledgeHaiNan,{
  93. inputStr: value.replace(/\\/g,'\\\\').replace(/%/g,'\\%').replace(/\_/g,'\\_'),
  94. types:medicalTypes
  95. }).then((res) => {
  96. const data = res.data
  97. if(data.code == 0) {
  98. var knowledgeLis = data.data;
  99. var lisStr = ''
  100. if(knowledgeLis&&knowledgeLis.length>0){
  101. for(var i = 0;i<knowledgeLis.length;i++){
  102. var tmpPart = knowledgeLis[i]
  103. var tmpLi = `<li data-name='${tmpPart.name}' data-uname='${tmpPart.uniqueName}' data-type='${tmpPart.libTypeId}' data-sign='${tmpPart.type}'>
  104. <p>${tmpPart.name}<i>${tmpPart.libTypeName?('( '+tmpPart.libTypeName+' )'):''}</i></p>
  105. ${tmpPart.retrievalName?('<span>• '+tmpPart.retrievalName+'</span>'):''}
  106. </li>`
  107. lisStr += tmpLi
  108. }
  109. $(".searchKnowledge .staticSearchB .empty").css({display:'none'})
  110. $(".searchKnowledge .staticSearchB .tip").css({display:'block'})
  111. $(".searchKnowledge .staticSearchB ul").html(lisStr)
  112. }else{
  113. $(".searchKnowledge .staticSearchB .empty").css({display:'block'})
  114. $(".searchKnowledge .staticSearchB .tip").css({display:'none'})
  115. $(".searchKnowledge .staticSearchB ul").html('')
  116. }
  117. }else{
  118. console.log(res)
  119. }
  120. })
  121. }
  122. function adjustHeight() {
  123. var ht = window.innerHeight || document.documentElement.clientHeight;
  124. var ht2 = $(".searchTypeBox").outerHeight(true)
  125. $(".staticSearchB ul").height(ht - 120 - ht2 + "px");
  126. }
  127. $(window).on('resize', function(){
  128. adjustHeight()
  129. })
  130. $(".staticSearchB ul").on("click","li",function(){
  131. const infoMsgName = $(this).attr('data-name')
  132. const infoMsgUName = $(this).attr('data-uname')
  133. const type = $(this).attr('data-type')
  134. const sign = $(this).attr('data-sign')
  135. if(type != 48){
  136. openNewWin(`information.html?type=${encodeURIComponent(sign)}&position=0&name=${encodeURIComponent(infoMsgName)}&uname=${encodeURIComponent(infoMsgUName)}`)
  137. }else{
  138. let msg = JSON.parse(getUrlArgObject("msg"));
  139. const msg1 = JSON.parse(JSON.stringify(msg))
  140. console.log('scaleName', msg,infoMsgName)
  141. msg1.scaleName = infoMsgName
  142. msg1.featureType = 21
  143. openNewWin(`scale.html?msg=${encodeURIComponent(JSON.stringify(msg1))}`)
  144. }
  145. })
  146. $(".staticSearchT").on('click','#clearKnowledge',function() {
  147. $(".staticSearchT input").val("")
  148. $(".searchKnowledge .staticSearchB ul").html('')
  149. $(".searchKnowledge .staticSearchB .tip").css({display:'none'})
  150. $(".searchKnowledge .staticSearchB .empty").css({display:'none'})
  151. $(this).prev('.ipt').find('input').focus()
  152. $(this).css({display:"none"})
  153. if(is8Ie){
  154. $(".placeholder").css("display","inline-block");
  155. }
  156. })
  157. if(is8Ie){
  158. setTimeout(function(){
  159. $(".ipt input").attr("value","")
  160. $(".ipt input").val("")
  161. $(".placeholder").css("display","inline-block")
  162. $(".ipt input").blur()
  163. },100)
  164. setTimeout(function(){
  165. $(".placeholder").css("display","inline-block")
  166. },110)
  167. $(".ipt input").on("focus", function(){
  168. $(".placeholder").css("display","none")
  169. }).on("blur",function(){
  170. let val = $(".ipt input").val()
  171. if(!val){
  172. $(".placeholder").css("display","inline-block")
  173. }else{
  174. $(".placeholder").css("display","none")
  175. }
  176. })
  177. $(".placeholder").on("click",function(){
  178. $(".placeholder").css("display","none")
  179. $(".ipt input").focus()
  180. })
  181. }