prescription-records.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561
  1. mui.init();
  2. var self,
  3. userRole,
  4. areaCode,
  5. areaTitle,
  6. initLevel,
  7. level,
  8. initDate,//记录从前一个页面跳转过来的日期
  9. dateType,//记录前一个页面跳转时柱状图的日期类型 1-日期,2-周,3-月
  10. disease, //记录从前一个页面跳转过来的疾病
  11. status, //从前一个页面跳转过来的状态
  12. expressType, //从前一个页面跳转过来的配送状态
  13. selectedArea, //从前一个页面带过来的区域信息
  14. startDate,
  15. endDate,
  16. currentYear,
  17. minYear = '2017', //长处方功能开始的时间2017才有这个功能
  18. page = 1,
  19. pageSize = 10,
  20. filterSelectedData = {
  21. area: {
  22. town: '',
  23. hospital: ''
  24. },
  25. filter: {
  26. disease: '',
  27. status: '',
  28. type: ''
  29. },
  30. date:{
  31. sDate: '',
  32. eData: '',
  33. year: '',
  34. month: ''
  35. }
  36. };
  37. var now = new Date();
  38. currentYear = now.getFullYear();
  39. mui.plusReady(function(){
  40. //获得权限
  41. userRole = JSON.parse(plus.storage.getItem("selectedRole"));
  42. areaCode = userRole.code;
  43. self = plus.webview.currentWebview();
  44. initDate = self.date;
  45. dateType = self.dateType;
  46. disease = self.disease;
  47. status = self.status;
  48. expressType = self.expressType;
  49. areaCode = self.area + '';
  50. level = areaCode == CITY_CODE ? 4 : areaCode.length==6 ? 3 : 2;
  51. areaTitle = self.areaTitle;
  52. $("#area").text(self.areaTitle);
  53. //填充帅选条件
  54. if(disease){
  55. var val = 0;
  56. if(disease == 'HP0047'){ //糖尿病
  57. val = 2;
  58. }else if(disease == 'HP0093'){ //高血压
  59. val = 1;
  60. }
  61. $(".disease[data-val="+val+"]").addClass("active");
  62. }
  63. if(status){
  64. $(".status[data-val="+status+"]").addClass("active");
  65. }
  66. if(expressType){
  67. $(".express-type[data-val="+expressType+"]").addClass("active");
  68. }
  69. getStartEndDate(initDate, dateType);
  70. //填充时间筛选数据
  71. if(dateType == 1 || dateType == 3){
  72. $("#date").text(initDate);
  73. }else if(dateType == 2){
  74. var str = startDate.substr(5, 5) + "~"+endDate.substr(5, 5);
  75. $("#date").text(str);
  76. //处理选中的时间
  77. var $inputs = $(".date-input");
  78. $($inputs[0]).val(startDate);
  79. $($inputs[1]).val(endDate);
  80. }
  81. getFilterData();
  82. getList(true);
  83. initListPanelScroller();
  84. initComminityScroller();
  85. initYearScroller();
  86. bindEvents();
  87. })
  88. function getFilterData(){
  89. initLevel = userRole.code == CITY_CODE ? 4 : userRole.code.length==6 ? 3 : 2;
  90. var areaTitle = userRole.name;
  91. if(initLevel == 4){
  92. getTown();
  93. filterSelectedData.area.town = CITY_CODE;
  94. }else if(initLevel == 3){
  95. $("#districtPanel").hide();
  96. filterSelectedData.area.town = userRole.code;
  97. //TODO 获取社区列表
  98. getHospital(userRole.code, userRole.name);
  99. }else if(initLevel == 2){
  100. filterSelectedData.area.hospital = userRole.code;
  101. $("#districtPanel").hide();
  102. var html = "<li data-code='"+areaCode+"' class='active'>"+areaTitle+"</li>";
  103. $(".community-panel").empty().append(html);
  104. }
  105. var dateHtml = "";
  106. for(i=currentYear; i>=minYear; i--){
  107. dateHtml += '<span class="tag mr20" data-type="date" data-val="'+i+'">'+i+'年</span>';
  108. }
  109. $("#yearPanel").empty().append(dateHtml);
  110. }
  111. //获得列表数据
  112. function getList(isInit){
  113. if(isInit){
  114. page = 1;
  115. }
  116. var url = "/doctor/prescriptionInfo/getPrescriptionByCondition",
  117. $disease = $(".disease.active"),
  118. disease = $disease.length > 0 ? $disease.attr("data-val") : '',
  119. $status = $(".status.active"),
  120. status = $status.length > 0 ? $status.attr("data-val") : 1,
  121. $type = $(".express-type.active"),
  122. type = $type.length > 0 ? $type.attr("data-val") : '',
  123. params = {
  124. level: level,
  125. area: areaCode,
  126. disease: disease,
  127. status: status,
  128. type: type,
  129. startTime: startDate,
  130. endTime: endDate,
  131. pageNo: page,
  132. pageSize: pageSize
  133. };
  134. plus.nativeUI.showWaiting();
  135. sendGet(url, params, null, function(res){
  136. if(res.status == 200){
  137. if(isInit){
  138. mui('#listPanel').scroll().scrollTo(0,0);
  139. if(res.data.length == 0){
  140. $("#listPanel").hide();
  141. $("#no_result_wrap").show();
  142. }else{
  143. $("#listPanel").show();
  144. $("#no_result_wrap").hide();
  145. $("#totalCount").text(res.data.count);
  146. $("#totalAmount").text(res.data.totalAmount);
  147. var html = template("list-tmp", res.data);
  148. $("#listPanel .list-panel").empty().append(html);
  149. if(res.data.length < pageSize){
  150. mui('#listPanel').pullRefresh().endPullupToRefresh(true);
  151. }else{
  152. mui('#listPanel').pullRefresh().refresh(true);
  153. page ++;
  154. }
  155. }
  156. }else{
  157. var html = template("list-tmp", res.data);
  158. $("#listPanel .list-panel").append(html);
  159. if(res.data.length < pageSize){
  160. mui('#listPanel').pullRefresh().endPullupToRefresh(true);
  161. }else{
  162. mui('#listPanel').pullRefresh().endPullupToRefresh();
  163. page ++;
  164. }
  165. }
  166. }else{
  167. mui.toast(res.msg);
  168. }
  169. plus.nativeUI.closeWaiting();
  170. }, true);
  171. }
  172. //获得市区信息
  173. function getTown(){
  174. var url = "/area/"+CITY_CODE+"/towns";
  175. sendGet(url, {city: CITY_CODE}, null, function(res){
  176. if(res.status == 200){
  177. console.log(res);
  178. var html = template("town-tmp", {list: res.data, cityCode: CITY_CODE, cityName: userRole.name});
  179. $("#districtPanel").empty().append(html);
  180. //判断前一个页面带过来的区域是否在此页显示
  181. if(level == 3){
  182. $(".district").removeClass("active");
  183. var $node = $(".district[data-code="+areaCode+"]");
  184. $node.addClass("active");
  185. getHospital(areaCode, $node.attr("data-name"));
  186. }else if(level == 2){
  187. var parentCode = areaCode.substr(0,6);
  188. $(".district").removeClass("active");
  189. var $node = $(".district[data-code="+parentCode+"]");
  190. $node.addClass("active");
  191. getHospital(parentCode, $node.attr("data-name"));
  192. }
  193. }
  194. }, true);
  195. }
  196. //获得服务中心的数据
  197. function getHospital(code, name){
  198. var url = "/area/getHospitals",
  199. params = {
  200. town: code
  201. };
  202. $(".mui-loading").show();
  203. $(".community-panel").hide();
  204. sendGet(url, params, null, function(res){
  205. if(res.status = 200){
  206. var html = template("community-temp", {townCode: code, townName: name, list: res.data});
  207. $(".community-panel").empty().append(html);
  208. $(".mui-loading").hide();
  209. $(".community-panel").show();
  210. //判断前一个页面带过来的区域是否在此页显示
  211. if(level == 2){
  212. $("li[data-level=2]").removeClass("active");
  213. $("li[data-code="+areaCode+"]").addClass("active");
  214. }
  215. }else{
  216. $(".mui-loading").hide();
  217. mui.toast(res.msg);
  218. }
  219. }, true);
  220. }
  221. function getStartEndDate(str, type){
  222. //type 1-日,2-周,3-月, 4-年
  223. switch(parseInt(type)){
  224. case 1:
  225. startDate = str;
  226. endDate = str;
  227. break;
  228. case 2:
  229. startDate = str;
  230. var d = new Date(str),
  231. end = new Date(str);
  232. end.setDate(d.getDate() + 6);
  233. endDate = end.format("yyyy-MM-dd");
  234. break;
  235. case 3:
  236. var month = str.substr(5,2);
  237. if(month == '12'){
  238. startDate = str+"-01";
  239. endDate = str+"-31";
  240. }else{
  241. var d = new Date(str);
  242. startDate = d.format("yyyy-MM-dd");
  243. d.setMonth(d.getMonth() + 1);
  244. d.setDate(d.getDate()-1);
  245. endDate = d.format("yyyy-MM-dd");
  246. }
  247. break;
  248. case 4:
  249. startDate = str+"-01-01";
  250. endDate = str+"-12-31";
  251. break;
  252. }
  253. }
  254. function bindEvents(){
  255. $("#area").on('click', function(){
  256. if($(this).hasClass("active")){
  257. $(this).removeClass("active");
  258. $("#showHeader").removeClass("show");
  259. $("#showHeader").hide();
  260. return false;
  261. }
  262. $("#tabs .j-tag").removeClass("active");
  263. $(this).addClass("active");
  264. $("#areaPanel").show();
  265. $("#filterPanel").hide();
  266. $("#datePanel").hide();
  267. $("#showHeader").show();
  268. $("#showHeader").addClass("show");
  269. });
  270. $("#filter").on('click', function(){
  271. if($(this).hasClass("active")){
  272. $(this).removeClass("active");
  273. $("#showHeader").removeClass("show");
  274. $("#showHeader").hide();
  275. return false;
  276. }
  277. $("#tabs .j-tag").removeClass("active");
  278. $(this).addClass("active");
  279. $("#areaPanel").hide();
  280. $("#filterPanel").show();
  281. $("#datePanel").hide();
  282. $("#showHeader").show();
  283. $("#showHeader").addClass("show")
  284. });
  285. $("#date").on('click', function(){
  286. if($(this).hasClass("active")){
  287. $(this).removeClass("active");
  288. $("#showHeader").removeClass("show");
  289. $("#showHeader").hide();
  290. return false;
  291. }
  292. $("#tabs .j-tag").removeClass("active");
  293. $(this).addClass("active");
  294. $("#areaPanel").hide();
  295. $("#filterPanel").hide();
  296. $("#datePanel").show();
  297. $("#showHeader").show();
  298. $("#showHeader").addClass("show")
  299. });
  300. $("#showHeader").on('tap', '.tag', function(){
  301. var $this = $(this);
  302. if($this.hasClass("active")){
  303. return false;
  304. }
  305. $this.siblings().removeClass("active");
  306. $this.addClass("active");
  307. //如果是日期选项,则清空输入框的内容
  308. var type = $this.attr("data-type");
  309. if(type == 'year'){
  310. $(".date-input").val("");
  311. }
  312. });
  313. $("#districtPanel").on('click', '.district', function(){
  314. var $this = $(this),
  315. code = $this.attr("data-code"),
  316. name = $this.attr("data-name");
  317. if($this.hasClass("active")){
  318. return false;
  319. }
  320. $this.siblings().removeClass("active");
  321. $this.addClass("active");
  322. if(code == CITY_CODE){
  323. $("#communityPanel .mui-loading").hide();
  324. $("#communityPanel .community-panel").hide();
  325. }
  326. // $("#area").text(name);
  327. // $("#area").attr("data-code", code);
  328. //TODO 获得社区服务中心列表
  329. getHospital(code, name);
  330. });
  331. $("#communityPanel").on('tap', "li", function(){
  332. var $this = $(this),
  333. code = $this.attr("data-code"),
  334. name = $this.attr("data-name");
  335. if($this.hasClass("active")){
  336. return false;
  337. }
  338. $this.siblings().removeClass("active");
  339. $this.addClass("active");
  340. // $("#area").text(name);
  341. // $("#area").attr("data-code", code);
  342. })
  343. $(".date-input").on('click', function(){
  344. var picker = new mui.DtPicker({
  345. "type": 'date',
  346. "beginYear": minYear,
  347. "endYear": currentYear
  348. });
  349. var $this = $(this);
  350. picker.show(function(rs){
  351. $this.val(rs.text);
  352. //将不选中选中的月份和年份
  353. $("#datePanel .tag").removeClass("active");
  354. picker.dispose();
  355. })
  356. });
  357. //重置按钮绑定事件
  358. $("#showHeader").on('click', ".reset-btn", function(){
  359. var activeTab = $("#tabs .j-tag.active").attr("id");
  360. if(activeTab == "area"){
  361. //位置的重置,直接使用默认初始的
  362. var areaTitle = userRole.name;
  363. $("#area").text(areaTitle);
  364. if(initLevel == 4){
  365. $("#districtPanel .district").removeClass("active");
  366. $("#districtPanel .district").eq(0).addClass("active");
  367. $(".community-panel").hide();
  368. }else if(initLevel == 3){
  369. $(".community-panel .district").removeClass("active");
  370. $(".community-panel .district").eq(0).addClass("active");
  371. }else if(initLevel == 2){
  372. }
  373. }else if(activeTab == "filter"){
  374. $("#filterPanel").find(".tag").removeClass("active");
  375. }else{
  376. $("#datePanel").find(".tag").removeClass("active");
  377. $("#datePanel").find(".date-input").val("");
  378. }
  379. });
  380. //确定按钮绑定事件
  381. $("#showHeader").on('click', ".confirm-btn", function(){
  382. //先处理地区选中的值
  383. if(initLevel == 4){
  384. var $selectTown = $("#districtPanel .district.active");
  385. filterSelectedData.area.town = $selectTown.attr("data-code");
  386. if($selectTown.attr("data-code") != CITY_CODE){
  387. var $hospital = $("#communityPanel li.active");
  388. filterSelectedData.area.hospital = $hospital.attr("data-code");
  389. $("#area").text($hospital.attr("data-name"));
  390. $("#area").attr("data-code", $hospital.attr("data-code"));
  391. areaCode = $hospital.attr("data-code");
  392. level = $hospital.attr("data-code").length > 6 ? 2 : 3;
  393. }else{
  394. $("#area").text(userRole.name);
  395. $("#area").attr("data-code", userRole.code);
  396. areaCode = userRole.code;
  397. level = 4;
  398. }
  399. }else if(initLevel == 3){
  400. var $hospital = $("#communityPanel li.active");
  401. filterSelectedData.area.hospital = $hospital.attr("data-code");
  402. $("#area").text($hospital.attr("data-name"));
  403. $("#area").attr("data-code", $hospital.attr("data-code"));
  404. areaCode = $hospital.attr("data-code");
  405. level = $hospital.attr("data-code").length > 6 ? 2 : 3;
  406. }
  407. //处理选中的时间
  408. var $inputs = $(".date-input"),
  409. sd = $($inputs[0]).val(),
  410. ed = $($inputs[1]).val();
  411. if(sd && ed){
  412. startDate = sd;
  413. endDate = ed;
  414. $("#date").text("自定义时间");
  415. }else if(sd || ed){
  416. //不改变时间值
  417. }else{
  418. var year = $("#yearPanel .tag.active").attr("data-val"),
  419. month = $(".month.active").attr("data-val");
  420. if(year && month){
  421. getStartEndDate(year+"-"+month, 3);
  422. $("#date").text(year+"年"+month+"月");
  423. }else if(year && !month){
  424. getStartEndDate(year, 4);
  425. $("#date").text(year+"年");
  426. }else if(!year && month){
  427. mui.toast("请选择年份");
  428. return false;
  429. }
  430. }
  431. getList(true);
  432. $("#showHeader").hide();
  433. });
  434. $("#listPanel").on('tap', ".order", function(){
  435. var code = $(this).attr("data-code");
  436. openWebview("xufangxiangqing2.html", {prescriptionCode: code});
  437. });
  438. $(".search-input").on('click', function(){
  439. openWebview("search-xufang-order.html");
  440. });
  441. template.helper("getStatusName", function(status){
  442. status = parseInt(status);
  443. if(status == 100){
  444. return "已完成";
  445. }else if(status == -2){
  446. return "居民取消";
  447. }else if(status == -1){
  448. return "审核不通过";
  449. }else if(status <= -3){
  450. return "其他原因取消";
  451. }else if(status >=0 && status<100){
  452. return "进行中";
  453. }
  454. });
  455. template.helper("getExpressName", function(type){
  456. switch(type){
  457. case 1:
  458. return '自取';
  459. break;
  460. case 3:
  461. return "健管师配送";
  462. break;
  463. case 2:
  464. return "快递配送";
  465. break;
  466. default:
  467. return "";
  468. break;
  469. }
  470. })
  471. template.helper("formatDate", function(str){
  472. if(!str){
  473. return "";
  474. }
  475. var timeStm = parseInt(str),
  476. d = new Date(timeStm);
  477. return d.format("yyyy-MM-dd hh:mm")
  478. })
  479. }
  480. function initListPanelScroller(){
  481. //阻尼系数
  482. var deceleration = mui.os.ios?0.003:0.0009;
  483. mui('.mui-scroll-wrapper').scroll({
  484. bounce: false,
  485. indicators: true, //是否显示滚动条
  486. deceleration:deceleration
  487. });
  488. mui("#listPanel").pullRefresh({
  489. up: {
  490. callback: function(){
  491. var self = this;
  492. setTimeout(function(){
  493. getList(false);
  494. // self.endPullupToRefresh();
  495. }, 500);
  496. }
  497. }
  498. })
  499. }
  500. function initComminityScroller(){
  501. mui("#communityPanel .mui-scroll-wrapper").pullRefresh();
  502. }
  503. function initYearScroller(){
  504. mui("#year-panel").scroll({
  505. scrollY: false, //是否竖向滚动
  506. scrollX: true, //是否横向滚动
  507. startX: 0, //初始化时滚动至x
  508. startY: 0, //初始化时滚动至y
  509. indicators: true, //是否显示滚动条
  510. deceleration:0.0006, //阻尼系数,系数越小滑动越灵敏
  511. bounce: true
  512. });
  513. }