dept-source.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. (function() {
  2. Vue.component('dept-source', {
  3. template: '<div class="select-hospital">\
  4. <ul class="select-condition-list" @click="itemClick">\
  5. <li class="select-condition-list-item" data-type="hostipal">\
  6. <div class="condition-name">医院</div>\
  7. <div class="condition-list">\
  8. <span>全部</span>\
  9. <span :class="{\'active\': hos.hospitalId==currentHospitalId}" v-for="hos in hospitalData" v-bind:data-val="hos.hospitalId">{{hos.hosName}}</span>\
  10. </div>\
  11. <div class="more-list">更多</div>\
  12. </li>\
  13. <li class="select-condition-list-item" data-type="visitdept">\
  14. <div class="condition-name">就诊科室</div>\
  15. <div class="condition-list">\
  16. <span class="active">全部</span>\
  17. <span v-for="dept in deptData" v-bind:data-val="dept.hosDeptId">{{dept.deptName}}</span>\
  18. </div>\
  19. <div class="more-list">更多</div>\
  20. </li>\
  21. <li class="select-condition-list-item" data-type="visitdate">\
  22. <div class="condition-name">就诊日期</div>\
  23. <div class="condition-list">\
  24. <span class="active">全部</span>\
  25. <span data-val="{{nowDate}}">今天</span>\
  26. <span v-for="d in planDate" v-bind:data-val="d.date1">{{d.day}}({{d.date}})</span>\
  27. </div>\
  28. <div class="more-list">更多</div>\
  29. </li>\
  30. </ul>\
  31. </div>',
  32. props: ["info"],
  33. data: function() {
  34. return {
  35. hospitalData: [],
  36. deptData: [],
  37. subDeptData: [],
  38. planDate: [],
  39. currentHospitalId:"",
  40. nowDate:new Date().format("YYYY-MM-dd"),
  41. pageIndex:1,
  42. pageSize:10
  43. }
  44. },
  45. mounted: function() {
  46. var vm = this;
  47. setTimeout(function(){
  48. vm.currentHospitalId = JSON.parse(vm.info).hospitalId;
  49. vm.getHospitalList();
  50. vm.getDeptList();
  51. vm.getVisitDate();
  52. vm.bindEvents();
  53. },50);
  54. },
  55. methods: {
  56. itemClick:function(){
  57. var vm = this;
  58. var hosDeptId = "";
  59. var curType = $(event.target).closest("li").attr("data-type");
  60. var activeItemId = $(event.target).attr("data-val");
  61. $(event.target).closest("li").find("span").removeClass("active");
  62. $(event.target).addClass("active");
  63. if(curType=="hostipal") {//医院
  64. vm.currentHospitalId = activeItemId;
  65. hosDeptId = ""
  66. vm.getDeptList();
  67. }else if(curType=="visitdept"){//就诊科室
  68. vm.currentHospitalId = $(".select-condition-list li[data-type=hostipal]").find("span.active").attr("data-val");
  69. hosDeptId = activeItemId;
  70. }else if(curType=="subdept"){//子科室
  71. }else if(curType=="visitdate"){//就诊日期
  72. }
  73. EventBus.$emit('update-doctor-list',{hospitalId:vm.currentHospitalId,hosDeptId:hosDeptId});
  74. },
  75. bindEvents:function(){
  76. //查看更多
  77. $(".more-list").click(function() {
  78. var parent = $(this).parents(".select-condition-list-item");
  79. parent.toggleClass('select-condition-list-item-active');
  80. if(parent.hasClass("select-condition-list-item-active")) {
  81. $(this).text("收起")
  82. } else {
  83. $(this).text("更多")
  84. }
  85. })
  86. },
  87. //获取医院列表
  88. getHospitalList: function() {
  89. var vm = this;
  90. var params = {
  91. pageIndex: 1,
  92. pageSize: 99,
  93. provinceCode: 360000,
  94. cityCode: 361100
  95. }
  96. appointmentAPI.querySimpleHospitalList(params).then(function(res) {
  97. if(res.successFlg && res.obj.Code == "10000") {
  98. vm.hospitalData = res.obj.Result;
  99. }
  100. })
  101. },
  102. //获取科室列表
  103. getDeptList: function() {
  104. var vm = this;
  105. var params = {
  106. pageIndex: 1,
  107. pageSize: 99,
  108. hospitalId: vm.currentHospitalId
  109. }
  110. appointmentAPI.querySimpleHosDeptList(params).then(function(res) {
  111. if(res.successFlg && res.obj.Code == "10000") {
  112. vm.deptData = res.obj.Result;
  113. // vm.deptData = _.filter(vm.deptData,function(item){
  114. // return
  115. // })
  116. }
  117. })
  118. },
  119. //默认只有7天的号源
  120. getVisitDate: function() {
  121. var vm = this;
  122. var now = new Date(),d = new Date();
  123. for(i = 1; i < 8; i++) {
  124. var nDate = now.getDate();
  125. d.setDate(nDate + i);
  126. var obj = {
  127. date: d.format("MM月dd日"),
  128. date1: d.format("YYYY-MM-dd"),
  129. day: this.getWeekDay(d.getDay())
  130. }
  131. this.planDate.push(obj);
  132. }
  133. },
  134. getWeekDay: function(val) {
  135. switch(val) {
  136. case 0:
  137. return "周日";
  138. break;
  139. case 1:
  140. return "周一";
  141. break;
  142. case 2:
  143. return "周二";
  144. break;
  145. case 3:
  146. return "周三";
  147. break;
  148. case 4:
  149. return "周四";
  150. break;
  151. case 5:
  152. return "周五";
  153. break;
  154. case 6:
  155. return "周六";
  156. break;
  157. }
  158. }
  159. }
  160. });
  161. })()
  162. //<li class="select-condition-list-item">\
  163. // <div class="condition-name">医生类型</div>\
  164. // <div class="condition-list">\
  165. // <span>全部</span>\
  166. // <span>主任医师</span>\
  167. // <span>其他</span>\
  168. // </div>\
  169. // <div class="more-list">更多</div>\
  170. //</li>\
  171. //<li class="select-condition-list-item" data-type="subdept">\
  172. // <div class="condition-name">子科室</div>\
  173. // <div class="condition-list">\
  174. // <span class="active">全部</span>\
  175. // </div>\
  176. // <div class="more-list">更多</div>\
  177. //</li>\