select-patient.html 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>同步出院小结</title>
  6. <link rel="stylesheet" type="text/css" href="../../../css/cross.css" />
  7. <link rel="stylesheet" type="text/css" href="../../../css/cross.ui.css" />
  8. <link rel="stylesheet" type="text/css" href="../../../css/style.min.css" />
  9. <link rel="stylesheet" type="text/css" href="../css/select-patient.css" />
  10. </head>
  11. <body class="m0">
  12. <div id="app" style="height: 100%;" v-cloak>
  13. <div class="plr20 ptb10 c-border-b">
  14. <div class="clearfix c-border">
  15. <input class="fl search-input plr10" type="text" placeholder="输入居民姓名或身份证号码" v-model="keyword" />
  16. <span class="fr search-btn" @click="getPatientInfoByDoctor()"></span>
  17. </div>
  18. </div>
  19. <div style="overflow: hidden; height: calc(100% - 59px);">
  20. <ul class="pat-list p0 m0" style="overflow: auto; height: 100%;" v-if="isSearch">
  21. <li class="clearfix lh40 plr20 ptb10" v-for="(pati, index) in patiList" :key="index" @click="getPatientInfo(pati)">
  22. <div class="fl set-img">
  23. <img :src="setPatImg(pati.photo)" alt="居民头像" />
  24. </div>
  25. <span class="fl ml20 mr10 c-333 c-f16">{{pati.patientName}}</span>
  26. <span class="fl c-999">({{pati.sex}}&emsp;{{pati.age}}岁)</span>
  27. </li>
  28. <li v-if="!patiList.length" class="c-t-center pt40 set-no-hover">无查询数据</li>
  29. </ul>
  30. <ul class="label-list p0 m0" style="overflow: auto; height: 100%;" v-if="isLabel">
  31. <li v-for="(label, index) in labelList" :key="index">
  32. <h4 class="c-border-b m0 lh40 pl10 pr50 cur-pit clearfix" @click="selectIndexFn(index, label)" :class="{'active':selectIndex == index}">{{label.labelName}}<span class="fr">{{label.count}}</span></h4>
  33. <ul class="pat-list p0 m0 c-border-b" v-if="selectIndex == index">
  34. <li class="clearfix lh40 plr20 ptb10 cur-pit" v-for="(pati, ind) in patiList" @click="getPatientInfo(pati)">
  35. <div class="fl set-img">
  36. <img :src="setPatImg(pati.photo)" alt="居民头像" />
  37. </div>
  38. <span class="fl ml20 mr10 c-333 c-f16">{{pati.patientName}}</span>
  39. <span class="fl c-999">({{pati.sex}}&emsp;{{pati.age == 0 ? "<1" : pati.age}}岁)</span>
  40. </li>
  41. </ul>
  42. </li>
  43. </ul>
  44. <div class="selected-patient c-h100" v-if="!isSearch && !isLabel">
  45. <div class="clearfix plr20 ptb10">
  46. <div class="fl set-img">
  47. <img :src="setPatImg(patiInfo.photo)" alt="居民头像" />
  48. </div>
  49. <div class="fl ml10 set-txt c-999 clearfix">
  50. <div class="m0 lh22 clearfix"><span class="c-333 c-f16">{{patiInfo.patientName}}</span>&emsp;{{patiInfo.sex}}&emsp;{{patiInfo.age}}岁<p class="fr m0 p0 c-f14 mr20 c-333">出院医嘱:<span>0</span></p></div>
  51. <p class="m0">身份证号: <span class="c-333 c-f14">{{patiInfo.idcard}}</span></p>
  52. </div>
  53. </div>
  54. <div class="result plr20" style="overflow: hidden; height: calc(100% - 60px);">
  55. <div class="no-result c-t-center c-border-t ptb20" v-if="true">
  56. <img src="../images/wushuju01_img.png" alt="" />
  57. <p class="c-999 mt10 mb20">暂无相关信息</p>
  58. <span class="c-fff btn cur-pit plr10 ptb5 bgc-12b7f5 b-r-3" @click="selectPatient()">同步居民</span>
  59. </div>
  60. <ul class="p0 m0 c-333 c-border-t" style="overflow: auto; height: 100%;" v-if="false">
  61. <li class="ptb10 c-border-b">
  62. <div class="clearfix">
  63. <p class="fl p0 m0 w-100-70"><span class="c-999">出院医嘱:</span>这是出院医学征服世界爱的色放卡大V阿大V撒<span class="ml10 c-12b7f5 txt-underline cur-pit" @click="showLayer()">查看</span></p>
  64. <span class="fr w40 c-t-center c-fff btn cur-pit plr10 ptb5 bgc-12b7f5 b-r-3" @click="selectPatient()">提取</span>
  65. </div>
  66. <div class="clearfix mt5">
  67. <p class="fl m0"><span class="c-999">主治医生:</span>名字</p>
  68. <p class="fr m0"><span class="c-999">出院时间:</span>2018-08-28</p>
  69. </div>
  70. </li>
  71. </ul>
  72. </div>
  73. </div>
  74. </div>
  75. </div>
  76. <script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
  77. <script src="../../../js/jquery-2.2.4.js"></script>
  78. <script src="../../../plugins/layer/layer.min.js"></script>
  79. <script src="../../../plugins/toastr/toastr.min.js"></script>
  80. <script src="../../../js/bootstrap.min.js"></script>
  81. <script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
  82. <script src="../../../js/underscore.js" type="text/javascript" charset="utf-8"></script>
  83. <script src="../../../js/util.js" type="text/javascript" charset="utf-8"></script>
  84. <script src="../../../api/http-request.js" type="text/javascript"></script>
  85. <script src="../../../api/recover_api.js" type="text/javascript"></script>
  86. <script type="text/javascript">
  87. var doctorType = (JSON.parse(window.localStorage.getItem('wlyyAgent'))||{}).doctorType,
  88. doctorCode = (JSON.parse(window.localStorage.getItem('wlyyAgent'))||{}).uid
  89. var httpData=GetRequest()
  90. function showSuccessMessage(msg) {
  91. layer.msg(msg, {
  92. icon: 1
  93. })
  94. }
  95. function showErrorMessage(msg) {
  96. layer.msg(msg, {
  97. icon: 5
  98. })
  99. }
  100. function showWarningMessage(msg) {
  101. layer.msg(msg, {
  102. icon: 2
  103. })
  104. }
  105. function showInfoMessage(msg) {
  106. layer.msg(msg, {
  107. icon: 6
  108. })
  109. }
  110. selectVue = new Vue({
  111. el: "#app",
  112. data: {
  113. page: 1,
  114. keyword: null,
  115. selectIndex: null,
  116. labelList: [],
  117. isLabel: true,
  118. isSearch: false,
  119. patiList: [],
  120. patiInfo: null
  121. },
  122. mounted: function() {
  123. this.findLabelAndPatientCountByDoctor()
  124. },
  125. methods: {
  126. showLayer: function() {
  127. top.layer.open({
  128. type: 1,
  129. area: ['400px', '500px'],
  130. shade: 0.5,
  131. title: "出院医嘱",
  132. closeBtn: 1,
  133. shift: 5,
  134. shadeClose: true, //点击遮罩关闭层
  135. content: "<div class='plr10 ptb10'>&emsp;&emsp;" + "这是医嘱大的大爱大" + "</div>"
  136. })
  137. },
  138. findLabelAndPatientCountByDoctor: function() {
  139. var vm = this,
  140. loadding = layer.load(0, {shade: false}),
  141. params = {
  142. doctor: doctorCode
  143. }
  144. recoverAPI.findLabelAndPatientCountByDoctor(params).then(function(res) {
  145. layer.close(loadding)
  146. if(res.status == 200) {
  147. vm.labelList = res.data
  148. } else {
  149. showErrorMessage(res.msg);
  150. }
  151. })
  152. },
  153. getPatientInfoByDoctor: function(label) {
  154. if(!label && !this.keyword) {
  155. this.selectIndex = null
  156. this.isSearch = false
  157. this.isLabel = true
  158. return false
  159. }
  160. var vm = this,
  161. loadding = layer.load(0, {shade: false}),
  162. params = {
  163. doctor: doctorCode,
  164. patientInfo: this.keyword, // 居民身份证或者姓名
  165. disease: label ? label.label : "",
  166. page: vm.page,
  167. size: 50
  168. }
  169. recoverAPI.getPatientInfoByDoctor(params).then(function(res) {
  170. layer.close(loadding)
  171. if(res.status == 200) {
  172. vm.patiList = res.data
  173. if(!label) {
  174. vm.isSearch = true
  175. vm.isLabel = false
  176. }
  177. } else {
  178. showErrorMessage(res.msg);
  179. }
  180. })
  181. },
  182. getPatientInfo: function(pati) {
  183. this.isSearch = false
  184. this.isLabel = false
  185. this.patiInfo = pati
  186. },
  187. selectIndexFn: function(index, label) {
  188. if(this.selectIndex == index) {
  189. this.selectIndex = null
  190. } else {
  191. this.selectIndex = index
  192. this.getPatientInfoByDoctor(label)
  193. }
  194. },
  195. selectPatient: function() {
  196. top.recoverVue.selectPatientOk(this.patiInfo)
  197. top.layer.close(top.selectPatientIndex)
  198. },
  199. setPatImg: function(src) {
  200. if(!src) {
  201. return "../../../images/p-female.png"
  202. } else {
  203. var str = httpRequest.getImgUrl(src);
  204. return str
  205. }
  206. }
  207. }
  208. })
  209. </script>
  210. </body>
  211. </html>