| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501 | 
							- 	// 基本信息(包括userAgent)
 
- var baseInfo = null,
 
- 	// 基础环境信息(包括当前webview)
 
- 	baseEnv = null;
 
- 	
 
- 	// 搜索框
 
- var $searchbar = $('.searchbar'),
 
- 	// 搜索输入框
 
- 	$searchbarInput = $('.lin-search-ipt input'),
 
- 	// 搜索取消按钮
 
- 	$searchCancelBtn = $('.searchbar-cancel'),
 
- 	// 搜索框下面悬浮的搜索提示
 
- 	$searchSuggest = $('#search_suggest_text'),
 
- 	// 搜索结果展示容器
 
- 	$searchtResult = $('#search_result'),
 
- 	// 搜索无结果时显示
 
- 	$noResultWrap = $('#no_result_wrap'),
 
- 	$patiList = $('#pati_list'),
 
- 	// 分页查询最后一页
 
- 	$history = $('#history_search'),//历史搜索
 
- 	$hisSearList = $('#his_sear_list');
 
- var page = 0,
 
-     search_keyword = "", //记录搜索框的内容
 
- 	lastTeamId,// 从缓存取出所选团队
 
- 	pagesize = 15,
 
- 	historyData=[],//历史数据
 
- 	historyStr,
 
- 	content,  //要发送的模板参数
 
- 	modelCode,
 
- 	images;
 
- var self;
 
- mui.plusReady(function() {
 
- //	initKeyboardAndroid();
 
- 	docInfo = JSON.parse(plus.storage.getItem("docInfo"));
 
- 	historyStr = plus.storage.getItem("juminSearchHis"+docInfo.code);
 
- 	if(historyStr){
 
- 		historyStr = JSON.parse(historyStr).join(',');
 
- 		historyData = historyStr.split(',');
 
- 	}else{
 
- 		historyData = [];
 
- 	}
 
- })
 
- window.addEventListener("initSearch", function(e){
 
- //	openSoftKeyboard();
 
- 	baseInfo = getBaseInfo();
 
- 	$("#searchAll").show();
 
- 	setTimeout(function(){
 
- 		$("#searchPut").focus();
 
- 	},100)
 
- 	if(historyData.length){
 
- 		$history.show();
 
- 	}
 
-     lastTeamId = plus.storage.getItem("selectedTeamId");
 
- })
 
- // 获取登录相关信息
 
- var getBaseInfo = function() {
 
- 		// 登录的相关信息
 
- 	var userAgent = JSON.parse(plus.storage.getItem("userAgent"))
 
- 	return {
 
- 		userAgent: userAgent
 
- 	}
 
- },
 
- // 获取基础环境信息
 
- getBaseEnvPromise = function () {
 
- 	var env = {
 
- 		webview: plus.webview.currentWebview()
 
- 	}
 
- 	return Promise.resolve().then(function(res) {
 
- 		return env;
 
- 	})
 
- },
 
- historyList = function(){
 
- 	historyStr = plus.storage.getItem("juminSearchHis"+docInfo.code);
 
- 	if(historyStr){
 
- 		historyStr = JSON.parse(historyStr).join(',');
 
- 		historyData = historyStr.split(',');
 
- 	}else{
 
- 		historyData = [];
 
- 	}
 
- 	var html = template('his_list_tmpl',{list:historyData});
 
- 	$hisSearList.html('');
 
- 	$hisSearList.append(html);
 
- },
 
- // 初始化“患者”视图列表
 
- initPatientViewList = function(data,keyword,isAppend) {
 
- 	data = _.map(data,function(item){
 
- 		item.photo = getImgUrl(item.photo);
 
- 		return item;
 
- 	})
 
- 	var html = template("pati_list_tmpl", {list: data});
 
- 	searchText = $searchbarInput.val().trim();
 
- 	if(isAppend == true){
 
- 		$patiList.append(html)
 
- 	}else{
 
- 		mui('#jumin_wrapper').pullRefresh().scrollTo(0,0)
 
- 		$patiList.empty().append(html)
 
- 		mui('#jumin_wrapper').pullRefresh().refresh(true);//重置
 
- 	}
 
- 	ellipsisText($patiList.find('li'),searchText);
 
- },
 
- // $el: $('.c-content-warp')
 
- getRowProps = function ($el) {
 
- 	var $textEllipsis = $el,
 
- 		$text = $textEllipsis.eq(0),
 
- 		$chart = $text.text('a'),
 
- 		enWidth = $chart.width(),
 
- 		$chart = $text.text('中'),
 
- 		zhWidth = $chart.width(),
 
- 		lineHeight = parseFloat($chart.css("lineHeight"), 10),
 
- 		rowHeight = $chart.height();
 
- 	$chart.text('');
 
- 	return {
 
- 		chartWidth: {
 
- 			zh: zhWidth,
 
- 			en: enWidth
 
- 		},
 
- 		rowHeight: Math.max(rowHeight, lineHeight),
 
- 		rowWidth: $el.width()
 
- 	};
 
- },
 
- replaceAll = function (text, arr) {
 
- 	var html = text;
 
- 	_.each(arr,function(kw) {
 
- 		var reg = new RegExp(kw+"(?!>)","gi");
 
- 		html = html.replace(reg,'<em>'+kw+'</em>');
 
- 	});
 
- 	return html;
 
- },
 
- highlineKeyword = function ($el,searchText) {
 
- 	var props = getRowProps($el),
 
- 		chartWidth = props.chartWidth,
 
- 		rowHeight = props.rowHeight,
 
- 		rowWidth = props.rowWidth,
 
- 		// 每行显示字符数(以中文字符为标准计算)
 
- 		chartNum = Math.floor(rowWidth / chartWidth.zh),
 
- 		// 排除指定数量字符所占宽度
 
- 		exceptNum = 0,
 
- 		// 行数
 
- 		rowNum = 1,
 
- 		// 预计显示总字符数
 
- 		expectedNum = chartNum * rowNum - exceptNum,
 
- 		$target = $el,
 
- 		// 目标文本
 
- 		text = $.trim($target.attr('data-text')),
 
- 		length = text.length,
 
- 		// 关键字数组
 
- 		kws = $.trim(searchText).replace(/\s+/g," ").split(" ");
 
- 	var fidx = 0,preFidx,diff = 0;
 
- 	$target.html(replaceAll(text, kws));
 
- 	if(Math.floor($target.height() / rowHeight) <= rowNum) {
 
- 		return ;
 
- 	}
 
- 	if(text.length > expectedNum) {
 
- 		fidx = text.indexOf(kws[0])+kws[0].length-1;
 
- 		diff = fidx - expectedNum + 1;
 
- 		preFidx =  fidx;
 
- 		diff = (diff<0)?0:diff;
 
- 		var preChar = (diff>0)?"...":"";
 
- 		$target.html(preChar+replaceAll(text.slice(diff,preFidx+1), kws)+"...");
 
- 		while((Math.floor($target.height() / rowHeight) <= rowNum) && (preFidx < length)) {
 
- 			preFidx++;
 
- 			$target.html(preChar+replaceAll(text.slice(diff,preFidx+1), kws)+"...");
 
- 		}
 
- 		if(preFidx == length && (Math.floor($target.height() / rowHeight) <= rowNum)) {
 
- 			diff = diff>0?(diff - 1):0;
 
- 			$target.html(preChar+replaceAll(text.slice(diff,preFidx), kws));
 
- 		} else if((Math.floor($target.height() / rowHeight) > rowNum)) {
 
- 			$target.html(preChar+replaceAll(text.slice(diff,preFidx), kws)+"...");
 
- 		}
 
- 	}
 
- },
 
- ellipsisText = function ($elements, searchText) {
 
- 	_.each($elements,function(el) {
 
- 	    var $textEl = $(el).find(".j-text-ellipsis");
 
- 	    _.each($textEl, function(t){
 
- 	        highlineKeyword($(t),searchText)
 
- 	    })
 
- 	});
 
- },
 
- // 控制搜索关键字悬浮提示的显示
 
- showSearchSuggest = function(text) {
 
- 	var suggestText = '搜索“'+text+'”';
 
- 	// 如果text不为空,则显示;否则隐藏
 
- 	if(text&&text.trim().length) {
 
- 		$searchSuggest.text(suggestText);
 
- 		$searchSuggest.show();
 
- 	} else {
 
- 		$searchSuggest.text('');
 
- 		$searchSuggest.hide();
 
- 	}
 
- },
 
- // 分页查询列表
 
- searchByPaging = function (isAppend,fun) {
 
- 	$history.hide();
 
- 	$("#searchPut").blur();
 
- 	search_keyword = $searchbarInput.val();
 
- 	if(!$.trim(search_keyword)) {
 
- 		return ;
 
- 	}
 
- 	plus.nativeUI.showWaiting();
 
- 	var url = "/doctor/concern/getConcernPatients",
 
- 	 params = { page:page,pageSize:pagesize,patientName:search_keyword};
 
- 	getReqPromise(url,params, "GET").then(function(res){
 
-  		if(res.status == 200) {
 
- 			if((page==0 && !res.data) || (page==0 && !res.data.length)) {
 
- 				$searchtResult.hide();
 
- 				$noResultWrap.show();
 
- 			} else {
 
- 				$noResultWrap.hide();
 
- 				$searchtResult.show();
 
- 				initPatientViewList(res.data,search_keyword,isAppend);
 
- 				if(res.data.length < pagesize){
 
- 					fun&&fun.call(this,true)
 
- 				}else{
 
- 					fun&&fun.call(this,false)
 
- 				}
 
- 			}
 
-  		}else{
 
-  			mui.toast("搜索失败");
 
-  		}
 
-  		plus.nativeUI.closeWaiting();
 
- 	}).catch(function(e) {
 
- 		plus.nativeUI.closeWaiting();
 
- 		console && console.error(e)
 
- 	})
 
- },
 
- // 绑定页面事件
 
- bindEvents = function (){
 
- 	mui.init({
 
- 		pullRefresh : {
 
- 		    container:'#jumin_wrapper',
 
- 		    up : {
 
- 			    height:50,
 
- 			    contentinit: '',
 
- 				contentdown: '',
 
- 			    contentrefresh : "正在加载...",
 
- 			    contentnomore:'没有更多数据了',
 
- 			    callback: function() {
 
- 			    	var self = this;
 
- 			    	page++;
 
- 			    	searchByPaging(true,function(value){
 
- 			    		setTimeout(function(){
 
- 			    			self.endPullupToRefresh(value);
 
- 			    		},500)
 
- 			    	})
 
- 				}
 
- 		    }
 
- 		}
 
- 	})
 
- 	
 
- 	$('#his_scroll').css({
 
- 		'height':$(window).height()-158
 
- 	})
 
- 	mui('#his_scroll').scroll({
 
-     	bounce: true, //是否启用回弹
 
-    })
 
- 	
 
- 	$searchbarInput.on('input', function() {
 
- 		var text = $(this).val().trim();
 
- 		$searchtResult.hide();
 
- 		$('#no_result_wrap').hide();
 
- 		if(text.length > 0){
 
- 		    $("#searchAll").hide();
 
- 		    $history.hide();
 
- 		}else{
 
- 		    $("#searchAll").show();
 
- 		    $history.show();
 
- 		}
 
- 		showSearchSuggest(text);
 
- 	}).on('keydown',function(e) {
 
- 		if (e.which === 13) {
 
- 		    page = 0;
 
- 		    $searchSuggest.hide();
 
- 			searchByPaging(false);
 
- 			//保存历史数据20个
 
- 			saveHisData();
 
- 		}
 
- 	});
 
- 	
 
- 	$('#clear_his_data').on('tap', function(){
 
- 		plus.storage.removeItem("juminSearchHis"+docInfo.code);
 
- 		historyList();
 
- 		$history.hide();
 
- 	})
 
- 	
 
- 	$hisSearList.on('click','.his-list',function(){
 
- 		var $that = $(this);
 
- 		page = 0;
 
- 		$("#searchAll").hide();
 
- 	    $searchSuggest.hide();
 
- 	    $history.hide();
 
- 	    $searchbarInput.val($that.text())
 
- 		searchByPaging(false);
 
- 	})
 
- 	
 
- 	$('.lin-search-ipt a').on('tap', function(){
 
- 		plus.webview.currentWebview().hide();
 
- 		mui.later(function(){
 
- 			$('#search_result').hide();
 
- 			$('#no_result_wrap').hide();
 
- 			$('#searchPut').val("");
 
- 			$("#search_suggest_text").html("").hide();
 
- 			$("#searchPut").blur();
 
- 		}, 50)
 
- 	})
 
- 	
 
- 	$searchSuggest.on('click',function() {
 
- 	    page = 0;
 
- 		$searchSuggest.hide();
 
- 		searchByPaging(false);
 
- 		
 
- 		//保存历史数据20个
 
- 		saveHisData()
 
- 	});
 
- 	var acTiveId='activeId';//选中的ID
 
- 	$patiList.on('tap','li[data-patient-code]',function(e) {
 
- 		var code = $(this).attr("data-patient-code");
 
- 		var mobile = $(this).attr("data-patient-phone");
 
- 		var address = $(this).attr("data-patient-address");
 
- 		var isCheck = $(this).attr("check");
 
- 		var id = $(this).attr('id');
 
- 		if(id != acTiveId ){ //如果点击的不是之前选中的 
 
- 			$('#'+acTiveId).find('.checboxImg').find('img').attr('src','../images/checbox-false.png');	
 
- 			$('#'+acTiveId).removeAttr('id');
 
- 			$(this).find('.checboxImg').find('img').attr('src','../images/checbox-true.png');
 
- 			$(this).attr('check','yes');
 
- 			$(this).attr('id',acTiveId);
 
- 		}
 
- 		else {   //如果点击的是自己的话
 
- 			if(isCheck == 'no'){
 
- 				$(this).find('.checboxImg').find('img').attr('src','../images/checbox-true.png');
 
- 				$(this).attr('check','yes');
 
- 			}
 
- 			else {
 
- 				$(this).find('.checboxImg').find('img').attr('src','../images/checbox-false.png');
 
- 				$(this).attr('check','no');
 
- 				$(this).removeAttr('id',acTiveId);
 
- 			}
 
- 		}
 
- 	
 
- 		// if(baseEnv.webview.origin=="suifang") {//“随访”功能
 
- 		// 	if(baseEnv.webview.follow_type == 1){
 
- 	    //         openWebview("../../suifang/html/add_plan.html",{patientInfo: {code:code,mobile:mobile,address:address},chooseDate:baseEnv.webview.chooseDate});
 
- 	    //         return false;
 
- 	    //     }
 
- 	    //     if(baseEnv.webview.follow_type == 2){
 
- 	    //         openWebview("../../suifang/html/follow_way.html",{patientInfo: {code:code,mobile:mobile,address:address}});
 
- 	    //         return false;
 
- 	    //     }
 
- 		// }else{
 
- 		// 	openWebview("../../huanzhe/html/huanzhexinxi.html",{
 
- 		// 		patiCode: code
 
- 		// 	});
 
- 		// }
 
- 		return false;
 
- 	})
 
- 	
 
- 	$(".send_btn").on('tap', function(){
 
- 		var	patiCode =$('#'+acTiveId).attr('data-patient-code');
 
- 		if(!patiCode) {mui.toast("请选择居民再进行发送");return};
 
- 		dialog({
 
- 			content: "发出后无法变更,是否确认发送给居民?",
 
- 			okValue: "继续发送",
 
- 			ok: function(){
 
- 				var url = "doctor/health/guidance/add",
 
- 					params = {
 
- 						patient: patiCode,
 
- 						content: content,
 
- 						modelCode: modelCode,
 
- 						images: images
 
- 					};
 
- 					console.log(params)
 
- 				plus.nativeUI.showWaiting();
 
- 				sendPost(url, params, null, function(res){
 
- 					if (res.status == 200) {
 
- 						mui.toast("发送成功!");
 
- 						var main =plus.webview.getWebviewById('guidance_list');
 
- 						mui.fire(main,'refresh');
 
- 						var self = plus.webview.currentWebview(),
 
- 							opener = self.opener(),
 
- 							pre_opener = self.opener().opener();
 
- 						if(opener.id == "jkzd"){ //自己的模板详情
 
- 							if(pre_opener.id == "guidance_info"){
 
- 								mui.fire(pre_opener.opener(), "update");
 
- 								pre_opener.opener().show();
 
- 								mui.later(function(){
 
- 									pre_opener.close('none');
 
- 									opener.close('none');
 
- 									self.close('none');
 
- 								}, 300);
 
- 							}else{
 
- 								mui.fire(pre_opener, "update");
 
- 								pre_opener.show();
 
- 								mui.later(function(){
 
- 									opener.close('none');
 
- 									self.close('none');
 
- 								}, 300);
 
- 							}
 
- 						}else{ //系统模板详情
 
- 							var pre_pre_opener = pre_opener.opener();
 
- 							if(pre_pre_opener.id == "guidance_info"){
 
- 								mui.fire(pre_pre_opener.opener(), "update");
 
- 								pre_pre_opener.opener().show();
 
- 								mui.later(function(){
 
- 									pre_pre_opener.close('none');
 
- 									opener.close('none');
 
- 									pre_opener.close('none');
 
- 									self.close('none');
 
- 								}, 300);
 
- 							}else{
 
- 								mui.fire(pre_pre_opener, "update");
 
- 								pre_pre_opener.show();
 
- 								mui.later(function(){
 
- 									opener.close('none');
 
- 									pre_opener.close('none');
 
- 									self.close('none');
 
- 								}, 300);
 
- 							}
 
- 							
 
- 						}
 
- 					}else{
 
- 						mui.toast(res.msg)
 
- 					}
 
- 					plus.nativeUI.closeWaiting();
 
- 				}, 'POST', '', true);
 
- 			},
 
- 			cancelValue: "不了,谢谢",
 
- 			cancel: function(){}
 
- 		}).showModal();
 
- 	});
 
- 	function saveHisData(){
 
- 		//保存历史数据20个
 
- 		var value = $searchbarInput.val().trim();
 
- 		if(value){
 
- 			if(historyData.length>19){
 
- 				historyData.pop();
 
- 			}
 
- 			if(historyData.indexOf(value)>-1){
 
- 				historyData =  _.filter(historyData, function(o){ return o != value; });
 
- 			}
 
- 			historyData.unshift(value);
 
- 			var str = JSON.stringify(historyData)
 
- 			plus.storage.setItem("juminSearchHis"+docInfo.code,str);
 
- 			historyList();
 
- 		}
 
- 	}
 
- 	
 
- 	$searchCancelBtn.on('click',function() {
 
- 		mui.back()
 
- 	})
 
- 	
 
- 	//搜索全部居民的绑定事件
 
- 	$("#searchAll").on('click', function(){
 
- 	    openWebview("search_all.html");
 
- 	});
 
- };
 
- // 页面业务处理流程开始
 
- new Promise(function(resolve, reject) {
 
- 	mui.plusReady(function() {
 
- 		resolve(true);
 
- 	})
 
- }).then(function() {
 
- 	// 获取基础环境信息
 
- 	return getBaseEnvPromise().then(function(env) {
 
- 		baseEnv = env;
 
- 	}).then(function() {
 
- 		// 获取登录基本信息
 
- 		baseInfo = getBaseInfo();
 
- 		lastTeamId = plus.storage.getItem("selectedTeamId");
 
- 		self = plus.webview.currentWebview();
 
- 		content =self.content;
 
- 		modelCode =self.modelCode;
 
- 		images =self.images;
 
- 		$searchbar.searchBar();
 
- //		openSoftKeyboard();
 
- 		$searchbarInput.focus();
 
- 		historyList();
 
- 		if(historyData.length){
 
- 			$history.show();
 
- 		}
 
- 		// 绑定页面事件
 
- 		bindEvents();
 
- 	})
 
- }).catch(function(e) {
 
- 	plus.nativeUI.closeWaiting();
 
- 	console && console.error(e);
 
- });
 
 
  |