new_recover.html 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668
  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. </head>
  11. <body class="m0">
  12. <div id="app" v-cloak>
  13. <div class="c-position-a" style="top: -999px; left: -999px;" v-show="isTest"></div>
  14. <div class="c-h100 clearfix">
  15. <div class="fl c-h100 w300 person_info c-border-r" style="overflow: hidden;">
  16. <div v-if="!patiInfo" class="c-h100" style="overflow: auto;">
  17. <div class="c-border-b c-t-center pt20">
  18. <div class="set-photo imgw80">
  19. <img src="../../../images/p-female.png" alt="居民头像" />
  20. </div>
  21. <p class="ptb10">患者名</p>
  22. </div>
  23. <div>
  24. <div class="no-result c-t-center pt20">
  25. <img src="../images/wushuju01_img.png" alt="无数据" />
  26. <p class="c-999">暂无相关信息</p>
  27. <div class="pt30">
  28. <span class="c-fff btn cur-pit plr10 ptb5 bgc-12b7f5 b-r-3" @click="selectPatient()">同步信息</span>
  29. </div>
  30. </div>
  31. </div>
  32. </div>
  33. <div v-else class="c-h100 plr10" style="overflow: auto;">
  34. <div class="c-t-center pt20 c-position-r">
  35. <div class="set-photo imgw80">
  36. <img :src="setPatImg(patiInfo.photo)" alt="居民头像" />
  37. </div>
  38. <h3 class="ptb10 m0 c-f16">{{patiInfo.name}}</h3>
  39. <span class="c-position-a set-qiehuan cur-pit" @click="selectPatient()"></span>
  40. </div>
  41. <h4 class="h30 m0 c-f14 c-border-b f-w500">基本信息</h4>
  42. <ul class="c-333 m0 p0 pb20">
  43. <li class="pt10"><span class="c-999">性&emsp;&emsp;别:</span>{{patiInfo.sex == 1 ? "男" : "女"}}</li>
  44. <li class="pt10"><span class="c-999">年&emsp;&emsp;龄:</span>{{patiInfo.age}}岁</li>
  45. <li class="pt10"><span class="c-999">身份证号:</span>{{patiInfo.idcard}}</li>
  46. <li class="pt10"><span class="c-999">地&emsp;&emsp;址:</span>{{patiInfo.address}}</li>
  47. </ul>
  48. <h4 class="h30 m0 c-f14 c-border-b f-w500">家庭医生</h4>
  49. <ul class="c-333 m0 p0 pb20">
  50. <li class="pt10"><span class="c-999">签约社区:</span>{{patiInfo.ssHospitalName || patiInfo.jtHospitalName}}</li>
  51. <li class="pt10"><span class="c-999">全科医生:</span>{{patiInfo.ssDoctorName || patiInfo.jtDoctorName}}</li>
  52. <li class="pt10"><span class="c-999">健&ensp;管&ensp;师:</span>{{patiInfo.ssDoctorHealthName || patiInfo.jtDoctorHealthName}}</li>
  53. </ul>
  54. <!--<h4 class="h30 m0 c-f14 c-border-b">诊疗信息</h4>
  55. <ul class="c-333 m0 p0 pb20">
  56. <li class="pt10"><span class="c-999">诊疗医院:</span>男</li>
  57. <li class="pt10"><span class="c-999">入院科室:</span>男</li>
  58. <li class="pt10"><span class="c-999">主治医师:</span>男</li>
  59. <li class="pt10"><span class="c-999">入院诊断:</span>男</li>
  60. <li class="pt10"><span class="c-999">出院诊断:</span>男</li>
  61. </ul>
  62. <h4 class="h30 m0 c-f14 c-border-b">出院小结</h4>
  63. <p class="m0 pt10 c-333">依旧本次判断,对新消息进行出院诊断做出以下结论:忧郁啥啥事等等等问题</p>-->
  64. </div>
  65. </div>
  66. <div class="fl c-h100 w-100-300">
  67. <div class="c-h100 plr5" v-if="!isPlan">
  68. <h4 class="m0 pl15 lh40 c-border-b f-w500 c-position-r"><span class="c-position-a set-blue-span"></span>配置康复计划</h4>
  69. <div style="overflow: hidden; height: calc(100% - 41px);">
  70. <div style="overflow: auto; height: 100%;">
  71. <div class="un-select c-t-center pt45" v-if="!patiInfo">
  72. <img src="../images/wushuju_img.png" alt="" />
  73. <p class="c-999">您还没有选择居民</p>
  74. </div>
  75. <ul class="muban_con lh40 c-t-center pt30" v-else>
  76. <li class="mb20" v-for="(muban, index) in mubanList" :key="index" @click="addMuban(muban.id)">{{muban.title}}</li>
  77. <li class="addmuban-btn c-fff" @click="addMuban()">新增模板</li>
  78. </ul>
  79. </div>
  80. </div>
  81. </div>
  82. <div class="clearfix c-h100" v-else>
  83. <div class="fl w-100-300 c-h100">
  84. <div class="plr5 c-h100-79">
  85. <h4 class="m0 pl15 lh40 c-border-b set-label f-w500 c-position-r">
  86. <em class="c-position-a set-blue-span"></em>
  87. 配置康复计划
  88. <span v-for="(label, index) in spanLabel" :key="index" class="fr ml20 pl20 c-f14 c-999 cur-pit" :class="{'active': index == labelIndex}" @click="setLabelIndex(index, label)">{{label.labelName}}</span>
  89. </h4>
  90. <div class="c-h100-41" style="overflow: hidden;">
  91. <ul class="c-h100 p0 m0" style="overflow: auto;">
  92. <li class="mt10 plr10 ptb5 c-border b-r-3 clearfix" v-for="(detail, index) in templateDetail" :key="index">
  93. <div class="fl w-100-78 c-333">
  94. <p class="m0 p0 mb10 txt-ells cur-pit" @click="lookProject(detail)">{{detail.specialistServiceItemDO.title}}</p>
  95. <div class="clearfix">
  96. <p class="m0 mb5 mr20 p0 fl"><span class="c-999">医&emsp;&emsp;院:</span>{{detail.hospitalName}}</p>
  97. <div class="m0 mb5 mr20 p0 fl clearfix">
  98. <span class="fl c-999">执行人员:</span>
  99. <div class="fl c-position-r w100">
  100. <p class="m0 p0 plr10 c-border cur-pit set-xia" :class="{'set-shang':detail.selectDoc}" @click="changeSelectDoc(index, detail.selectDoc)">{{detail.executeDoctorName}}</p>
  101. <ul class="m0 p0 c-border-b c-border-l c-border-r c-position-a doc_list" v-if="detail.selectDoc">
  102. <li class="plr10 c-border-t cur-pit" v-for="(list, indDoc) in detail.docList" :key="indDoc" @click="selectLi(index, list)">{{list.name}}</li>
  103. </ul>
  104. </div>
  105. </div>
  106. <p class="m0 mb5 p0 fl"><span class="c-999">费&emsp;&emsp;用:</span>{{detail.expense}}{{detail.specialistServiceItemDO.unit}}</p>
  107. </div>
  108. <div class="m0 p0 lh18 clearfix">
  109. <span class="fl c-999">计划时间:</span>
  110. <p class="fl lh18 mb5 mr20 clearfix" v-for="(time, ind) in detail.specialistServiceItemDO.executeTime" :key="ind" v-if="detail.specialistServiceItemDO.executeTime.length">
  111. <span class="fl">{{time}}</span><span class="fl ml5 c-red cur-pit" @click="spliceTimeArr(index, ind)">删除</span>
  112. </p>
  113. <span class="fl c-12b7f5 cur-pit calendar" contenteditable="true" readonly @keyup="setfont()" @keydown="setfont()" @mousedown="selectTime(index)" class=flatpickr data-enable-time=true data-time_24hr=true>{{surefont}}</span>
  114. <span class="fl c-12b7f5 cur-pit ml10" v-show="sureIndex == index">确定</span>
  115. </div>
  116. </div>
  117. <div class='fr w60 c-t-right clearfix'>
  118. <p class="m0 p0 mb10">×{{detail.specialistServiceItemDO.executeTime.length}}</p>
  119. <div class="fr sub-tap cur-pit" @click="subTemplate(index, detail)"></div>
  120. </div>
  121. </li>
  122. <li class="pt100 c-t-center" v-if="!templateDetail.length">
  123. <span class="set-right-arraw pr20">请在右侧“服务项”列表中选择</span>
  124. </li>
  125. </ul>
  126. </div>
  127. </div>
  128. <div>
  129. <p class="m0 p0 pl20 ptb10 c-border-b set-label">支付方式:<span class="ml10 pl20 active">按服务支付</span><em class="c-red ml20">(按选择支付方式完成收费)</em></p>
  130. <div class="pl20 lh40">总费用:
  131. <span class="c-red c-f16">¥{{allFee}}</span>
  132. <span class="fr lh30 cur-pit plr15 c-t-center bgc-green c-fff" @click="canclePlan()">取消</span>
  133. <span class="fr lh30 cur-pit plr15 c-t-center c-fff" :class="Number(allFee) ? 'bgc-12b7f5' : 'bgc-d7dce6'" @click="createRehabilitationPlan()">生成计划</span>
  134. </div>
  135. </div>
  136. </div>
  137. <div class="fr w300 c-h100 c-border-l">
  138. <div class="plr5 c-h100">
  139. <h4 class="m0 pl15 lh40 c-border-b c-position-r f-w500">
  140. <em class="c-position-a set-blue-span"></em>添加其他项目
  141. </h4>
  142. <div class="clearfix mtb10 c-border">
  143. <input class="fl search-input plr10" type="text" v-model="searchKey" placeholder="输入项目名称" />
  144. <span class="fr search-btn" @click="searchProject()"></span>
  145. </div>
  146. <div class="c-h100-99" style="overflow: hidden;">
  147. <ul class="c-h100 p0 m0" style="overflow: auto;">
  148. <li v-for="(project1, index) in projectList" :key="index">
  149. <h4 class="set-arrow c-f14 h30 p0 m0 pl20 f-w500 cur-pit" :class="{'active': index == proIndex1}" @click="selectPro(1, index)">{{project1.itemType == 1 ? '诊疗服务' : '健康服务'}}</h4>
  150. <ul class="c-h100 p0 m0 pl10" v-if="index == proIndex1">
  151. <li v-for="(project2, index2) in project1.item" :key="index2">
  152. <p class="set-arrow h30 c-f14 pl20 m0 c-333 cur-pit" :class="{'active': index2 == proIndex2}" @click="selectPro(2, index2)">{{project2.itemName}}</p>
  153. <ul class="p0 m0 pr10" v-if="index2 == proIndex2">
  154. <li v-for="(project3, index3) in project2.hospitalServiceItems" :key="index3" class="clearfix ptb5">
  155. <div class="fl bgc-12b7f5 c-border w-100-66 cur-pit border-c12b7f5 ptb5 plr5 b-r-3 clearfix" @click="selectProject(index, index2, index3, project3)">
  156. <p class="fl w-100-78 txt-ells lh18 c-fff">{{project3.specialistServiceItemDO.title}}</p>
  157. <span class="fr lh18 b-r-3 c-f12 ml5 bgc-4dcd70 plr5 c-fff" v-if="project3.flag == 1 || project3.flag == 3">社区</span>
  158. <span class="fr lh18 b-r-3 c-f12 ml5 bgc-55cefc plr5 c-fff" v-if="project3.flag == 2 || project3.flag == 3">医院</span>
  159. </div>
  160. <span class="fr h30 btn cur-pit plr10 bgc-12b7f5 c-fff b-r-3" v-if="!project3.isSelect" @click="addProject(index, index2, index3, project3)">添加</span>
  161. <span class="fr h30 btn plr10 bgc-e1e1e1 c-fff b-r-3" v-else>添加</span>
  162. </li>
  163. </ul>
  164. </li>
  165. </ul>
  166. </li>
  167. </ul>
  168. </div>
  169. </div>
  170. </div>
  171. </div>
  172. </div>
  173. </div>
  174. </div>
  175. <script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
  176. <script src="../../../js/jquery-2.2.4.js"></script>
  177. <script src="../../../plugins/layer/layer.min.js"></script>
  178. <script src="../../../plugins/toastr/toastr.min.js"></script>
  179. <script src="../../../js/bootstrap.min.js"></script>
  180. <script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
  181. <script src="../../../js/underscore.js" type="text/javascript" charset="utf-8"></script>
  182. <script src="../../../js/util.js" type="text/javascript" charset="utf-8"></script>
  183. <link rel="stylesheet" href="../../../js/flatpickr/flatpickr.min.css">
  184. <script src="../../../js/flatpickr/flatpickr.min.js"></script>
  185. <script src="../../../js/flatpickr/flatpickr.l10n.zh.js"></script>
  186. <script src="../../../api/http-request.js" type="text/javascript"></script>
  187. <script src="../../../api/recover_api.js" type="text/javascript"></script>
  188. <script type="text/javascript">
  189. var doctorType = (JSON.parse(window.localStorage.getItem('wlyyAgent'))||{}).doctorType,
  190. docInfo = JSON.parse(window.localStorage.getItem('wlyyAgent'))
  191. var httpData=GetRequest()
  192. function showSuccessMessage(msg) {
  193. layer.msg(msg, {
  194. icon: 1
  195. })
  196. }
  197. function showErrorMessage(msg) {
  198. layer.msg(msg, {
  199. icon: 5
  200. })
  201. }
  202. function showWarningMessage(msg) {
  203. layer.msg(msg, {
  204. icon: 2
  205. })
  206. }
  207. function showInfoMessage(msg) {
  208. layer.msg(msg, {
  209. icon: 6
  210. })
  211. }
  212. // 初始化加载flatpickr插件
  213. // $(".calendar").flatpickr();
  214. recoverVue = new Vue({
  215. el: "#app",
  216. data: {
  217. surefont: '添加',
  218. isTest: false,
  219. pati: null,
  220. isPlan: false,
  221. proIndex1: null,
  222. proIndex2: null,
  223. patiInfo: null,
  224. diseaseObj: null,
  225. mubanList: [],
  226. sureIndex: null,
  227. templateDetail: [],
  228. templateResult: [],
  229. allFee: 0,
  230. projectList: null,
  231. labelIndex: 2,
  232. labelCode: 1,
  233. spanLabel: [{
  234. labelName: "(转)家庭病床",
  235. code: 3
  236. }, {
  237. labelName: "(转)社区医院",
  238. code: 2
  239. }, {
  240. labelName: "康复计划",
  241. code: 1
  242. }],
  243. jDlist: null,
  244. zDlist: null,
  245. selectProjectDetail: null,
  246. searchKey: null
  247. },
  248. mounted: function() {
  249. if(httpData.patient) {
  250. this.isPlan = false
  251. this.allFee = 0
  252. this.templateDetail = []
  253. this.pati = {patient: httpData.patient}
  254. this.getPatientInfo()
  255. this.findTemplateList()
  256. }
  257. },
  258. methods: {
  259. // 获取居民信息
  260. getPatientInfo: function() {
  261. this.findPatientSignSpecialistInfo()
  262. var vm = this,
  263. loadding = layer.load(0, {shade: false}),
  264. params = {
  265. patient: this.pati.patient
  266. }
  267. recoverAPI.getPatientInfo(params).then(function(res) {
  268. layer.close(loadding)
  269. if(res.status == 200) {
  270. vm.patiInfo = res.data
  271. console.log(vm.patiInfo)
  272. vm.pati.patientName = res.data.name
  273. vm.jDlist = [{
  274. name: vm.patiInfo.ssDoctorName || vm.patiInfo.jtDoctorName,
  275. code: vm.patiInfo.ssDoctor || vm.patiInfo.jtDoctor
  276. }, {
  277. name: vm.patiInfo.ssDoctorHealthName || vm.patiInfo.jtDoctorHealthName,
  278. code: vm.patiInfo.ssDoctorHealth || vm.patiInfo.jtDoctorHealth
  279. }]
  280. } else {
  281. showErrorMessage(res.msg);
  282. }
  283. })
  284. },
  285. findPatientSignSpecialistInfo: function() {
  286. var vm = this,
  287. params = {
  288. patient: this.pati.patient,
  289. doctor: docInfo.uid
  290. }
  291. recoverAPI.findPatientSignSpecialistInfo(params).then(function(res) {
  292. if(res.status == 200) {
  293. vm.pati.teamCode = res.data.teamCode
  294. vm.zDlist = [{
  295. name: res.data.doctorName,
  296. code: res.data.doctor
  297. }, {
  298. name: res.data.healthAssistantName,
  299. code: res.data.healthAssistant
  300. }]
  301. } else {
  302. showErrorMessage(res.msg);
  303. }
  304. })
  305. },
  306. // 模板列表
  307. findTemplateList: function() {
  308. var vm = this,
  309. loadding = layer.load(0, {shade: false}),
  310. params = {
  311. patient: this.pati.patient,
  312. doctor: docInfo.uid
  313. }
  314. recoverAPI.findTemplateList(params).then(function(res) {
  315. layer.close(loadding)
  316. if(res.status == 200) {
  317. vm.mubanList = res.data
  318. } else {
  319. showErrorMessage(res.msg);
  320. }
  321. })
  322. },
  323. // 模板详细
  324. findTemplateDetail: function(templateId) {
  325. var vm = this,
  326. loadding = layer.load(0, {shade: false}),
  327. params = {
  328. templateId: templateId
  329. }
  330. recoverAPI.findTemplateDetail(params).then(function(res) {
  331. layer.close(loadding)
  332. if(res.status == 200) {
  333. vm.templateDetail = []
  334. vm.templateResult = res.data
  335. vm.findServiceItemsByHospital()
  336. } else {
  337. showErrorMessage(res.msg);
  338. }
  339. })
  340. },
  341. // 服务项目列表
  342. findServiceItemsByHospital: function() {
  343. var vm = this,
  344. loadding = layer.load(0, {shade: false}),
  345. params = {
  346. doctor: docInfo.uid,
  347. patient: this.pati.patient,
  348. serviceItemName: this.searchKey
  349. }
  350. recoverAPI.findServiceItemsByHospital(params).then(function(res) {
  351. layer.close(loadding)
  352. if(res.status == 200) {
  353. vm.projectList = $.each(res.data[0], function(index, o) {
  354. $.each(vm.templateResult, function(index1, o1) {
  355. if(o1.specialistServiceItemDO.itemType == o.itemType) {
  356. $.each(o.item, function(index2, o2) {
  357. if(o1.specialistServiceItemDO.diseaseItem == o2.itemName) {
  358. $.each(o2.hospitalServiceItems, function(index3, o3) {
  359. if(o3.serviceItemId == o1.serviceItemId) {
  360. o3.isSelect = true
  361. o3.selectDoc = false
  362. o3.specialistServiceItemDO.executeTime = []
  363. if(o3.flag == 2) {
  364. o3.executeDoctor = vm.zDlist[0].code
  365. o3.executeDoctorName = vm.zDlist[0].name
  366. o3.docList = vm.zDlist
  367. } else {
  368. o3.executeDoctor = vm.jDlist[0].code
  369. o3.executeDoctorName = vm.jDlist[0].name
  370. o3.docList = vm.jDlist
  371. }
  372. vm.templateDetail.push(o3)
  373. }
  374. });
  375. }
  376. });
  377. }
  378. });
  379. return o;
  380. });
  381. } else {
  382. showErrorMessage(res.msg);
  383. }
  384. })
  385. },
  386. searchProject: function() {
  387. this.findServiceItemsByHospital()
  388. },
  389. setPatImg: function(src) {
  390. if(!src) {
  391. return "../../../images/p-female.png"
  392. } else {
  393. var str = httpRequest.getImgUrl(src);
  394. return str
  395. }
  396. },
  397. changeSelectDoc: function(index, bool) {
  398. this.templateDetail[index].selectDoc = !bool
  399. this.isTest = !this.isTest
  400. },
  401. selectLi: function(index, list) {
  402. this.templateDetail[index].selectDoc = false
  403. this.templateDetail[index].executeDoctor = list.code
  404. this.templateDetail[index].executeDoctorName = list.name
  405. this.templateDetail[index] = this.templateDetail[index]
  406. this.isTest = !this.isTest
  407. },
  408. subTemplate: function(index, detail) {
  409. var vm = this
  410. this.templateDetail.splice(index, 1)
  411. var len = detail.specialistServiceItemDO.executeTime.length
  412. if(len) {
  413. this.allFee = vm.sub(vm.allFee, vm.mul(len, detail.expense))
  414. }
  415. $.each(vm.projectList, function(index, o) {
  416. if(detail.specialistServiceItemDO.itemType == o.itemType) {
  417. $.each(o.item, function(index2, o2) {
  418. if(detail.specialistServiceItemDO.diseaseItem == o2.itemName) {
  419. $.each(o2.hospitalServiceItems, function(index3, o3) {
  420. if(o3.serviceItemId == detail.serviceItemId) {
  421. o3.isSelect = false
  422. o3.specialistServiceItemDO.executeTime = []
  423. }
  424. });
  425. }
  426. });
  427. }
  428. });
  429. },
  430. // 选择项目
  431. selectProject: function(index, index2, index3, o) {
  432. this.selectProjectDetail = o
  433. selectPatientIndex = layer.open({
  434. type: 2,
  435. area: ['400px', '500px'],
  436. shade: 0.5,
  437. title: '选择项目',
  438. closeBtn: 1,
  439. shift: 5,
  440. shadeClose: false, //点击遮罩关闭层
  441. content: "select-project.html?isLook=true&projectId=" + o.id + "&index=" + index + "&index3=" + index3 + "&index2=" + index2
  442. });
  443. },
  444. // 添加项目
  445. addProject: function(index, index2, index3, obj) {
  446. if(obj) {
  447. this.selectProjectDetail = obj
  448. }
  449. if(this.selectProjectDetail.isSelect) {
  450. showWarningMessage("已添加!")
  451. return false;
  452. }
  453. this.selectProjectDetail.isSelect = true
  454. this.selectProjectDetail.selectDoc = false
  455. this.selectProjectDetail.specialistServiceItemDO.executeTime = []
  456. if(this.selectProjectDetail.flag == 2) {
  457. this.selectProjectDetail.executeDoctor = this.zDlist[0].code
  458. this.selectProjectDetail.executeDoctorName = this.zDlist[0].name
  459. this.selectProjectDetail.docList = this.zDlist
  460. } else {
  461. this.selectProjectDetail.executeDoctor = this.jDlist[0].code
  462. this.selectProjectDetail.executeDoctorName = this.jDlist[0].name
  463. this.selectProjectDetail.docList = this.jDlist
  464. }
  465. this.templateDetail.push(this.selectProjectDetail)
  466. this.projectList[index].item[index2].hospitalServiceItems[index3] = this.selectProjectDetail
  467. },
  468. setfont: function() {
  469. this.surefont = "添加"
  470. },
  471. // 查看项目
  472. lookProject: function(o) {
  473. selectPatientIndex = layer.open({
  474. type: 2,
  475. area: ['400px', '500px'],
  476. shade: 0.5,
  477. title: '查看项目',
  478. closeBtn: 1,
  479. shift: 5,
  480. shadeClose: false, //点击遮罩关闭层
  481. content: "select-project.html?projectId=" + o.id
  482. });
  483. },
  484. selectPatient: function() {
  485. selectPatientIndex = layer.open({
  486. type: 2,
  487. area: ['400px', '500px'],
  488. shade: 0.5,
  489. title: '同步出院小结',
  490. closeBtn: 1,
  491. shift: 5,
  492. shadeClose: false, //点击遮罩关闭层
  493. content: "select-patient.html"
  494. });
  495. },
  496. selectPatientOk: function(pati) {
  497. this.isPlan = false
  498. this.allFee = 0
  499. this.templateDetail = []
  500. this.pati = pati
  501. this.getPatientInfo()
  502. this.findTemplateList()
  503. },
  504. addMuban: function(oId) {
  505. var vm = this
  506. selectDiseaseIndex = layer.open({
  507. type: 2,
  508. area: ['400px', '500px'],
  509. shade: 0.5,
  510. title: '选择疾病',
  511. closeBtn: 1,
  512. shift: 5,
  513. shadeClose: false, //点击遮罩关闭层
  514. content: "select-disease.html?teamCode=" + vm.pati.teamCode +"&templateId=" + oId || ''
  515. });
  516. },
  517. canclePlan: function(obj) {
  518. var vm = this
  519. cancleIndex = layer.open({
  520. type: 2,
  521. area: ['400px', '180px'],
  522. shade: 0.5,
  523. title: '取消确认',
  524. closeBtn: 1,
  525. shift: 5,
  526. shadeClose: false, //点击遮罩关闭层
  527. content: "cancle_sure.html"
  528. });
  529. },
  530. cancleSure: function() {
  531. this.isPlan = false
  532. this.allFee = 0
  533. this.templateDetail = []
  534. },
  535. newPlan: function(disease, templateId) {
  536. this.diseaseObj = disease
  537. this.isPlan = true
  538. if(templateId) {
  539. this.findTemplateDetail(templateId)
  540. } else {
  541. this.templateDetail = []
  542. this.findServiceItemsByHospital()
  543. }
  544. },
  545. selectPro: function(pro, index) {
  546. if(pro == 1) {
  547. this.proIndex2 = null;
  548. this.proIndex1 == index ? this.proIndex1 = null : this.proIndex1 = index
  549. } else {
  550. this.proIndex2 == index ? this.proIndex2 = null : this.proIndex2 = index
  551. }
  552. },
  553. setLabelIndex: function(index, label) {
  554. this.labelIndex = index
  555. this.labelCode = label.code
  556. },
  557. selectTime: function(index) {
  558. var currentEle = $(event.target),
  559. vm = this;
  560. this.sureIndex = index
  561. currentEle.flatpickr({
  562. locale: 'zh',
  563. defaultDate: currentEle.val(),
  564. minDate: "today",
  565. enableTime: true,
  566. onOpen: function(obj, str) {
  567. currentEle.val(str)
  568. },
  569. onClose: function(obj, str) {
  570. vm.sureIndex = null
  571. if(!str) {
  572. return false;
  573. }
  574. vm.templateDetail[index].specialistServiceItemDO.executeTime.push(str)
  575. vm.allFee = vm.add(vm.allFee, vm.templateDetail[index].expense)
  576. }
  577. })
  578. },
  579. spliceTimeArr: function(index, ind) {
  580. var vm = this
  581. this.templateDetail[index].specialistServiceItemDO.executeTime.splice(ind, 1)
  582. vm.allFee = vm.sub(vm.allFee, vm.templateDetail[index].expense)
  583. },
  584. createRehabilitationPlan: function() {
  585. if(!Number(this.allFee)) {
  586. showWarningMessage("请选择计划时间!")
  587. return false;
  588. }
  589. var vm = this,
  590. loadding = layer.load(0, {shade: false}),
  591. data = {
  592. patient: this.pati.patient,
  593. name: this.pati.patientName,
  594. title: this.pati.patientName + this.diseaseObj.diseaseName + "康复计划",
  595. disease: this.diseaseObj.diseaseCode,
  596. diseaseName: this.diseaseObj.diseaseName,
  597. planType: this.labelCode,
  598. payment: 2,
  599. totalExpense: this.allFee,
  600. detail: []
  601. },
  602. params = {};
  603. $.each(vm.templateDetail, function(index, o) {
  604. if(o.specialistServiceItemDO.executeTime.length) {
  605. var obj = {
  606. hospitalServiceItemId: o.id,
  607. type: o.flag == 2 ? 2 : 1,
  608. doctor: o.executeDoctor,
  609. doctorName: o.executeDoctorName,
  610. executeTime: o.specialistServiceItemDO.executeTime.join(",")
  611. }
  612. data.detail.push(obj)
  613. }
  614. });
  615. params = {
  616. json: JSON.stringify(data)
  617. }
  618. recoverAPI.createRehabilitationPlan(params).then(function(res) {
  619. layer.close(loadding)
  620. if(res.status == 200) {
  621. showSuccessMessage("康复计划配置成功!")
  622. setTimeout(function() {
  623. window.location.href = "../../rehabilitation/html/health_control.html"
  624. }, 1000)
  625. } else {
  626. showErrorMessage(res.msg);
  627. }
  628. })
  629. },
  630. add: function(num1,num2){
  631. var r1,r2,m,n;
  632. try{r1=num1.toString().split(".")[1].length}catch(e){r1=0}
  633. try{r2=num2.toString().split(".")[1].length}catch(e){r2=0}
  634. m = Math.pow(10,Math.max(r1,r2));
  635. n = (r1>=r2)?r1:r2;
  636. return ((num1*m + num2*m)/m).toFixed(n);
  637. },
  638. sub: function(num1,num2){
  639. var r1,r2,m,n;
  640. try{r1=num1.toString().split(".")[1].length}catch(e){r1=0}
  641. try{r2=num2.toString().split(".")[1].length}catch(e){r2=0}
  642. n = (r1>=r2)?r1:r2;
  643. m = Math.pow(10,Math.max(r1,r2));
  644. return ((num1*m - num2*m)/m).toFixed(n);
  645. },
  646. mul: function(num1,num2){
  647. var m = 0;
  648. try{m+=num1.toString().split(".")[1].length}catch(e){}
  649. try{m+=num2.toString().split(".")[1].length}catch(e){}
  650. return (Number(num1.toString().replace(".",""))*Number(num2.toString().replace(".","")))/Math.pow(10,m)
  651. },
  652. div: function(arg1,arg2){
  653. var t1=0,t2=0,r1,r2;
  654. try{t1=arg1.toString().split(".")[1].length}catch(e){}
  655. try{t2=arg2.toString().split(".")[1].length}catch(e){}
  656. r1=Number(arg1.toString().replace(".",""));
  657. r2=Number(arg2.toString().replace(".",""));
  658. return (r1/r2)*Math.pow(10,t2-t1);
  659. }
  660. }
  661. })
  662. </script>
  663. </body>
  664. </html>