//家庭医生咨询分页参数
var id = 0;
var pageSize = 15;
//续方咨询分页参数
var xfId = 0;
var xfPageSize = 15;
var d = dialog({contentType:'load', skin:'bk-popup'});
var patientcode ="";
var isSearch = false;
var userAgent = window.localStorage.getItem(agentName);
var scroller1 = null;
var pagetype=1;
var chooseType;
//页面初始化
$(function(){
initData();
})
//初始化数据
var initData = function(){
initScroller();
checkUserAgent();
bindEvents();
},
//初始化滚动条
initScroller = function(){
scroller1 = new IScrollPullUpDown('wrapper5',{
probeType:2,
bounceTime: 250,
bounceEasing: 'quadratic',
mouseWheel:false,
scrollbars:true,
click:true,
fadeScrollbars:true,
interactiveScrollbars:false
},pullDownAction,pullUpAction);
},
//绑定事件
bindEvents = function(){
//新增按钮事件
$(".div-add-btn").on("click",function(){
$(this).hide();
var data={};
sendPost('patient/baseinfo', data, 'json', 'post', queryFailed, queryNewSuccess);
});
//点击遮罩事件
$(".modal-overlay").on("click",function(){
$(".modal-overlay").removeClass("modal-overlay-visible");
$(".div-dialog-content").hide();
$(".div-add-btn").removeClass("active");
$(".div-add-btn").show();
});
//点击三师共管事件
$(".sanshi-icon").on("click",function(){
$(this).addClass("active");
querySignType(1);
// checkInWork(1);
// isunfinished(1);
});
//点击家庭医生事件
$(".jiating-icon").on("click",function(){
$(this).addClass("active");
querySignType(2);
// checkInWork(2);
// isunfinished(2);
});
//点击名医咨询事件
$(".mingyi-icon").on("click",function(){
$(this).addClass("active");
checkInWork(6);
// isunfinished(6);
});
//查看签约
$('#signing-btn').on('click',function(){
window.location.href = "../../qygl/html/signing_management.html";
})
//取消事件
$(".quxiao").on("click",function(){
$(".modal-overlay").trigger("click");
});
//点击发起咨询事件
$("#launch-btn").on("click",function(){
$(".div-add-btn").trigger("click");
});
//点击续方申请事件
$(".xufangsq-icon").on("click",function(){
$(this).addClass("active");
//TODO 事件处理
});
$(".c-lab-mor li").click(function() {
var index = $(this).index();
$(".c-lab-mor li").removeClass("hit");
$(this).addClass("hit");
if(index==0){//家庭医生咨询
$(".div-jiating-consultation").show();
$(".div-xufang-consultation").hide();
}else{//续方咨询
$(".div-jiating-consultation").hide();
$(".div-xufang-consultation").show();
}
});
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
},
//重写判断用户是否登录
checkUserAgent = function(){
if(!userAgent){
var agentOpenid = window.localStorage.getItem(OpenidAgent);
if(!agentOpenid){
var Request = new Object();
Request = GetRequest();
var code = Request["code"];
if(code == "" || code == null || code == undefined){
d.close();
dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'授权失败'}).show();
}
else{
d.show();
var data = {};
data.code = code;
sendPost('weixin/getOpenidByCode', data, 'json', 'post', openidFailed, openidSuccess);
}
}
else{
var jsonstr = $.parseJSON(agentOpenid);
var openid = jsonstr.openid;
window.location.href = server + "wx/html/home/html/zhmm-login.html?type=" + pagetype + "&openid=" + openid;
}
}
else{
appendFamilyMember($('#memberContainer'),function(){
if($(".c-lab-mor li.hit").index()==0){//家庭医生咨询
$("#ul_jiating_consultation").empty();
id=0;
$(".div-no-search-info").hide();
$(".div-no-info").hide();
$(".div-signing").hide();
$(".div-no-sign").hide();
$(".div-jiating-consultation").find('.inp-search').val('');
}else if($(".c-lab-mor li.hit").index()==1){//续方咨询
$("#ul_xufang_consultation").empty();
xfId=0;
$(".div-no-xf-search-info").hide();
$(".div-xufang-consultation").find('.inp-search').val('');
}
pageInit();
},function(){
//判断有授权家人,修改样式
if($('#memberContainer').is(':hidden')){
$('#wrapper5').css('top','0px');
}else{
$('#wrapper5').css('top','90px');
$('#nozixunimg').css('margin-top','230px');
$('#fazixunimg').css('margin-top','190px');
$('#nodoctor').css('margin-top','190px');
$('#signingimg').css('margin-top','180px');
}
});
pageInit();
}
},
pageInit = function(){
Request = GetRequest();
$(".main").hide();
$(".div-no-sign").hide();
$(".div-no-info").hide();
var openid = Request["openid"];
var userInfo = null;
var userAgent = window.localStorage.getItem(agentName);
if(userAgent){
userInfo= JSON.parse(userAgent);
patientcode = userInfo.represented?userInfo.represented:userInfo.uid;
}
query();
checkSignDoctor();
var params = {};
params.pageUrl = window.location.href;
$.ajax(server + "weixin/getSign", {
data: params,
dataType: "json",
type: "post",
success: function(res){
if (res.status == 200) {
var t = res.data.timestamp;
var noncestr = res.data.noncestr;
var signature = res.data.signature;
wx.config({
//debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: appId, // 必填,公众号的唯一标识
timestamp: t, // 必填,生成签名的时间戳
nonceStr: noncestr, // 必填,生成签名的随机串
signature: signature,// 必填,签名,见附录1
jsApiList: [
'closeWindow'
] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
}
}
});
},
//查询家庭医生咨询记录
consultRecord = function(){
var data = {};
data.id = id;
data.pagesize = pageSize;
data.title = $(".div-jiating-consultation").find(".inp-search").val();
sendPost('patient/consult/records', data, 'json', 'get', queryFailed, queryRecordSuccess);
},
//查询家庭医生咨询记录成功处理
queryRecordSuccess = function(res){
if (res.status == 200) {
$(".main").show();
$(".div-no-info").hide();
if (res.list.length > 0) {
var list = res.list;
var $list = $("#ul_jiating_consultation");
var $liList = "";
$('#vertical_line').show();
var searchText = $(".div-jiating-consultation").find(".inp-search").val().trim();
for (var i = 0; i < list.length; i++) {
if(list[i].type==1){
appendSsDoc(list[i],$list);
}else if(list[i].type==2){
appendHomeDoc(list[i],$list);
}else if(list[i].type==6){
appendMingyiDoc(list[i],$list);
}
id = list[i].id;
}
$("#ul_jiating_consultation li").on("tap",function(){
var code = this.getAttribute("data-code");
var type = this.getAttribute("data-type");
var doctor = this.getAttribute("data-doctor");
var evaluate = this.getAttribute("data-evaluate");
var userInfo = JSON.parse(userAgent);
var jsonData = JSON.parse(this.getAttribute("data-json"));
if(jsonData.type == 2 && jsonData.status == 0){
var url = "patient/sign_status",
params = {};
d.show();
sendPost(url, params, "json", "post", queryFailed, function(res){
d.close();
var teamCode = res["teamCode_2"];
var signCode = res["signCode_2"];
localStorage.setItem("signInfo_tab", "1");
window.location.href = "../../qygl/html/sign_info.html?code="+signCode+"&consult="+code+"&teamCode="+jsonData.teamCode+"&type="+jsonData.type+"&doctor="+jsonData.doctorCode;
});
}else{
localStorage.setItem("evaluate",evaluate);
window.location.href = "consulting-doctor.html?consult=" + code+"&type="+type+"&toUser="+userInfo.uid+"&doctor="+doctor;
}
})
ellipsisText($(".ul-consultation").find('.c-content-warp'),searchText);
scroller1.myScroll.refresh();
} else {
$('#vertical_line').hide();
if(isSearch){//查询无结果
$(".main").show();
$('#ul_jiating_consultation').show();
$(".div-no-search-info").show();
isSearch = false;
}else if(id==0){//id为0的时候证明是第一次加载,第一次加载无数据,显示无数据界面
$(".main").hide();
$(".div-no-info").show();
}else {
dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'无更多数据'}).show();
}
}
d.close();
$(".pullUp").hide();
} else {
queryFailed(res);
}
},
//查询续方咨询记录
xfConsultRecord = function(){
var data = {};
data.id = xfId;
data.pagesize = xfPageSize;
data.title = $(".div-xufang-consultation").find(".inp-search").val();
sendPost('patient/consult/records', data, 'json', 'get', queryFailed, xfQueryRecordSuccess);
},
//查询家庭医生咨询记录成功处理
xfQueryRecordSuccess = function(res){
if (res.status == 200) {
$(".main").show();
$(".div-no-info").hide();
if (res.list.length > 0) {
var list = res.list;
var $list = $("#ul_xufang_consultation");
var $liList = "";
$('#xf_vertical_line').show();
var searchText = $(".div-xufang-consultation").find(".inp-search").val().trim();
for (var i = 0; i < list.length; i++) {
appendXuFangDoc(list[i],$list);
xfId = list[i].id;
}
$("#ul_xufang_consultation li").on("tap",function(){
var code = this.getAttribute("data-code");
var type = this.getAttribute("data-type");
var doctor = this.getAttribute("data-doctor");
var evaluate = this.getAttribute("data-evaluate");
var userInfo = JSON.parse(userAgent);
var jsonData = JSON.parse(this.getAttribute("data-json"));
if(jsonData.type == 2 && jsonData.status == 0){
var url = "patient/sign_status",
params = {};
d.show();
sendPost(url, params, "json", "post", queryFailed, function(res){
d.close();
var teamCode = res["teamCode_2"];
var signCode = res["signCode_2"];
localStorage.setItem("signInfo_tab", "1");
window.location.href = "../../qygl/html/sign_info.html?code="+signCode+"&consult="+code+"&teamCode="+jsonData.teamCode+"&type="+jsonData.type+"&doctor="+jsonData.doctorCode;
});
}else{
localStorage.setItem("evaluate",evaluate);
window.location.href = "prescription-consulting.html?consult=" + code+"&type="+type+"&toUser="+userInfo.uid+"&doctor="+doctor;
}
})
ellipsisText($(".xf-ul-consultation").find('.c-content-warp'),searchText);
scroller1.myScroll.refresh();
} else {
$('#xf_vertical_line').hide();
if(isSearch){//查询无结果
$(".main").show();
$('#ul_xufang_consultation').show();
$(".div-no-xf-search-info").show();
isSearch = false;
}else if(xfId==0){//xfId为0的时候证明是第一次加载,第一次加载无数据,显示无数据界面
$(".main").hide();
$(".div-no-info").show();
}else {
dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'无更多数据'}).show();
}
}
d.close();
$(".pullUp").hide();
} else {
queryFailed(res);
}
},
//拼接家庭咨询
appendHomeDoc = function(rowData,$list){
//默认咨询结束状态div-ended//待评价div-novalue
var divStatus = "";
if(rowData.status==0){
//咨询中
divStatus = "div-beginning";
}else if(rowData.evaluate ==1){
divStatus = "div-hasvalue";//是否有评价 0无 1有
}else{
divStatus = "div-novalue";
}
var $li = document.createElement("li");
$li.setAttribute('data-code', rowData.code);
$li.setAttribute('data-type', rowData.type);
$li.setAttribute('data-evaluate', rowData.evaluate ? rowData.evaluate :0);
$li.setAttribute('data-doctor', rowData.doctorCode);
$li.setAttribute('data-json', JSON.stringify(rowData));
var content = '
'+
''+
''+
'
'+
''+rowData.czrq+''+
'家庭医生咨询'+
'
'+
'
'+
'问题:'+
'
'+
'
';
$li.innerHTML=content;
$list.append($li);
},
//拼接续方咨询
appendXuFangDoc = function(rowData,$list){
//默认咨询结束状态div-ended//待评价div-novalue
var divStatus = "";
if(rowData.status==0){
//咨询中
divStatus = "div-beginning";
}else if(rowData.evaluate ==1){
divStatus = "div-hasvalue";//是否有评价 0无 1有
}else{
divStatus = "div-novalue";
}
var $li = document.createElement("li");
$li.setAttribute('data-code', rowData.code);
$li.setAttribute('data-type', rowData.type);
$li.setAttribute('data-evaluate', rowData.evaluate ? rowData.evaluate :0);
$li.setAttribute('data-doctor', rowData.doctorCode);
$li.setAttribute('data-json', JSON.stringify(rowData));
var content = ''+
''+
''+
'
'+
''+rowData.czrq+''+
'续方咨询'+
'
'+
'
'+
''+
'
'+
'
'+
'
'+
'药品1 数量'+
'
'+
'
'+
'药品2 数量'+
'
'+
'
'+
'
';
$li.innerHTML=content;
$list.append($li);
},
//拼接三师咨询
appendSsDoc = function(rowData,$list){
//默认咨询结束状态
var divStatus = "div-ended";
if(rowData.status==0){
//咨询中
divStatus = "div-beginning";
}
var $li = document.createElement("li");
$li.setAttribute('data-code', rowData.code);
$li.setAttribute('data-type', rowData.type);
$li.setAttribute('data-doctor', rowData.doctorCode);
$li.setAttribute('data-json', JSON.stringify(rowData));
var content = ''+
''+
''+
'
'+
''+rowData.czrq+''+
'慢病管理咨询'+
'
'+
'
'+
'问题:'+
'
'+
'
';
$li.innerHTML=content;
$list.append($li);
},
//拼接名医咨询
appendMingyiDoc = function(rowData,$list){
//默认咨询结束状态
var divStatus = "div-ended";
if(rowData.status==0){
//咨询中
divStatus = "div-beginning";
}
var $li = document.createElement("li");
$li.setAttribute('data-doctor', rowData.doctorCode);
$li.setAttribute('data-code', rowData.code);
$li.setAttribute('data-type', rowData.type);
$li.setAttribute('data-json', JSON.stringify(rowData));
var content = ''+
''+
''+
'
'+
''+rowData.czrq+''+
'名医咨询'+
'
'+
'
'+
'问题:'+
'
'+
'
';
$li.innerHTML=content;
$list.append($li);
},
//下拉刷新
pullDownAction = function(theScrollerTemp){
// setTimeout(function () {
// $("#ul_jiating_consultation").html("");
// id=0;
// consultRecord();
// }, 1000);
}
//上拉加载数据
pullUpAction = function(theScrollerTemp){
$(".pullUp").show();
setTimeout(function () {
if($(".c-lab-mor li.hit").index()==0){//家庭医生咨询
consultRecord();
}else if($(".c-lab-mor li.hit").index()==1){//续方咨询
xfConsultRecord();
}
}, 1000);
}
//查询用户信息
query = function(){
d.show();
var data={};
sendPost('patient/baseinfo', data, 'json', 'post', queryUserFailed, querySuccess);
},
//校验手机是否签约
checkSignDoctor = function(){
d.show();
var userAgent = window.localStorage.getItem(agentName);
if(userAgent){
var data = {};
$.ajax(server + "patient/is_sign", {
data: data,
type: 'POST',
dataType: 'json',
beforeSend: function(request) {
request.setRequestHeader("userAgent", userAgent);
},
error: function(res) {
$(".pullUp").hide();
d.close();
if(res.status == 999 || res.status == 998 || res.status == 997){
loginUrl(res.status);
return;
}
dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'校验失败'}).show();
},
success: function(res) {
d.close();
if(res.status == 999 || res.status == 998 || res.status == 997){
loginUrl(res.status);
}
else if (res.status == 200) {
var is_sign = res.data;//0未签约,1已签约
if(is_sign==1 || is_sign <= -1){//1已经签约的 -1签约已到期或未签约
consultRecord();
xfConsultRecord();
}else if(is_sign==0){
//签约未完成
$('.div-signing').show();
}
}
else {
//不为200
$(".pullUp").hide();
dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:res.msg}).show();
}
}
})
}
else{
$(".pullUp").hide();
dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'用户信息错误'}).show();
}
},
//查询用户成功
querySuccess = function(res){
if (res.status == 200) {
var data = res.data;
var ssc = data.ssc;
if(!ssc) ssc = "";
if(!ssc || ssc==""){
//用户未办理医保卡
dialog({
content: '对不起,尚未办理医保卡或在16年6月份之后办理医保卡的用户暂不支持签约~',
cancelValue: '我知道了',
cancel: function () {
wx.closeWindow();
}
}).showModal();
}else{
return;
}
} else {
queryFailed(res);
}
},
//查询用户失败
queryUserFailed = function(res){
dialog({
content: '获取用户信息失败!',
cancelValue: '我知道了',
cancel: function () {
wx.closeWindow();
}
}).showModal();
},
//查询失败提示
queryFailed = function(res){
d.close();
if (res && res.msg) {
dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:res.msg}).show();
} else {
dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'加载失败'}).show();
}
},
//查询患者基本信息成功处理
queryNewSuccess = function(res){
if(res.status == 200){
var data = res.data;
if(data.sign ==0){//未签约一般不会发生进来咨询意见校验
dialog({
content: '您还没有签约家庭医生哦,
快去寻找属于您的家庭医生吧~',
okValue:'前往签约',
ok: function (){
window.location.href = "../../qygl/html/signing_management.html";
},
cancelValue: '我知道了',
cancel: function () {
$(".div-add-btn").show();
// wx.closeWindow();
}
}).showModal();
}
else if(data.sign ==1 || data.sign ==2 || data.sign ==3){//1三师签约 2家庭签约 3三师+家庭
$(this).hide();
$(".div-dialog-content").show();
$(".modal-overlay").addClass("modal-overlay-visible");
if(data.sign ==1){//1三师签约
$(".jiating-icon").hide();
$(".sanshi-icon").addClass("sanshi-icon1");
}else if(data.sign ==2){//家庭签约
$(".sanshi-icon").hide();
}
}else{
queryFailed(res);
}
}
}
//获取签约医生
checkInWork = function(type){
if(type==6){//名医咨询
window.location.href = "select-consult-doctor.html";
} else {
sendPost('/patient/sign_doctors', {patientCode:patientcode}, 'json', 'post', queryFailed, function(res){
if(res.status==200){
var doctorArray = res.familyDoctors;//家庭
if(type==1&&doctorArray.length==0){//三师
doctorArray = res.teamDoctors
}
if(doctorArray.length==0){
doctorArray = res.teamDoctors
}
if(doctorArray){
var doctorInfo ="",
qkDoctor="";
for(var j in doctorArray){
var dataTemp = doctorArray[j];
if(dataTemp.level=="3" || dataTemp.teamlevel=="3"){
doctorInfo = dataTemp;//取出健康管理师
}
if(dataTemp.level == "2" || dataTemp.teamlevel=="2"){
qkDoctor = dataTemp; //取出全科医生
}
}
if(!doctorInfo){
doctorInfo = qkDoctor;
}
if(doctorInfo!=""){
checkDocInWork(type,doctorInfo);
}else{
//三师咨询或家庭签约咨询,跳转到新增咨询页面
window.location.href = "add-consult.html?type="+type;
}
}
}else{
queryFailed(res);
}
})
}
}
//判断医生是否在工作时间内
checkDocInWork = function(type,doctor){
sendPost('patient/consult/is_doctor_working', {doctor:doctor.code}, 'json', 'get', queryFailed, function(res){
if(res.status==200){
if(res.data==2){
dialog({
content: '您好,由于您的签约医生工作繁忙,设置了每日回复咨询的时间段,所以,在该时间段外的时间,您的咨询将不会马上获得医生的回复。',
okValue:'查看医生工作时间',
ok: function (){
window.location.href = "doctor-work-hours.html?doctor=" + doctor.code;
},
cancelValue: '继续新增咨询',
cancel: function () {
window.location.href = "add-consult.html?type=" +type+"&doctorCode="+doctor.code;
}
}).showModal();
}
/* 解决bug2825,家庭医生咨询不做是否接受咨询的判断
else if(res.data==0){//医生不接受咨询
dialog({
content: '对不起,该医生暂时关闭了咨询功能,
暂时无法咨询该医生',
cancelValue: '我知道了',
cancel: function () {
wx.closeWindow();
}
}).showModal();
}*/
else{
//三师咨询或家庭签约咨询,跳转到新增咨询页面
window.location.href = "add-consult.html?type="+type+"&doctorCode="+doctor.code;
}
}else{
queryFailed(res);
}
})
},
//判断咨询是否结束
isunfinished = function(type){
sendPost('/patient/consult/unfinished', {}, 'json', 'get', queryFailed, function(res){
if(res.status===200){
if(res.data.length<=0){//无咨询记录
checkInWork(type);
}else{
var isMax = false;
var consult = null;
for(var j in res.data){
if(type == res.data[j].type){
consult = res.data[j].consult;
isMax = true;
}
}
if(isMax){//三师咨询或家庭签约咨询或名医咨询
dialog({
content: '十分抱歉,您的上一次咨询
还未结束,所以不能再发起新的咨询哦',
okValue:'前往查看',
ok: function (){
var rep = userInfo.represented?userInfo.represented:userInfo.uid;
window.location.href = "consulting-doctor.html?consult=" + consult+"&toUser="+rep;
},
cancelValue: '我知道了',
cancel: function () {
$(".modal-overlay").trigger("click");
$(".sanshi-icon").removeClass("active");
$(".jiating-icon").removeClass("active");
$(".mingyi-icon").removeClass("active");
return;
}
}).showModal();
}else{
if(type==6){//名医咨询
window.location.href = "select-consult-doctor.html";
}else{//三师咨询或家庭签约咨询,跳转到新增咨询页面
alert(2)
window.location.href = "add-consult.html?type="+type;
}
}
}
}else{
queryFailed(res);
}
});
},
//查询签约类型
querySignType = function(type){
chooseType = type;
d.show();
sendPost('patient/sign_doctors', {}, 'json', 'post', querySignTypeFailed, querySignTypeSuccess);
},
//查询签约类型失败处理
querySignTypeFailed = function(res){
d.close();
if (res && res.msg) {
dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:res.msg}).show();
} else {
dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'获取咨询类型失败'}).show();
}
},
//查询签约类型成功处理
querySignTypeSuccess = function(data){
if (data.status == 200) {
var doctors = "";
switch(Number(chooseType)) {
case 1: doctors = data.teamDoctors; break;
case 2: doctors = data.familyDoctors; break;
default: break;
}
var docInfo,docQkInfo;
$.each(doctors, function(i, v) {
if(v.teamlevel){
if(v.teamlevel == 3){
docInfo = v;
}
if(v.teamlevel == 2){
docQkInfo = v;
}
}else{
if(v.level == 3){
docInfo = v;
}
if(v.level == 2){
docQkInfo = v;
}
}
});
if(!docInfo){
docInfo = docQkInfo;
}
sendPost('patient/consult/is_consult_unfinished', {doctor: docInfo ? docInfo.code : docQkInfo.code}, 'json', 'post',
function(res){
d.close();
if (res && res.msg) {
dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:res.msg}).show();
} else {
dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'获取是否存在咨询失败'}).show();
}
}, function(res){
d.close();
if(res.status == 200){
if(res.data == ""){
//不存在
checkInWork(chooseType);
} else {
dialog({
content: '十分抱歉,您与'+ docInfo.name +'医生还有
未结束咨询,无法发起新的咨询',
okValue:'前往查看',
ok: function (){
var userInfo = JSON.parse(userAgent);
var rep = userInfo.represented?userInfo.represented:userInfo.uid;
window.location.href = "consulting-doctor.html?consult=" + res.data +"&toUser="+rep;
},
cancelValue: '我知道了',
cancel: function () {
$(".modal-overlay").trigger("click");
$(".sanshi-icon").removeClass("active");
$(".jiating-icon").removeClass("active");
$(".mingyi-icon").removeClass("active");
return;
}
}).showModal();
}
} else {
dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:res.msg}).show();
}
}
);
} else {
querySignTypeFailed(res);
}
};
// 搜索框
var $searchbar = $('.searchbar'),
// 搜索输入框
$searchbarInput = $('.searchbar input'),
// 搜索取消按钮
$searchCancelBtn = $('.searchbar-cancel'),
// 家庭医生咨询-搜索框下面悬浮的搜索提示
$searchSuggest = $('#search_suggest_text');
// 续方咨询-搜索框下面悬浮的搜索提示
$xfSearchSuggest = $('#xf_search_suggest_text');
// 搜索框初始化
$searchbar.addClass("searchbar-active");
// 控制搜索关键字悬浮提示的显示
var getReqPromise = function(url, data) {
return new Promise(function(resolve, reject) {
sendPost(url, data, "json", "post",
function queryFailed (req) {
dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'加载失败'}).show();
// 开启示例数据
//resolve({});
}
, function success(req) {
resolve(req);
});
});
},
showSearchSuggest = function(text) {
var suggestText = '搜索“'+text+'”';
// 如果text不为空,则显示;否则隐藏
if(text&&text.trim().length) {
if($(".c-lab-mor li.hit").index()==0){//家庭医生咨询
$searchSuggest.text(suggestText);
$searchSuggest.show();
}else if($(".c-lab-mor li.hit").index()==1){//续方咨询
$xfSearchSuggest.text(suggestText);
$xfSearchSuggest.show();
}
} else {
if($(".c-lab-mor li.hit").index()==0){//家庭医生咨询
$searchSuggest.text('');
$searchSuggest.hide();
}else if($(".c-lab-mor li.hit").index()==1){//续方咨询
$xfSearchSuggest.text('');
$xfSearchSuggest.hide();
}
}
},
getRowProps = function ($el) {
var $textEllipsis = $el.find('.j-text-ellipsis'),
$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,''+kw+'');
});
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 = 5,
// 行数
rowNum = 3,
// 预计显示总字符数
expectedNum = chartNum * rowNum - exceptNum,
$target = $el.find('.j-text-ellipsis'),
// 目标文本
text = $target.attr('data-text').trim(),
length = text.length,
// 关键字数组
kws = searchText.trim().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) {
//$el.ellipsis({ row: 2});
_.each($elements,function(el) {
highlineKeyword($(el),searchText)
});
},
// 搜索框搜索执行方法
search = function () {
isSearch = true;
d.show();
if($(".c-lab-mor li.hit").index()==0){//家庭医生咨询
$searchSuggest.text('');
$searchSuggest.hide();
}else if($(".c-lab-mor li.hit").index()==1){//续方咨询
$xfSearchSuggest.text('');
$xfSearchSuggest.hide();
}
$searchCancelBtn.hide();
$searchCancelBtn.css("opacity","0");
$(".c-lab-mor li.hit").index()==0?$("#ul_jiating_consultation").html(""):$("#ul_xufang_consultation").html("");
if($(".c-lab-mor li.hit").index()==0){//家庭医生咨询
id=0;
consultRecord();
}else if($(".c-lab-mor li.hit").index()==1){//续方咨询
xfId=0;
xfConsultRecord();
}
$(".div-no-info").hide();
$(".div-no-search-info").hide();
$(".div-no-sign").hide();
$(".c-lab-mor li.hit").index()==0?$('#ul_jiating_consultation').show():$('#ul_xufang_consultation').show();
},
// 重置搜索结果的容器高度(为了让滚动条出现在容器内部,而不引起外部内容滚动)
resetResultWrapHeight = function() {
var winHeight = $(window).height(),
diff = 45,
$wrap = $('.div-content');
$wrap.height(winHeight-diff);
},
// 监听窗口大小变化,重置所属区列表、社区列表列表容器高度
resultWrapAutoAdapt = function() {
resetResultWrapHeight();
$(window).on('resize',function() {
resetResultWrapHeight();
});
};
//取消事件
$searchCancelBtn.on('click',function() {
$(this).hide();
$('.inp-search').val('');
if($(".c-lab-mor li.hit").index()==0){//家庭医生咨询
$searchSuggest.text('');
$searchSuggest.hide();
}else if($(".c-lab-mor li.hit").index()==1){//续方咨询
$xfSearchSuggest.text('');
$xfSearchSuggest.hide();
}
search();
});
$searchSuggest.on('click',function() {
search();
});
$xfSearchSuggest.on('click',function() {
search();
});
//搜索框事件
$(".inp-search").on("input",function(){
var text = $(this).val().trim();
if($(".c-lab-mor li.hit").index()==0){//家庭医生咨询
$('#ul_jiating_consultation').hide();
$('#vertical_line').hide();
}else if($(".c-lab-mor li.hit").index()==1){//续方咨询
$('#ul_xufang_consultation').hide();
$('#xf_vertical_line').hide();
}
showSearchSuggest(text);
if(text){
$searchCancelBtn.show();
$searchCancelBtn.css("opacity","1");
}else{
$searchCancelBtn.hide();
$searchCancelBtn.css("opacity","0");
search();
}
}).on('keydown',function(e) {
if (e.which === 13) {
search();
}
})