manbingguanli.js 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  1. var $teamGroups = $('.lin-sel-group'),//团队数
  2. $scroll = $('#iScroll');//内容展示
  3. var teamInfo,
  4. teamCode,//团队code
  5. docInfo;
  6. function setCurTeamName(){
  7. teamCode = $('.lin-sel-group li.checked').attr('data-code');
  8. $('.demo-comtop h1').html(($('.lin-sel-group li.checked').attr('data-name'))+'慢病管理 <label class="lin-down-arrow"></label>');
  9. }
  10. /**
  11. * 显示团队选择
  12. */
  13. var showGroupSel = function(e, isShow){
  14. isShow = isShow || $('.lin-mask:hidden').length != 0;
  15. $('.lin-mask').toggle(isShow);
  16. $('.lin-sel-group').toggle(isShow);
  17. }
  18. //该上月份最后一天
  19. function lastDate(date){
  20. var arr = date.split('-');
  21. var year = arr[0];
  22. var month = arr[1]*1-1;
  23. if(month<1){
  24. month = 12;
  25. year = year - 1;
  26. }
  27. var day = new Date(year,month,0).getDate();
  28. return day;
  29. }
  30. //近一周
  31. function beforeWeek(date,num){
  32. var arr = date.split('-');
  33. var reduce = arr[2]*1-num;
  34. if(reduce>0){
  35. var sDate = arr[0]*1+'-'+addZeroPrev(arr[1]*1)+'-'+reduce+' 00:00:00';
  36. return sDate;
  37. }else if(arr[1]*1 > 1){
  38. var sDate = arr[0]*1+'-'+addZeroPrev(arr[1]*1-1)+'-'+(lastDate(date)+reduce)+' 00:00:00';
  39. return sDate;
  40. }else{
  41. var sDate = (arr[0]*1-1)+'-12-'+(lastDate(date)+reduce)+' 00:00:00';
  42. return sDate;
  43. }
  44. }
  45. function addZeroPrev(str) {
  46. str = str + ''
  47. if(str && str.length == 1) {
  48. return '0' + str
  49. }
  50. return str
  51. }
  52. function queryData(fun){
  53. plus.nativeUI.showWaiting();
  54. var now = new Date();
  55. var day = now.getDate();
  56. var month = now.getMonth() + 1;
  57. var year = now.getFullYear();
  58. var date = year+'-'+addZeroPrev(month)+'-'+day
  59. var endDate = date+' 23:59:59';
  60. var startDate = beforeWeek(date,6);
  61. var params={
  62. teamCode:teamCode,
  63. getcolor:1,//是否获取颜色标签
  64. getstands:1,//是否获取预警人数
  65. gethealthindex:1,//获取体征数据
  66. startdate:startDate,
  67. enddate:endDate
  68. };
  69. var reqParams = [{
  70. url: '/doctor/scheme/getDoctorSwitchTrackPatient',
  71. data: {},
  72. reqType: 'GET'
  73. },{
  74. url: '/doctor/patient_label_info/slowdisease/get/teaminfos',
  75. data: params,
  76. reqType: 'GET'
  77. }];
  78. getReqPromises(reqParams, true).then(function(ress){
  79. plus.nativeUI.closeWaiting();
  80. var res1 = ress[0],
  81. res2 = ress[1],
  82. isOn = false;
  83. if(res1.status == 200){
  84. isOn = res1.data.alertPatientSwitch;
  85. }else if(res1.status == -1){
  86. mui.toast(res1.msg);
  87. }
  88. if(res2.status == 200){
  89. var html = template('mess_tmpl',{data:res2.data, isOn: isOn})
  90. $('#main-contain').html(html)
  91. fun&&fun.call(this)
  92. nextWork(res2.data)
  93. }else if(res2.status == -1){
  94. mui.toast('获取数据失败')
  95. }
  96. });
  97. }
  98. //设置预警居民自动关注
  99. function setPatientToTrack(state){
  100. var url = "/doctor/scheme/setDoctorSwitchTrackPatient",
  101. params = {
  102. state: state //1:设为关注,0:不设关注
  103. };
  104. plus.nativeUI.showWaiting();
  105. sendPost(url, params, null, function(res){
  106. if(res.status == 200){
  107. mui.toast("设置成功");
  108. }else{
  109. mui.toast(res.msg);
  110. }
  111. plus.nativeUI.closeWaiting();
  112. },'POST', '', true);
  113. }
  114. function bindEvents() {
  115. $('.demo-comtop h1').on('tap', showGroupSel);
  116. $teamGroups.on('click', 'li', function(){
  117. showGroupSel(undefined, false);
  118. if(!$(this).hasClass('checked')){
  119. $(this).addClass('checked').siblings().removeClass('checked');
  120. setCurTeamName();
  121. }
  122. reloadPageData()//重新加载数据
  123. })
  124. //自动关注
  125. $scroll.on('tap','#autoNotice',function(){
  126. var $this = $(this)
  127. if($this.hasClass('active')){
  128. $this.removeClass('active')
  129. setPatientToTrack(0);
  130. }else{
  131. $this.addClass('active')
  132. setPatientToTrack(1);
  133. }
  134. })
  135. //提示
  136. $scroll.on('tap','.mb-icon-notice',function(){
  137. var $this = $(this).attr('data-id')
  138. if($this == 0){
  139. dialog({
  140. content: '<div><div class="c-f14 c-333 c-t-left">居民一周内出现5次或以上血糖/血压异常记录的,或连续三次血糖/血压记录异常的,计入预警。预警居民连续5次血糖/血压记录在正常水平时,取消预警。</div></div>',
  141. cancelValue: '确定',
  142. cancel: function () { return;}
  143. }).showModal();
  144. }
  145. if($this == 1){
  146. dialog({
  147. content: '<div><div class="c-f14 c-333 c-t-left">功能开启后,预警中的居民将自动加入重点关注居民中。预警取消后,居民自动从重点关注中移除。</div></div>',
  148. cancelValue: '确定',
  149. cancel: function () { return;}
  150. }).showModal();
  151. }
  152. if($this == 3){
  153. dialog({
  154. content: '<div><div class="c-f14 c-333 c-t-left">最近7天,团队上报的正常血糖/血压记录的比率。</div></div>',
  155. cancelValue: '确定',
  156. cancel: function () { return;}
  157. }).showModal();
  158. }
  159. })
  160. //跳转居民
  161. $scroll.on('tap','#peopleType li',function(){
  162. var type = $(this).attr('data-type')
  163. mui.openWindow({
  164. id: "manbingjumin",
  165. url: "manbingjumin.html",
  166. extras: {
  167. selectType:type,
  168. teamCode:teamCode
  169. }
  170. })
  171. })
  172. //设置预警
  173. $scroll.on('tap','#set_yujing',function(){
  174. mui.openWindow({
  175. id: "yujingshezhi",
  176. url: "yujingshezhi.html",
  177. waiting:{autoShow:false},
  178. extras: {
  179. teamCode:teamCode
  180. }
  181. })
  182. })
  183. //监测方案
  184. $scroll.on('tap','.mb-sec-check',function(){
  185. mui.openWindow({
  186. id: "jc-xuanzejumin",
  187. url: "jc-xuanzejumin.html",
  188. waiting:{autoShow:false},
  189. extras: {
  190. teamCode:teamCode
  191. }
  192. })
  193. });
  194. //重点关注页面
  195. $scroll.on('tap', ".important-info", function(){
  196. mui.openWindow({
  197. id: "zhongdiangenzong",
  198. url: "zhongdiangenzong.html",
  199. waiting:{autoShow:false},
  200. extras: {
  201. teamCode:teamCode
  202. }
  203. })
  204. })
  205. }
  206. function nextWork(data){
  207. var xtRate = (data.sugar_unusual_count/data.sugar_count*100).toFixed(2)
  208. var xyRate = (data.pressure_unusual_count/data.pressure_count*100).toFixed(2)
  209. $('#xuetang').radialIndicator({
  210. barColor: '#17b3ec',
  211. barWidth: 10,
  212. initValue: xtRate,
  213. roundCorner : true,
  214. displayNumber: false
  215. })
  216. $('#xueya').radialIndicator({
  217. barColor: '#17b3ec',
  218. barWidth: 10,
  219. initValue: xyRate,
  220. roundCorner : true,
  221. displayNumber: false
  222. })
  223. }
  224. //整体刷新
  225. function reloadPageData(){
  226. queryData()
  227. }
  228. window.addEventListener("refreshManBing", function(){
  229. reloadPageData()
  230. })
  231. new Promise(function(resolve, reject) {
  232. mui.plusReady(function() {
  233. resolve(true);
  234. })
  235. }).then(function() {
  236. //设置团队
  237. teamInfo = JSON.parse(plus.storage.getItem("teamInfo"));
  238. docInfo = JSON.parse(plus.storage.getItem("docInfo"))
  239. $('.lin-sel-group').html(template('teams_tmpl', teamInfo));
  240. var index =0;
  241. if(docInfo.adminTeamCode){
  242. for(var i=0;i<teamInfo.data.length;i++){
  243. if(teamInfo.data[i].id == docInfo.adminTeamCode){
  244. index = i;
  245. }
  246. }
  247. }
  248. $('.lin-sel-group li').eq(index).addClass('checked');
  249. setCurTeamName()
  250. }).then(function() {
  251. mui.init({
  252. pullRefresh : {
  253. container:'.mui-scroll-wrapper',
  254. down : {
  255. height:50,
  256. auto: false,
  257. contentdown : "下拉可以刷新",
  258. contentover : "释放立即刷新",
  259. contentrefresh : "正在刷新...",
  260. callback: function() {
  261. var self = this
  262. queryData(function(){
  263. setTimeout(function(){
  264. self.endPulldownToRefresh(false);
  265. },500)
  266. })
  267. }
  268. }
  269. }
  270. })
  271. queryData()
  272. bindEvents()
  273. })
  274. template.helper('setRateNum',function(a,b){
  275. var rate;
  276. if(b==0){
  277. rate=0
  278. }else{
  279. rate = a/b
  280. }
  281. if(rate%1 === 0){
  282. return rate*100+'%'
  283. }else{
  284. return (rate*100).toFixed(2)+'%'
  285. }
  286. })