health-award.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. var self, param, docInfo;
  2. // 筛选条件
  3. var selStatus = 0,
  4. selType = 1,
  5. selNum = 50;
  6. var allPatList = [],
  7. patientArr = [],
  8. description = ""
  9. var $resultList = $("#device_goal");
  10. function initScroller(){
  11. //阻尼系数
  12. var deceleration = mui.os.ios?0.003:0.0009;
  13. mui('.mui-scroll-wrapper').scroll({
  14. scrollX: true,
  15. bounce: false,
  16. indicators: true, //是否显示滚动条
  17. deceleration:deceleration
  18. });
  19. }
  20. // 获取基础环境信息
  21. var getBaseEnvPromise = function () {
  22. docInfo = JSON.parse(plus.storage.getItem("docInfo"));
  23. var env = {
  24. webview: plus&&plus.webview.currentWebview()
  25. };
  26. return Promise.resolve().then(function(res) {
  27. return env;
  28. });
  29. },
  30. // 初始化居民列表
  31. getSelectPatientList = function() {
  32. plus.nativeUI.showWaiting();
  33. var obj = {
  34. doctorId: docInfo.code,
  35. bindStatus: selStatus,
  36. deviceType: selType,
  37. ruleId: self.goalArr[0]
  38. },
  39. params = {
  40. condition: JSON.stringify(obj),
  41. page: 1,
  42. size: selNum
  43. }
  44. sendPost("/doctor/healthBank/selectAccountByCondition", params, queryFails, function(res) {
  45. if(res.status == 200) {
  46. plus.nativeUI.closeWaiting();
  47. $resultList.empty();
  48. // 渲染数据
  49. allPatList = res.data.detailModelList;
  50. var html = template("result_tmpl", {list: allPatList});
  51. // 渲染数据
  52. if(!allPatList || allPatList.length == 0) {
  53. $("#no_result_wrap").show()
  54. } else {
  55. $("#no_result_wrap").hide()
  56. $resultList.append(html);
  57. }
  58. } else {
  59. plus.nativeUI.closeWaiting();
  60. queryFails(res);
  61. }
  62. }, 'POST')
  63. },
  64. // 提交数据
  65. submitData = function() {
  66. plus.nativeUI.showWaiting();
  67. var obj = {
  68. patientIds: patientArr,
  69. ruleId: self.goalArr[0],
  70. description: description
  71. },
  72. params = {
  73. object: JSON.stringify(obj)
  74. }
  75. sendPost("/doctor/healthBank/doctorAddInteger", params, queryFails, function(res) {
  76. if(res.status == 200) {
  77. plus.nativeUI.closeWaiting();
  78. mui.toast("操作成功!")
  79. setTimeout(function() {
  80. var vm = plus.webview.getWebviewById("health-bank"),
  81. _vm = plus.webview.getWebviewById("select_goal");
  82. if(_vm) {
  83. _vm.close();
  84. }
  85. mui.fire(vm,"reLoad");
  86. mui.back();
  87. }, 200)
  88. } else {
  89. plus.nativeUI.closeWaiting();
  90. queryFails(res);
  91. }
  92. }, 'POST')
  93. },
  94. //查询失败回调
  95. queryFails = function(res) {
  96. if(res) {
  97. mui.toast(res.msg)
  98. } else {
  99. mui.toast("加载失败!")
  100. }
  101. },
  102. // 移除勾选
  103. spliceArr = function(patientId) {
  104. for(var i = 0, len = patientArr.length; i < len; i++) {
  105. if(patientArr[i] == patientId) {
  106. patientArr.splice(i, 1)
  107. return
  108. }
  109. }
  110. },
  111. setDialog = function() {
  112. var judgeText = self.judgeClear ? "清零" : "-10分";
  113. dialog({
  114. content: '<p style="font-size:16px;">你将给予居民' + judgeText + ',请简要说明原因。</p><textarea id="reason" placeholder="请简要说明原因(必填)"></textarea>',
  115. okValue: '确认',
  116. cancelValue: '取消打分',
  117. cancel: function () {
  118. return;
  119. },
  120. ok: function() {
  121. description = $("#reason").val();
  122. if(!description || description.length <= 0) {
  123. mui.toast("扣分描述为必填项!");
  124. return false;
  125. }
  126. submitData()
  127. }
  128. }).showModal();
  129. },
  130. /**
  131. * 设置选择活动标题
  132. */
  133. setSelStatus = function($ele, statusArr, statusNameArr, judgeIndex) {
  134. $ele.mobiscroll({
  135. theme: 'ios',
  136. lang: 'zh',
  137. customWheels: true,
  138. wheels: [
  139. [{
  140. keys: statusArr,
  141. values: statusNameArr
  142. }]
  143. ],
  144. onSelect: function(valueText, inst) {
  145. var dd = eval("[" + valueText + "]");
  146. $(this).html(dd[0].values).attr("data-code", dd[0].keys);
  147. switch(judgeIndex) {
  148. case 0: selStatus = dd[0].keys;break
  149. case 1: selType = dd[0].keys;break
  150. case 2: selNum = dd[0].keys;break
  151. }
  152. // 获取积分居民
  153. getSelectPatientList()
  154. }
  155. }
  156. )},
  157. // 绑定页面事件
  158. bindEvents = function () {
  159. $resultList.on("tap", ".sel-label", function() {
  160. var patientId = $(this).parent().attr("data-patient")
  161. if($(this).hasClass("active")) {
  162. $(this).removeClass("active");
  163. $(".sel-label-all").removeClass("active");
  164. spliceArr(patientId)
  165. } else {
  166. $(this).addClass("active");
  167. patientArr.push(patientId)
  168. }
  169. });
  170. $(".sel-label-all").on("tap", function() {
  171. patientArr = []
  172. if($(this).hasClass("active")) {
  173. $(this).removeClass("active");
  174. $(".sel-label").removeClass("active");
  175. } else {
  176. $(this).addClass("active");
  177. $(".sel-label").addClass("active");
  178. for(var i = 0, len = allPatList.length; i < len; i++) {
  179. patientArr.push(allPatList[i].patientId)
  180. }
  181. }
  182. });
  183. // 下一步
  184. $("#sure").on("tap", function() {
  185. if(patientArr.length == 0) {
  186. mui.toast("请先选择居民!");
  187. return false;
  188. }
  189. if(self.subNum > 0) {
  190. setDialog();
  191. } else {
  192. // 提交数据
  193. submitData();
  194. }
  195. });
  196. };
  197. // 页面业务处理流程开始
  198. mui.plusReady(function() {
  199. //获取当前页面
  200. self = plus.webview.currentWebview();
  201. getBaseEnvPromise()
  202. setSelStatus($("#selStatus"), [0, 1], ["已绑定", "未绑定"], 0);
  203. setSelStatus($("#selType"), [1, 2], ["血糖仪", "血压计"], 1);
  204. setSelStatus($("#selNum"), [50, 100, 200, 2000], ["前50", "前150", "前250", "所有居民"], 2);
  205. initScroller();
  206. //绑定事件
  207. bindEvents();
  208. //数据渲染
  209. getSelectPatientList();
  210. })