search.js 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. import '../css/bootstrap.less';
  2. import 'bootstrap/dist/js/bootstrap.js';
  3. import '../css/newMenu/public.css';
  4. import '../css/newMenu/header.css';
  5. import '../css/search.css';
  6. import './public.js';
  7. import './jquery-2.1.0.js';
  8. import {getSearchType} from 'js/tools.js';
  9. $(function(){
  10. //从地址栏中获取参数
  11. function GetQueryString(name){
  12. var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
  13. var r = window.location.search.substr(1).match(reg);
  14. if(r!=null)return unescape(r[2]); return null;
  15. }
  16. var name=sessionStorage.getItem("name");
  17. sessionStorage.removeItem("name");
  18. var pageSize = 5,
  19. thePageNo = 1,
  20. thePageLength = 1,
  21. noLength=`<div class="noLength"></div>`;
  22. init();
  23. function init() {
  24. pages();
  25. inpFun();
  26. loadDate();
  27. $('.onSelect .preFirst').css('display', 'none')
  28. $('.onSelect .next').css('display', 'none')
  29. search();
  30. };
  31. //当前页面搜
  32. function search(){
  33. $('.searchBtn').click(function(){
  34. let val = $('.demandSearch').val();
  35. name=val;
  36. thePageNo=1;
  37. loadDate();
  38. })
  39. };
  40. function loadDate(pageNo) {
  41. $('footer').show();
  42. $.ajax({
  43. method: "get",
  44. dataType: "json",
  45. url: globalConfig.context + "/portal/globalSearch",
  46. data: {
  47. pageNo: pageNo || 1,
  48. pageSize: 5,
  49. name:name
  50. },
  51. success: function (data) {
  52. if (data.error && data.error.length) {
  53. msg(data.error[0].message);
  54. }else if(data.error==""){
  55. var contHtml="";
  56. contHtml+='<ul>'
  57. var dataList=data.data.list;
  58. if(dataList.length){
  59. for(var a=0;a<dataList.length;a++){
  60. var titleHtml="";
  61. var keyHtml="";
  62. var titleData=dataList[a].title?dataList[a].title.split(name):"";
  63. var keyData=dataList[a].keyword?dataList[a].keyword.split(name):"";
  64. //标题的红色处理
  65. if((titleData.length==1&&titleData[0]=="")||titleData==""){
  66. }else{
  67. if(titleData.length>1){
  68. for(var b=0;b<titleData.length-1;b++){
  69. titleHtml+=`${titleData[b]}<span>${name}</span>`;
  70. }
  71. titleHtml+=`${titleData[titleData.length-1]}`;
  72. }else if(titleData[0]!=""){
  73. titleHtml=`${titleData[0]}`;
  74. }
  75. }
  76. //关键字的红色处理
  77. if((keyData.length==1&&keyData[0]=="")||keyData==""){
  78. }else{
  79. if(keyData.length>1){
  80. for(var c=0;c<keyData.length-1;c++){
  81. keyHtml+=`${keyData[c]}<span>${name}</span>`;
  82. }
  83. keyHtml+=`${keyData[keyData.length-1]}`;
  84. }else if(keyData[0]!=""){
  85. keyHtml=`${keyData[0]}`;
  86. }
  87. }
  88. contHtml+=`<li>
  89. <h4>${titleHtml}</h4>
  90. <p>${dataList[a].summary?dataList[a].summary:'暂无'}</p>
  91. <div>
  92. <span>类型:${getSearchType(dataList[a].fromTable)}</span>
  93. <span>关键字:${dataList[a].keyword?dataList[a].keyword:''}</span>
  94. </div>
  95. <input type="hidden" dataType="${dataList[a].fromTable}" dataId="${dataList[a].rowId}"/>
  96. </li>`
  97. }
  98. contHtml+='</ul>';
  99. $(".cont").html(contHtml);
  100. }else{
  101. $(".cont").html(noLength);
  102. }
  103. }else{
  104. return;
  105. }
  106. //分页部分的处理
  107. $('.pagination_box').css('display', 'block');
  108. $('.inp').css('display', 'block');
  109. if (data.data.list.length === 0) {
  110. $('.achievementHot .hotList').html("<div class='list_none'></div>");
  111. $('.pagination_box').css('display', 'none')
  112. $('.inp').css('display', 'none');
  113. };
  114. thePageLength = data.data.totalCount ? Math.ceil(data.data.totalCount / pageSize) : 1;
  115. $('.totalCount').html(`共${data.data.totalCount}条数据 ${thePageLength}页`)
  116. var pageArr = [],
  117. firstNo = 1,
  118. endNo = 5;
  119. if (thePageNo > 3) {
  120. firstNo = thePageNo - 2;
  121. endNo = Math.min((Number(thePageNo) + 2), thePageLength);
  122. } else {
  123. endNo = Math.min(thePageLength, 5);
  124. };
  125. for (let i = firstNo; i <= endNo; i++) {
  126. if (i == thePageNo) {
  127. pageArr.push(
  128. '<li class="pageNumber active"><a href="#" value=' + i + ' >' + i + '</a></li>'
  129. );
  130. } else {
  131. pageArr.push(
  132. '<li class="pageNumber"><a href="#" value=' + i + ' >' + i + '</a></li>'
  133. );
  134. }
  135. };
  136. $('.pageNumber').remove();
  137. $('.pagePre').after(pageArr.join(''));
  138. jumpFun();
  139. }
  140. });
  141. }
  142. //标题点击事件
  143. function jumpFun(){
  144. $(".cont ul li").on("click",function(){
  145. var dataType=$(this).children("input").attr("dataType");
  146. var dataId=$(this).children("input").attr("dataId");
  147. switch(dataType){
  148. case "achievement":window.open(globalConfig.context + `/portal/technologyTrading/achievementDetail.html?id=${dataId}`);break;//成果
  149. case "demand":window.open(globalConfig.context + `/portal/technologyTrading/demandDetail.html?id=${dataId}`);break;//需求
  150. case "patent":window.open(globalConfig.context + `/portal/service/patentDetail?id=${dataId}`);break;//专利
  151. case "policy":window.open(globalConfig.context + `/portal/news/newsDetail?id=${dataId}&type=0`);break;//政策
  152. case "jt_business_project":window.open(globalConfig.context + `/portal/service/serviceDetail?id=${dataId}`);break;//项目
  153. case "news":window.open(globalConfig.context + `/portal/news/newsDetail?id=${dataId}`);break;//新闻
  154. case "expert":window.open(globalConfig.context + `/portal/subscriberDetail?uid=${dataId}&type=1`);break;//专家
  155. case "adviser":window.open(globalConfig.context + `/portal/adviser/adviserDetail?id=${dataId}`);break;//顾问
  156. default :break;
  157. }
  158. })
  159. }
  160. //f分页
  161. function pages() {
  162. $('.pagination').on('click', 'li', function (e) {
  163. e.preventDefault();
  164. if (this.className === 'pagePre') {
  165. if (thePageNo > 1) {
  166. thePageNo = 1;
  167. loadDate(thePageNo);
  168. }
  169. } else if (this.className === 'pageNext') {
  170. if (thePageNo < thePageLength) {
  171. thePageNo = thePageLength;
  172. loadDate(thePageNo);
  173. }
  174. } else {
  175. var nextPageNo = $(this).children()[0].text;
  176. if (thePageNo != nextPageNo) {
  177. $(this).siblings("li").removeClass("active");
  178. $(this).addClass("active");
  179. thePageNo = nextPageNo;
  180. loadDate(thePageNo);
  181. };
  182. };
  183. });
  184. }
  185. //输入跳转
  186. function inpFun() {
  187. $('.inp .btn').on('click', function () {
  188. let val = $(this).siblings().val();
  189. if (!isNaN(val) && val <= thePageLength && val > 0) {
  190. thePageNo = val;
  191. loadDate(thePageNo);
  192. }else{
  193. msg('请输入正确页码')
  194. }
  195. })
  196. }
  197. /* 提示 */
  198. //提示框渐隐函数
  199. function msg(txt) {
  200. if($('.smg').hasClass('active')){
  201. return ;
  202. }
  203. $('.smg').addClass('active');
  204. var lit = $('#msg').val(txt);
  205. setTimeout(function () {
  206. $('.smg').removeClass('active');
  207. $('#msg').val('');
  208. }, 2000)
  209. }
  210. })