fuwujilu.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573
  1. var patiCode = "";
  2. var patiName = "";
  3. var teamCode = "";
  4. var scrollerObArr=[],baseEnv;
  5. var menuData = [{code:"1",name:"咨询",url:"doctor/consult/list_by_team",page: 1,template: 'zixun_tmpl'},
  6. {code:"2",name:"随访",url:"doctor/followup/list_by_team",page: 1,template: 'suifang_tmpl'},
  7. {code:"3",name:"代预约",url:"third/guahao/GetPatientReservationList",page: 1,template: 'daiyuyue_tmpl'},
  8. {code:"4",name:"指导",url:"doctor/health/guidance/list_by_team",page: 1,template: 'zhidao_tmpl'},
  9. {code:"5",name:"健康教育",url:"doctor/jkEdu/article/PC/fetchPatientArticlePushedList",page: 1,template: 'edu_tmpl'}];
  10. var pageSize = 11;//比显示条数多1,用来判断是否还有更多数据
  11. var slider = null;
  12. var noResultWrap = '<div id="no_result_wrap">'+
  13. '<img class="no-result-img" src="../../../images/shujuweikong_img.png" />'+
  14. '</div>';
  15. var activeIndex = 0;
  16. var docInfo ='';
  17. var reference = "",
  18. type = ""; //记录前一个页面的id
  19. // 获取基础环境信息
  20. var getBaseEnvPromise = function () {
  21. var env = {
  22. webview: plus&&plus.webview.currentWebview()
  23. };
  24. return Promise.resolve().then(function(res) {
  25. return env;
  26. });
  27. },
  28. //初始化iscroll对象
  29. initScroller = function(menuData){
  30. for(var x in menuData){
  31. var $dom = $("#div-container"+x);
  32. //实例化iscroll
  33. var contentIscroll = $dom.lscroll({
  34. iscrollOpt: {
  35. click:true
  36. },
  37. pullDownAction: function(g){
  38. var curPage = g.options.page;
  39. getList(g.iScroll,curPage, true);
  40. },
  41. pullUpAction: function(g){
  42. var curPage = g.options.page;
  43. getList(g.iScroll,curPage, false);
  44. }
  45. });
  46. scrollerObArr.push({myscroll:contentIscroll});
  47. }
  48. },
  49. //加载数据
  50. getList = function(myscroll,page,isInit){
  51. var target = $(myscroll.wrapper).find(".div-content").find("ul.dest_list_wrap");
  52. var status = parseInt($("#Dtitle").attr("data-index"));//status(1 全部发布,0 待审核 100我发布)
  53. var index = parseInt($(myscroll.wrapper).find(".div-content").attr("id").replace("div-container",""));
  54. var menu = menuData[index];
  55. teamCode = $(".lin-sel-group li").eq(activeIndex).attr('data-code');
  56. getReqPromise(menu.url,{
  57. patientCode: patiCode,
  58. patient: patiCode,
  59. teamCode: teamCode||"",
  60. page: page,
  61. pageIndex: page, // 因为"third/guahao/GetPatientReservationList"采用的是旧接口
  62. pagesize: 10,
  63. pageSize: 10 // 因为"third/guahao/GetPatientReservationList"采用的是旧接口
  64. }).then(function(res) {
  65. if(res.status==200){
  66. var list = res.list || res.data;
  67. if(list.length > 0){
  68. var len = list.length;
  69. menu.page++;
  70. var noAction = (reference == "suifang") ? 1:0;
  71. var html = template(menu.template, {list: list, noAction: noAction});
  72. if(isInit){//下拉刷新
  73. target.html(html);
  74. }else{//上拉加载
  75. target.append(html);
  76. }
  77. setTimeout(function(){
  78. scrollerObArr[index].myscroll.refresh(len<pageSize-1);
  79. },500)
  80. }else{//无数据
  81. setTimeout(function(){
  82. scrollerObArr[index].myscroll.refresh(true);
  83. },500)
  84. if(page==1){
  85. $(myscroll.wrapper).find(".div-content ul.dest_list_wrap").html(noResultWrap);
  86. }
  87. }
  88. }else{
  89. $(myscroll.wrapper).find(".div-content ul.dest_list_wrap").empty();
  90. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:res.msg}).show();
  91. }
  92. });
  93. slider.gotoItem(index);
  94. },
  95. //获取反馈类型字典
  96. initArticleType = function(){
  97. var menuStr = "";
  98. var contentStr = "";
  99. var activeClass,contentClass;
  100. for(var x in menuData){
  101. //菜单
  102. activeClass = "";
  103. if(x==0){activeClass = "mui-active";}
  104. menuStr+='<a class="mui-control-item c-f16 '+activeClass+'" data-index="'+x+'">'+menuData[x].name+'</a>';
  105. //内容
  106. contentStr+='<div class="mui-slider-item mui-control-content '+activeClass+'">'+
  107. '<div class="div-content" id="div-container'+x+'">'+
  108. '<ul class="dest_list_wrap"></ul></div>'+
  109. '</div>';
  110. }
  111. $(".div-menu").html(menuStr);
  112. $(".mui-slider-group").html(contentStr);
  113. initScroller(menuData);//初始化iscroll事件
  114. initPage(1,$("#Dtitle").attr("data-index"));
  115. slider = mui('.mui-slider').slider();
  116. $('.mui-scroll-wrapper').addClass('mui-slider-indicator');
  117. mui('.mui-scroll-wrapper').scroll();
  118. },
  119. //页面初始化
  120. initPage = function(page,status) {
  121. var reqUrl = [];
  122. var teamCode = $(".lin-sel-group li").eq(activeIndex).attr('data-code');
  123. var params = _.map(menuData,function(o) {
  124. // TODO
  125. if(!o.url) return null;
  126. return {
  127. url: o.url,
  128. data: {
  129. patient: patiCode,
  130. teamCode: teamCode||"",
  131. page: o.page,
  132. pageIndex: 1, // 因为"third/guahao/GetPatientReservationList"采用的是旧接口
  133. pagesize: 10,
  134. pageSize: 10 // 因为"third/guahao/GetPatientReservationList"采用的是旧接口
  135. }
  136. }
  137. });
  138. var firstReq = [];
  139. firstReq.push(params[0]);
  140. getReqPromises(firstReq).then(function(datas) {
  141. _.each(datas,function(o,i) {
  142. var res = datas[i];
  143. if(res.status == 200) {
  144. var list = res.list || res.data;
  145. if(list.length > 0) {
  146. var len = list.length;
  147. menuData[i].page++;
  148. var html = template(menuData[i].template, {list: list});
  149. $(".mui-slider-group").find(".div-content").find("ul.dest_list_wrap").eq(i).html(html);
  150. setTimeout(function(){
  151. scrollerObArr[i].myscroll.refresh(len<pageSize-1);
  152. },500)
  153. } else {
  154. $(".mui-slider-group").find(".div-content").find("ul.dest_list_wrap").eq(i).html(noResultWrap);
  155. setTimeout(function(){
  156. scrollerObArr[i].myscroll.refresh(true);
  157. },500)
  158. }
  159. } else{
  160. dialog({contentType:'tipsbox',bottom:true, skin:'bk-popup' , content:res.msg}).show();
  161. }
  162. });
  163. plus.nativeUI.closeWaiting();
  164. }).catch(function(e) {
  165. console && console.error(e);
  166. });
  167. },
  168. // 绑定页面事件
  169. bindEvents = function () {
  170. //切换菜单
  171. $('.mui-slider').on('tap','.mui-control-item:not(.mui-active)',function(){
  172. var index = this.getAttribute('data-index');
  173. getList(scrollerObArr[index].myscroll.iScroll,1, true)
  174. });
  175. document.getElementById('slider').addEventListener('slide', function(event) {
  176. var idx = event.detail.slideNumber,
  177. $addNewBtn = $('#add_new');
  178. if(idx==0 || idx == 1) {
  179. $addNewBtn.hide();
  180. } else {
  181. // 修复bug#2580 问题2:团队长只能查看信息不能进行添加,请屏蔽团队长服务记录各列表下的“+”按钮;
  182. if(hasSigned()){
  183. $addNewBtn.show();
  184. } else {
  185. $addNewBtn.hide();
  186. }
  187. }
  188. });
  189. $(".demo-comtop").on("click","h1",function(){
  190. $(".lin-mask").show();
  191. $(".lin-sel-group").show();
  192. });
  193. $(".lin-mask").on("click",function(){
  194. $(".lin-mask").hide();
  195. $(".lin-sel-group").hide();
  196. });
  197. $(".lin-sel-group").on("click","li",function(){
  198. activeIndex = $(this).index();
  199. var index = parseInt($(this).attr("data-code"));
  200. $(".lin-sel-group li").removeClass("checked");
  201. $(this).addClass("checked");
  202. $(".lin-mask").trigger("click");
  203. $("#Dtitle").html($(this).find("label").html()).attr("data-index",index);
  204. //重新加载数据
  205. initPage(1,index);
  206. });
  207. //底部按钮事件
  208. $(".c-main").on("tap",".div-content .knowledge-li",function(){
  209. var id = $(this).attr('data-id');
  210. openWebview("fankuiyijianxiangqing.html",{
  211. feedbackId: id
  212. });
  213. });
  214. //模板中的item的点击事件
  215. $('body').on("tap", ".zx_detail", function(){
  216. openZiXunDetail(this);
  217. }).on("tap", ".sf_detail", function(){
  218. openSuiFangDetail(this);
  219. }).on("tap", '.dyy_detail', function(){
  220. openDaiYuYueDetail(this);
  221. }).on("tap", ".again-btn", function(){
  222. yuYueAgain(this);
  223. return false;
  224. }).on("tap", ".zd_detail", function(){
  225. openZhiDaoDetail(this);
  226. }).on("tap", ".edu_detail", function(){
  227. openEduDetail(this);
  228. });
  229. },
  230. // 修复bug#2580 【医生端】居民服务:团队长只能查看居民的服务记录信息问题。
  231. hasSigned = function() {
  232. return $(".lin-sel-group li").eq(activeIndex).attr('data-has-sign')=="1";
  233. },
  234. openZiXunDetail = function(ele) {
  235. if(!hasSigned()) {
  236. mui.toast("您无法查看哦");
  237. return ;
  238. }
  239. var data = JSON.parse(ele.getAttribute("data-info"));
  240. //取当前医生的sessionId
  241. sendGet("im_new/getTopic",{
  242. consult:data.code
  243. }, null, handleSucc);
  244. function handleSucc(res) {
  245. var msg = JSON.parse(res.msg)[0];
  246. var consultInfo = {
  247. session_id:msg.session_id,
  248. id:data.code,
  249. patient: data.patient,
  250. patientName: data.patientName,
  251. sex: '',
  252. photo: data.patientPhoto,
  253. status: data.status==1? 2:1//健康咨询 2为已完成 1进行中
  254. }
  255. //如果是续方咨询的话,跳转去续方咨询的页面
  256. if(data.type == 8){
  257. mui.openWindow('../../prescription/html/xufangzixunxiangqing.html', 'xufangzixunxiangqing', {
  258. extras: {
  259. sessionId: consultInfo.session_id,
  260. sessionName: consultInfo.patientName,
  261. patiCode: consultInfo.patient,
  262. consultInfo: consultInfo,
  263. sessionTime: checkDate(msg.create_time),
  264. stutas:consultInfo.stutas,
  265. type: 8
  266. }
  267. });
  268. return false;
  269. }
  270. mui.openWindow('../../zdzx/html/zixunxiangqing.html', 'zixunxiangqing', {
  271. extras: {
  272. consultInfo: consultInfo,
  273. sessionId: consultInfo.session_id,
  274. sessionName: consultInfo.patientName,
  275. otherCode: consultInfo.patient,
  276. otherName: consultInfo.patientName,
  277. otherSex: consultInfo.sex,
  278. otherPhoto: consultInfo.photo,
  279. sessionTime: checkDate(msg.create_time),
  280. stutas:consultInfo.status,
  281. type: data.type
  282. }
  283. })
  284. }
  285. function checkDate (d) {
  286. var t = new Date(d);
  287. return (function () {
  288. return (t.getMonth() + 1) < 10 ? '0' + (t.getMonth() + 1) : (t.getMonth() + 1);
  289. })() + '' +
  290. (function () {
  291. return t.getDate() < 10 ? '0' + t.getDate() : t.getDate();
  292. })();
  293. }
  294. },
  295. openSuiFangDetail = function(ele) {
  296. var info = JSON.parse(ele.getAttribute("data-info"));
  297. //不是随访医生,团队长且状态没完成 1-->已完成 3-->进行中2-->未开始(计划中)
  298. if(docInfo.code != info.doctorCode && !(docInfo.isLeader=="1" && docInfo.adminTeamCode ==$("#Dtitle").attr("data-index")) && info.status!=1 ){
  299. mui.toast("您暂时无法查看哦");
  300. return ;
  301. }
  302. var str = ele.getAttribute("data-info");
  303. var docMsg = JSON.stringify(docInfo);
  304. var strObj = JSON.parse(str);
  305. var otherPeople = false;
  306. if(docInfo.code != info.doctorCode && !(docInfo.isLeader=="1" && docInfo.adminTeamCode ==$("#Dtitle").attr("data-index"))){
  307. otherPeople = true
  308. }
  309. if(strObj.prescriptionCode){
  310. if(strObj.status!='2'){
  311. openWebview("../../suifang/html/fvDetail.html", {followup_id: strObj.id,status:strObj.status,prescriptionCode:strObj.prescriptionCode,otherPeople:otherPeople});
  312. }else{
  313. var patientInfo={}
  314. patientInfo.code = strObj.patientCode
  315. mui.openWindow('../../suifang/html/follow_way.html', 'follow_way', {
  316. extras: {
  317. followup_id:strObj.id,
  318. followClass:strObj.followupClass,
  319. patientInfo:patientInfo,
  320. prescriptionCode: strObj.prescriptionCode
  321. }
  322. })
  323. }
  324. }else{
  325. openWebview("../../suifang/html/suifang_detail.html", {data: str,docInfo:docMsg});
  326. }
  327. },
  328. yuYueAgain = function(ele) {
  329. var parent = $(ele).closest(".n-list");
  330. var info = JSON.parse(parent.attr("data-info"));
  331. var params = {};
  332. params.id= info.id;
  333. params.doctorId=info.doctorCode;
  334. params.hospitalId=info.orgCode;
  335. params.deptId = info.deptCode;
  336. params.type=2;
  337. params.patient = info.patient;
  338. openWebviewExtras("../../wdyy/html/doctor-detail.html",params);
  339. return false;
  340. },
  341. openDaiYuYueDetail = function(ele) {
  342. if(!hasSigned()) {
  343. mui.toast("您无法查看哦");
  344. return ;
  345. }
  346. var id = ele.getAttribute("data-id");
  347. openWebviewExtras("../../wdyy/html/detail-appointment.html",{dataId:id});
  348. },
  349. openZhiDaoDetail = function(ele) {
  350. if(!hasSigned()) {
  351. mui.toast("您无法查看哦");
  352. return ;
  353. }
  354. var id = ele.getAttribute("data-id");
  355. openWebviewExtras('../../hzzd/html/guidance_info.html',{
  356. guideId: id
  357. })
  358. },
  359. openEduDetail = function(ele) {
  360. if(!hasSigned()) {
  361. mui.toast("您无法查看哦");
  362. return ;
  363. }
  364. var code = ele.getAttribute("data-code");
  365. openWebviewExtras("../../jkjy/html/article-info.html",{articleId:code,patient:patiCode,showHandleBar:false});
  366. },
  367. openStatistics = function(ele) {
  368. var $activeItem = $(".lin-sel-group li").eq(activeIndex);
  369. teamCode = $activeItem.attr('data-code'),
  370. teamName = $activeItem.attr('data-name');
  371. openWebviewExtras("fuwutongji.html",{
  372. patiCode: patiCode,
  373. patiName: patiName,
  374. teamCode: teamCode,
  375. teamName: teamName
  376. });
  377. },
  378. addNew = function() {
  379. var idx = $('.mui-control-item.mui-active').attr('data-index');
  380. if(idx=="2") {
  381. mui.openWindow('../../wdyy/html/appointment-register.html', 'appointment-register', {
  382. extras: {
  383. patient: patiCode
  384. }
  385. });
  386. } else if(idx=="3") {
  387. mui.openWindow('../../hzzd/html/guidance_list.html', 'jkzd',{
  388. extras: {
  389. code: patiCode
  390. }
  391. });
  392. } else if(id="4") {
  393. // mui.openWindow('../../jkjy/html/jiankangjiaoyu.html', 'jiankangjiaoyu', {
  394. mui.openWindow('../../jkjy/html/article-store.html', 'jiankangjiaoyu', {
  395. extras: {
  396. patient: patiCode,
  397. patientName: patiName,
  398. teamCode: teamCode
  399. }
  400. });
  401. }
  402. },
  403. prepareData = function(){
  404. if(type && type == "sf"){ //显示随访的数据
  405. menuData = [
  406. {code:"2",name:"随访",url:"doctor/followup/list_by_team",page: 1,template: 'suifang_tmpl'}
  407. ];
  408. $("#statistics_btn").hide();
  409. }else{
  410. $("#statistics_btn").show();
  411. }
  412. };
  413. // 页面业务处理流程开始
  414. new Promise(function(resolve, reject) {
  415. // TODO 临时放开
  416. //resolve(true);
  417. mui.plusReady(function() {
  418. // plus已经准备好,可以往下执行
  419. resolve(true);
  420. });
  421. }).then(function() {
  422. template.helper('toInfo', function(v){
  423. v.patientCode = patiCode;
  424. return JSON.stringify(v);
  425. });
  426. template.helper("setSex", function(s) {
  427. if(s == 1) {
  428. return "男"
  429. } else if(s == 2) {
  430. return "女"
  431. }
  432. });
  433. template.helper("setPhoto", function(p) {
  434. debugger
  435. if(!p || p.length == 0) {
  436. return "../../../images/d-male.png";
  437. } else {
  438. return getImgUrl(p);
  439. }
  440. });
  441. template.helper("setTime", function(p) {
  442. // 为了防止类似“2016-12-21 14:08:10.0”在IOS上无法识别问题
  443. if(p){
  444. p = p.split('.')[0];
  445. return new Date(Date.parse(p.replace(/-/g, "/"))).format("yyyy-MM-dd hh:mm:ss")
  446. }else{
  447. return "";
  448. }
  449. });
  450. //随访
  451. template.helper("setTime2", function(p) {
  452. // 为了防止类似“2016-12-21 14:08:10.0”在IOS上无法识别问题
  453. if(p){
  454. p = p.split('.')[0];
  455. return new Date(Date.parse(p.replace(/-/g, "/"))).format("yyyy-MM-dd hh:mm")
  456. }else{
  457. return "";
  458. }
  459. });
  460. }).then(function() {
  461. docInfo = JSON.parse(plus.storage.getItem("docInfo"));
  462. // 获取基础环境信息
  463. return getBaseEnvPromise().then(function(env) {
  464. baseEnv = env;
  465. patiCode =baseEnv.webview.patientCode;
  466. patiName = baseEnv.webview.patientName;
  467. })
  468. })
  469. .then(function() {
  470. plus.nativeUI.showWaiting();
  471. // TODO 团队选择
  472. return getReqPromise("doctor/family_contract/patient_doctor_teams",{
  473. patient: patiCode
  474. }).then(function(res) {
  475. if(res.status == 200) {
  476. var data = res.data,teams = [];
  477. // 是否有签约关系 1:有 0:无,此时jtTeam与ssTeam都没有
  478. if(data.hasSign=="1") {
  479. data.ssTeam && (function() {
  480. var team = data.ssTeam.team;
  481. team.hasSign = data.ssTeam.hasSign; // 医生与患者是否有签约关系
  482. team.isLeader = data.ssTeam.isLeader; // 是否是团队长
  483. teams.push(team)
  484. })();
  485. data.jtTeam && (function() {
  486. var team = data.jtTeam.team;
  487. team.hasSign = data.jtTeam.hasSign; // 医生与患者是否有签约关系
  488. team.isLeader = data.jtTeam.isLeader; // 是否是团队长
  489. teams.push(team)
  490. })();
  491. }
  492. }
  493. $('.lin-sel-group').html(template('teams_tmpl', {data:teams}));
  494. //初始默认选中第一个团队信息
  495. var $select = $(".lin-sel-group li").eq(activeIndex);
  496. var code = parseInt($select.attr("data-code"));
  497. $(".lin-sel-group li").removeClass("checked");
  498. $select.addClass("checked");
  499. $("#Dtitle").html($select.find("label").html()).attr("data-index",code);
  500. })
  501. })
  502. .then(function() {
  503. reference = baseEnv.webview.reference || 0;
  504. type = baseEnv.webview.type;
  505. prepareData();
  506. initArticleType();
  507. bindEvents();
  508. })
  509. .catch(function(e) {
  510. plus.nativeUI.closeWaiting();
  511. console && console.error(e);
  512. });
  513. window.addEventListener("refresh", function(event){
  514. $(".lin-sel-group li").eq(activeIndex).trigger("click");
  515. });
  516. window.addEventListener("newPage", function(event){
  517. reference = event.detail.reference;
  518. type = event.detail.type;
  519. patiCode =baseEnv.webview.patientCode;
  520. prepareData();
  521. initArticleType();
  522. bindEvents();
  523. });
  524. window.addEventListener("update", function(e){
  525. $(".lin-sel-group li").eq(activeIndex).trigger("click");
  526. });
  527. //随访
  528. window.addEventListener("refresh2", function(){
  529. if(scrollerObArr[1]){
  530. getList(scrollerObArr[1].myscroll.iScroll,1, true);
  531. }else{
  532. getList(scrollerObArr[0].myscroll.iScroll,1, true);
  533. }
  534. });