search.blade.php 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. <div class="qspageso link_gray6">
  2. <div class="topbg">
  3. <div class="c-return"></div>
  4. <input value="@if(array_get($params, 'key')){{urldecode(urldecode(array_get($params, 'key')))}}@endif" type="text" class="soimput" id="J_soinput" placeholder="请输入关键字">
  5. <div class="soselect qs-relative for-event">
  6. <span class="for-type-txt">
  7. @if($search_type == 'resume')
  8. 搜简历
  9. @elseif ($search_type == 'jobs_commpany')
  10. 搜职位
  11. @else
  12. 搜公告
  13. @endif
  14. </span>
  15. <input type="hidden" class="for-type-code" id="search_type" name="search_type" value="@if($search_type){{$search_type}}@else {{'jobs_commpany'}}@endif">
  16. </div>
  17. <div class="so-close js-so-close"></div>
  18. <div class="rightbtn-so for-event" id="J_submit">搜索</div>
  19. <div class="choose-s-type-group">
  20. <div class="choose-s-type-cell qs-relative">
  21. <div class="qs-center @if($search_type =='jobs_commpany') qs-relative @endif">
  22. <div class="choose-s-type-list font14" data-code="jobs_commpany" data-title="职位">职位</div>
  23. </div>
  24. <div class="qs-center @if($search_type =='resume') qs-relative @endif">
  25. <div class="choose-s-type-list sl2 font14" data-code="resume" data-title="简历">简历</div>
  26. </div>
  27. <div class="qs-center @if($search_type =='news') qs-relative @endif">
  28. <div class="choose-s-type-list sl2 font14" data-code="news" data-title="公告">公告</div>
  29. </div>
  30. </div>
  31. </div>
  32. <div class="search_ajax"><ul id="search_mes"></ul></div>
  33. </div>
  34. <div class="history"></div>
  35. <div class="clearkey for-event" id="J_cleanhistory" style="transform-origin: 0px 0px; opacity: 1; transform: scale(1, 1);">清空关键字</div>
  36. {{-- <input type="hidden" id="searchUrlCode" value="0"> --}}{{--查询路由是否编码--}}
  37. <div class="split-block"></div>
  38. <div class="sohot font12 link_gray6">
  39. <div class="hottitle font14 ">热门职位</div>
  40. {{--热门关键字 12--}}
  41. @if($hotWords)
  42. @php $hotWords = array_slice($hotWords->toArray(), 0, 12);@endphp
  43. @foreach($hotWords as $k=>$v)
  44. <a href="{{route($sub_site.'mobile.jobs',['key'=>$v['w_word']])}}" class="hotword substring for-event">+{{$v['w_word']}}</a>
  45. @endforeach
  46. @endif
  47. <div class="clear"></div>
  48. <script type="text/javascript" src="{{theme_asset('mobile/js/zepto.cookie.min.js')}}"></script>
  49. <script>
  50. $('.topbg .c-return').click(function() {
  51. $('.qspageso').toggle();
  52. })
  53. $('.js-so-close').on('click', function () {
  54. $(this).closest('.topbg').find('.soimput').val('');
  55. $('.search_ajax').hide();
  56. $(this).closest('.topbg').removeClass('has-inp');
  57. })
  58. get_history($('.history'));
  59. function get_history(d){
  60. var b = "", hlength = 0;
  61. var searchHistoryArr = new Array();
  62. if ($.fn.cookie("searchHistory")) {
  63. searchHistoryArr = $.fn.cookie("searchHistory").split(",");
  64. };
  65. if (searchHistoryArr.length == 0) {
  66. d.hide();
  67. return false
  68. }
  69. $.each(searchHistoryArr.reverse(), function(index, val) {
  70. hlength += 1;
  71. val = decodeURI(val);
  72. b += '<div class="record"><div class="keyimg history_go" data-self="'+val+'">'+val+'</div><div class="delimg close for-event"></div><div class="clear"></div></div>';
  73. });
  74. if (hlength > 0) {
  75. d.empty().html(b);
  76. $("#J_cleanhistory").show();
  77. $(".history_go").on("click", function() {
  78. searchGo($(this).data("self"));
  79. });
  80. $(".record .close").on("click", function() {
  81. var searchHistoryArr = $.fn.cookie("searchHistory").split(","),
  82. val = $(this).prev().data("self"),
  83. index = $.inArray(val,searchHistoryArr);
  84. if (index >= 0) {
  85. searchHistoryArr.splice(index,1);
  86. };
  87. $.fn.cookie("searchHistory",searchHistoryArr,{ path: '/' });
  88. $(this).parent().remove();
  89. });
  90. } else {
  91. d.empty();
  92. $("#J_cleanhistory").hide()
  93. }
  94. }
  95. function add_history(key){
  96. key = encodeURI(htmlspecialchars(key));
  97. if (key.length > 0) {
  98. var searchHistoryArr = new Array();
  99. if ($.fn.cookie("searchHistory")) {
  100. searchHistoryArr = $.fn.cookie("searchHistory").split(",");
  101. var isOnly = true;
  102. $.each(searchHistoryArr, function(index, val) {
  103. if (val == key) {
  104. isOnly = false;
  105. };
  106. });
  107. if (isOnly) {
  108. if (searchHistoryArr.length >= 5) {
  109. searchHistoryArr.splice(0,1);
  110. }
  111. searchHistoryArr.push(key);
  112. };
  113. } else {
  114. searchHistoryArr.push(key);
  115. };
  116. $.fn.cookie("searchHistory",searchHistoryArr,{ path: '/' });
  117. }
  118. }
  119. function searchGo(key) {
  120. add_history(key);
  121. var search_type = $('#search_type').val();
  122. if(search_type=='resume'){
  123. var url ='{{route($sub_site."mobile.resumes")}}';
  124. }else if (search_type=='jobs_commpany'){
  125. var url ='{{route($sub_site."mobile.jobs")}}';
  126. } else {
  127. var url = '{{route($sub_site."mobile.news.list",['id'=>3])}}';
  128. }
  129. url = url+'?key='+key;
  130. window.location.href=url;
  131. }
  132. $('.topbg .soselect').on('click', function () {
  133. $('.topbg').toggleClass('for-type');
  134. })
  135. $('.choose-s-type-cell .qs-center').on('click', function () {
  136. var stypeCode = $(this).find('.choose-s-type-list').data('code');
  137. var stypeTitle = $(this).find('.choose-s-type-list').data('title');
  138. $('.for-type-code').val(stypeCode);
  139. $('.for-type-txt').text('搜' + stypeTitle);
  140. $('.topbg').toggleClass('for-type');
  141. });
  142. $('#J_submit').on('click',function(){
  143. if($(this).hasClass('cancel')){
  144. searchGo('');
  145. }else{
  146. searchGo($('#J_soinput').val());
  147. }
  148. });
  149. $("#J_cleanhistory").on("click", function() {
  150. $(this).hide();
  151. $(".history").hide();
  152. $.fn.cookie('searchHistory', null,{ path: '/' });
  153. });
  154. $('#J_soinput').on('keyup',function(){
  155. if($(this).val()!=''){
  156. $(this).closest('.topbg').addClass('has-inp');
  157. }else{
  158. $(this).closest('.topbg').removeClass('has-inp');
  159. }
  160. });
  161. $('.hotword').on('click',function(){
  162. add_history($(this).text());
  163. window.location.href=$(this).attr('href');
  164. return false;
  165. });
  166. // 关键字搜索关联
  167. function onInput(event) {
  168. var keyValue = event.target.value;
  169. if (!keyValue.length) {
  170. $('.search_ajax').hide();
  171. return false;
  172. }
  173. $.getJSON("{{route('hot_word')}}",{query:keyValue},function(result){
  174. if (result.status==1) {
  175. var reArr = result.data.suggestions.list;
  176. if (reArr.length) {
  177. var reHtml = '';
  178. @if($search_type=='resume')
  179. var reUrl = " {{route($sub_site.'mobile.resumes',['key'=>'ooo'])}}";
  180. var reUrl1 = "{{route($sub_site.'mobile.resumes',['key'=>'ooo'])}}";
  181. @else
  182. var reUrl = " {{route($sub_site.'mobile.jobs',['key'=>'ooo'])}}";
  183. var reUrl1 = "{{route($sub_site.'mobile.jobs',['key'=>'ooo'])}}";
  184. @endif
  185. for (var i = 0; i < reArr.length; i++) {
  186. if (eval($('#searchUrlCode').val())) {
  187. reHtml += '<li data-key="'+reArr[i].w_word+'"><a href="'+reUrl.replace('ooo',reArr[i].w_word)+'"><span class="search_wd">'+reArr[i].w_word+'</span></a></li>';
  188. } else {
  189. reHtml += '<li data-key="'+reArr[i].w_word+'"><a href="'+reUrl1.replace('ooo',reArr[i].w_word)+'"><span class="search_wd">'+reArr[i].w_word+'</span></a></li>';
  190. }
  191. }
  192. $('#search_mes').html(reHtml);
  193. $('.search_ajax').show();
  194. }
  195. }
  196. });
  197. }
  198. </script>
  199. </div>
  200. </div>