choose-patient.js 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  1. var page = 1,
  2. pageSize = 10,
  3. dateVal,
  4. statusVal,
  5. typeVal,
  6. scroller;
  7. mui.init();
  8. mui.plusReady(function(){
  9. var self = plus.webview.currentWebview();
  10. dateVal = self.dateVal || 1;
  11. statusVal = self.statusVal;
  12. typeVal = self.typeVal;
  13. if(self.dateName == "全部"){
  14. self.dateName = "今日未测量";
  15. }
  16. $("#dateName").text(self.dateName);
  17. $("#statusName").text(self.statusName);
  18. $("#typeName").text(self.typeName);
  19. if(dateVal){
  20. $("#dateSheet li[data-val="+dateVal+"]").find("a").addClass("active");
  21. }else{
  22. $("#dateSheet li").eq(0).find("a").addClass("active");
  23. }
  24. if(statusVal){
  25. $("#statusSheet li[data-val="+statusVal+"]").find("a").addClass("active");
  26. }else{
  27. $("#statusSheet li").eq(0).find("a").addClass("active");
  28. }
  29. if(typeVal){
  30. $("#typeSheet li[data-val="+typeVal+"]").find("a").addClass("active");
  31. }else{
  32. $("#typeSheet li").eq(0).find("a").addClass("active");
  33. }
  34. getData(true);
  35. bindEvents();
  36. initScroller();
  37. })
  38. //获得居民列表
  39. function getData(isInit){
  40. if(isInit){
  41. page = 1;
  42. }
  43. var url = "doctor/device/getDevicesList",
  44. params = {
  45. noGaugeDay: dateVal,//未测量天数(1今日为测量 2七天未测量 3本月未测量 4超过一个月未测量)
  46. isBinding: statusVal, //是否绑定(1绑定 2解绑)
  47. categoryCode: typeVal, //设备类型(1血糖仪 2血压计)
  48. isSend: 1, //今日是否已发送提醒消息(1已发送)
  49. page: page,
  50. pageSize: pageSize
  51. };
  52. plus.nativeUI.showWaiting();
  53. sendGet(url, params, null,function(res){
  54. if(res.status == 200){
  55. $("#count").text("("+res.data.tatalCount+")");
  56. var list = res.data.data;
  57. if(list.length == 0){
  58. if(isInit){
  59. $("#result_wrapper").hide();
  60. $("#no_result_wrap").show();
  61. }else{
  62. scroller.endPullupToRefresh(true);
  63. }
  64. }else{
  65. $("#result_wrapper").show();
  66. $("#no_result_wrap").hide();
  67. var html = template("li-tmp", {list: list});
  68. if(isInit){
  69. $("#result_wrapper").empty().append(html);
  70. }else{
  71. $("#result_wrapper").append(html);
  72. }
  73. if(list.length < pageSize){
  74. scroller.endPullupToRefresh(true);
  75. }else{
  76. page ++;
  77. if(isInit){
  78. scroller.refresh(true);
  79. }else{
  80. scroller.endPullupToRefresh(false);
  81. }
  82. }
  83. }
  84. }else{
  85. mui.toast(res.msg);
  86. }
  87. plus.nativeUI.closeWaiting();
  88. }, true);
  89. }
  90. //发送消息
  91. function sendMessage(){
  92. var data = [],
  93. $inputs = $("input[name=patient]:checked"),
  94. len = $inputs.length;
  95. for(i=0; i<len; i++){
  96. var obj = $($inputs[i]).data("json");
  97. data.push({
  98. patient: obj.patient,
  99. deviceSn: obj.device_sn,
  100. deviceName: obj.device_name,
  101. categoryCode: obj.category_code
  102. });
  103. }
  104. var url = "doctor/device/sendDeviceWxMessage",
  105. params = {
  106. data: JSON.stringify(data),
  107. };
  108. plus.nativeUI.showWaiting();
  109. sendPost(url, params, null, function(res){
  110. plus.nativeUI.closeWaiting();
  111. if(res.status == 200){
  112. mui.toast(res.msg);
  113. scroller.scrollTo(0,0,100);
  114. getData(true); //刷新页面数据
  115. }else{
  116. mui.toast(res.msg);
  117. }
  118. })
  119. }
  120. function bindEvents(){
  121. $("#dateName").on('click', function(){
  122. mui('#dateSheet').popover('toggle');
  123. });
  124. $("#statusName").on('click', function(){
  125. mui('#statusSheet').popover('toggle');
  126. });
  127. $("#typeName").on('click', function(){
  128. mui('#typeSheet').popover('toggle');
  129. });
  130. $("#patientNumber").on('click', function(){
  131. mui('#numberSheet').popover('toggle');
  132. })
  133. //选择日期选项
  134. $(".date-item").on('tap', function(){
  135. var $this = $(this),
  136. value = $this.attr("data-val"),
  137. text = $this.find("a").text();
  138. if(value == dateVal){
  139. mui('#dateSheet').popover('toggle');
  140. return false;
  141. }
  142. dateVal = value;
  143. $this.find("a").addClass("active");
  144. $("#dateName").text(text);
  145. mui('#dateSheet').popover('toggle');
  146. scroller.scrollTo(0, 0, 500);
  147. getData(true);
  148. });
  149. //选择状态
  150. $(".status-item").on('tap', function(){
  151. var $this = $(this),
  152. value = $this.attr("data-val"),
  153. text = $this.find("a").text();
  154. if(value == statusVal){
  155. mui('#dateSheet').popover('toggle');
  156. return false;
  157. }
  158. statusVal = value;
  159. $("#statusName").text(text);
  160. mui('#statusSheet').popover('toggle');
  161. scroller.scrollTo(0, 0, 500);
  162. getData(true);
  163. });
  164. //选择设备类型
  165. $(".type-item").on('tap', function(){
  166. var $this = $(this),
  167. value = $this.attr("data-val"),
  168. text = $this.find("a").text();
  169. if(value == typeVal){
  170. mui('#dateSheet').popover('toggle');
  171. return false;
  172. }
  173. typeVal = value;
  174. $("#typeName").text(text);
  175. mui('#typeSheet').popover('toggle');
  176. scroller.scrollTo(0, 0, 500);
  177. getData(true);
  178. });
  179. //复选框点击事件
  180. $("input[name=checkAll]").on('change', function(){
  181. var $this = $(this);
  182. if($this.prop("checked")){
  183. $("input[name=patient]").prop("checked", true);
  184. }else{
  185. $("input[name=patient]").prop("checked", false);
  186. }
  187. checkSendBtnEnable();
  188. });
  189. $("#result_wrapper").on('change', "input[name=patient]", function(){
  190. var $checkedList = $("input[name=patient]:checked"),
  191. len = $checkedList.length,
  192. $allInputs = $("input[name=patient]"),
  193. allLen = $allInputs.length;
  194. if(len == allLen){
  195. $("input[name=checkAll]").prop("checked", true);
  196. }else{
  197. $("input[name=checkAll]").prop("checked", false);
  198. }
  199. checkSendBtnEnable();
  200. });
  201. //发送消息
  202. $(".header-link").on('click', function(){
  203. if($(this).hasClass("disabled")){
  204. return false;
  205. }
  206. sendMessage();
  207. })
  208. }
  209. function checkSendBtnEnable(){
  210. var $checkedList = $("input[name=patient]:checked"),
  211. len = $checkedList.length;
  212. if(len > 0){
  213. $(".header-link").removeClass("disabled");
  214. }else{
  215. $(".header-link").addClass("disabled");
  216. }
  217. }
  218. function initScroller(){
  219. //阻尼系数
  220. var deceleration = mui.os.ios?0.003:0.0009;
  221. mui('.mui-scroll-wrapper').scroll({
  222. bounce: false,
  223. indicators: true, //是否显示滚动条
  224. deceleration:deceleration
  225. });
  226. scroller = mui(".mui-scroll-wrapper").pullRefresh({
  227. down:{
  228. callback: function(){
  229. getData(true);
  230. this.endPulldownToRefresh();
  231. }
  232. },
  233. up: {
  234. callback: function(){
  235. getData(false);
  236. }
  237. }
  238. })
  239. }