personal-manage.html 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318
  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/new_recover.css" />
  10. <link rel="stylesheet" type="text/css" href="../css/personal-manage.css" />
  11. <style>
  12. .content {height: calc(100% - 14px);}
  13. </style>
  14. </head>
  15. <body class="m0">
  16. <div id="app" class="c-333" v-cloak>
  17. <div class="content clearfix">
  18. <div class="fl c-h100 w350 person_info c-border-r">
  19. <div class="plr5 c-h100">
  20. <h4 class="m0 pl10 lh40 c-border-b">个人基础信息</h4>
  21. <div class="bgc-f2fcfe mt10 ptb10 plr10">
  22. <div class="clearfix">
  23. <div class="fl w-100-66">
  24. <p class="m0 p0 mb10">
  25. <span class="c-999">姓名:</span>{{recoverPatInfo.patientInfo.patientName}}
  26. <span class="c-999 ml20">性别:</span>{{recoverPatInfo.patientInfo.sex == 1 ? "男" : "女"}}
  27. <span class="c-999 ml20">年龄:</span>{{recoverPatInfo.patientInfo.age}}岁
  28. </p>
  29. <p class="m0 p0 mb10">
  30. <span class="c-999">健康情况:</span>{{recoverPatInfo.patientInfo.healthyCondition}}
  31. <span class="c-999 ml10">联系电话:</span><span class="c-12b7f5 cur-pit" v-if="isMobile" @click="changeStatu()">点击查看</span><span v-else>recoverPatInfo.patientInfo.mobile</span>
  32. </p>
  33. </div>
  34. <div class="fr set-photo">
  35. <img :src="setPatImg(recoverPatInfo.patientInfo.photo)" alt="居民头像" />
  36. </div>
  37. </div>
  38. <p class="m0 p0 mb10">
  39. <span class="c-999">签约社区:</span>{{recoverPatInfo.patientInfo.signHospitalName}}
  40. </p>
  41. <p class="m0 p0">
  42. <span class="c-999">康复机构:</span>{{recoverPatInfo.patientInfo.rehabilitationOrg}}
  43. </p>
  44. </div>
  45. <h4 class="m0 pl10 lh40 c-border-b">服务医生</h4>
  46. <!--<div class="pt10 pb10" style="overflow: hidden; height: 190px;">-->
  47. <div class="pt10 pb10" style="overflow: hidden; height: calc(100% - 231px);">
  48. <ul class="p0 m0 c-h100" style="overflow: auto;">
  49. <li class="clearfix plr20 ptb10 doc-li" v-for="(docInfo, index) in recoverPatInfo.serviceDoctorList" :key="index">
  50. <div class="fl set-photo">
  51. <img :src="setPatImg(docInfo.doctorPhoto, 1)" alt="医生头像" />
  52. </div>
  53. <div class="fl ml10 lh18">
  54. <p class="m0 p0 c-f16">{{docInfo.doctorName}}</p>
  55. <p class="m0 p0 mt10 c-999">{{docInfo.type}}</p>
  56. </div>
  57. <div class="fl ml40 lh18">
  58. <p class="m0 p0">完成项目:<span class="c-orange">{{docInfo.finishedItem}}</span></p>
  59. <p class="m0 p0 mt10">服务次数:<span class="c-orange">{{docInfo.serviceCount}}</span></p>
  60. </div>
  61. </li>
  62. </ul>
  63. </div>
  64. <!--<h4 class="m0 pl10 lh40 c-border-b">出院小结</h4>
  65. <div class="ptb10" style="overflow: hidden; height: calc(100% - 481px);">
  66. <ul class="m0 p0 c-border b-r-3 c-h100" style="overflow: auto;">
  67. <li class="pt5 plr10">
  68. <p class="c-999 lh40 clearfix">
  69. <span class="fl">冠心病诊断</span>
  70. <span class="fr">2018-08-01</span>
  71. </p>
  72. <div class="bgc-f2fcfe plr5 ptb10" style="line-height: 20px;">
  73. &emsp;&emsp;这是诊断内容这是诊断内容这是诊断内容这是诊断内容这是诊断内容这是诊断内容这是诊断内容这是诊断内容这是诊断内容这是诊断内容这是诊断内容这是诊断内容
  74. </div>
  75. </li>
  76. </ul>
  77. </div>-->
  78. </div>
  79. </div>
  80. <div class="fl c-h100 w-100-350">
  81. <div class="fl w-100-300 c-h100">
  82. <div class="plr5">
  83. <h4 class="m0 pl10 lh40 c-border-b clearfix">康复计划<span class="fr w80 c-333 c-f12 c-t-center">进行中:{{recoverPatInfo.planUnderway}}</span><span class="fr w80 c-333 c-f12 c-t-center">已完成:{{recoverPatInfo.planFinish}}</span></h4>
  84. <div class="pb10" style="overflow: hidden; height: 230px;">
  85. <ul class="p0 m0 c-h100" style="overflow: auto;">
  86. <li class="clearfix plr5 ptb10 mt10 plan-li cur-pit c-border b-r-3" v-for="(plan, index) in recoverPatInfo.planList" :key="index" @click="jumpPlan(plan)">
  87. <div class="fl w300">
  88. <p class="p0 m0 lh22 clearfix">
  89. <span class="fl">{{plan.planTypeName}}</span>
  90. <span class="fr c-999">{{plan.time}}</span>
  91. </p>
  92. <div class="clearfix">
  93. <p class="fl w-100-78 bgc-c1c1c1 lh22 b-r-11 c-position-r c-t-center">{{setPercent(plan)}}
  94. <span class="c-position-a bgc-orange lh22 b-r-11 c-t-center c-fff" :style="{width: setPercent(plan), left: 0}"></span>
  95. </p>
  96. <span class="fr w60 c-999 lh22">{{plan.allFinishCount}}/{{plan.allCount}}</span>
  97. </div>
  98. </div>
  99. <div class="fr c-007cd9 lh40">{{plan.statusName}}</div>
  100. </li>
  101. <li class="ptb10 c-t-center" v-if="!recoverPatInfo.planList.length">暂无相关计划</li>
  102. </ul>
  103. </div>
  104. </div>
  105. <h4 class="m0 pl10 pr5 lh40 c-border-tb clearfix">康复相关记录<span class="fr w80 c-333 c-f12 c-t-center">已完成:{{finishData.planDetailFinish}}</span></h4>
  106. <div class="plr10" style="overflow: hidden; height: calc(100% - 323px);">
  107. <ul class="p0 m0 c-h100 c-999" style="overflow: auto;">
  108. <li class="clearfix cur-pit record-li" v-for="(plan, index) in planDetailList" @click="lookProject(plan)">
  109. <div class="fl w80 ptb10 c-t-right">
  110. <p class="p0 m0 lh18">{{plan.executeTime}}</p>
  111. </div>
  112. <div class="fl set-dianxian plr20 ptb10 clerfix">
  113. <span class="fl set-taday mt8 c-t-center c-fff" v-if="plan.istaDay">今</span>
  114. <span class="fl mlr5 mt13 set-row bgc-e1e1e1" v-else></span>
  115. </div>
  116. <div class="fl ptb10 w-100-220">
  117. <p class="p0 m0 lh18">{{plan.title}}</p>
  118. <p class="p0 m0 lh18 txt-ells">{{plan.content}}</p>
  119. </div>
  120. <div class="fr ptb10 w60 c-t-center">
  121. <p class="p0 m0 lh18">已完成</p>
  122. <p class="p0 m0 lh18">查看</p>
  123. </div>
  124. </li>
  125. <li class="plr20">
  126. <div class="c-border lh40 b-r-3 c-t-center cur-pit" v-if="isFinishMore" @click="addPage()">点击查看更早时间</div>
  127. <!--<div class="c-border lh40 b-r-3 c-t-center" v-else>没有更多了</div>-->
  128. </li>
  129. </ul>
  130. </div>
  131. </div>
  132. <div class="fr w300 c-h100 c-border-l">
  133. <div class="plr5 c-h100">
  134. <h4 class="m0 pl10 pr5 lh40 c-border-b clearfix">就诊记录</h4>
  135. <div style="overflow: hidden; height: calc(100% - 41px);">
  136. <ul class="c-h100 p0 m0" style="overflow: auto;">
  137. <li class="clearfix" v-for="(record, index) in seeRecord" :key="index">
  138. <div class="fl set-dianxian h73 plr10 pt20 clerfix">
  139. <span class="fl mlr5 set-row bgc-red" v-if="record.eventType == 2"></span>
  140. <span class="fl mlr5 set-row bgc-green" v-if="record.eventType == 3"></span>
  141. <span class="fl mlr5 set-row bgc-orange" v-if="record.eventType == 1"></span>
  142. </div>
  143. <div class="fl w-100-60 pt15">
  144. <div class=" c-border b-r-3">
  145. <p class="m0 p0 plr5 c-fff bgc-red lh22 clearfix" v-if="record.eventType == 2">住院<span class="fr">{{record.eventDate}}</span></p>
  146. <p class="m0 p0 plr5 c-fff bgc-green lh22 clearfix" v-if="record.eventType == 3">体检<span class="fr">{{record.eventDate}}</span></p>
  147. <p class="m0 p0 plr5 c-fff bgc-orange lh22 clearfix" v-if="record.eventType == 1">门诊<span class="fr">{{record.eventDate}}</span></p>
  148. <p class="m0 p0 plr5 pt5 lh22">{{record.dianosis}}</p>
  149. <p class="m0 p0 pr5 pb5 pl20 lh22 set-hospital">{{record.orgName}}</p>
  150. </div>
  151. </div>
  152. </li>
  153. <li class="c-t-center ptb10" v-if="!seeRecord.length">无就诊记录</li>
  154. </ul>
  155. </div>
  156. </div>
  157. </div>
  158. </div>
  159. </div>
  160. </div>
  161. </div>
  162. <script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
  163. <script src="../../../js/jquery-2.2.4.js"></script>
  164. <script src="../../../plugins/layer/layer.min.js"></script>
  165. <script src="../../../js/bootstrap.min.js"></script>
  166. <script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
  167. <script src="../../../js/underscore.js" type="text/javascript" charset="utf-8"></script>
  168. <script src="../../../js/util.js" type="text/javascript" charset="utf-8"></script>
  169. <script src="../../../api/http-request.js" type="text/javascript"></script>
  170. <script src="../../../api/recover_api.js" type="text/javascript"></script>
  171. <script type="text/javascript">
  172. var doctorType = (JSON.parse(window.localStorage.getItem('wlyyAgent'))||{}).doctorType
  173. var httpData=GetRequest()
  174. function showSuccessMessage(msg) {
  175. layer.msg(msg, {
  176. icon: 1
  177. })
  178. }
  179. function showErrorMessage(msg) {
  180. layer.msg(msg, {
  181. icon: 5
  182. })
  183. }
  184. function showWarningMessage(msg) {
  185. layer.msg(msg, {
  186. icon: 2
  187. })
  188. }
  189. function showInfoMessage(msg) {
  190. layer.msg(msg, {
  191. icon: 6
  192. })
  193. }
  194. var nowDate = new Date().format("yyyy/MM/dd")
  195. recoverVue = new Vue({
  196. el: "#app",
  197. data: {
  198. isMobile: true,
  199. recoverPatInfo: null,
  200. finishData: null,
  201. seeRecord: [],
  202. planDetailList: [],
  203. isFinishMore: false,
  204. page: 1,
  205. eventPage: 1
  206. },
  207. mounted: function() {
  208. this.patientRehabilitationDetail()
  209. this.recentPlanDetailRecord()
  210. this.archivesEvent()
  211. },
  212. methods: {
  213. changeStatu: function() {
  214. this.isMobile = false
  215. },
  216. jumpPlan: function(plan) {
  217. location.href = "../../rehabilitation/html/rehabilitation_management.html?planId=" + plan.planId
  218. },
  219. lookProject: function(obj) {
  220. layer.open({
  221. type: 2,
  222. area: ['600px', '500px'],
  223. shade: 0.5,
  224. title: '服务项目内容',
  225. closeBtn: 1,
  226. shift: 5,
  227. shadeClose: false, //点击遮罩关闭层
  228. content: "project-detail.html?planId=" + obj.id
  229. });
  230. },
  231. patientRehabilitationDetail: function() {
  232. var vm = this,
  233. loadding = layer.load(0, {shade: false}),
  234. params = {
  235. patientCode: httpData.patientCode || "e040dd6814b648ceb3ba8d8a04f9f22c"
  236. }
  237. recoverAPI.patientRehabilitationDetail(params).then(function(res) {
  238. layer.close(loadding)
  239. if(res.status == 200) {
  240. vm.recoverPatInfo = res.data
  241. } else {
  242. showErrorMessage(res.msg);
  243. }
  244. })
  245. },
  246. recentPlanDetailRecord: function() {
  247. var vm = this,
  248. loadding = layer.load(0, {shade: false}),
  249. params = {
  250. patientCode: httpData.patientCode || "e040dd6814b648ceb3ba8d8a04f9f22c",
  251. page: vm.eventPage,
  252. pageSize: 10
  253. }
  254. recoverAPI.recentPlanDetailRecord(params).then(function(res) {
  255. layer.close(loadding)
  256. if(res.status == 200) {
  257. vm.finishData = res.data
  258. vm.planDetailList = vm.planDetailList.concat(res.data.planDetailList)
  259. vm.planDetailList = $.each(vm.planDetailList, function(index, o) {
  260. if(nowDate == o.executeTime.split(" ")[0]) {
  261. o.istaDay = true
  262. }
  263. return o
  264. });
  265. if(vm.finishData.planDetailList >= 10) {
  266. vm.isFinishMore = true
  267. }
  268. } else {
  269. showErrorMessage(res.msg);
  270. }
  271. })
  272. },
  273. archivesEvent: function() {
  274. var vm = this,
  275. loadding = layer.load(0, {shade: false}),
  276. params = {
  277. patient: httpData.patientCode || "e040dd6814b648ceb3ba8d8a04f9f22c",
  278. page: vm.page,
  279. pageSize: 20
  280. }
  281. recoverAPI.archivesEvent(params).then(function(res) {
  282. layer.close(loadding)
  283. if(res.status == 200) {
  284. vm.seeRecord = vm.seeRecord.concat(res.data)
  285. } else {
  286. showErrorMessage(res.msg);
  287. }
  288. })
  289. },
  290. setPatImg: function(src, doc) {
  291. if(!src) {
  292. if(doc) {
  293. return "../../../images/d-default.png"
  294. } else {
  295. return "../../../images/p-female.png"
  296. }
  297. } else {
  298. var str = httpRequest.getImgUrl(src);
  299. return str
  300. }
  301. },
  302. addPage: function() {
  303. this.page++;
  304. this.recentPlanDetailRecord()
  305. },
  306. setPercent: function(plan) {
  307. return Math.floor(plan.allFinishCount / plan.allCount * 100) + "%"
  308. }
  309. }
  310. })
  311. </script>
  312. </body>
  313. </html>