jiuzhenjilu.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. // 基本信息(包括userAgent、上个页面传递的数据)
  2. var baseInfo = null,
  3. // 基础环境信息(包括当前webview)
  4. baseEnv = null;
  5. var $eventListWrapper = $('#recent_event_list_wrap'),
  6. $eventList = $('#recent_event_list'),
  7. // 搜索无结果时显示
  8. $noResultWrap = $('#no_result_wrap');
  9. // 分页查询当前页数
  10. var curPage = 1,
  11. // iscroll 滚动条实例
  12. iscroller;
  13. template.helper("toJson", function(v, i) {
  14. return JSON.stringify(v);
  15. });
  16. // 获取基本信息(包括userAgent、上个页面传递的数据)
  17. var getBaseInfoPromise = function() {
  18. // 登录的相关信息
  19. var userAgent = plus && JSON.parse(plus.storage.getItem("userAgent"))
  20. return {
  21. userAgent: userAgent,
  22. patiInfo: baseEnv.webview.patiInfo
  23. }
  24. },
  25. // 获取基础环境信息
  26. getBaseEnvPromise = function () {
  27. var env = {
  28. webview: plus&&plus.webview.currentWebview()
  29. };
  30. return Promise.resolve().then(function(res) {
  31. return env;
  32. });
  33. },
  34. // 初始化就诊事件列表
  35. initEventList = function(list) {
  36. var html = template("recent_event_tmpl", {list: list})
  37. $eventList.append(html);
  38. },
  39. // 分页查询列表
  40. searchByPaging = function () {
  41. var url = healthProfileServer+"wlyy_service/record/outpatient",
  42. curPage = 1,
  43. pagesize = 50,
  44. params = {
  45. strSSID: baseInfo.patiInfo.ssc,
  46. startNum: (curPage-1) * pagesize,
  47. endNum: curPage * pagesize
  48. };
  49. getReqPromise(url,params,'GET').then(function(res){
  50. if(!iscroller) {
  51. iscroller = initScroller($eventListWrapper,url,
  52. function() { // 传递分页参数
  53. return $.extend({},params,{startNum: (curPage-1) * pagesize, endNum: curPage * pagesize});
  54. },function(res) {
  55. if(res.status == 200) {
  56. var list = JSON.parse(res.data);
  57. if(list && list.length) {
  58. curPage++;
  59. }
  60. initEventList(list);
  61. iscroller.refresh();
  62. } else {
  63. mui.toast(res.msg);
  64. }
  65. });
  66. }
  67. if(res.status == 200) {
  68. curPage++;
  69. var list = JSON.parse(res.data);
  70. if(!list|| !list.length) {
  71. $eventListWrapper.hide();
  72. $noResultWrap.show();
  73. } else {
  74. $noResultWrap.hide();
  75. $eventListWrapper.show();
  76. initEventList(list);
  77. }
  78. } else {
  79. mui.toast(res.msg);
  80. }
  81. iscroller.refresh();
  82. }).catch(function(e) {
  83. console && console.error(e)
  84. });
  85. },
  86. // 滚动条分页实例初始化
  87. initScroller = function($el,url,getData,pullUpAction) {
  88. var scroller = $el.initScroll({pullDown: false,pullUpAction: function() {
  89. var data = getData();
  90. getReqPromise(url,data,'GET').then(function(data) {
  91. if(pullUpAction && $.isFunction(pullUpAction)) {
  92. pullUpAction(data);
  93. updatePullUpText(scroller,data.list);
  94. }
  95. })
  96. }});
  97. return scroller;
  98. },
  99. // 更新分页上拉加载的提示文本
  100. updatePullUpText= function(scroller,list) {
  101. var $wrap = $(scroller.wrapper),
  102. $pullupLabel = $wrap.find('.pullUpLabel');
  103. if(!list || !list.length) {
  104. $pullupLabel.text('没有更多');
  105. } else {
  106. $pullupLabel.text('上拉加载更多');
  107. }
  108. scroller.on('refresh',function() {
  109. if(!list || !list.length) {
  110. $pullupLabel.text('没有更多');
  111. } else {
  112. $pullupLabel.text('上拉加载更多');
  113. }
  114. });
  115. },
  116. // 绑定页面事件
  117. bindEvents = function () {
  118. $eventList.on('click','li',function() {
  119. var data = JSON.parse($(this).attr("data-json"));
  120. openWebview("health-profile.html",{eventInfo: data,patiInfo: baseInfo.patiInfo});
  121. });
  122. };
  123. // 页面业务处理流程开始
  124. new Promise(function(resolve, reject) {
  125. // TODO 临时放开
  126. //resolve(true);
  127. mui.plusReady(function() {
  128. // plus已经准备好,可以往下执行
  129. resolve(true);
  130. });
  131. }).then(function() {
  132. // 获取基础环境信息
  133. return getBaseEnvPromise().then(function(env) {
  134. baseEnv = env;
  135. }).then(function() {
  136. // 获取登录医生信息
  137. baseInfo = getBaseInfoPromise();
  138. searchByPaging();
  139. // 绑定页面事件
  140. bindEvents();
  141. })
  142. }).catch(function(e) {
  143. plus.nativeUI.closeWaiting();
  144. console && console.error(e);
  145. });