doctor-list.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. (function() {
  2. Vue.component('doctor-list', {
  3. template: '<div class="ui-col-1 ml15 bgc-fff c-border p20">\
  4. <div class="c-f16 c-323232 mb20">医生列表</div>\
  5. <div class="ui-grid c-border p10 pb0 mt10" v-for="(doc, index) in doctorList">\
  6. <div class="ui-col-0 mr10">\
  7. <img v-bind:src="doc.photoUri" width="70" height="70" class="c-images-cycle">\
  8. </div>\
  9. <div class="ui-col-1 div-doctor-info">\
  10. <p>\
  11. <span class="c-f16 c-323232 c-bold mr10">{{doc.doctorName}}</span>\
  12. <span class="c-f14 c-323232 mr10">{{doc.lczcName}}</span>\
  13. <span class="c-f14 c-909090">{{doc.standardDeptName}}</span>\
  14. </p>\
  15. <p class="c-f14 c-909090">{{currentHosName}}</p>\
  16. <p class="c-f14 text-ellipsis">\
  17. <span class="c-909090">擅长:</span>\
  18. <span class="c-909090" v-bind:title="doc.skill">{{doc.skill}}</span>\
  19. </p>\
  20. </div>\
  21. <div class="ui-col-1 div-doctor-section" v-for="(arrange, aindex) in arrangeList" v-if="index==aindex">\
  22. <div class="div-left-btn c-hide" @click="preClick"></div>\
  23. <ul class="doctor-ul">\
  24. <li v-for="(arrg, arrIndex) in arrange">\
  25. <div class="div-doctor-item" :class="getColorClass(arrg.numberStatus,arrg.arrangeStatus)">\
  26. <div class="mt5">{{arrg.registerDate}}</div>\
  27. <div class="mt5">{{arrg.timeName}}</div>\
  28. <div class="div-doctor-type bgc-0ad8c8" v-if="arrg.numberStatus==1">预约</div>\
  29. <div class="div-doctor-type bgc-d1d1d1" v-if="arrg.numberStatus==2">已满</div>\
  30. <div class="div-doctor-type bgc-f0a65f" v-if="arrg.arrangeStatus==2">放号提醒</div>\
  31. <div class="div-doctor-type bgc-ff8787" v-if="arrg.arrangeStatus==4">停诊</div>\
  32. </div>\
  33. </li>\
  34. </ul>\
  35. <div class="div-right-active-btn" @click="nextClick" v-if="arrangeList[aindex].length>4"></div>\
  36. </div>\
  37. </div>\
  38. <div id="page" class="page_div fr"></div>\
  39. </div>',
  40. props: ["info"],
  41. data: function() {
  42. return {
  43. isInit: true,
  44. currentHospitalId: "",
  45. currentHosName: "",
  46. pageIndex: 1,
  47. pageSize: 10,
  48. totalPage: 0,
  49. hosDeptId: "",
  50. doctorList: [],
  51. arrangeList:[]
  52. }
  53. },
  54. mounted: function() {
  55. var vm = this;
  56. setTimeout(function() {
  57. vm.currentHospitalId = JSON.parse(vm.info).hospitalId;
  58. vm.currentHosName = JSON.parse(vm.info).hosName;
  59. vm.getDoctorList();
  60. }, 50);
  61. },
  62. methods: {
  63. getColorClass:function(numberStatus,arrangeStatus){
  64. var classZ="";
  65. if(numberStatus==1){
  66. classZ = "border-0ad8c8 c-0ad8c8";
  67. }else if(numberStatus==2){
  68. classZ = "border-d1d1d1 c-d1d1d1";
  69. }else if(arrangeStatus==2){
  70. classZ = "border-ff8787 c-ff8787";
  71. }else if(arrangeStatus==4){
  72. classZ = "border-f0a65f c-f0a65f";
  73. }
  74. return classZ;
  75. },
  76. //获取医生列表
  77. getDoctorList: function() {
  78. var vm = this;
  79. var params = {
  80. pageIndex: vm.pageIndex,
  81. pageSize: vm.pageSize,
  82. hospitalId: vm.currentHospitalId,
  83. hosDeptId: vm.hosDeptId
  84. }
  85. appointmentAPI.querySimpleDoctorList(params).then(function(res) {
  86. if(res.successFlg && res.obj.Code == "10000") {
  87. vm.doctorList = res.obj.Result;
  88. //获取医生排班数据
  89. vm.getArrangeWater(vm.doctorList);
  90. if(vm.isInit) {
  91. vm.totalPage = Math.ceil(res.obj.Total / vm.pageSize);
  92. //分页初始化
  93. $("#page").paging({
  94. pageNo: 1,
  95. totalPage: vm.totalPage,
  96. totalSize: res.obj.Total,
  97. callback: function(num) {
  98. vm.pageIndex = num; //回调的页数
  99. getDoctorList(vm);
  100. }
  101. })
  102. vm.isInit = false;
  103. }
  104. }
  105. })
  106. },
  107. //获取医生排班数据
  108. getArrangeWater: function(doctorData) {
  109. var vm = this,
  110. reqPromise = [];
  111. _.map(doctorData, function(data) {
  112. var params = {
  113. pageIndex: vm.pageIndex,
  114. pageSize: vm.pageSize,
  115. hospitalId: vm.currentHospitalId,
  116. hosDeptId: vm.hosDeptId,
  117. doctorSn: data.doctorSn, //医生编号
  118. registerDate: "" //就诊日期
  119. }
  120. reqPromise.push(appointmentAPI.queryGhtArrangeWater(params));
  121. })
  122. Promise.all(reqPromise).then(function(datas) {
  123. _.map(datas, function(data) {
  124. if(data.successFlg && data.obj.Code == "10000") {
  125. vm.arrangeList.push(data.obj.Result);
  126. }
  127. })
  128. vm.arrangeList = _.map(vm.arrangeList, function(data) {
  129. _.map(data, function(item) {
  130. item.registerDate = item.registerDate.substring(5,10).replace("-","/");
  131. item.timeName = item.timeId==1?"上午":item.timeId==2?"下午":"晚上";
  132. })
  133. return data;
  134. })
  135. $(".doctor-ul li:lt(4)").hide()
  136. });
  137. },
  138. preClick:function(){
  139. },
  140. nextClick:function(){
  141. $(event.target).prev().find("li:lt(4)").hide();
  142. }
  143. }
  144. });
  145. })()