control-goal.js 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. var kfxt, chxt, kfxtdx, chxtdx,
  2. ssy, szy, ssydx, szydx,
  3. step, minbmi, maxbmi;
  4. // 获取登录相关信息
  5. var getBaseInfo = function() {
  6. docInfo = JSON.parse(plus.storage.getItem("docInfo"));
  7. patientCode = baseEnv.webview.pCodes;
  8. $('#header-title').html(baseEnv.webview.pName + ' - 控制目标')
  9. // 登录的相关信息
  10. var userAgent = JSON.parse(plus.storage.getItem("userAgent"));
  11. return {
  12. userAgent: userAgent
  13. }
  14. },
  15. // 获取基础环境信息
  16. getBaseEnvPromise = function () {
  17. var env = {
  18. webview: plus.webview.currentWebview()
  19. };
  20. // 因为有异步请求,需要等待数据返回之后进行处理,所以返回Promise
  21. return Promise.resolve().then(function(res) {
  22. return env;
  23. });
  24. },
  25. // 数据同步到页面
  26. setDataForHtml = function() {
  27. $('#kfxt').val(kfxt ? kfxt + 'mmol/L' : '7.0mmol/L');
  28. $('#chxt').val(chxt ? chxt + 'mmol/L' : '11.1mmol/L');
  29. $('#kfxtdx').val(kfxtdx ? kfxtdx + 'mmol/L' : '4.0mmol/L');
  30. $('#chxtdx').val(chxtdx ? chxtdx + 'mmol/L' : '4.0mmol/L');
  31. $('#ssy').val(ssy ? ssy + 'mmHg' : '140mmHg');
  32. $('#szy').val(szy ? szy + 'mmHg' : '90mmHg');
  33. $('#ssydx').val(ssydx ? ssydx+ 'mmHg' : '90mmHg');
  34. $('#szydx').val(szydx ? szydx + 'mmHg' : '60mmHg');
  35. $('#step').val(step ? step + '步' : '10000步');
  36. $('#minbmi').val(minbmi ? minbmi : '18.5');
  37. $('#maxbmi').val(maxbmi ? maxbmi : '23.9');
  38. },
  39. initPage = function(){
  40. plus.nativeUI.showWaiting();
  41. // 获取已控制目标
  42. sendPost("/doctor/scheme/getControlObjectives", {patient: patientCode}, null, function(res){
  43. if(res.status == 200) {
  44. plus.nativeUI.closeWaiting();
  45. var data = res.data;
  46. console.log(data)
  47. // 数据赋值
  48. kfxt = data.patientAimBloodSugger ? data.patientAimBloodSugger.fbg : '7.0';
  49. chxt = data.patientAimBloodSugger ? data.patientAimBloodSugger.hpg : '11.1';
  50. kfxtdx = data.patientAimBloodSugger ? data.patientAimBloodSugger.fbgMin : '4.0';
  51. chxtdx = data.patientAimBloodSugger ? data.patientAimBloodSugger.hpgMin : '4.0';
  52. ssy = data.patientAimBloodPressure ? data.patientAimBloodPressure.sbp : '140';
  53. szy = data.patientAimBloodPressure ? data.patientAimBloodPressure.dbp : '90';
  54. ssydx = data.patientAimBloodPressure ? data.patientAimBloodPressure.sbpMin : '90';
  55. szydx = data.patientAimBloodPressure? data.patientAimBloodPressure.dbpMin : '60';
  56. step = data.patientAimSports ? data.patientAimSports.dailyStepCount : '10000';
  57. minbmi = data.patientAimSports ? data.patientAimSports.bmiMin : '18.5';
  58. maxbmi = data.patientAimSports ? data.patientAimSports.bmiMax : '23.9';
  59. setDataForHtml();
  60. if(!data.patientAimBloodSugger && !data.patientAimBloodPressure && !data.patientAimSports){
  61. //没有设置过目标时,显示默认值,然后保存按钮高亮
  62. $("#save").removeClass("disabled");
  63. }
  64. initMobiscroll();
  65. } else {
  66. plus.nativeUI.closeWaiting();
  67. mui.toast(res.msg || "没有获取到已控制的目标值");
  68. setDataForHtml();
  69. initMobiscroll();
  70. }
  71. }, 'GET');
  72. },
  73. initMobiscroll = function() {
  74. //绑定数字键盘
  75. $.each(document.querySelectorAll('input[type=text]'), function(index, el){
  76. var name = el.name;
  77. if(name == "xyval"){
  78. $(el).mobiscroll().numpad({
  79. theme: 'ios',
  80. display: 'bottom',
  81. lang: 'zh',
  82. placeholder: '0',
  83. fill: 'rtl',
  84. allowLeadingZero: true,
  85. template: 'ddd',
  86. scale:0,
  87. buttons: ['set','cancel'],
  88. onSelect: function(valueText, inst){
  89. var value = parseFloat($('.mbsc-np-dsp').text());
  90. $("#save").removeClass("disabled");
  91. if(index == 4) {
  92. ssy = value;
  93. } else if(index == 5) {
  94. szy = value;
  95. } else if(index == 6) {
  96. ssydx = value;
  97. } else if(index == 7) {
  98. szydx = value;
  99. }
  100. setDataForHtml();
  101. }
  102. });
  103. }else if(name == "xtval" || name == "bmi"){
  104. $(el).mobiscroll().numpad({
  105. theme: 'ios',
  106. display: 'bottom',
  107. lang: 'zh',
  108. placeholder: '0',
  109. fill: 'rtl',
  110. allowLeadingZero: true,
  111. template: 'dd.d',
  112. scale:0,
  113. buttons: ['set','cancel'],
  114. onSelect: function(valueText, inst){
  115. var value = parseFloat($('.mbsc-np-dsp').text());
  116. $("#save").removeClass("disabled");
  117. if(index == 0) {
  118. kfxt = value;
  119. } else if(index == 1) {
  120. chxt = value;
  121. } else if(index == 2) {
  122. kfxtdx = value;
  123. } else if(index == 3) {
  124. chxtdx = value;
  125. } else if(index == 9) {
  126. minbmi = value;
  127. } else if(index == 10) {
  128. maxbmi = value;
  129. }
  130. setDataForHtml();
  131. }
  132. })
  133. } else if (name == "step"){
  134. $(el).mobiscroll().numpad({
  135. theme: 'ios',
  136. display: 'bottom',
  137. lang: 'zh',
  138. placeholder: '0',
  139. fill: 'rtl',
  140. allowLeadingZero: true,
  141. template: 'ddddd',
  142. scale:0,
  143. buttons: ['set','cancel'],
  144. onSelect: function(valueText, inst){
  145. var value = parseFloat($('.mbsc-np-dsp').text());
  146. $("#save").removeClass("disabled");
  147. if(index == 8) {
  148. step = value;
  149. }
  150. setDataForHtml();
  151. }
  152. })
  153. };
  154. })
  155. },
  156. bindEvents = function(){
  157. // 保存
  158. $('body').on("tap", "#save", function(){
  159. if($(this).hasClass("disabled")){
  160. return false;
  161. }
  162. if(!kfxt || !chxt || !kfxtdx || !chxtdx || !ssy || !szy || !ssydx || !szydx || !step || !minbmi || !maxbmi) {
  163. mui.toast("需要完整填写目标数据!");
  164. return false;
  165. }
  166. plus.nativeUI.showWaiting();
  167. var sugger = {
  168. fbg: kfxt,
  169. hpg: chxt,
  170. fbgMin: kfxtdx,
  171. hpgMin: chxtdx,
  172. unit: "mmol/L"
  173. },
  174. pressure = {
  175. sbp: ssy,
  176. dbp: szy,
  177. sbpMin: ssydx,
  178. dbpMin: szydx,
  179. unit: "mmHg"
  180. },
  181. sport = {
  182. dailyStepCount: step,
  183. bmiMax: maxbmi,
  184. bmiMin: minbmi
  185. };
  186. var param = {
  187. patient: patientCode,
  188. suggerJson: JSON.stringify(sugger),
  189. pressureJson: JSON.stringify(pressure),
  190. sportJson: JSON.stringify(sport)
  191. }
  192. sendPost("/doctor/scheme/setSinglePatientAim", param, null, function(res){
  193. if(res.status == 200) {
  194. mui.toast(res.msg);
  195. //返回前一个页面
  196. var self = plus.webview.currentWebview(),
  197. opener = self.opener();
  198. if(opener){
  199. mui.fire(opener, "refreshTargetData");
  200. }
  201. self.close();
  202. } else {
  203. mui.toast(res.msg || "保存失败!");
  204. }
  205. plus.nativeUI.closeWaiting();
  206. }, 'POST');
  207. })
  208. };
  209. // 页面业务处理流程开始
  210. new Promise(function(resolve, reject) {
  211. // TODO 临时放开
  212. mui.plusReady(function() {
  213. // plus已经准备好,可以往下执行
  214. resolve(true);
  215. });
  216. }).then(function() {
  217. // 获取基础环境信息
  218. return getBaseEnvPromise().then(function(env) {
  219. baseEnv = env;
  220. }).then(function() {
  221. // 获取登录医生信息
  222. baseInfo = getBaseInfo();
  223. //初始化页面内容
  224. initPage();
  225. // 绑定页面事件
  226. bindEvents();
  227. })
  228. }).catch(function(e) {
  229. plus.nativeUI.closeWaiting();
  230. console && console.error(e);
  231. });