doctor-consultation.js 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077
  1. //家庭医生咨询分页参数
  2. var id = 0;
  3. var pageSize = 15;
  4. //续方咨询分页参数
  5. var xfId = 0;
  6. var xfPageSize = 15;
  7. var d = dialog({contentType:'load', skin:'bk-popup'});
  8. var patientcode ="";
  9. var isSearch = false;
  10. var userAgent = window.localStorage.getItem(agentName);
  11. var scroller1 = null;
  12. var pagetype=1;
  13. var chooseType;
  14. //页面初始化
  15. $(function(){
  16. initData();
  17. })
  18. //初始化数据
  19. var initData = function(){
  20. initScroller();
  21. checkUserAgent();
  22. bindEvents();
  23. },
  24. //初始化滚动条
  25. initScroller = function(){
  26. scroller1 = new IScrollPullUpDown('wrapper5',{
  27. probeType:2,
  28. bounceTime: 250,
  29. bounceEasing: 'quadratic',
  30. mouseWheel:false,
  31. scrollbars:true,
  32. click:true,
  33. fadeScrollbars:true,
  34. interactiveScrollbars:false
  35. },pullDownAction,pullUpAction);
  36. },
  37. //绑定事件
  38. bindEvents = function(){
  39. //新增按钮事件
  40. $(".div-add-btn").on("click",function(){
  41. $(this).hide();
  42. var data={};
  43. sendPost('patient/baseinfo', data, 'json', 'post', queryFailed, queryNewSuccess);
  44. });
  45. //点击遮罩事件
  46. $(".modal-overlay").on("click",function(){
  47. $(".modal-overlay").removeClass("modal-overlay-visible");
  48. $(".div-dialog-content").hide();
  49. $(".div-add-btn").removeClass("active");
  50. $(".div-add-btn").show();
  51. });
  52. //点击三师共管事件
  53. $(".sanshi-icon").on("click",function(){
  54. $(this).addClass("active");
  55. querySignType(1);
  56. // checkInWork(1);
  57. // isunfinished(1);
  58. });
  59. //点击家庭医生事件
  60. $(".jiating-icon").on("click",function(){
  61. $(this).addClass("active");
  62. querySignType(2);
  63. // checkInWork(2);
  64. // isunfinished(2);
  65. });
  66. //点击名医咨询事件
  67. $(".mingyi-icon").on("click",function(){
  68. $(this).addClass("active");
  69. checkInWork(6);
  70. // isunfinished(6);
  71. });
  72. //查看签约
  73. $('#signing-btn').on('click',function(){
  74. window.location.href = "../../qygl/html/signing_management.html";
  75. })
  76. //取消事件
  77. $(".quxiao").on("click",function(){
  78. $(".modal-overlay").trigger("click");
  79. });
  80. //点击发起咨询事件
  81. $("#launch-btn").on("click",function(){
  82. $(".div-add-btn").trigger("click");
  83. });
  84. //点击续方申请事件
  85. $(".xufangsq-icon").on("click",function(){
  86. $(this).addClass("active");
  87. //TODO 事件处理
  88. });
  89. $(".c-lab-mor li").click(function() {
  90. var index = $(this).index();
  91. $(".c-lab-mor li").removeClass("hit");
  92. $(this).addClass("hit");
  93. if(index==0){//家庭医生咨询
  94. $(".div-jiating-consultation").show();
  95. $(".div-xufang-consultation").hide();
  96. }else{//续方咨询
  97. $(".div-jiating-consultation").hide();
  98. $(".div-xufang-consultation").show();
  99. }
  100. });
  101. document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
  102. },
  103. //重写判断用户是否登录
  104. checkUserAgent = function(){
  105. if(!userAgent){
  106. var agentOpenid = window.localStorage.getItem(OpenidAgent);
  107. if(!agentOpenid){
  108. var Request = new Object();
  109. Request = GetRequest();
  110. var code = Request["code"];
  111. if(code == "" || code == null || code == undefined){
  112. d.close();
  113. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'授权失败'}).show();
  114. }
  115. else{
  116. d.show();
  117. var data = {};
  118. data.code = code;
  119. sendPost('weixin/getOpenidByCode', data, 'json', 'post', openidFailed, openidSuccess);
  120. }
  121. }
  122. else{
  123. var jsonstr = $.parseJSON(agentOpenid);
  124. var openid = jsonstr.openid;
  125. window.location.href = server + "wx/html/home/html/zhmm-login.html?type=" + pagetype + "&openid=" + openid;
  126. }
  127. }
  128. else{
  129. appendFamilyMember($('#memberContainer'),function(){
  130. if($(".c-lab-mor li.hit").index()==0){//家庭医生咨询
  131. $("#ul_jiating_consultation").empty();
  132. id=0;
  133. $(".div-no-search-info").hide();
  134. $(".div-no-info").hide();
  135. $(".div-signing").hide();
  136. $(".div-no-sign").hide();
  137. $(".div-jiating-consultation").find('.inp-search').val('');
  138. }else if($(".c-lab-mor li.hit").index()==1){//续方咨询
  139. $("#ul_xufang_consultation").empty();
  140. xfId=0;
  141. $(".div-no-xf-search-info").hide();
  142. $(".div-xufang-consultation").find('.inp-search').val('');
  143. }
  144. pageInit();
  145. },function(){
  146. //判断有授权家人,修改样式
  147. if($('#memberContainer').is(':hidden')){
  148. $('#wrapper5').css('top','0px');
  149. }else{
  150. $('#wrapper5').css('top','90px');
  151. $('#nozixunimg').css('margin-top','230px');
  152. $('#fazixunimg').css('margin-top','190px');
  153. $('#nodoctor').css('margin-top','190px');
  154. $('#signingimg').css('margin-top','180px');
  155. }
  156. });
  157. pageInit();
  158. }
  159. },
  160. pageInit = function(){
  161. Request = GetRequest();
  162. $(".main").hide();
  163. $(".div-no-sign").hide();
  164. $(".div-no-info").hide();
  165. var openid = Request["openid"];
  166. var userInfo = null;
  167. var userAgent = window.localStorage.getItem(agentName);
  168. if(userAgent){
  169. userInfo= JSON.parse(userAgent);
  170. patientcode = userInfo.represented?userInfo.represented:userInfo.uid;
  171. }
  172. query();
  173. checkSignDoctor();
  174. var params = {};
  175. params.pageUrl = window.location.href;
  176. $.ajax(server + "weixin/getSign", {
  177. data: params,
  178. dataType: "json",
  179. type: "post",
  180. success: function(res){
  181. if (res.status == 200) {
  182. var t = res.data.timestamp;
  183. var noncestr = res.data.noncestr;
  184. var signature = res.data.signature;
  185. wx.config({
  186. //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  187. appId: appId, // 必填,公众号的唯一标识
  188. timestamp: t, // 必填,生成签名的时间戳
  189. nonceStr: noncestr, // 必填,生成签名的随机串
  190. signature: signature,// 必填,签名,见附录1
  191. jsApiList: [
  192. 'closeWindow'
  193. ] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
  194. });
  195. }
  196. }
  197. });
  198. },
  199. //查询家庭医生咨询记录
  200. consultRecord = function(){
  201. var data = {};
  202. data.id = id;
  203. data.pagesize = pageSize;
  204. data.title = $(".div-jiating-consultation").find(".inp-search").val();
  205. sendPost('patient/consult/records', data, 'json', 'get', queryFailed, queryRecordSuccess);
  206. },
  207. //查询家庭医生咨询记录成功处理
  208. queryRecordSuccess = function(res){
  209. if (res.status == 200) {
  210. $(".main").show();
  211. $(".div-no-info").hide();
  212. if (res.list.length > 0) {
  213. var list = res.list;
  214. var $list = $("#ul_jiating_consultation");
  215. var $liList = "";
  216. $('#vertical_line').show();
  217. var searchText = $(".div-jiating-consultation").find(".inp-search").val().trim();
  218. for (var i = 0; i < list.length; i++) {
  219. if(list[i].type==1){
  220. appendSsDoc(list[i],$list);
  221. }else if(list[i].type==2){
  222. appendHomeDoc(list[i],$list);
  223. }else if(list[i].type==6){
  224. appendMingyiDoc(list[i],$list);
  225. }
  226. id = list[i].id;
  227. }
  228. $("#ul_jiating_consultation li").on("tap",function(){
  229. var code = this.getAttribute("data-code");
  230. var type = this.getAttribute("data-type");
  231. var doctor = this.getAttribute("data-doctor");
  232. var evaluate = this.getAttribute("data-evaluate");
  233. var userInfo = JSON.parse(userAgent);
  234. var jsonData = JSON.parse(this.getAttribute("data-json"));
  235. if(jsonData.type == 2 && jsonData.status == 0){
  236. var url = "patient/sign_status",
  237. params = {};
  238. d.show();
  239. sendPost(url, params, "json", "post", queryFailed, function(res){
  240. d.close();
  241. var teamCode = res["teamCode_2"];
  242. var signCode = res["signCode_2"];
  243. localStorage.setItem("signInfo_tab", "1");
  244. window.location.href = "../../qygl/html/sign_info.html?code="+signCode+"&consult="+code+"&teamCode="+jsonData.teamCode+"&type="+jsonData.type+"&doctor="+jsonData.doctorCode;
  245. });
  246. }else{
  247. localStorage.setItem("evaluate",evaluate);
  248. window.location.href = "consulting-doctor.html?consult=" + code+"&type="+type+"&toUser="+userInfo.uid+"&doctor="+doctor;
  249. }
  250. })
  251. ellipsisText($(".ul-consultation").find('.c-content-warp'),searchText);
  252. scroller1.myScroll.refresh();
  253. } else {
  254. $('#vertical_line').hide();
  255. if(isSearch){//查询无结果
  256. $(".main").show();
  257. $('#ul_jiating_consultation').show();
  258. $(".div-no-search-info").show();
  259. isSearch = false;
  260. }else if(id==0){//id为0的时候证明是第一次加载,第一次加载无数据,显示无数据界面
  261. $(".main").hide();
  262. $(".div-no-info").show();
  263. }else {
  264. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'无更多数据'}).show();
  265. }
  266. }
  267. d.close();
  268. $(".pullUp").hide();
  269. } else {
  270. queryFailed(res);
  271. }
  272. },
  273. //查询续方咨询记录
  274. xfConsultRecord = function(){
  275. var data = {};
  276. data.id = xfId;
  277. data.pagesize = xfPageSize;
  278. data.title = $(".div-xufang-consultation").find(".inp-search").val();
  279. sendPost('patient/consult/records', data, 'json', 'get', queryFailed, xfQueryRecordSuccess);
  280. },
  281. //查询家庭医生咨询记录成功处理
  282. xfQueryRecordSuccess = function(res){
  283. if (res.status == 200) {
  284. $(".main").show();
  285. $(".div-no-info").hide();
  286. if (res.list.length > 0) {
  287. var list = res.list;
  288. var $list = $("#ul_xufang_consultation");
  289. var $liList = "";
  290. $('#xf_vertical_line').show();
  291. var searchText = $(".div-xufang-consultation").find(".inp-search").val().trim();
  292. for (var i = 0; i < list.length; i++) {
  293. appendXuFangDoc(list[i],$list);
  294. xfId = list[i].id;
  295. }
  296. $("#ul_xufang_consultation li").on("tap",function(){
  297. var code = this.getAttribute("data-code");
  298. var type = this.getAttribute("data-type");
  299. var doctor = this.getAttribute("data-doctor");
  300. var evaluate = this.getAttribute("data-evaluate");
  301. var userInfo = JSON.parse(userAgent);
  302. var jsonData = JSON.parse(this.getAttribute("data-json"));
  303. if(jsonData.type == 2 && jsonData.status == 0){
  304. var url = "patient/sign_status",
  305. params = {};
  306. d.show();
  307. sendPost(url, params, "json", "post", queryFailed, function(res){
  308. d.close();
  309. var teamCode = res["teamCode_2"];
  310. var signCode = res["signCode_2"];
  311. localStorage.setItem("signInfo_tab", "1");
  312. window.location.href = "../../qygl/html/sign_info.html?code="+signCode+"&consult="+code+"&teamCode="+jsonData.teamCode+"&type="+jsonData.type+"&doctor="+jsonData.doctorCode;
  313. });
  314. }else{
  315. localStorage.setItem("evaluate",evaluate);
  316. window.location.href = "prescription-consulting.html?consult=" + code+"&type="+type+"&toUser="+userInfo.uid+"&doctor="+doctor;
  317. }
  318. })
  319. ellipsisText($(".xf-ul-consultation").find('.c-content-warp'),searchText);
  320. scroller1.myScroll.refresh();
  321. } else {
  322. $('#xf_vertical_line').hide();
  323. if(isSearch){//查询无结果
  324. $(".main").show();
  325. $('#ul_xufang_consultation').show();
  326. $(".div-no-xf-search-info").show();
  327. isSearch = false;
  328. }else if(xfId==0){//xfId为0的时候证明是第一次加载,第一次加载无数据,显示无数据界面
  329. $(".main").hide();
  330. $(".div-no-info").show();
  331. }else {
  332. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'无更多数据'}).show();
  333. }
  334. }
  335. d.close();
  336. $(".pullUp").hide();
  337. } else {
  338. queryFailed(res);
  339. }
  340. },
  341. //拼接家庭咨询
  342. appendHomeDoc = function(rowData,$list){
  343. //默认咨询结束状态div-ended//待评价div-novalue
  344. var divStatus = "";
  345. if(rowData.status==0){
  346. //咨询中
  347. divStatus = "div-beginning";
  348. }else if(rowData.evaluate ==1){
  349. divStatus = "div-hasvalue";//是否有评价 0无 1有
  350. }else{
  351. divStatus = "div-novalue";
  352. }
  353. var $li = document.createElement("li");
  354. $li.setAttribute('data-code', rowData.code);
  355. $li.setAttribute('data-type', rowData.type);
  356. $li.setAttribute('data-evaluate', rowData.evaluate ? rowData.evaluate :0);
  357. $li.setAttribute('data-doctor', rowData.doctorCode);
  358. $li.setAttribute('data-json', JSON.stringify(rowData));
  359. var content = '<div class="outer-circle">'+
  360. '<div class="inner-circle s-bc-12B7F5"></div>'+
  361. '</div>'+
  362. '<div class="'+divStatus+'"></div>'+
  363. '<div class="record-card">'+
  364. '<div class="card-title s-bc-12B7F5">'+
  365. '<span class="span-date">'+rowData.czrq+'</span>'+
  366. '<span class="f-fr">家庭医生咨询</span>'+
  367. '</div>'+
  368. '<p class="c-content-warp">'+
  369. '<span class="c-323232 c-f14 ">问题:</span><span class="c-dest-content c-f14 j-text-ellipsis" data-text="'+rowData.symptoms+'"></span>'+
  370. '</p>'+
  371. '</div>';
  372. $li.innerHTML=content;
  373. $list.append($li);
  374. },
  375. //拼接续方咨询
  376. appendXuFangDoc = function(rowData,$list){
  377. //默认咨询结束状态div-ended//待评价div-novalue
  378. var divStatus = "";
  379. if(rowData.status==0){
  380. //咨询中
  381. divStatus = "div-beginning";
  382. }else if(rowData.evaluate ==1){
  383. divStatus = "div-hasvalue";//是否有评价 0无 1有
  384. }else{
  385. divStatus = "div-novalue";
  386. }
  387. var $li = document.createElement("li");
  388. $li.setAttribute('data-code', rowData.code);
  389. $li.setAttribute('data-type', rowData.type);
  390. $li.setAttribute('data-evaluate', rowData.evaluate ? rowData.evaluate :0);
  391. $li.setAttribute('data-doctor', rowData.doctorCode);
  392. $li.setAttribute('data-json', JSON.stringify(rowData));
  393. var content = '<div class="outer-circle">'+
  394. '<div class="inner-circle s-bc-12B7F5"></div>'+
  395. '</div>'+
  396. '<div class="'+divStatus+'"></div>'+
  397. '<div class="record-card">'+
  398. '<div class="card-title s-bc-12B7F5">'+
  399. '<span class="span-date">'+rowData.czrq+'</span>'+
  400. '<span class="f-fr">续方咨询</span>'+
  401. '</div>'+
  402. '<p class="c-content-warp div-xufang-disease">'+
  403. '<span class="c-dest-content c-f14 j-text-ellipsis" data-text="'+rowData.symptoms+'"></span>'+
  404. '</p>'+
  405. '<div class="div-content-warp">'+
  406. '<div class="div-drug">'+
  407. '药品1 数量'+
  408. '</div>'+
  409. '<div class="div-drug">'+
  410. '药品2 数量'+
  411. '</div>'+
  412. '</div>'+
  413. '</div>';
  414. $li.innerHTML=content;
  415. $list.append($li);
  416. },
  417. //拼接三师咨询
  418. appendSsDoc = function(rowData,$list){
  419. //默认咨询结束状态
  420. var divStatus = "div-ended";
  421. if(rowData.status==0){
  422. //咨询中
  423. divStatus = "div-beginning";
  424. }
  425. var $li = document.createElement("li");
  426. $li.setAttribute('data-code', rowData.code);
  427. $li.setAttribute('data-type', rowData.type);
  428. $li.setAttribute('data-doctor', rowData.doctorCode);
  429. $li.setAttribute('data-json', JSON.stringify(rowData));
  430. var content = '<div class="outer-circle">'+
  431. '<div class="inner-circle s-bc-75BF00"></div>'+
  432. '</div>'+
  433. '<div class="'+divStatus+'"></div>'+
  434. '<div class="record-card">'+
  435. '<div class="card-title s-bc-75BF00">'+
  436. '<span class="span-date">'+rowData.czrq+'</span>'+
  437. '<span class="f-fr">慢病管理咨询</span>'+
  438. '</div>'+
  439. '<p class="c-content-warp">'+
  440. '<span class="c-323232 c-f14 ">问题:</span><span class="c-dest-content c-f14 j-text-ellipsis" data-text="'+rowData.symptoms+'"></span>'+
  441. '</p>'+
  442. '</div>';
  443. $li.innerHTML=content;
  444. $list.append($li);
  445. },
  446. //拼接名医咨询
  447. appendMingyiDoc = function(rowData,$list){
  448. //默认咨询结束状态
  449. var divStatus = "div-ended";
  450. if(rowData.status==0){
  451. //咨询中
  452. divStatus = "div-beginning";
  453. }
  454. var $li = document.createElement("li");
  455. $li.setAttribute('data-doctor', rowData.doctorCode);
  456. $li.setAttribute('data-code', rowData.code);
  457. $li.setAttribute('data-type', rowData.type);
  458. $li.setAttribute('data-json', JSON.stringify(rowData));
  459. var content = '<div class="outer-circle">'+
  460. '<div class="inner-circle s-bc-FF9526"></div>'+
  461. '</div>'+
  462. '<div class="'+divStatus+'"></div>'+
  463. '<div class="record-card">'+
  464. '<div class="card-title s-bc-FF9526">'+
  465. '<span class="span-date">'+rowData.czrq+'</span>'+
  466. '<span class="f-fr">名医咨询</span>'+
  467. '</div>'+
  468. '<p class="c-content-warp">'+
  469. '<span class="c-323232 c-f14 ">问题:</span><span class="c-dest-content c-f14 j-text-ellipsis" data-text="'+rowData.symptoms+'"></span>'+
  470. '</p>'+
  471. '</div>';
  472. $li.innerHTML=content;
  473. $list.append($li);
  474. },
  475. //下拉刷新
  476. pullDownAction = function(theScrollerTemp){
  477. // setTimeout(function () {
  478. // $("#ul_jiating_consultation").html("");
  479. // id=0;
  480. // consultRecord();
  481. // }, 1000);
  482. }
  483. //上拉加载数据
  484. pullUpAction = function(theScrollerTemp){
  485. $(".pullUp").show();
  486. setTimeout(function () {
  487. if($(".c-lab-mor li.hit").index()==0){//家庭医生咨询
  488. consultRecord();
  489. }else if($(".c-lab-mor li.hit").index()==1){//续方咨询
  490. xfConsultRecord();
  491. }
  492. }, 1000);
  493. }
  494. //查询用户信息
  495. query = function(){
  496. d.show();
  497. var data={};
  498. sendPost('patient/baseinfo', data, 'json', 'post', queryUserFailed, querySuccess);
  499. },
  500. //校验手机是否签约
  501. checkSignDoctor = function(){
  502. d.show();
  503. var userAgent = window.localStorage.getItem(agentName);
  504. if(userAgent){
  505. var data = {};
  506. $.ajax(server + "patient/is_sign", {
  507. data: data,
  508. type: 'POST',
  509. dataType: 'json',
  510. beforeSend: function(request) {
  511. request.setRequestHeader("userAgent", userAgent);
  512. },
  513. error: function(res) {
  514. $(".pullUp").hide();
  515. d.close();
  516. if(res.status == 999 || res.status == 998 || res.status == 997){
  517. loginUrl(res.status);
  518. return;
  519. }
  520. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'校验失败'}).show();
  521. },
  522. success: function(res) {
  523. d.close();
  524. if(res.status == 999 || res.status == 998 || res.status == 997){
  525. loginUrl(res.status);
  526. }
  527. else if (res.status == 200) {
  528. var is_sign = res.data;//0未签约,1已签约
  529. if(is_sign==1 || is_sign <= -1){//1已经签约的 -1签约已到期或未签约
  530. consultRecord();
  531. xfConsultRecord();
  532. }else if(is_sign==0){
  533. //签约未完成
  534. $('.div-signing').show();
  535. }
  536. }
  537. else {
  538. //不为200
  539. $(".pullUp").hide();
  540. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:res.msg}).show();
  541. }
  542. }
  543. })
  544. }
  545. else{
  546. $(".pullUp").hide();
  547. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'用户信息错误'}).show();
  548. }
  549. },
  550. //查询用户成功
  551. querySuccess = function(res){
  552. if (res.status == 200) {
  553. var data = res.data;
  554. var ssc = data.ssc;
  555. if(!ssc) ssc = "";
  556. if(!ssc || ssc==""){
  557. //用户未办理医保卡
  558. dialog({
  559. content: '对不起,尚未办理医保卡或在16年6月份之后办理医保卡的用户暂不支持签约~',
  560. cancelValue: '我知道了',
  561. cancel: function () {
  562. wx.closeWindow();
  563. }
  564. }).showModal();
  565. }else{
  566. return;
  567. }
  568. } else {
  569. queryFailed(res);
  570. }
  571. },
  572. //查询用户失败
  573. queryUserFailed = function(res){
  574. dialog({
  575. content: '获取用户信息失败!',
  576. cancelValue: '我知道了',
  577. cancel: function () {
  578. wx.closeWindow();
  579. }
  580. }).showModal();
  581. },
  582. //查询失败提示
  583. queryFailed = function(res){
  584. d.close();
  585. if (res && res.msg) {
  586. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:res.msg}).show();
  587. } else {
  588. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'加载失败'}).show();
  589. }
  590. },
  591. //查询患者基本信息成功处理
  592. queryNewSuccess = function(res){
  593. if(res.status == 200){
  594. var data = res.data;
  595. if(data.sign ==0){//未签约一般不会发生进来咨询意见校验
  596. dialog({
  597. content: '您还没有签约家庭医生哦,<br/>快去寻找属于您的家庭医生吧~',
  598. okValue:'前往签约',
  599. ok: function (){
  600. window.location.href = "../../qygl/html/signing_management.html";
  601. },
  602. cancelValue: '我知道了',
  603. cancel: function () {
  604. $(".div-add-btn").show();
  605. // wx.closeWindow();
  606. }
  607. }).showModal();
  608. }
  609. else if(data.sign ==1 || data.sign ==2 || data.sign ==3){//1三师签约 2家庭签约 3三师+家庭
  610. $(this).hide();
  611. $(".div-dialog-content").show();
  612. $(".modal-overlay").addClass("modal-overlay-visible");
  613. if(data.sign ==1){//1三师签约
  614. $(".jiating-icon").hide();
  615. $(".sanshi-icon").addClass("sanshi-icon1");
  616. }else if(data.sign ==2){//家庭签约
  617. $(".sanshi-icon").hide();
  618. }
  619. }else{
  620. queryFailed(res);
  621. }
  622. }
  623. }
  624. //获取签约医生
  625. checkInWork = function(type){
  626. if(type==6){//名医咨询
  627. window.location.href = "select-consult-doctor.html";
  628. } else {
  629. sendPost('/patient/sign_doctors', {patientCode:patientcode}, 'json', 'post', queryFailed, function(res){
  630. if(res.status==200){
  631. var doctorArray = res.familyDoctors;//家庭
  632. if(type==1&&doctorArray.length==0){//三师
  633. doctorArray = res.teamDoctors
  634. }
  635. if(doctorArray.length==0){
  636. doctorArray = res.teamDoctors
  637. }
  638. if(doctorArray){
  639. var doctorInfo ="",
  640. qkDoctor="";
  641. for(var j in doctorArray){
  642. var dataTemp = doctorArray[j];
  643. if(dataTemp.level=="3" || dataTemp.teamlevel=="3"){
  644. doctorInfo = dataTemp;//取出健康管理师
  645. }
  646. if(dataTemp.level == "2" || dataTemp.teamlevel=="2"){
  647. qkDoctor = dataTemp; //取出全科医生
  648. }
  649. }
  650. if(!doctorInfo){
  651. doctorInfo = qkDoctor;
  652. }
  653. if(doctorInfo!=""){
  654. checkDocInWork(type,doctorInfo);
  655. }else{
  656. //三师咨询或家庭签约咨询,跳转到新增咨询页面
  657. window.location.href = "add-consult.html?type="+type;
  658. }
  659. }
  660. }else{
  661. queryFailed(res);
  662. }
  663. })
  664. }
  665. }
  666. //判断医生是否在工作时间内
  667. checkDocInWork = function(type,doctor){
  668. sendPost('patient/consult/is_doctor_working', {doctor:doctor.code}, 'json', 'get', queryFailed, function(res){
  669. if(res.status==200){
  670. if(res.data==2){
  671. dialog({
  672. content: '您好,由于您的签约医生工作繁忙,设置了每日回复咨询的时间段,所以,在该时间段外的时间,您的咨询将不会马上获得医生的回复。',
  673. okValue:'查看医生工作时间',
  674. ok: function (){
  675. window.location.href = "doctor-work-hours.html?doctor=" + doctor.code;
  676. },
  677. cancelValue: '继续新增咨询',
  678. cancel: function () {
  679. window.location.href = "add-consult.html?type=" +type+"&doctorCode="+doctor.code;
  680. }
  681. }).showModal();
  682. }
  683. /* 解决bug2825,家庭医生咨询不做是否接受咨询的判断
  684. else if(res.data==0){//医生不接受咨询
  685. dialog({
  686. content: '对不起,该医生暂时关闭了咨询功能,<br/>暂时无法咨询该医生',
  687. cancelValue: '我知道了',
  688. cancel: function () {
  689. wx.closeWindow();
  690. }
  691. }).showModal();
  692. }*/
  693. else{
  694. //三师咨询或家庭签约咨询,跳转到新增咨询页面
  695. window.location.href = "add-consult.html?type="+type+"&doctorCode="+doctor.code;
  696. }
  697. }else{
  698. queryFailed(res);
  699. }
  700. })
  701. },
  702. //判断咨询是否结束
  703. isunfinished = function(type){
  704. sendPost('/patient/consult/unfinished', {}, 'json', 'get', queryFailed, function(res){
  705. if(res.status===200){
  706. if(res.data.length<=0){//无咨询记录
  707. checkInWork(type);
  708. }else{
  709. var isMax = false;
  710. var consult = null;
  711. for(var j in res.data){
  712. if(type == res.data[j].type){
  713. consult = res.data[j].consult;
  714. isMax = true;
  715. }
  716. }
  717. if(isMax){//三师咨询或家庭签约咨询或名医咨询
  718. dialog({
  719. content: '十分抱歉,您的上一次咨询<br/>还未结束,所以不能再发起新的咨询哦',
  720. okValue:'前往查看',
  721. ok: function (){
  722. var rep = userInfo.represented?userInfo.represented:userInfo.uid;
  723. window.location.href = "consulting-doctor.html?consult=" + consult+"&toUser="+rep;
  724. },
  725. cancelValue: '我知道了',
  726. cancel: function () {
  727. $(".modal-overlay").trigger("click");
  728. $(".sanshi-icon").removeClass("active");
  729. $(".jiating-icon").removeClass("active");
  730. $(".mingyi-icon").removeClass("active");
  731. return;
  732. }
  733. }).showModal();
  734. }else{
  735. if(type==6){//名医咨询
  736. window.location.href = "select-consult-doctor.html";
  737. }else{//三师咨询或家庭签约咨询,跳转到新增咨询页面
  738. alert(2)
  739. window.location.href = "add-consult.html?type="+type;
  740. }
  741. }
  742. }
  743. }else{
  744. queryFailed(res);
  745. }
  746. });
  747. },
  748. //查询签约类型
  749. querySignType = function(type){
  750. chooseType = type;
  751. d.show();
  752. sendPost('patient/sign_doctors', {}, 'json', 'post', querySignTypeFailed, querySignTypeSuccess);
  753. },
  754. //查询签约类型失败处理
  755. querySignTypeFailed = function(res){
  756. d.close();
  757. if (res && res.msg) {
  758. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:res.msg}).show();
  759. } else {
  760. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'获取咨询类型失败'}).show();
  761. }
  762. },
  763. //查询签约类型成功处理
  764. querySignTypeSuccess = function(data){
  765. if (data.status == 200) {
  766. var doctors = "";
  767. switch(Number(chooseType)) {
  768. case 1: doctors = data.teamDoctors; break;
  769. case 2: doctors = data.familyDoctors; break;
  770. default: break;
  771. }
  772. var docInfo,docQkInfo;
  773. $.each(doctors, function(i, v) {
  774. if(v.teamlevel){
  775. if(v.teamlevel == 3){
  776. docInfo = v;
  777. }
  778. if(v.teamlevel == 2){
  779. docQkInfo = v;
  780. }
  781. }else{
  782. if(v.level == 3){
  783. docInfo = v;
  784. }
  785. if(v.level == 2){
  786. docQkInfo = v;
  787. }
  788. }
  789. });
  790. if(!docInfo){
  791. docInfo = docQkInfo;
  792. }
  793. sendPost('patient/consult/is_consult_unfinished', {doctor: docInfo ? docInfo.code : docQkInfo.code}, 'json', 'post',
  794. function(res){
  795. d.close();
  796. if (res && res.msg) {
  797. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:res.msg}).show();
  798. } else {
  799. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'获取是否存在咨询失败'}).show();
  800. }
  801. }, function(res){
  802. d.close();
  803. if(res.status == 200){
  804. if(res.data == ""){
  805. //不存在
  806. checkInWork(chooseType);
  807. } else {
  808. dialog({
  809. content: '十分抱歉,您与'+ docInfo.name +'医生还有<br/>未结束咨询,无法发起新的咨询',
  810. okValue:'前往查看',
  811. ok: function (){
  812. var userInfo = JSON.parse(userAgent);
  813. var rep = userInfo.represented?userInfo.represented:userInfo.uid;
  814. window.location.href = "consulting-doctor.html?consult=" + res.data +"&toUser="+rep;
  815. },
  816. cancelValue: '我知道了',
  817. cancel: function () {
  818. $(".modal-overlay").trigger("click");
  819. $(".sanshi-icon").removeClass("active");
  820. $(".jiating-icon").removeClass("active");
  821. $(".mingyi-icon").removeClass("active");
  822. return;
  823. }
  824. }).showModal();
  825. }
  826. } else {
  827. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:res.msg}).show();
  828. }
  829. }
  830. );
  831. } else {
  832. querySignTypeFailed(res);
  833. }
  834. };
  835. // 搜索框
  836. var $searchbar = $('.searchbar'),
  837. // 搜索输入框
  838. $searchbarInput = $('.searchbar input'),
  839. // 搜索取消按钮
  840. $searchCancelBtn = $('.searchbar-cancel'),
  841. // 家庭医生咨询-搜索框下面悬浮的搜索提示
  842. $searchSuggest = $('#search_suggest_text');
  843. // 续方咨询-搜索框下面悬浮的搜索提示
  844. $xfSearchSuggest = $('#xf_search_suggest_text');
  845. // 搜索框初始化
  846. $searchbar.addClass("searchbar-active");
  847. // 控制搜索关键字悬浮提示的显示
  848. var getReqPromise = function(url, data) {
  849. return new Promise(function(resolve, reject) {
  850. sendPost(url, data, "json", "post",
  851. function queryFailed (req) {
  852. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:'加载失败'}).show();
  853. // 开启示例数据
  854. //resolve({});
  855. }
  856. , function success(req) {
  857. resolve(req);
  858. });
  859. });
  860. },
  861. showSearchSuggest = function(text) {
  862. var suggestText = '搜索“'+text+'”';
  863. // 如果text不为空,则显示;否则隐藏
  864. if(text&&text.trim().length) {
  865. if($(".c-lab-mor li.hit").index()==0){//家庭医生咨询
  866. $searchSuggest.text(suggestText);
  867. $searchSuggest.show();
  868. }else if($(".c-lab-mor li.hit").index()==1){//续方咨询
  869. $xfSearchSuggest.text(suggestText);
  870. $xfSearchSuggest.show();
  871. }
  872. } else {
  873. if($(".c-lab-mor li.hit").index()==0){//家庭医生咨询
  874. $searchSuggest.text('');
  875. $searchSuggest.hide();
  876. }else if($(".c-lab-mor li.hit").index()==1){//续方咨询
  877. $xfSearchSuggest.text('');
  878. $xfSearchSuggest.hide();
  879. }
  880. }
  881. },
  882. getRowProps = function ($el) {
  883. var $textEllipsis = $el.find('.j-text-ellipsis'),
  884. $text = $textEllipsis.eq(0),
  885. $chart = $text.text('a'),
  886. enWidth = $chart.width(),
  887. $chart = $text.text('中'),
  888. zhWidth = $chart.width(),
  889. lineHeight = parseFloat($chart.css("lineHeight"), 10),
  890. rowHeight = $chart.height();
  891. $chart.text('');
  892. return {
  893. chartWidth: {
  894. zh: zhWidth,
  895. en: enWidth
  896. },
  897. rowHeight: Math.max(rowHeight, lineHeight),
  898. rowWidth: $el.width()
  899. };
  900. },
  901. replaceAll = function (text, arr) {
  902. var html = text;
  903. _.each(arr,function(kw) {
  904. var reg = new RegExp(kw+"(?!>)","gi");
  905. html = html.replace(reg,'<em>'+kw+'</em>');
  906. });
  907. return html;
  908. },
  909. highlineKeyword = function ($el,searchText) {
  910. var props = getRowProps($el),
  911. chartWidth = props.chartWidth,
  912. rowHeight = props.rowHeight,
  913. rowWidth = props.rowWidth,
  914. // 每行显示字符数(以中文字符为标准计算)
  915. chartNum = Math.floor(rowWidth / chartWidth.zh),
  916. // 排除“咨询问题:”字符及前后“...”所占宽度
  917. exceptNum = 5,
  918. // 行数
  919. rowNum = 3,
  920. // 预计显示总字符数
  921. expectedNum = chartNum * rowNum - exceptNum,
  922. $target = $el.find('.j-text-ellipsis'),
  923. // 目标文本
  924. text = $target.attr('data-text').trim(),
  925. length = text.length,
  926. // 关键字数组
  927. kws = searchText.trim().replace(/\s+/g," ").split(" ");
  928. var fidx = 0,preFidx,diff = 0;
  929. $target.html(replaceAll(text, kws));
  930. if(Math.floor($target.height() / rowHeight) <= rowNum) {
  931. return ;
  932. }
  933. if(text.length > expectedNum) {
  934. fidx = text.indexOf(kws[0])+kws[0].length-1;
  935. diff = fidx - expectedNum + 1;
  936. preFidx = fidx;
  937. diff = (diff<0)?0:diff;
  938. var preChar = (diff>0)?"...":"";
  939. $target.html(preChar+replaceAll(text.slice(diff,preFidx+1), kws)+"...");
  940. while((Math.floor($target.height() / rowHeight) <= rowNum) && (preFidx < length)) {
  941. preFidx++;
  942. $target.html(preChar+replaceAll(text.slice(diff,preFidx+1), kws)+"...");
  943. }
  944. if(preFidx == length && (Math.floor($target.height() / rowHeight) <= rowNum)) {
  945. diff = diff>0?(diff - 1):0;
  946. $target.html(preChar+replaceAll(text.slice(diff,preFidx), kws));
  947. } else if((Math.floor($target.height() / rowHeight) > rowNum)) {
  948. $target.html(preChar+replaceAll(text.slice(diff,preFidx), kws)+"...");
  949. }
  950. }
  951. },
  952. ellipsisText = function ($elements, searchText) {
  953. //$el.ellipsis({ row: 2});
  954. _.each($elements,function(el) {
  955. highlineKeyword($(el),searchText)
  956. });
  957. },
  958. // 搜索框搜索执行方法
  959. search = function () {
  960. isSearch = true;
  961. d.show();
  962. if($(".c-lab-mor li.hit").index()==0){//家庭医生咨询
  963. $searchSuggest.text('');
  964. $searchSuggest.hide();
  965. }else if($(".c-lab-mor li.hit").index()==1){//续方咨询
  966. $xfSearchSuggest.text('');
  967. $xfSearchSuggest.hide();
  968. }
  969. $searchCancelBtn.hide();
  970. $searchCancelBtn.css("opacity","0");
  971. $(".c-lab-mor li.hit").index()==0?$("#ul_jiating_consultation").html(""):$("#ul_xufang_consultation").html("");
  972. if($(".c-lab-mor li.hit").index()==0){//家庭医生咨询
  973. id=0;
  974. consultRecord();
  975. }else if($(".c-lab-mor li.hit").index()==1){//续方咨询
  976. xfId=0;
  977. xfConsultRecord();
  978. }
  979. $(".div-no-info").hide();
  980. $(".div-no-search-info").hide();
  981. $(".div-no-sign").hide();
  982. $(".c-lab-mor li.hit").index()==0?$('#ul_jiating_consultation').show():$('#ul_xufang_consultation').show();
  983. },
  984. // 重置搜索结果的容器高度(为了让滚动条出现在容器内部,而不引起外部内容滚动)
  985. resetResultWrapHeight = function() {
  986. var winHeight = $(window).height(),
  987. diff = 45,
  988. $wrap = $('.div-content');
  989. $wrap.height(winHeight-diff);
  990. },
  991. // 监听窗口大小变化,重置所属区列表、社区列表列表容器高度
  992. resultWrapAutoAdapt = function() {
  993. resetResultWrapHeight();
  994. $(window).on('resize',function() {
  995. resetResultWrapHeight();
  996. });
  997. };
  998. //取消事件
  999. $searchCancelBtn.on('click',function() {
  1000. $(this).hide();
  1001. $('.inp-search').val('');
  1002. if($(".c-lab-mor li.hit").index()==0){//家庭医生咨询
  1003. $searchSuggest.text('');
  1004. $searchSuggest.hide();
  1005. }else if($(".c-lab-mor li.hit").index()==1){//续方咨询
  1006. $xfSearchSuggest.text('');
  1007. $xfSearchSuggest.hide();
  1008. }
  1009. search();
  1010. });
  1011. $searchSuggest.on('click',function() {
  1012. search();
  1013. });
  1014. $xfSearchSuggest.on('click',function() {
  1015. search();
  1016. });
  1017. //搜索框事件
  1018. $(".inp-search").on("input",function(){
  1019. var text = $(this).val().trim();
  1020. if($(".c-lab-mor li.hit").index()==0){//家庭医生咨询
  1021. $('#ul_jiating_consultation').hide();
  1022. $('#vertical_line').hide();
  1023. }else if($(".c-lab-mor li.hit").index()==1){//续方咨询
  1024. $('#ul_xufang_consultation').hide();
  1025. $('#xf_vertical_line').hide();
  1026. }
  1027. showSearchSuggest(text);
  1028. if(text){
  1029. $searchCancelBtn.show();
  1030. $searchCancelBtn.css("opacity","1");
  1031. }else{
  1032. $searchCancelBtn.hide();
  1033. $searchCancelBtn.css("opacity","0");
  1034. search();
  1035. }
  1036. }).on('keydown',function(e) {
  1037. if (e.which === 13) {
  1038. search();
  1039. }
  1040. })