fuwujilu.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572
  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 = JSON.parse(plus.storage.getItem("docInfo")).adminTeamCode;//$(".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 = JSON.parse(plus.storage.getItem("docInfo")).adminTeamCode;//$(".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. var data = JSON.parse(ele.getAttribute("data-info"));
  236. //取当前医生的sessionId
  237. sendGet("im_new/getTopic",{
  238. consult:data.code
  239. }, null, handleSucc);
  240. function handleSucc(res) {
  241. var msg = JSON.parse(res.msg)[0];
  242. var consultInfo = {
  243. session_id:msg.session_id,
  244. id:data.code,
  245. patient: data.patient,
  246. patientName: data.patientName,
  247. sex: '',
  248. photo: data.patientPhoto,
  249. status: data.status==1? 2:1//健康咨询 2为已完成 1进行中
  250. }
  251. //如果是续方咨询的话,跳转去续方咨询的页面
  252. if(data.type == 8){
  253. mui.openWindow('../../prescription/html/xufangzixunxiangqing.html', 'xufangzixunxiangqing', {
  254. extras: {
  255. sessionId: consultInfo.session_id,
  256. sessionName: consultInfo.patientName,
  257. patiCode: consultInfo.patient,
  258. consultInfo: consultInfo,
  259. sessionTime: checkDate(msg.create_time),
  260. stutas:consultInfo.stutas,
  261. type: 8
  262. }
  263. });
  264. return false;
  265. }
  266. mui.openWindow('../../zdzx/html/zixunxiangqing.html', 'zixunxiangqing', {
  267. extras: {
  268. consultInfo: consultInfo,
  269. sessionId: consultInfo.session_id,
  270. sessionName: consultInfo.patientName,
  271. otherCode: consultInfo.patient,
  272. otherName: consultInfo.patientName,
  273. otherSex: consultInfo.sex,
  274. otherPhoto: consultInfo.photo,
  275. sessionTime: checkDate(msg.create_time),
  276. stutas:consultInfo.status,
  277. type: data.type
  278. }
  279. })
  280. }
  281. function checkDate (d) {
  282. var t = new Date(d);
  283. return (function () {
  284. return (t.getMonth() + 1) < 10 ? '0' + (t.getMonth() + 1) : (t.getMonth() + 1);
  285. })() + '' +
  286. (function () {
  287. return t.getDate() < 10 ? '0' + t.getDate() : t.getDate();
  288. })();
  289. }
  290. },
  291. openSuiFangDetail = function(ele) {
  292. var info = JSON.parse(ele.getAttribute("data-info"));
  293. //不是随访医生,团队长且状态没完成 1-->已完成 3-->进行中2-->未开始(计划中)
  294. if(docInfo.code != info.doctorCode && !(docInfo.isLeader=="1" && docInfo.adminTeamCode ==$("#Dtitle").attr("data-index")) && info.status!=1 ){
  295. mui.toast("您暂时无法查看哦");
  296. return ;
  297. }
  298. var str = ele.getAttribute("data-info");
  299. var docMsg = JSON.stringify(docInfo);
  300. var strObj = JSON.parse(str);
  301. var otherPeople = false;
  302. if(docInfo.code != info.doctorCode && !(docInfo.isLeader=="1" && docInfo.adminTeamCode ==$("#Dtitle").attr("data-index"))){
  303. otherPeople = true
  304. }
  305. if(strObj.prescriptionCode){
  306. if(strObj.status!='2'){
  307. openWebview("../../suifang/html/fvDetail.html", {followup_id: strObj.id,status:strObj.status,prescriptionCode:strObj.prescriptionCode,otherPeople:otherPeople});
  308. }else{
  309. var patientInfo={}
  310. patientInfo.code = strObj.patientCode
  311. mui.openWindow('../../suifang/html/follow_way.html', 'follow_way', {
  312. extras: {
  313. followup_id:strObj.id,
  314. followClass:strObj.followupClass,
  315. patientInfo:patientInfo,
  316. prescriptionCode: strObj.prescriptionCode
  317. }
  318. })
  319. }
  320. }else{
  321. openWebview("../../suifang/html/suifang_detail.html", {data: str,docInfo:docMsg});
  322. }
  323. },
  324. yuYueAgain = function(ele) {
  325. var parent = $(ele).closest(".n-list");
  326. var info = JSON.parse(parent.attr("data-info"));
  327. var params = {};
  328. params.id= info.id;
  329. params.doctorId=info.doctorCode;
  330. params.hospitalId=info.orgCode;
  331. params.deptId = info.deptCode;
  332. params.type=2;
  333. params.patient = info.patient;
  334. openWebviewExtras("../../wdyy/html/doctor-detail.html",params);
  335. return false;
  336. },
  337. openDaiYuYueDetail = function(ele) {
  338. // if(!hasSigned()) {
  339. // mui.toast("您无法查看哦");
  340. // return ;
  341. // }
  342. var id = ele.getAttribute("data-id");
  343. openWebviewExtras("../../wdyy/html/detail-appointment.html",{dataId:id});
  344. },
  345. openZhiDaoDetail = function(ele) {
  346. // if(!hasSigned()) {
  347. // mui.toast("您无法查看哦");
  348. // return ;
  349. // }
  350. var id = ele.getAttribute("data-id");
  351. openWebviewExtras('../../hzzd/html/guidance_info.html',{
  352. guideId: id
  353. })
  354. },
  355. openEduDetail = function(ele) {
  356. // if(!hasSigned()) {
  357. // mui.toast("您无法查看哦");
  358. // return ;
  359. // }
  360. var code = ele.getAttribute("data-code");
  361. openWebviewExtras("../../jkjy/html/article-info.html",{articleId:code,patient:patiCode,showHandleBar:false});
  362. },
  363. openStatistics = function(ele) {
  364. var $activeItem = $(".lin-sel-group li").eq(activeIndex);
  365. teamCode = $activeItem.attr('data-code'),
  366. teamName = $activeItem.attr('data-name');
  367. openWebviewExtras("fuwutongji.html",{
  368. patiCode: patiCode,
  369. patiName: patiName,
  370. teamCode: teamCode,
  371. teamName: teamName
  372. });
  373. },
  374. addNew = function() {
  375. var idx = $('.mui-control-item.mui-active').attr('data-index');
  376. if(idx=="2") {
  377. mui.openWindow('../../wdyy/html/appointment-register.html', 'appointment-register', {
  378. extras: {
  379. patient: patiCode
  380. }
  381. });
  382. } else if(idx=="3") {
  383. mui.openWindow('../../hzzd/html/guidance_list.html', 'jkzd',{
  384. extras: {
  385. code: patiCode
  386. }
  387. });
  388. } else if(id="4") {
  389. // mui.openWindow('../../jkjy/html/jiankangjiaoyu.html', 'jiankangjiaoyu', {
  390. mui.openWindow('../../jkjy/html/article-store.html', 'jiankangjiaoyu', {
  391. extras: {
  392. patient: patiCode,
  393. patientName: patiName,
  394. teamCode: teamCode
  395. }
  396. });
  397. }
  398. },
  399. prepareData = function(){
  400. if(type && type == "sf"){ //显示随访的数据
  401. menuData = [
  402. {code:"2",name:"随访",url:"doctor/followup/list_by_team",page: 1,template: 'suifang_tmpl'}
  403. ];
  404. $("#statistics_btn").hide();
  405. }else{
  406. $("#statistics_btn").show();
  407. }
  408. };
  409. // 页面业务处理流程开始
  410. new Promise(function(resolve, reject) {
  411. // TODO 临时放开
  412. //resolve(true);
  413. mui.plusReady(function() {
  414. // plus已经准备好,可以往下执行
  415. resolve(true);
  416. });
  417. }).then(function() {
  418. template.helper('toInfo', function(v){
  419. v.patientCode = patiCode;
  420. return JSON.stringify(v);
  421. });
  422. template.helper("setSex", function(s) {
  423. if(s == 1) {
  424. return "男"
  425. } else if(s == 2) {
  426. return "女"
  427. }
  428. });
  429. template.helper("setPhoto", function(p) {
  430. /*
  431. if(!p || p.length == 0) {
  432. return "../../../images/p-default.png";
  433. } else {
  434. return p;
  435. }
  436. */
  437. return getImgUrl(p);
  438. });
  439. template.helper("setTime", function(p) {
  440. // 为了防止类似“2016-12-21 14:08:10.0”在IOS上无法识别问题
  441. if(p){
  442. p = p.split('.')[0];
  443. return new Date(Date.parse(p.replace(/-/g, "/"))).format("yyyy-MM-dd hh:mm:ss")
  444. }else{
  445. return "";
  446. }
  447. });
  448. //随访
  449. template.helper("setTime2", function(p) {
  450. // 为了防止类似“2016-12-21 14:08:10.0”在IOS上无法识别问题
  451. if(p){
  452. p = p.split('.')[0];
  453. return new Date(Date.parse(p.replace(/-/g, "/"))).format("yyyy-MM-dd hh:mm")
  454. }else{
  455. return "";
  456. }
  457. });
  458. }).then(function() {
  459. docInfo = JSON.parse(plus.storage.getItem("docInfo"));
  460. // 获取基础环境信息
  461. return getBaseEnvPromise().then(function(env) {
  462. baseEnv = env;
  463. patiCode =baseEnv.webview.patientCode;
  464. patiName = baseEnv.webview.patientName;
  465. })
  466. })
  467. .then(function() {
  468. // plus.nativeUI.showWaiting();
  469. // // TODO 团队选择
  470. // return getReqPromise("doctor/family_contract/patient_doctor_teams",{
  471. // patient: patiCode
  472. // }).then(function(res) {
  473. // if(res.status == 200) {
  474. // var data = res.data,teams = [];
  475. // // 是否有签约关系 1:有 0:无,此时jtTeam与ssTeam都没有
  476. // if(data.hasSign=="1") {
  477. // data.ssTeam && (function() {
  478. // var team = data.ssTeam.team;
  479. // team.hasSign = data.ssTeam.hasSign; // 医生与患者是否有签约关系
  480. // team.isLeader = data.ssTeam.isLeader; // 是否是团队长
  481. // teams.push(team)
  482. // })();
  483. // data.jtTeam && (function() {
  484. // var team = data.jtTeam.team;
  485. // team.hasSign = data.jtTeam.hasSign; // 医生与患者是否有签约关系
  486. // team.isLeader = data.jtTeam.isLeader; // 是否是团队长
  487. // teams.push(team)
  488. // })();
  489. // }
  490. // }
  491. // $('.lin-sel-group').html(template('teams_tmpl', {data:teams}));
  492. // //初始默认选中第一个团队信息
  493. // var $select = $(".lin-sel-group li").eq(activeIndex);
  494. // var code = parseInt($select.attr("data-code"));
  495. // $(".lin-sel-group li").removeClass("checked");
  496. // $select.addClass("checked");
  497. // $("#Dtitle").html($select.find("label").html()).attr("data-index",code);
  498. // })
  499. })
  500. .then(function() {
  501. reference = baseEnv.webview.reference || 0;
  502. type = baseEnv.webview.type;
  503. prepareData();
  504. initArticleType();
  505. bindEvents();
  506. })
  507. .catch(function(e) {
  508. plus.nativeUI.closeWaiting();
  509. console && console.error(e);
  510. });
  511. window.addEventListener("refresh", function(event){
  512. var index = parseInt($(".mui-control-item.mui-active").attr("data-index"));
  513. getList(scrollerObArr[index].myscroll.iScroll,1, true);//重新加载数据
  514. });
  515. window.addEventListener("newPage", function(event){
  516. reference = event.detail.reference;
  517. type = event.detail.type;
  518. patiCode =baseEnv.webview.patientCode;
  519. prepareData();
  520. initArticleType();
  521. bindEvents();
  522. });
  523. window.addEventListener("update", function(e){
  524. var index = parseInt($(".mui-control-item.mui-active").attr("data-index"));
  525. getList(scrollerObArr[index].myscroll.iScroll,1, true);//重新加载数据
  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. });