PageSourceSearch

https://www.shishi.gov.cn/comps/images/commonTools.js

js shishi.gov.cn collected 2026-10-02 16:57:04 UTC 51,421 bytes, 1,389 lines download raw bytes

1function cssLoaded(url) {
2	var _checkFlag=false
3	for (var i = 0; i < document.styleSheets.length; i++) {
4		if (document.styleSheets[i].href&&document.styleSheets[i].href.indexOf(url)!=-1){
5			_checkFlag=true;
6			break;
7		}
8	}
9	return _checkFlag;
10}
11
12function smartSearch(SiteId){
13	if (!SiteId) return;
14	require(["list", "tools","dialog"],function( listModel, tools,dialog ){
15		avalon.filters.clearN = function(str){
16			return str.replace(/<br\s*\/?>/gi, '')
17		}
18		var qs = tools.getQs();
19		var args = {
20			objId: "list"   //VM的ID,不传入的话默认是list,多个列表的话务必指定;传id还是传objId ?
21			, Mode: "model.list"    //  model.list letter   wasdoc advice  apply  对应实体类js的名称
22			, autoGetPage : true  //默认获取的页码,1或其他数字为获取第1页,true表示不设置页码,直接获取
23			, objArgs:{     //这里传入的是对象的参数,根据Mode指定的资源类模块参数来传
24				listApi: {
25					url:'/smartSearch/interface/search.do',
26					type: 'get',
27					dataType: 'text',
28					rsName: 'rows',
29					recordCountName: 'trsPage.recordcount',
30					pageCountName: 'trsPage.pagecount',
31					pageName: 'currentpage',
32					prepageName: 'pagesize'
33				},
34				listArgs: {
35					siteId: SiteId,
36					keyName: 'zhss',
37					order: '-docrelTime',
38					keyWord:''
39				},
40				replaceHost:false,
41				callBeforeAjax:function(){
42					try{
43						if(vmObj.$vm){
44							vmObj.$vm.loading=false;
45						}
46					}catch(e){
47						
48					}
49				}
50			},
51			pagebar:{
52				prepage:10,
53				pgTemp:'qz_pgBar.html'
54			},
55			vmArgsExt:{
56				loading:false,
57				currPage:0,
58				skeletonList:[1,2]
59			},
60			injAfterGetData:function(res){
61				vmObj.$vm.loading=true;
62				vmObj.$vm.currPage=parseInt(avalon.vmodels.list_pagebar.pageIndex,10)-1;
63				if(res.recordCount==0){
64					var msgObj = dialog({
65						title: '提示信息',
66						content : '' ,
67						width: '20em',
68						id : 'infoMsg' ,
69						cancelValue: '确定',
70						cancel : function(){
71							this.close();
72							return false;
73						}
74					});
75					msgObj.content("未检索到相关数据,请换个关键词进行检索!").show();
76				}
77				setTimeout(function(){$('html,body').animate({ scrollTop: $('#ssp_result').offset().top-80 }, 800);},800)
78			},
79			cache: false,
80			search:{
81				searchArgs:{
82					keyWord :{
83						field: 'keyWord',
84						compare: 'like',
85						value:"",
86						valuetype:"string"
87					}
88				},
89				vmArgsExt:{
90					$Search2: function (e) {
91						e && e.preventDefault();
92						avalon.vmodels.list_search.$search();
93					}
94				}
95			}
96		}
97		var keyWord = qs.keyWord || '' ;
98		var express = qs.express || ''	;
99		var keyName = qs.keyName ||'';
100		args.objArgs.listArgs.keyName = keyName ? keyName:args.objArgs.listArgs.keyName;
101		if(express) {
102			args.objArgs.listArgs.express = express
103			if(args.objArgs.listArgs.keyWord) delete args.objArgs.listArgs.keyWord
104		}else if(keyWord){
105			args.objArgs.listArgs.keyWord = keyWord
106			if(args.objArgs.listArgs.express) delete args.objArgs.listArgs.keyWord
107		}
108		var vmObj=listModel(args);
109	});
110
111
112}
113
114
115/*function searchInit(){
116    var _RECORDSXMLOBJ;
117    var _host=location.host;
118    var _siteId="";
119    $.get("/comps/images/SSP_SITE.xml",function(resp){
120        _RECORDSXMLOBJ=$(resp);
121        $(_RECORDSXMLOBJ).find("RECORD").each(function(i,o){
122            var _tempHost=$(this).find("MAINLINK").text();
123            if(_host==_tempHost){
124                _siteId=$(this).find("SITEID").text();
125            }
126        })
127        if(_siteId){
128            smartSearch(_siteId);
129        }
130    },"xml")
131}*/
132function searchInit(){
133	var search_result_old = '<style>\
134					.fy_list_01{ margin: 30px auto; text-align: center; color: #555555;}\
135					.fy_list_01 .fy_tit_l{display: inline-block; margin-left: 30px; font-size: 0;}\
136					.fy_list_01 .fy_tit_l a{ font-size: 14px; border-radius:3px;  display: inline-block; line-height: 38px; height: 38px; padding: 0px 15px; border: 1px solid #d9d9d9; background-color: #ffffff; margin-right: 5px; color: #555555;}\
137					.fy_list_01 .fy_tit_l a.prev em,.fy_list_01 .fy_tit_l a.next em{ display: block; width: 5px; height:38px;}\
138					.fy_list_01 .fy_tit_l a.prev em{ background: url(fy_prev.png) no-repeat 0px -1px; float: left; margin-right: 10px;}\
139					.fy_list_01 .fy_tit_l a.next em{ background: url(fy_next.png) no-repeat 0px -1px; float: right; margin-left: 10px;}\
140					.fy_list_01 .fy_tit_l a.on,.fy_list_01 .fy_tit_l a:hover{ background-color: #0073dc; color: #ffffff; border: 1px solid #0073dc;}\
141					.fy_list_01 .fy_tit_l a.prev:hover em,.fy_list_01 .fy_tit_l a.next:hover em{ background-position: 0px -81px;}\
142					.fy_list_01 .fy_tit_l a.prevStop em,.fy_list_01 .fy_tit_l a.nextStop em{ background-position: 0px -1px;}\
143					.fy_list_01 .fy_tit_l a.prevStop,.fy_list_01 .fy_tit_l a.nextStop{ color: #999999;}\
144					.fy_list_01 .fy_tit_l a.prevStop:hover,.fy_list_01 .fy_tit_l a.nextStop:hover{ border: 1px solid #d9d9d9; background-color: #ffffff; color: #999999; cursor: default;}\
145					.fy_list_01 .fy_tit_l a.prevStop:hover em,.fy_list_01 .fy_tit_l a.nextStop:hover em{ cursor: default; background-position: 0px -1px; }\
146					.fy_list_01 .fy_tit_r{display: inline-block; line-height: 40px;}\
147					.fy_list_01 .fy_inp{ border: 1px solid #d9d9d9; border-radius:3px;  background-color: #ffffff; width: 38px; height: 38px; line-height: 38px; text-align: center; margin: 0 8px; font-size: 15px; color: #555555;}\
148					.fy_list_01 .fy_go{ display: inline-block; border-radius:3px;  background-color: #e2e2e2; width:40px; height:40px; line-height:40px; text-align: center; margin: 0 8px; font-size: 14px; color: #555555; cursor: pointer;}\
149					@media screen and (max-width:999px) {\
150					.fy_list_01{ text-align: center;}\
151					.fy_list_01 .fy_tit_l{ float: inherit; text-align: center; margin: 0; border: 0;}\
152					.fy_list_01 .fy_tit_l a,.fy_list_01 .fy_tit_r{display: none ;}\
153					.fy_list_01 .fy_tit_l a.prev,.fy_list_01 .fy_tit_l a.next{ display:inline-block; border: 1px solid #d9d9d9;}\
154					.fy_list_01 .fy_tit_l a.next{ margin-left: 5px;}\
155					}\
156					.bold{\
157						font-weight: bold;\
158					}\
159					a.tgreen1 { color: #1e9e49; }\
160					.zj_list  li{ overflow:hidden;height:auto !important ; font-size:15px; border-bottom:1px solid #cccccc; padding:15px;}\
161					.zj_list  li h3{ font-size:18px; color:#000; line-height:30px; font-weight:normal; margin-bottom:6px;}\
162					.zj_list  li h3 a{ color:#000}\
163					.zj_list  li h3 span{ background-color:#008bff; color:#ffffff; margin-left:10px; padding:5px; font-size:15px; border-radius:5px; display:inline-block;}\
164					.zj_list  li p span{ border:1px solid #cccccc; padding:4px 10px; margin-right:12px; border-radius:5px; font-size:14px; float:right}\
165					.zj_list  li p span img{ margin-right:8px; margin-top:-4px;}\
166					.zj_list  li.yjs h3 span{ background-color:#cccccc}\
167				</style>\
168				<div ms-controller="list">\
169					<div class="double-loading" ms-visible="!loading"></div>\
170					<ul class="zj_list no"  ms-visible="loading" >\
171						<li  ms-repeat="list">\
172							<div class="bold">\
173								<a ms-attr-href="el.docPuburl" ms-attr-title="el.docTitle"  target="_blank">\
174									<font color="red" >{{(currPage*20)+($index+1)}}、{{el.chnlName}}</font>\
175									{{el.docTitleColor|truncate(90)|html}}\
176								</a>\
177							</div> \
178							<div class="tgray1" ms-html="el.docContentColor|dealDirtyData">\
179							</div>\
180							<div>\
181								<span style="float:right;" class="tgray1">发布时间:[{{el.docrelTime|date(\'yyyy-MM-dd\')}}]</span>\
182								<a ms-attr-href="el.docPuburl" class="tgreen1" ms-text="el.docPuburl"></a>\
183							</div>\
184						</li>\
185					</ul>\
186					<div  class="no" ms-visible="loading" ms-controller="list_pagebar" ms-include-src="pgTemp"></div>\
187				</div>';
188
189	var search_result_new = '	<style>\
190		.gjzcx{ padding: .3rem; background: #f7f7f7;}\
191		.gjzcx span{  display: inline-block; font-size: .16rem;font-weight: bold; float: left; height: .46rem;line-height: .46rem;}\
192		.gjzcx span i{display: inline-block;width: .4rem; color: #FFFFFF; text-align: center; line-height: .4rem; font-size: .2rem; font-weight: normal; height: .4rem;border-radius: 50%;margin-right: .1rem;background:  #1658a0;}\
193		.gjzcx input.sr{float: left; width: 63%; height: .4rem;line-height: .4rem; padding-left: .1rem;border-radius: 4px; border: 1px #dbdbdb solid; background: #fff;margin-left: .1rem; margin-top: 2px;color: #999999;}\
194		.gjzcx button{width: 13%;height: .42rem;float: left; font-size: .16rem; color: #fff; border-radius: 4px;background: #1658a0; border: none; margin-left: .1rem;margin-top: 2px;}\
195		.gjzcx button {float: none;width: 17%;margin-left: 5px;}\
196		.gjzcx{padding: .16rem;}\
197		.lm {float: right;line-height: .44rem;}\
198		.ss_list li p{margin-right: 0rem;}\
199		.ss_list ul li h1{ font-size: .2rem;line-height: .36rem; font-weight: bold; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;}\
200		.ss_list ul li{padding: .2rem 0; border-bottom: 1px #e2e2e2 dashed; position: relative; display: block;}\
201		.ss_list ul li p a{ color: #0069c5; }\
202		.ss_list li span{ display: block; line-height: .28rem; color: #666;margin-top: .2rem;}\
203		.ss_list li span i a{color: #D43030;}\
204		.ss_list li p{color: #0069c5; margin-right: 1rem; word-break: break-all; margin-top: .2rem;}\
205		.ss_list li em{position: absolute; color: #999999; right: 0rem; bottom: .2rem;}\
206		.ss_list li i.bq_tips{display: inline-block;color: #539ae7;background-color: #e7f1fc;border: 1px #e7f1fc solid;border-radius: .4rem;padding: 0 .08rem; font-weight: initial; font-size: .14rem; margin-right: .2rem;}\
207		@media screen and (max-width: 992px){\
208			.gjzcx span, .lab_c {\
209				display: none;\
210			}\
211			.ss_list li em {\
212				position: inherit;\
213				display: block;\
214				top: inherit;\
215				right: inherit;\
216				margin-top: 0.1rem;bottom: 0rem;\
217			}\
218		}\
219		.SkeletonSearch {\
220			background-color: #eeeeee !important;\
221			border-radius: 4px !important;\
222			color: transparent !important;\
223			color: #eeeeee !important;\
224		}\
225	</style>\
226	<div  ms-controller="list"  >\
227				<div class="ss_rr">\
228					<div class="gjzcx" ms-controller="list_search" >\
229						<form ms-submit="$Search2">\
230							<div class="center clearflx">\
231								<span><i class="trt-iconfont trt-icon-sousuo"></i>关键字查询:</span>\
232								<input class="sr" type="text" placeholder="输入关键词" ms-duplex="searchForm.keyWord" name="keyWord" autocomplete="off" />\
233								<button style="cursor: pointer;">查 询</button>\
234							</div>\
235						</form>\
236					</div>\
237					<div class="fbsj-box clearflx mar_t_large mar_t_base_sm" ms-controller="list_pagebar" > \
238						<p class="lm fr"  >\
239							为您找到相关结果约<font color="#d51717" ms-text="recordCount"></font>条\
240						</p>\
241					</div>\
242					<div class="ss_list mar_t_base"  ms-controller="list" >\
243						<ul  ms-visible="!loading">\
244							<li ms-repeat="skeletonList">\
245									<h1>\
246										<i class="SkeletonSearch mar_r_base">栏目名称</i>\
247										<a  class="SkeletonSearch ">文档标题文档标题文档标题文档标题文档标题文档标题文档标题文档标题文档标题文档标题文档标题文档标题文档标题文档标题文档</a>\
248									</h1>\
249									<span >\
250										<font class="SkeletonSearch mar_r_base">文档内容文档内容文档内容文档内容文档内容文档内容文档内容文档内容文档内容文档内容文档内容文档内容文档内容文档内容</font>\
251										<i class=""><a  class="SkeletonSearch " >【详情】</a></i>\
252									</span>\
253									<p ><a  class="SkeletonSearch " >文档链接文档链接文档链接文档链接文档链接文档链接文档链接文档链接文档链接文档链接</a></p>\
254									<em class="SkeletonSearch ">撰稿时间撰稿时间</em>\
255							</li>\
256						</ul>\
257						<ul style="display:none;" ms-visible="loading">\
258							<li ms-repeat="list" >\
259									<h1>\
260										<i class="bq_tips" ms-text="el.chnlName"></i>\
261										<a ms-attr-href="el.docPuburl" ms-attr-title="el.docTitle" target="_blank" ms-html="el.docTitle" ></a>\
262									</h1>\
263									<span class="none_sm">{{el.docContentColor|dealDirtyData|html}}<i><a ms-attr-href="el.docPuburl" target="_blank" >【详情】</a></i></span>\
264									<p class="none_sm"><a ms-attr-href="el.docPuburl" ms-text="el.docPuburl" target="_blank" ></a></p>\
265									<em class="none_sm" ms-text="el.docrelTime|date(\'yyyy-MM-dd\')"></em>\
266							</li>\
267						</ul>\
268					</div>\
269				</div>\
270				<div class="page_base " ms-controller="list_pagebar" ms-include-src="pgTemp" ms-if="pageCount>1"></div>\
271		</div>\
272		<div ms-controller="list" class="loading_mask" ms-visible="!loading" style="background-color: rgba(0, 0, 0, 0.8);">\
273			<div class="loading_spinner">\
274				<i class="icon_loading trt-iconfont trt-icon-jiazai"></i>\
275				<p class="loading_text">拼命加载中</p>\
276			</div>\
277		</div>\
278	</div>';
279	if (cssLoaded('trt_media_v2.css')) {
280		// CSS已经加载完毕
281		// 在这里执行操作
282		$("#ssp_result").html(search_result_new);
283		if(avalon.templateCache){
284			avalon.templateCache["qz_pgBar.html"] = '<ul class="page_tools">' +
285				'<li class="prev disabled" ms-if="pageIndex==1"><a href="#"><em>&lt;&lt;</em>上一页</a></li>' +
286				'<li class="prev" ms-if="pageIndex>1" ms-click="toPage(pageIndex-1,$event)"><a href="#"><em>&lt;&lt;</em>上一页</a></li>' +
287				'<li ms-repeat="pages" href="#" ms-click="toPage(el,$event)" ms-class="active:el==pageIndex"><a href="#" ms-text="el"></a></li>' +
288				'<li class="next" ms-if="pageIndex<pageCount" ms-click="toPage(pageIndex+1,$event)"><a href="#">下一页<em>&gt;&gt;</em></a></li>' +
289				'<li class="next disabled" ms-if="pageIndex==pageCount"><a href="#">下一页<em>&gt;&gt;</em></a></li>' +
290				'</ul>' +
291				'<div class="page_go">' +
292				'<span>共{{pageCount}}页,跳转到第</span><input ms-duplex-number="inputNumber" name="" type="text" class="form_control" /><span>页</span><span class="fy_go" ms-click="toPage(inputNumber,$event)">GO</span>' +
293				'</div>' +
294				'<div class="clear"></div>' ;		
295		}
296	} else {
297		// CSS还没加载完毕
298		// 在这里等待加载完毕
299		$("#ssp_result").html(search_result_old);
300		if(avalon.templateCache){
301			avalon.templateCache["qz_pgBar.html"] = '<div class="fy_list_01" >\
302				<div class="fy_tit_l">\
303				<a ms-if="pageIndex==1" class="prev prevStop"> &lt;&lt;上一页 </a>\
304				<a ms-if="pageIndex>1" class="prev" href="javascript:;" ms-click="toPage(pageIndex-1,$event)" title="上一页">&lt;&lt;上一页 </a>\
305				<a ms-repeat="pages" href="javascript:;" ms-click="toPage(el,$event)" ms-class="on:el==pageIndex">{{el}}</a>\
306				<a href="javascript:;" ms-if="pageIndex<pageCount" class="next" ms-click="toPage(pageIndex+1,$event)" title="下一页">下一页 &gt;&gt;</a>\
307				<a href="javascript:;" ms-if="pageIndex==pageCount" class="next nextStop">下一页 &gt;&gt;</a>\
308				</div>\
309				<div class="fy_tit_r">\
310				共{{pageCount}}页,跳转到第<input type="text" class="fy_inp" ms-duplex-number="inputNumber" />&nbsp;&nbsp;
310页&nbsp;&nbsp;<span class="fy_go" ms-click="toPage(inputNumber,$event)">GO</span>\
311				</div><div class="clear"></div>\
312				</div>';	
313		}
314	}
315	var _RECORDSXMLOBJ;
316	var _host=location.host;
317	var _siteId="";
318	$.get("/comps/images/SSP_SITE.xml",function(resp){
319		_RECORDSXMLOBJ=$(resp);
320		$(_RECORDSXMLOBJ).find("RECORD").each(function(i,o){
321			var _tempHost=$(this).find("MAINLINK").text();
322			if(_host==_tempHost){
323				_siteId=$(this).find("SITEID").text();
324			}
325		})
326		if(_siteId){
327			smartSearch(_siteId);
328		}
329	},"xml")
330}
331
332
333/**	在动静态模块的基础上再次封装
334 * _obj参数必须含有:pagesize(页面容量)、recordCount(当前栏目已发文档总记录数)、pageIndex(当前页面索引)、staticPage(生成最多静态页面)
335 *            选参: order(排序)、express(智能检索表达式)、chnlid(栏目id)
336 * _pageHtml参数必须为string类型,以下为拼接页面时需注意点:
337 * 		1) ms-if="pageIndex==1" 判断是否为第一页  
338 * 		2) ms-if="pageIndex>1"  判断是否非第一页
339 * 		3) ms-click="toPage(pageIndex-1,$event)"  跳转到上一页
340 * 		4) ms-repeat="pages" 循环页面数据集,如 1 2 3 4 5 6 7
341 * 		5) href="javascript:;" ms-click="toPage(el,$event)" 点击循环出来的某一个数字,并获取数据
342 * 		6) ms-if="pageIndex<pageCount"  判断是否非最后一页
343 * 		7) ms-click="toPage(pageIndex+1,$event)"  跳转到最后一页
344 * 		8) ms-if="pageIndex==pageCount" 判断是否为最后一页
345 * 		9) ms-duplex-number="inputNumber"  手动输入要跳转的页面,进行数据的双向绑定
346 * 		10) ms-click="toPage(inputNumber,$event)"  实现指定页面的跳转
347 */
348function dynamicAndStaticData(_obj,_pageHtml){
349    var checkFlag=false;
350    var checkOrgs=["pagesize","recordCount","pageIndex","staticPage"];
351    for (var index = 0; index < checkOrgs.length; index++) {
352        var _key = checkOrgs[index];
353        if(!_obj[_key]){
354            avalon.log( "debug:[_obj:",key,"]校验参数失败" );
355            checkFlag=true;
356        }
357    }
358    if(checkFlag) return;
359	var _pgTemp="pgBar_form.html";
360	if(_pageHtml){
361		if(avalon.templateCache){
362			avalon.templateCache["dynamicAndStatic.html"] = _pageHtml;
363			_pgTemp="dynamicAndStatic.html";
364		}
365	}
366	require(["list"], function (listModel) {
367		var vmObj=listModel({
368			Mode: 'smartSearch',
369			objArgs: {
370				listApi : {
371					url : '/smartSearch/interface/search.do' ,
372					dataType : 'text' ,
373					type:"post",
374					rsName : 'rows' , // 指定返回的结果集合的属性名称showStatic
375					removeLast : false ,   // 试着变更本值 ,分别为  false  、  0  、true
376					pageName: 'currentpage' ,
377					recordCountName : 'trsPage.recordcount' , // 指定返回的记录总数的属性名称
378					pageCountName : 'trsPage.pagecount'  // 指定返回的页面总数的属性名称
379				},            
380				listCheck:{
381					channelid : { 
382						required : false
383					}
384				},
385				listArgs: {
386					siteId: "2c9d02866787ab22016787b129ae0032",
387					keyName: 'zhss',
388					order: _obj.order?_obj.order:'-docrelTime',
389					express: _obj.express?_obj.express:'(chnlid='+_obj.chnlid+')',
390					pagesize:_obj.pagesize,
391
392				},
393				callBeforeAjax:function(){
394					try{
395						if(vmObj.$vm){
396							vmObj.$vm.loading=false;
397						}
398					}catch(e){
399						
400					}
401				}
402			}, pagebar: {
403				recordCount: _obj.recordCount,
404				pgTemp: _pgTemp, 
405				prepage: _obj.pagesize, 
406				pgCountMode: 'recordCount',
407				pageIndex:parseInt(_obj.pageIndex,10)+1,
408				staticPage:_obj.staticPage,
409				displayNum: _obj.displayNum ? _obj.displayNum:3
410			},
411			vmArgsExt:{
412				loading:false,
413				currPage:0
414			},
415			injAfterGetData:function(res){
416				vmObj.$vm.loading=true;
417				vmObj.$vm.currPage=parseInt(avalon.vmodels.list_pagebar.pageIndex,10)-1;
418			},
419			autoGetPage: _obj.autoGetPage ? _obj.autoGetPage:false,
420			showStatic: true,
421			cache :false
422		});
423	});
424}
425
426
427/**	在普通栏目动静态模块的基础上添加聚合栏目条件
428 *  注:聚合栏目必须给出express条件或者在智能检索配置好接口栏目
429 * _obj参数必须含有:chnlid(栏目id)、pagesize(页面容量)、recordCount(当前栏目已发文档总记录数)、pageIndex(当前页面索引)、staticPage(生成最多静态页面)、
430 * _obj参数可含有  : 
431 * 		1)siteId 	智能检索id名   
432 * 		2)keyName  	接口名称  
433 * 		3)express 	检索条件,可使用模板变量或者模板替换实现
434 * _pageHtml参数必须为string类型,以下为拼接页面时需注意点:
435 * 		1) ms-if="pageIndex==1" 判断是否为第一页  
436 * 		2) ms-if="pageIndex>1"  判断是否非第一页
437 * 		3) ms-click="toPage(pageIndex-1,$event)"  跳转到上一页
438 * 		4) ms-repeat="pages" 循环页面数据集,如 1 2 3 4 5 6 7
439 * 		5) href="javascript:;" ms-click="toPage(el,$event)" 点击循环出来的某一个数字,并获取数据
440 * 		6) ms-if="pageIndex<pageCount"  判断是否非最后一页
441 * 		7) ms-click="toPage(pageIndex+1,$event)"  跳转到最后一页
442 * 		8) ms-if="pageIndex==pageCount" 判断是否为最后一页
443 * 		9) ms-duplex-number="inputNumber"  手动输入要跳转的页面,进行数据的双向绑定
444 * 		10) ms-click="toPage(inputNumber,$event)"  实现指定页面的跳转
445 */
446 function aggregatDynamicAndStaticData(_obj,_pageHtml){
447    var checkFlag=false;
448	//强校验参数,不允许缺少一个参数属性
449    var checkOrgs=["chnlid","pagesize","recordCount","pageIndex","staticPage"];
450    for (var index = 0; index < checkOrgs.length; index++) {
451        var _key = checkOrgs[index];
452        if(!_obj[_key]){
453            avalon.log( "debug:[_obj:",key,"]校验参数失败" );
454            checkFlag=true;
455        }
456    }
457    if(checkFlag) return;
458	var _pgTemp="pgBar_form.html";
459	if(_pageHtml){
460		if(avalon.templateCache){
461			avalon.templateCache["dynamicAndStatic.html"] = _pageHtml;
462			_pgTemp="dynamicAndStatic.html";
463		}
464	}
465	//进行总页数的计算
466	var _pageCount=Math.ceil(_obj.recordCount/_obj.pagesize);
467	require(["list"], function (listModel) {
468		var vmObj=listModel({
469			Mode: 'wasdoc',
470			objArgs: {
471				listApi : {
472					url : '/smartSearch/interface/search.do' ,
473					dataType : 'text' ,
474					rsName : 'rows' , // 指定返回的结果集合的属性名称showStatic
475					removeLast : false ,   // 试着变更本值 ,分别为  false  、  0  、true
476					pageName: 'currentpage' ,
477					recordCountName : 'trsPage.recordcount' , // 指定返回的记录总数的属性名称
478					pageCountName : 'trsPage.pagecount'  // 指定返回的页面总数的属性名称
479				},            
480				listCheck:{
481					channelid : { 
482						required : false
483					}
484				},
485				listArgs: {
486					siteId: _obj.siteId ? _obj.siteId : "2c9d02866787ab22016787b129ae0032",
487					keyName: _obj.keyName ?  _obj.keyName : 'zhss',
488					order:'-docrelTime',
489					express:_obj.express? _obj.express:"",
490					pagesize:_obj.pagesize,
491				},
492				callBeforeAjax:function(){
493					try{
494						if(vmObj.$vm){
495							vmObj.$vm.loading=false;
496						}
497					}catch(e){
498						
499					}
500				}
501			}, pagebar: {
502				recordCount: _obj.recordCount,
503				pgTemp: _pgTemp, 
504				prepage: _obj.pagesize, 
505				// pgCountMode: 'recordCount',
506				pageCount:_pageCount,
507				pageIndex:parseInt(_obj.pageIndex,10)+1,
508				staticPage:_obj.staticPage,
509				displayNum: _obj.displayNum ? _obj.displayNum:3
510			},
511			vmArgsExt:{
512				loading:false
513			},
514			injAfterGetData:function(res){
515				vmObj.$vm.loading=true;
516			},
517			autoGetPage: false,
518			showStatic: true,
519			cache :false
520		});
521	});
522}
523
524
525
526/**	在动静态模块的基础上再次封装,以适应手机的应用场景
527 * _obj参数必须含有:chnlid(栏目id)、pagesize(页面容量)、recordCount(当前栏目已发文档总记录数)
528 * _pageHtml参数必须为string类型,以下为拼接页面时需注意点:
529 * 		1) ms-if="pageIndex==1" 判断是否为第一页  
530 * 		2) ms-if="pageIndex>1"  判断是否非第一页
531 * 		3) ms-click="toPage(pageIndex-1,$event)"  跳转到上一页
532 * 		4) ms-repeat="pages" 循环页面数据集,如 1 2 3 4 5 6 7
533 * 		5) href="javascript:;" ms-click="toPage(el,$event)" 点击循环出来的某一个数字,并获取数据
534 * 		6) ms-if="pageIndex<pageCount"  判断是否非最后一页
535 * 		7) ms-click="toPage(pageIndex+1,$event)"  跳转到最后一页
536 * 		8) ms-if="pageIndex==pageCount" 判断是否为最后一页
537 * 		9) ms-duplex-number="inputNumber"  手动输入要跳转的页面,进行数据的双向绑定
538 * 		10) ms-click="toPage(inputNumber,$event)"  实现指定页面的跳转
539 */
540 function mobileDynamicAndStaticData(_obj,_pageHtml){
541    var checkFlag=false;
542    var checkOrgs=["chnlid","pagesize","recordCount"];
543    for (var index = 0; index < checkOrgs.length; index++) {
544        var _key = checkOrgs[index];
545        if(!_obj[_key]){
546            avalon.log( "debug:[_obj:",key,"]校验参数失败" );
547            checkFlag=true;
548        }
549    }
550    if(checkFlag) return;
551	var _pgTemp="mobile.html";
552    if(avalon.templateCache) avalon.templateCache["mobile.html"] = '<span ms-if="pageIndex<pageCount"  ms-click="toPage(pageIndex+1,$event)">加载下一页&gt;&gt;</span>';
553	if(_pageHtml){
554		if(avalon.templateCache){
555			avalon.templateCache["dynamicAndStatic.html"] = _pageHtml;
556			_pgTemp="dynamicAndStatic.html";
557		}
558	}
559	require(["list"], function (listModel) {
560		var vmObj=listModel({
561			Mode: 'wasdoc',
562            replaceMode:false,
563			objArgs: {
564				listApi : {
565					url : '/smartSearch/interface/search.do' ,
566					dataType : 'text' ,
567					rsName : 'rows' , // 指定返回的结果集合的属性名称showStatic
568					removeLast : false ,   // 试着变更本值 ,分别为  false  、  0  、true
569					pageName: 'currentpage' ,
570					recordCountName : 'trsPage.recordcount' , // 指定返回的记录总数的属性名称
571					pageCountName : 'trsPage.pagecount'  // 指定返回的页面总数的属性名称
572				},            
573				listCheck:{
574					channelid : { 
575						required : false
576					}
577				},
578				listArgs: {
579					siteId: "2c9d02866787ab22016787b129ae0032",
580					keyName: 'zhss',
581					order:'-docrelTime',
582					express:'(chnlid='+_obj.chnlid+')',
583					pagesize:_obj.pagesize,
584
585				},
586				callBeforeAjax:function(){
587					try{
588						if(vmObj.$vm){
589							vmObj.$vm.loading=false;
590						}
591					}catch(e){
592						
593					}
594				}
595			}, pagebar: {
596				recordCount: _obj.recordCount,
597				pgTemp: _pgTemp, 
598				prepage: _obj.pagesize, 
599				pgCountMode: 'recordCount'
600			},
601			vmArgsExt:{
602				loading:false
603			},
604			injAfterGetData:function(res){
605				vmObj.$vm.loading=true;
606			},
607			autoGetPage: true,
608			showStatic: true,
609			cache :false
610		});
611	});
612}
613
614
615function setTimeModal(){
616	$.ajax({
617		type: "get",
618		url: "/comps/search/messagebox_time_template.htm",
619		dataType: "text",
620		async: false,
621		success: function (apiResText) {
622			$("body").append(apiResText);
623		}
624	});
625}
626
627
628/**
629 * 智能检索 2024年1月11日
630 * */
631function IntelligentRetrieval(sspSearch){
632
633	$("#dateDesc").val("");
634	setTimeModal();
635
636	//$("#open_messagebox").remove();
637
638	var _sspSearch_default={
639		siteId:'',
640		adviceUrl:'',
641		pollUrl:''
642	}
643	if(!window['sspSearch']){
644		avalon.log("sspSearch未定义!");
645		var sspSearch=_sspSearch_default;
646	}
647	if(!sspSearch.siteId){
648		sspSearch.siteId=trt.getSearchSite();
649	}
650	
651
652	if(sspSearch['mindanalyze']){
653		$('#mindanalyze').removeClass("no");
654	}
655
656
657	// 打开时间弹窗
658	$('#open_messagebox').click(function(){
659		$("#messagebox_large").slideDown();
660		$('.modal_bg').show();
661		$('body').addClass('body_max');
662	})
663	// 关闭时间弹窗
664	$('.messagebox_headerbtn').click(function(){
665		$("#messagebox_large").slideUp();
666		$('.modal_bg').hide();
667		$('body').removeClass('body_max');
668	})
669	$(".messagebox_btns button").click(function() {
670		$('body').removeClass('body_max');
671	})
672
673	// 从本地获取历史搜索记录
674	function getSearchHistoryObj(){
675		var _str=localStorage.getItem("searchHistroy");
676		if(!_str) _str='[]';
677		return JSON.parse(_str);
678	}
679
680
681	function dateFun(startID, endID) {
682		var start = {
683			elem: startID,
684			format: 'YYYY-MM-DD',
685			istime: true,
686			istoday: false,
687			choose: function(datas) {
688				end.min = datas; //开始日选好后,重置结束日的最小日期
689				end.start = datas; //将结束日的初始值设定为开始日
690			},
691			clearBack:function(){
692				start.max='2099-12-31';
693			}
694		};
695		var end = {
696			elem: endID,
697			format: 'YYYY-MM-DD',
698			min: laydate.now(),
699			istime: true,
700			istoday: false,
701			choose: function(datas) {
702				start.max = datas; //结束日选好后,重置开始日的最大日期
703			},
704			clearBack:function(){
705				start.max='2099-12-31';
706			}
707		};
708		laydate(start);
709		laydate(end);
710	}
711	dateFun("#startDate", "#endDate")
712	
713	$('.input_dropdown .input_inner').on('click',function(e){
714		if (!$(this).hasClass('on')) {
715			$('.input_dropdown .input_inner').removeClass('on');
716			$('.input_dropdown .input_icon').css({"transform": "rotate(0deg)"})
717			$(".select_dropdown").slideUp();
718			$(this).addClass('on');
719			$(this).next().css({"transform": "rotate(-180deg)"}).next(".select_dropdown").slideDown();
720			
721		} else {
722			$(this).removeClass('on');
723			$(this).next().css({"transform": "rotate(0deg)"}).next(".select_dropdown").slideUp();
724		}
725		e.stopPropagation();//该方法将停止事件的传播,阻止它被分派到其他 Document 节点
726	})
727	$('.select_dropdown li').on('click',function(e){
728		var _this = $(this);
729		if(_this.attr('data-diy')=="false"){
730			// 设置描述文字
731			//$(this).parent().parent().prevAll('.input_inner').attr("value",);
732
733			if(_this.attr('data-field')=="searchTime"){
734				$("#dateDesc").val(_this.text());
735				$("#startDate").val("");
736				$("#endDate").val("");
737				// 重置时间参数
738				avalon.vmodels.list.$resetSearchFormVal();
739				avalon.vmodels.list_search.$setVal("searchTime",_this.attr('data-value'));
740			}
741
742			if(_this.attr('data-field')=="sourceType"){
743				// 重置检索接口
744				$("#searchTypeDesc").val(_this.text());
745				avalon.vmodels.list_search.searchForm.apiName='';
746				avalon.vmodels.list_search.$setVal("sourceType",_this.attr('data-value'));
747			}else if(_this.attr('data-field')=="apiName"){
748				// 重置检索接口
749				$("#searchTypeDesc").val(_this.text());
750				avalon.vmodels.list_search.searchForm.sourceType='';
751				avalon.vmodels.list_search.$setVal("apiName",_this.attr('data-value'));
752			}
753
754
755		}
756		//$(this).addClass('selected').siblings().removeClass('selected');
757		$('.input_dropdown .input_inner').removeClass('on');
758		$('.input_dropdown .input_icon').css({"transform": "rotate(0deg)"})
759		$(".select_dropdown").slideUp();
760		e.stopPropagation();
761	});
762	$(document).bind("click",function(){
763		$('.input_dropdown .input_inner').removeClass('on');
764		$('.input_dropdown .input_icon').css({"transform": "rotate(0deg)"})
765		$(".select_dropdown").slideUp();   //点击的不是#selected和它的子元素,隐藏下拉菜单
766	})
767	
768
769	function mindAnalyzeguide(){
770
771		if($("#mindanalyze").hasClass("no")){
772			return;
773		}
774
775		if(isNoticedMindAnalyzeguide()){
776			return;
777		}
778
779		var intro = introJs();  
780		intro.setOptions({   
781			nextLabel: "下一步", // 下一个的按钮文字  
782			prevLabel: "上一步", // 上一个按钮文字   
783			skipLabel: "关闭", // 跳过指引的按钮文字   
784			doneLabel: "关闭", // 完成按钮的文字  
785			hidePrev: true, // 是否在第一步中隐藏“上一步”按钮;不隐藏,将呈现为一个禁用的按钮  
786			hideNext: false, // 是否在最后一步中隐藏“下一步”按钮(同时会隐藏完成按钮);不隐藏,将呈现为一个禁用的按钮   
787			exitOnEsc: false, // 点击键盘的ESC按钮是否退出指引   
788			exitOnOverlayClick: false, // 点击遮罩层时是否退出介绍   
789			showStepNumbers: false, // 是否显示步骤编号   
790			disableInteraction: true, // 是否禁用高亮显示框内元素的交互  
791			showBullets: true, // 是否显示面板的指示点    
792			overlayOpacity: 0.7, // 遮罩层的透明度 0-1之间   
793			helperElementPadding: 10, // 选中的指引元素周围的填充距离 
794		});  
795		intro.setOptions({
796			//这里的steps根据每次更新内容自定义
797			steps: [
798				{
799					element: document.querySelector("#mindanalyze0"), // 定位到相应的元素位置,如果不设置element,则默认展示在屏幕中央
800					title: "温馨提示", // 标题
801					intro: "开启意图识别之后,系统会根据大多数网民的检索词对您输入的检索词进行分析、搜索,并为您推荐相关的关键词。", // 内容
802				},
803				{
804					element: document.querySelector("#mindanalyze1"),
805					intro: "关闭意图识别之后,系统以用户输入的关键词为基准,进行检索结果展示,默认关闭意图识别。",
806				}
807			]
808		})
809		intro.start();
810	}
811
812	function isNoticedMindAnalyzeguide(){
813		var mindAnalyzeguided = localStorage.getItem("mindAnalyzeguide");
814		if(mindAnalyzeguided){
815			return true;
816		}
817		localStorage.setItem("mindAnalyzeguide",true);
818		return false;
819	}
820
821
822	//定义分页模板
823	avalon.templateCache["terton_pgBar.html"] = _pageHtml = '<ul class="page_tools">' +
824															'<li class="prev disabled" ms-if="pageIndex==1"><a href="#"><em>&lt;&lt;</em>上一页</a></li>' +
825															'<li class="prev" ms-if="pageIndex>1" ms-click="toPage(pageIndex-1,$event)"><a href="#"><em>&lt;&lt;</em>上一页</a></li>' +
826															'<li ms-repeat="pages" href="#" ms-click="toPage(el,$event)" ms-class="active:el==pageIndex"><a href="#" ms-text="el"></a></li>' +
827															'<li class="next" ms-if="pageIndex<pageCount" ms-click="toPage(pageIndex+1,$event)"><a href="#">下一页<em>&gt;&gt;</em></a></li>' +
828															'<li class="next disabled" ms-if="pageIndex==pageCount"><a href="#">下一页<em>&gt;&gt;</em></a></li>' +
829															'</ul>' +
830															'<div class="page_go">' +
831															'<span>共{{pageCount}}页,跳转到第</span><input ms-duplex-number="inputNumber" name="" type="text" class="form_control" /><span>页</span><span class="fy_go" ms-click="toPage(inputNumber,$event)">GO</span>' +
832															'</div>' +
833															'<div class="clear"></div>' ;
834
835
836	// 调用检索模块
837	require(["list", "tools"], function (listModel, tools) {
838
839		var args = {
840			objId: "list",
841			Mode: "model.list",
842			autoGetPage: true,
843			objArgs: {
844				listApi: {
845					url: '/ssp/search/api/search', //正式环境     
846					type: 'post',
847					dataType: 'json',
848					rsName: 'datas',
849					removeLast: false,
850					recordCountName: 'page.recordcount',
851					pageCountName: 'page.pagecount',
852					pageName: 'page',
853					prepageName: 'rows'
854				},
855				//检索参数
856				listArgs: {
857					siteId:sspSearch.siteId,
858					apiName:'',
859					isCollapse: sspSearch['isCollapse'] ? sspSearch['isCollapse']:'Y',
860					//搜索位置
861					searchFiled:'',
862					//是否模糊查询
863					fullKey:'Y',
864					//排序条件
865					sortFiled:'-docreltime',
866					//检索词
867					keyWord:'',
868					//检索类型
869					sourceType: "SSP_ZHSS",
870					//机构层级
871					//typeQueryJsonToMap:JSON.stringify({}),
872					// 开始时间
873					startDate:'',
874					// 结束时间
875					endDate:'',
876					// 时间范围(今天、近7天、近30天、本月、本年)
877					searchTime:'',
878					// 是否搜索原词(关闭意图识别)
879					isChange:'1'
880				},
881				replaceHost: false,
882				callBeforeAjax: function (ajaxArgs) {
883
884					
885
886
887					if(ajaxArgs.data['apiName']){
888						ajaxArgs.url='/ssp/search/api/apiSearch';
889						ajaxArgs.type="get";
890					}else{
891						ajaxArgs.url='/ssp/search/api/search';
892						ajaxArgs.type="post";
893						ajaxArgs.data['mainSiteId']=sspSearch.siteId;
894					}
895
896
897
898					try {if (vmObj.$vm) {
899						// 启动加载动画
900						vmObj.$vm.loading = true;
901						/** 新增lijun 添加检索标签 **/
902						if(vmObj.$search.$vm.searchForm.keyWord) {
903							var idx = isInArray(vmObj.$vm.searchKeys,'key', 'searchWord');
904							var searchKey = {key: 'searchWord', name: vmObj.$search.$vm.searchForm.keyWord}
905							if(idx > -1) {
906								vmObj.$vm.searchKeys[idx].name = vmObj.$search.$vm.searchForm.keyWord;
907							} else {
908								vmObj.$vm.searchKeys.push(searchKey)
909							}
910						}
911					}} catch (e) {}
912				},
913				listCheck: {
914					channelid: {required: false}
915				}
916			},
917			pagebar: {
918				prepage: 5,
919				pgTemp: 'terton_pgBar.html'
920			},
921			search: {
922				searchArgs: {
923					sourceType:{
924						field: 'sourceType',
925						compare: '=',
926						value: "SSP_ZHSS",
927						valuetype: "string"
928					},
929					apiName: {
930						field: 'apiName',
931						compare: '=',
932						value: "",
933						valuetype: "string"
934					},
935					keyWord: {
936						field: 'keyWord',
937						compare: 'like',
938						value: "",
939						valuetype: "string"
940					},
941					searchFiled :{
942						field: 'searchFiled',
943						compare: '=',
944						value:"",
945						valueType:"value",
946						items : [
947							{ name : '全文' , value : ''},
948							{ name : '标题' , value : 'docTitle'},
949							{ name : '正文' , value : 'doccontent'},
950							{ name : '文号' , value : 'fileno'}
951						]
952					},
953					fullKey :{
954						field: 'fullKey',
955						compare: '=',
956						value:"Y",
957						valueType:"value",
958						items : [
959							{ name : '模糊' , value : 'N'},
960							{ name : '精准' , value : 'Y'},
961						]
962					},
963					//排序方式
964					sortFiled: {
965						field: 'sortFiled',
966						compare: '=',
967						value: "-docreltime",
968						valueType: "value",
969						items: [
970							{
971								name: '时间降序',
972								value: '-docreltime'
973							},
974							{
975								name: '时间升序',
976								value: '+docreltime'
977							},
978							{
979								name: '相关度',
980								value:'RELEVANCE'
981							}
982						]
983					},
984					//通配检索
985					// typeQueryJsonToMap:{
986					// 	field: 'typeQueryJsonToMap',
987					// 	compare: '=',
988					// 	value: JSON.stringify({}),
989					// 	valueType: "string"
990					// },
991					startDate: {
992						field: 'startDate',
993						compare: '=',
994						value: "",
995						valuetype: "string"
996					},
997					endDate: {
998						field: 'endDate',
999						compare: '=',
1000						value: "",
1001						valuetype: "string"
1002					},
1003					searchTime :{
1004						field: 'searchTime',
1005						compare: '=',
1006						value:"",
1007						valueType:"value",
1008						items : [
1009							{ name : '不限' , value : ''},
1010							{ name : '一天内' , value : '-1'},
1011							{ name : '一周内' , value : '-7'},
1012							{ name : '一月内' , value : '-30'},
1013							{ name : '一年内' , value : '-365'},
1014						]
1015					},
1016					isChange :{
1017						field: 'isChange',
1018						compare: '=',
1019						value:"1",
1020						valueType:"value",
1021						items : [
1022							{ name : '开启' , value : '0'},
1023							{ name : '关闭' , value : '1'}
1024						]
1025					}
1026				},
1027				vmArgsExt: {
1028					//检索模块中的辅助属性
1029					assistProps:{
1030						searchScopeDesc:'全文',
1031						searchScopeValue:'全文',
1032						searchWord:''
1033					},
1034					//表单提交检索
1035					$formSearch: function (e) {
1036						e && e.preventDefault();
1037						//进行历史搜索词的记录,并关闭历史搜索窗口 begin
1038						//setSearchHistoryObj(_vmListObj.$search.$vm.searchForm.keyWord);
1039						//closeSearchHistoryWindow();
1040						//进行历史搜索词的记录,并关闭历史搜索窗口 end
1041						//进行关键词检索时,清空挂栽左侧菜单栏所有参数
1042						vmObj.$vm.$resetSearchFormVal();
1043						$("#dateDesc").val('时间不限');
1044						//进行关键词检索时,关闭所有选中的树标签 begin
1045						// for (var index = 0; index < vmObj.$vm.searchKeys.length; index++) {
1046						// 	var element = vmObj.$vm.searchKeys[index];
1047						// 	if(element.activeCode){
1048						// 		vmObj.$vm.$remoActive(index);
1049						// 	}
1050						// }
1051						// vmObj.$vm.searchKeys.clear();
1052						// if(vmObj.$search.$vm.searchForm.keyWord){
1053						// 	var searchKey = {key: 'searchWord', name: vmObj.$search.$vm.searchForm.keyWord}
1054						// 	vmObj.$vm.searchKeys.push(searchKey);
1055						// }
1056						//vmObj.$search.$vm.searchForm['typeQueryJsonToMap'] ='{"policylevel":[0,2]}';
1057						//进行关键词检索时,关闭所有选中的树标签 end
1058						//单条件查询下生效,组合查询下摒弃 begin
1059						//vmObj.$vm.$closeTab();
1060						//vmObj.$vm.activeCode = "";
1061						//单条件查询下生效,组合查询下摒弃 end
1062						//需要重新生效栏目树
1063						//vmObj.$vm.isNeedFreshMenu=true;
1064						vmObj.$vm.isNeedGetSuggest=true;
1065						vmObj.$vm.setSearchHistoryObj(vmObj.$search.$vm.searchForm.keyWord);
1066						avalon.vmodels.list.searchHistoryList=vmObj.$vm.getSearchHistoryObj();
1067						vmObj.$search.$vm.$search();
1068						//把检索关键词存放在本地
1069						//setkeyWordByLocalStorage(vmObj.$search.$vm.searchForm.keyWord);
1070					},
1071					$setFullKey:function(value){
1072						if(value == 'Y'){
1073							vmObj.$search.$vm.searchForm.fullKey = 'Y';
1074						}else{
1075							vmObj.$search.$vm.searchForm.fullKey = 'N';
1076						}
1077					},
1078					$setIsChange:function(value){
1079						vmObj.$search.$vm.$setVal("isChange",value);
1080						vmObj.$vm.recommendList=[];
1081						// 启动联想词检索
1082						if(vmObj.$search.$vm.searchForm.isChange=='0'){
1083							vmObj.$vm.$getRelWords();
1084						}
1085					}
1086				}
1087			},
1088			cache: false,
1089			vmArgsExt: {
1090				// 骨架屏数量
1091				SkeletonList:[1,2,3,4,5],
1092				// 推荐词
1093				recommendList:[],
1094				// 搜索历史
1095				searchHistoryList:getSearchHistoryObj(),
1096				// 是否加载中
1097				loading: true,
1098				//激活索引标志位
1099				activeCode: '',
1100				SearchWord: '',
1101				searchKeys: [],
1102				//分页信息,仅用作展示效果,与实际分页无关
1103				pageInfo:{
1104					allRecord:0,
1105					pageInex:0,
1106					pageSize:5
1107				},
1108				sspSearch:JSON.parse(JSON.stringify(sspSearch)),
1109				pageItems: [5,10,15],
1110				$changePageSize:function(_pageSize){
1111					vmObj.$vm.pageInfo.pageSize = ~~_pageSize;
1112					avalon.vmodels.list_pagebar.prepage=~~_pageSize;
1113					avalon.vmodels.list_pagebar.toPage(1);
1114				},
1115				//检索时会重置的参数
1116				resetSearchParamArr:["searchTime","startDate","endDate"],
1117				//是否需要获取联想词
1118				isNeedGetSuggest: true,
1119				//是否需要刷新左侧菜单栏选项
1120				isNeedFreshMenu: true,
1121				//根据索引值关闭旧选项卡(多条件查询下摒弃,后续用新方法实现,代码过于笨拙)
1122				$closeTab: function () {
1123					if (vmObj.$vm.activeCode) {
1124						var _activeArr = vmObj.$vm.activeCode.split("*");
1125						var _keyType = _activeArr[0];
1126						var _indexArr = _activeArr[1].split(_keyType);
1127						var _activeObj=vmObj.$vm.treeMenuObj[_keyType];
1128						if (_indexArr.length >= 1) {
1129							_activeObj[_indexArr[0]].activeown = false;
1130						}
1131						if (_indexArr.length == 2) {
1132							_activeObj[_indexArr[0]].active = false;
1133							_activeObj[_indexArr[0]].activeown = false;
1134							_activeObj[_indexArr[0]].children[_indexArr[1]].activeown = false;
1135						}
1136						if (_indexArr.length == 3) {
1137							_activeObj[_indexArr[0]].active = false;
1138							_activeObj[_indexArr[0]].children[_indexArr[1]].active = false;
1139							_activeObj[_indexArr[0]].children[_indexArr[1]].activeown = false;
1140							_activeObj[_indexArr[0]].children[_indexArr[1]].children[_indexArr[2]].activeown = false;
1141						}
1142					}
1143				},
1144				//根据索引值开启旧选项卡(多条件查询下摒弃,后续用新方法实现,代码过于笨拙)
1145				$openTab: function (_key,_activeCode) {
1146					//重置acTiveCode索引值
1147					vmObj.$vm.activeCode = "";
1148					//若是存在key值,则激活新选项卡
1149					if (_key) {
1150						avalon.log(_key);
1151						vmObj.$vm.activeCode = _key + "*" + _activeCode;
1152						var _activeObj=vmObj.$vm.treeMenuObj[_key];
1153						var _indexArr = _activeCode.split(_key);
1154						if (_indexArr.length >= 1) {
1155							_activeObj[_indexArr[0]].activeown = true;
1156						}
1157						if (_indexArr.length == 2) {
1158							_activeObj[_indexArr[0]].active = true;
1159							_activeObj[_indexArr[0]].activeown = true;
1160							_activeObj[_indexArr[0]].children[_indexArr[1]].activeown = true;
1161						}
1162						if (_indexArr.length == 3) {
1163							_activeObj[_indexArr[0]].active = true;
1164							_activeObj[_indexArr[0]].activeown = true;
1165							_activeObj[_indexArr[0]].children[_indexArr[1]].active = true;
1166							_activeObj[_indexArr[0]].children[_indexArr[1]].activeown = true;
1167							_activeObj[_indexArr[0]].children[_indexArr[1]].children[_indexArr[2]].activeown = true;
1168						}
1169					}
1170				},
1171				//一级栏目选项卡展开显示二级栏目,但不激活检索功能
1172				$activeTab: function (el) {
1173					el.active = !el.active;
1174				},
1175				clearSearchKey: function(idx) {
1176					var item = vmObj.$vm.searchKeys[idx];
1177					if(item.searchKey){
1178						if(item.key=="unitTree"){
1179							vmObj.$search.$vm.searchForm['typeQueryJsonToMap'] ='{"policylevel":[0,2]}';
1180						}
1181						//把检索属性值设为清空
1182						vmObj.$vm.$resetObjPropertyVal(avalon.vmodels.list_search.searchForm,[item.searchKey]);
1183						//移除左侧选中样式
1184						vmObj.$vm.$remoActive(idx);
1185					}
1186					if(!item.searchKey){
1187						avalon.vmodels.list_search.searchForm['keyWord'] = '';
1188					}
1189					vmObj.$vm.isNeedFreshMenu=true;
1190					vmObj.$vm.searchKeys.splice(idx, 1);
1191					avalon.vmodels.list_search.$search();
1192					setkeyWordByLocalStorage(_vmListObj.$search.$vm.searchForm.keyWord);
1193				},
1194				//传入对象,并指定要重置值的属性集
1195				$resetObjPropertyVal: function (Obj, PropertyList) {
1196					var array = PropertyList;
1197					for (var index = 0; index < array.length; index++) {
1198						var element = array[index];
1199						var typStr = avalon.type(Obj[element]);
1200						switch (typStr) {
1201							case 'string':
1202								Obj[element] = "";
1203								break;
1204							case 'array':
1205								Obj[element] = [];
1206								break;
1207							case 'number':
1208								Obj[element] = 0;
1209								break;
1210							default:
1211								console.log(typStr + "类型未定义");
1212								break;
1213						}
1214					}
1215				},
1216				//重置检索默认值
1217				$resetSearchFormVal:function(){
1218					vmObj.$vm.$resetObjPropertyVal(avalon.vmodels.list_search.searchForm, vmObj.$vm.resetSearchParamArr);
1219				},
1220				//清空检索模块指定属性值
1221				$clearSearchFormValByArrStr:function(ArrStr){
1222					vmObj.$vm.$resetObjPropertyVal(avalon.vmodels.list_search.searchForm, ArrStr);
1223				},
1224				//移除激活效果,多级树移除(适用于多条件联合查询)
1225				$remoActive:function(idx){
1226					var _activeArr=vmObj.$vm.searchKeys[idx].activeCode.split(vmObj.$vm.searchKeys[idx].key);
1227					var _cacheObjIdxArr=[];
1228					for (var index = 0; index < _activeArr.length; index++) {
1229						var _idx_new = _activeArr[index];
1230						if(index==0){
1231							_cacheObjIdxArr.push(vmObj.$vm.treeMenuObj[vmObj.$vm.searchKeys[idx].key][_idx_new]);
1232						}else{
1233							var _cacheObj=_cacheObjIdxArr[index-1].children[_idx_new];
1234							_cacheObjIdxArr.push(_cacheObj);
1235						}
1236					}
1237					for (var index = 0; index < _activeArr.length; index++) {
1238						_cacheObjIdxArr[index].activeown=false;
1239						_cacheObjIdxArr[index].active=false;
1240					}
1241				},
1242				//添加激活效果,多级树激活(适用于多条件联合查询)
1243				$addActive:function(el){
1244					var _activeArr=el.activeCode.split(el.activeKey);
1245					var _cacheObjIdxArr=[];
1246					for (var index = 0; index < _activeArr.length; index++) {
1247						var _idx_new = _activeArr[index];
1248						if(index==0){
1249							_cacheObjIdxArr.push(vmObj.$vm.treeMenuObj[el.activeKey][_idx_new]);
1250						}else{
1251							var _cacheObj=_cacheObjIdxArr[index-1].children[_idx_new];
1252							_cacheObjIdxArr.push(_cacheObj);
1253						}
1254					}
1255					for (var index = 0; index < _activeArr.length; index++) {
1256						_cacheObjIdxArr[index].activeown=true;
1257						if(index<(_activeArr.length-1)){
1258							_cacheObjIdxArr[index].active=true;
1259						}
1260					}
1261				},
1262				// 获取联想词
1263				$getRelWords:function(){
1264					vmObj.$vm.recommendList=[];
1265					vmObj.$vm.isNeedGetSuggest=false;
1266					// 启动联想词检索
1267					if(vmObj.$vm.isNeedGetSuggest&&vmObj.$search.$vm.searchForm.isChange=='0'){
1268						vmObj.$vm.$getRelWords();
1269					}
1270					$.post("/ssp/search/api/word?time="+new Date().getTime(), 
1271						{
1272							keyWord: avalon.vmodels.list_search.searchForm.keyWord,
1273							pageSize:10,
1274							siteId: sspSearch.siteId,
1275							rows:10,
1276						},
1277						function (response, textStatus, jqXHR) {
1278							for (var index = 0; index < response.datas.length; index++) {
1279								var element = response.datas[index];
1280								vmObj.$vm.recommendList.push(element['wordName']);
1281							}
1282						},
1283						"json"
1284					);
1285				},
1286				$setKeyWrod:function(value){
1287					vmObj.$vm.setSearchHistoryObj(value);
1288					avalon.vmodels.list_search.$setVal("keyWord",value);
1289					avalon.vmodels.list.searchHistoryList=vmObj.$vm.getSearchHistoryObj();
1290				},
1291				$closeTimeSelectPlane:function(){
1292					$("#messagebox_large").slideUp();
1293					$('.modal_bg').hide();
1294				},
1295				$defineDateSearch:function(){
1296					vmObj.$vm.$resetSearchFormVal();
1297					vmObj.$search.$vm.searchForm.startDate=$("#startDate").val();
1298					vmObj.$search.$vm.searchForm.endDate=$("#endDate").val();
1299					var _dateDesc="";
1300					if(vmObj.$search.$vm.searchForm.startDate&&vmObj.$search.$vm.searchForm.endDate){
1301						_dateDesc=""+vmObj.$search.$vm.searchForm.startDate+"至"+vmObj.$search.$vm.searchForm.endDate+"";
1302					}else if(vmObj.$search.$vm.searchForm.startDate){
1303						_dateDesc=""+vmObj.$search.$vm.searchForm.startDate+"至今";
1304					}else if(vmObj.$search.$vm.searchForm.endDate){
1305						_dateDesc="至"+vmObj.$search.$vm.searchForm.endDate+"";
1306					}else{
1307						_dateDesc="";
1308					}
1309					$("#dateDesc").val(_dateDesc);
1310					vmObj.$search.$vm.$search();
1311					$("#messagebox_large").slideUp();
1312					$('.modal_bg').hide();
1313				},
1314				//获取历史搜索记录
1315				getSearchHistoryObj:function(){
1316					return getSearchHistoryObj();
1317				},
1318				//设置历史搜索记录
1319				setSearchHistoryObj:function(keyWord){
1320					if(!$.trim(keyWord)){
1321						return ;
1322					}
1323					var _arr =  vmObj.$vm.getSearchHistoryObj();
1324					var _flag=false;
1325					for (var index = 0; index < _arr.length; index++) {
1326						var element = _arr[index];
1327						if(keyWord==element){
1328							_flag=true;
1329						}
1330					}
1331					if(!_flag){
1332						if(_arr.length==3){
1333							_arr.pop();
1334						}
1335						_arr.unshift(keyWord);
1336					}
1337					localStorage.setItem("searchHistroy",JSON.stringify(_arr));
1338				}
1339			},
1340			injAfterGetData: function (listRes) {
1341
1342				vmObj.$vm.pageInfo.allRecord=listRes.page.recordcount;
1343
1344				// 启动联想词检索
1345				if(vmObj.$vm.isNeedGetSuggest&&vmObj.$search.$vm.searchForm.isChange=='0'){
1346					vmObj.$vm.$getRelWords();
1347				}
1348				setTimeout(function(){
1349					vmObj.$vm.loading = false;
1350					$('html,body').animate({ scrollTop: $('#ssp_result').offset().top-80 }, 800);
1351				},1000)
1352
1353				if(listRes.data&&listRes.data.length>0){
1354					avalon.each(listRes.data,function($index,$item){
1355						if($item['ssp_type']=='SSP_POLL'){
1356							$item['docpuburl']=vmObj.$vm.sspSearch.pollUrl+$item.docnum;
1357							$item['chnlname']='网上调查';
1358						}
1359						if($item['ssp_type']=='SSP_ADVICE'){
1360							$item['docpuburl']=vmObj.$vm.sspSearch.adviceUrl+$item.docnum;
1361							$item['chnlname']='民意征集';
1362						}
1363						
1364
1365
1366					})
1367				}
1368				return listRes;
1369			}
1370		}
1371
1372
1373
1374
1375		var vmObj = listModel(args);
1376		if(!tools.isMobile()){
1377			mindAnalyzeguide();
1378		}
1379		window.vmObj=vmObj;
1380	})
1381}
1382
1383
1384
1385
1386
1387
1388
1389

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.