Browse Source

Merge branch '20201109_pc_vue_new_branch' of http://git.shengws.com/csx/Vue_New into 20201109_pc_vue_new_branch

XMLWAN 3 years ago
parent
commit
223514e6dd
100 changed files with 25428 additions and 1651 deletions
  1. 1 0
      config/prod.env.js
  2. 25 12
      src/api/common/common.js
  3. 35 0
      src/api/config.js
  4. 9 0
      src/api/drug/drug_stock.js
  5. 72 1
      src/api/his/his.js
  6. 21 4
      src/api/project/project.js
  7. 27 1
      src/api/schedule.js
  8. 26 0
      src/api/stock.js
  9. 9 2
      src/lang/zh.js
  10. 14 8
      src/router/index.js
  11. 82 0
      src/router/modules/hospitalStation.js
  12. 53 0
      src/router/modules/outpatientRecord.js
  13. 12 1
      src/router/modules/workforce.js
  14. 48 1
      src/store/modules/globalConfig.js
  15. 19 19
      src/views/layout/Layout.vue
  16. 39 39
      src/views/layout/components/Sidebar/index.vue
  17. 147 0
      src/xt_pages/components/GoodExcel/index.vue
  18. 147 0
      src/xt_pages/components/ProjectExcel/index.vue
  19. 88 2
      src/xt_pages/data/basicConfig.vue
  20. 596 466
      src/xt_pages/data/components/addDrugs.vue
  21. 69 10
      src/xt_pages/data/components/addProject.vue
  22. 733 160
      src/xt_pages/data/components/consumables.vue
  23. 843 75
      src/xt_pages/data/components/drugs.vue
  24. 9 2
      src/xt_pages/data/components/editInspection.vue
  25. 117 13
      src/xt_pages/data/components/editProject.vue
  26. 623 49
      src/xt_pages/data/components/project.vue
  27. 1 0
      src/xt_pages/data/components/tableson.vue
  28. 2 1
      src/xt_pages/data/prescription.vue
  29. 1 1
      src/xt_pages/data/specialDictionary.vue
  30. 4 4
      src/xt_pages/dialysis/batch_print/batch_print_order.vue
  31. 19 83
      src/xt_pages/dialysis/batch_print/batch_print_order_six.vue
  32. 23 3
      src/xt_pages/dialysis/batch_print/batch_print_order_thirty.vue
  33. 124 113
      src/xt_pages/dialysis/batch_print/batch_print_order_twentyEight.vue
  34. 21 19
      src/xt_pages/dialysis/components/consumables.vue
  35. 25 5
      src/xt_pages/dialysis/details/DialysisPrescription.vue
  36. 4 2
      src/xt_pages/dialysis/details/NavIgation.vue
  37. 11 1
      src/xt_pages/dialysis/details/acceptsAssessment.vue
  38. 37 3
      src/xt_pages/dialysis/details/assessmentAfter.vue
  39. 31 0
      src/xt_pages/dialysis/details/assessmentBefore.vue
  40. 127 6
      src/xt_pages/dialysis/details/dialog/AssessmentAfterDislysis.vue
  41. 2 2
      src/xt_pages/dialysis/details/dialog/DoctorAdviceDialog.vue
  42. 14 1
      src/xt_pages/dialysis/details/dialog/acceptsTreatmentDialog.vue
  43. 40 3
      src/xt_pages/dialysis/details/dialog/assessmentBeforeDislysisDialog.vue
  44. 5 0
      src/xt_pages/dialysis/details/dialog/computer_dialog.vue
  45. 48 14
      src/xt_pages/dialysis/details/dialog/dialysisPrescriptionDialog.vue
  46. 307 225
      src/xt_pages/dialysis/details/dialog/monitor_dialog.vue
  47. 36 11
      src/xt_pages/dialysis/details/dialysisMonitoring.vue
  48. 2 1
      src/xt_pages/dialysis/details/index.vue
  49. 6 4
      src/xt_pages/dialysis/dialysisDoctorAdvice.vue
  50. 110 1
      src/xt_pages/dialysis/dialysisPrintOrder.vue
  51. 13 3
      src/xt_pages/dialysis/template/DialysisPrintOrderOne.vue
  52. 21 21
      src/xt_pages/dialysis/template/DialysisPrintOrderSix.vue
  53. 5 3
      src/xt_pages/dialysis/template/DialysisPrintOrderTen.vue
  54. 26 4
      src/xt_pages/dialysis/template/DialysisPrintOrderThirty.vue
  55. 1500 0
      src/xt_pages/dialysis/template/DialysisPrintOrderThirtyEight.vue
  56. 9 1
      src/xt_pages/dialysis/template/DialysisPrintOrderThirtyFive.vue
  57. 156 115
      src/xt_pages/dialysis/template/DialysisPrintOrderThirtyOne.vue
  58. 1599 0
      src/xt_pages/dialysis/template/DialysisPrintOrderThirtySeven.vue
  59. 1840 0
      src/xt_pages/dialysis/template/DialysisPrintOrderThirtySix.vue
  60. 112 112
      src/xt_pages/dialysis/template/DialysisPrintOrderTwentyEight.vue
  61. 57 12
      src/xt_pages/dialysis/template/DialysisPrintOrderTwentyFour.vue
  62. 8 12
      src/xt_pages/dialysis/template/DialysisPrintOrderTwentyNine.vue
  63. 515 0
      src/xt_pages/hospitalStation/11.vue
  64. 82 0
      src/xt_pages/hospitalStation/advancePayment.vue
  65. 481 0
      src/xt_pages/hospitalStation/allListPrint.vue
  66. 174 0
      src/xt_pages/hospitalStation/allListTemplate/printOne.vue
  67. 208 0
      src/xt_pages/hospitalStation/components/ChargePrescriptionTable.vue
  68. 69 0
      src/xt_pages/hospitalStation/components/additionalCharges.vue
  69. 135 0
      src/xt_pages/hospitalStation/components/advice.vue
  70. 359 0
      src/xt_pages/hospitalStation/components/callPrescription.vue
  71. 257 0
      src/xt_pages/hospitalStation/components/chargeDialog.vue
  72. 208 0
      src/xt_pages/hospitalStation/components/chargeMonthPrescriptionTable.vue
  73. 166 0
      src/xt_pages/hospitalStation/components/charged.vue
  74. 425 0
      src/xt_pages/hospitalStation/components/dayPrescriptionTable.vue
  75. 2873 0
      src/xt_pages/hospitalStation/components/deskPrescription.vue
  76. 657 0
      src/xt_pages/hospitalStation/components/deskRecord.vue
  77. 387 0
      src/xt_pages/hospitalStation/components/inquiriesDetail.vue
  78. 106 0
      src/xt_pages/hospitalStation/components/inspection.vue
  79. 165 0
      src/xt_pages/hospitalStation/components/medicalInsuranceRefund.vue
  80. 169 0
      src/xt_pages/hospitalStation/components/medicalRecord.vue
  81. 297 0
      src/xt_pages/hospitalStation/components/monthPrescriptionTable.vue
  82. 201 0
      src/xt_pages/hospitalStation/components/newPrescriptionTable.vue
  83. 417 0
      src/xt_pages/hospitalStation/components/nextOrLastPrescription.vue
  84. 165 0
      src/xt_pages/hospitalStation/components/noCharge.vue
  85. 151 0
      src/xt_pages/hospitalStation/components/prescription.vue
  86. 464 0
      src/xt_pages/hospitalStation/components/prescriptionTable.vue
  87. 105 0
      src/xt_pages/hospitalStation/components/recordHistoryDetail.vue
  88. 378 0
      src/xt_pages/hospitalStation/components/recordTemplateDetail.vue
  89. 562 0
      src/xt_pages/hospitalStation/components/registerDialog.vue
  90. 537 0
      src/xt_pages/hospitalStation/components/registerDialog9504.vue
  91. 136 0
      src/xt_pages/hospitalStation/components/saveRecordTemplate.vue
  92. 89 0
      src/xt_pages/hospitalStation/components/saveTemplate.vue
  93. 96 0
      src/xt_pages/hospitalStation/components/selectTemplate.vue
  94. 97 0
      src/xt_pages/hospitalStation/components/templateDetail.vue
  95. 625 0
      src/xt_pages/hospitalStation/costComparison.vue
  96. 2287 0
      src/xt_pages/hospitalStation/doctorDesk.vue
  97. 329 0
      src/xt_pages/hospitalStation/incomeStatistics.vue
  98. 694 0
      src/xt_pages/hospitalStation/index.vue
  99. 152 0
      src/xt_pages/hospitalStation/invoicePrint.vue
  100. 0 0
      src/xt_pages/hospitalStation/invoiceTemplate/printOne.vue

+ 1 - 0
config/prod.env.js View File

@@ -9,3 +9,4 @@ module.exports = {
9 9
   MIRCO_MALL_HOST: '"http://mall.kuyicloud.com"',
10 10
   CDM_HOST: '"http://cdm.kuyicloud.com"',
11 11
 }
12
+

+ 25 - 12
src/api/common/common.js View File

@@ -134,11 +134,14 @@ export function DeleteCheck(id, params) {
134 134
   })
135 135
 }
136 136
 
137
-export function getDialysisModeType(startime, endtime) {
137
+export function getDialysisModeType(startime, endtime,lapsetotype,sourcetype) {
138 138
   const params = {
139 139
     startime: startime,
140
-    endtime: endtime
140
+    endtime: endtime,
141
+    lapsetotype:lapsetotype,
142
+    sourcetype:sourcetype,
141 143
   }
144
+  console.log("parasm22222",params)
142 145
   return request({
143 146
     url: '/com/api/getdialysismodetype',
144 147
     method: 'get',
@@ -146,10 +149,12 @@ export function getDialysisModeType(startime, endtime) {
146 149
   })
147 150
 }
148 151
 
149
-export function getTotalLapseCount(startime, endtime) {
152
+export function getTotalLapseCount(startime, endtime,lapsetotype,sourcetype) {
150 153
   const params = {
151 154
     startime: startime,
152
-    endtime: endtime
155
+    endtime: endtime,
156
+    lapsetotype:lapsetotype,
157
+    sourcetype:sourcetype,
153 158
   }
154 159
   console.log('转归params', params)
155 160
   return request({
@@ -159,10 +164,12 @@ export function getTotalLapseCount(startime, endtime) {
159 164
   })
160 165
 }
161 166
 
162
-export function getTotalSexCount(startime, endtime) {
167
+export function getTotalSexCount(startime, endtime,lapsetotype,sourcetype) {
163 168
   const params = {
164 169
     startime: startime,
165
-    endtime: endtime
170
+    endtime: endtime,
171
+    lapsetotype:lapsetotype,
172
+    sourcetype:sourcetype,
166 173
   }
167 174
   return request({
168 175
     url: '/com/api/gettotalsexcount',
@@ -171,10 +178,12 @@ export function getTotalSexCount(startime, endtime) {
171 178
   })
172 179
 }
173 180
 
174
-export function getTotalInfectiousCount(startime, endtime) {
181
+export function getTotalInfectiousCount(startime, endtime,lapsetotype,sourcetype) {
175 182
   const params = {
176 183
     startime: startime,
177
-    endtime: endtime
184
+    endtime: endtime,
185
+    lapsetotype:lapsetotype,
186
+    sourcetype:sourcetype,
178 187
   }
179 188
   console.log('传染病', params)
180 189
   return request({
@@ -184,10 +193,12 @@ export function getTotalInfectiousCount(startime, endtime) {
184 193
   })
185 194
 }
186 195
 
187
-export function getTotalAgeCount(startime, endtime) {
196
+export function getTotalAgeCount(startime, endtime,lapsetotype,sourcetype) {
188 197
   const params = {
189 198
     startime: startime,
190
-    endtime: endtime
199
+    endtime: endtime,
200
+    lapsetotype:lapsetotype,
201
+    sourcetype:sourcetype,
191 202
   }
192 203
   return request({
193 204
     url: '/com/api/gettotalagecount',
@@ -196,10 +207,12 @@ export function getTotalAgeCount(startime, endtime) {
196 207
   })
197 208
 }
198 209
 
199
-export function getTotalDialysisCount(startime, endtime) {
210
+export function getTotalDialysisCount(startime, endtime,lapsetotype,sourcetype) {
200 211
   const params = {
201 212
     startime: startime,
202
-    endtime: endtime
213
+    endtime: endtime,
214
+    lapsetotype:lapsetotype,
215
+    sourcetype:sourcetype,
203 216
   }
204 217
   return request({
205 218
     url: '/com/api/gettotaldialysiscount',

+ 35 - 0
src/api/config.js View File

@@ -137,7 +137,42 @@ export function postXtHisIsOpen(params) {
137 137
 }
138 138
 
139 139
 
140
+export function postMonitorIsOpen(params){
141
+  console.log("params",params)
142
+  return request({
143
+    url:"/api/monitor/open",
144
+    method:"get",
145
+    params:params
146
+  })
147
+}
148
+
140 149
 
150
+export function getMonitorConfig(params){
151
+  
152
+  return request({
153
+    url:"/api/monitor/getmonitorconfig",
154
+    method:"Get",
155
+    params:params,
156
+  })
157
+}
141 158
 
142 159
 
160
+export function addOrderConfig(params){
161
+  
162
+  return request({
163
+    url:"/api/order/addorderconfig",
164
+    method:"Get",
165
+    params:params,
166
+
167
+  })
168
+}
169
+
170
+export function getOrderConfig(params){
171
+  
172
+  return request({
173
+    url:"/api/order/getorderconfig",
174
+    method:"get",
175
+    params:params,
176
+  })
177
+}
143 178
 

+ 9 - 0
src/api/drug/drug_stock.js View File

@@ -418,6 +418,15 @@ export function getDrugCancelDetail(params){
418 418
 }
419 419
 
420 420
 
421
+export function getDrugAutoMaticList(params){
422
+  
423
+  return request({
424
+    url:"/api/drugstock/getdrugautomaticlist",
425
+    method:"Get",
426
+    params:params,
427
+  })
428
+}
429
+
421 430
 
422 431
 
423 432
 

+ 72 - 1
src/api/his/his.js View File

@@ -21,7 +21,7 @@ export function getPatientInfo(params) {
21 21
 
22 22
 
23 23
 export function createCaseHistory(params) {
24
-  console.log("params",params)
24
+  console.log("params",params);
25 25
   return request({
26 26
     url: "/api/doctorworkstation/casehistory/create",
27 27
     method: "get",
@@ -355,6 +355,77 @@ export function getList (params) {
355 355
 
356 356
 
357 357
 
358
+export function getRecordList (params) {
359
+  return request({
360
+    url: '/api/record/list',
361
+    method: 'get',
362
+    params:params,
363
+  })
364
+}
365
+
366
+
367
+
368
+export function getCheckAccountFormData (params) {
369
+  return request({
370
+    url: '/api/comparedata/get',
371
+    method: 'get',
372
+    params:params,
373
+  })
374
+}
375
+
376
+
377
+
378
+
379
+export function getHospitalPatientList (params) {
380
+  return request({
381
+    url: '/api/hishospitalpatient/list',
382
+    method: 'get',
383
+    params:params,
384
+  })
385
+}
386
+
387
+
388
+
389
+
390
+
391
+
392
+export function GetHisHospitalChargePatientList (params) {
393
+  return request({
394
+    url: '/api/hospitalcharge/list',
395
+    method: 'get',
396
+    params:params,
397
+  })
398
+}
399
+
400
+
401
+
402
+export function GetHisHospitalChargePatientInfo (params) {
403
+  return request({
404
+    url: '/api/hospotalcharge/info',
405
+    method: 'get',
406
+    params:params,
407
+  })
408
+}
409
+
410
+
411
+
412
+
413
+export function getHisHospitalPrescriptionList (params) {
414
+  return request({
415
+    url: '/api/hospitalprescription/list',
416
+    method: 'get',
417
+    params:params,
418
+  })
419
+}
420
+
421
+
422
+
423
+
424
+
425
+
426
+
427
+
428
+
358 429
 
359 430
 
360 431
 

+ 21 - 4
src/api/project/project.js View File

@@ -437,7 +437,7 @@ export function getTodaySchedulePatient(params){
437 437
 }
438 438
 
439 439
 export function getHisPatientDetail(params){
440
-  console.log("params99999",params)
440
+  console.log("params99999",params);
441 441
   return request({
442 442
     url:"/api/hispatient/gethispatientdetail",
443 443
     method:"Get",
@@ -454,12 +454,11 @@ export function getAllDePartmentList(params){
454 454
   })
455 455
 }
456 456
 
457
-export function getPrescriptionList(id,params){
457
+export function getPrescriptionList(id,p_type){
458 458
 
459 459
   return request({
460
-    url:"/api/hispatient/getprescription?patient_id="+id,
460
+    url:"/api/hispatient/getprescription?patient_id="+id+"&p_type="+p_type,
461 461
     method:"Get",
462
-    params:params
463 462
   })
464 463
 }
465 464
 
@@ -524,3 +523,21 @@ export function getUnRegisterHisPatientList (params) {
524 523
     params:params,
525 524
   })
526 525
 }
526
+
527
+
528
+export function postProjectInformation(params){
529
+
530
+  return request({
531
+    url:"/api/postprojectinformation",
532
+    method:"post",
533
+    data:params
534
+  })
535
+}
536
+
537
+export function getInvoice(params){
538
+  return request({
539
+    url:"/api/fapiao/get",
540
+    method:"get",
541
+    params:params
542
+  })
543
+}

+ 27 - 1
src/api/schedule.js View File

@@ -1,7 +1,7 @@
1 1
 import request from '@/utils/request'
2 2
 
3 3
 export function getWeekPanels(t,patitionId) {
4
-  console.log("params33333",t,patitionId)
4
+  
5 5
   return request({
6 6
     url: '/api/schedule/weekpanel?data=' + t+"&patitionid="+patitionId,
7 7
     method: 'get'
@@ -150,4 +150,30 @@ export function copyPatientSchedule(params){
150 150
     method:"Get",
151 151
     params:params
152 152
   })
153
+}
154
+
155
+export function saveRemindPrint(params){
156
+   return request({
157
+     url:"/api/schedule/saveremindprint",
158
+     method:"get",
159
+     params:params
160
+   })
161
+}
162
+
163
+export function getRemindPrintList(params){
164
+   
165
+  return request({
166
+    url:"/api/schedule/getremindprintlist",
167
+    method:"get",
168
+    params:params
169
+  })
170
+}
171
+
172
+export function getScheduleList(params){
173
+  
174
+  return request({
175
+    url:"/api/schedule/getschedulelist",
176
+    method:"get",
177
+    params:params,
178
+  })
153 179
 }

+ 26 - 0
src/api/stock.js View File

@@ -584,4 +584,30 @@ export function GetOutStockTotalCount(params){
584 584
     method:"get",
585 585
     params:params
586 586
   })
587
+}
588
+
589
+export function postGoodInformation(params){
590
+  console.log("PARMAS22",params)
591
+  return request({
592
+    url:"/api/good/postgoodinformation",
593
+    method:"Post",
594
+    data:params,
595
+  })
596
+}
597
+
598
+export function postDrugInformation(params){
599
+  
600
+  return request({
601
+    url:"/api/good/postdruginformation",
602
+    method:"post",
603
+    data:params
604
+  })
605
+}
606
+
607
+export function getInitializtion(params){
608
+  return request({
609
+    url:"/api/good/initializtion",
610
+    method:"get",
611
+    params:params
612
+  })
587 613
 }

+ 9 - 2
src/lang/zh.js View File

@@ -208,6 +208,8 @@ export default {
208 208
     incomeStatistics:'收入统计',
209 209
     outpatientRegistration:'门诊挂号',
210 210
     outpatientRegistrationIndex:'门诊挂号',
211
+    hospitalIndex:'住院登记',
212
+    hospitalChargesManagement:"住院收费管理",
211 213
     outpatientRegistrationRegistrationHistory:'挂号历史',
212 214
     outpatientDoctorStation:"门诊医生站",
213 215
     outpatientDoctorStationDoctorDesk:'医生工作台',
@@ -216,6 +218,7 @@ export default {
216 218
     outpatientCharges:'门诊收费',
217 219
     outpatientChargesManagement:'门诊收费管理',
218 220
     outpatientInvoice:'门诊发票',
221
+    outpatientRecord:'住院工作站',
219 222
     advancePayment:'预交金',
220 223
     labelPrinting:'标签打印',
221 224
     summary:'项目消费明细汇总',
@@ -236,9 +239,13 @@ export default {
236 239
     basicConfig:'基础配置',
237 240
 
238 241
     histemplate:'处方模版',
239
-
242
+    outpatientSickRecord:"人员定点病种备案",
240 243
     airDisinfect:'空气消毒',
241
-    objectTableDisinfect:'物表消毒'
244
+    objectTableDisinfect:'物表消毒',
245
+
246
+
247
+    hospitalStation:"住院工作站",
248
+    pastInquiries:"既往查询",
242 249
 
243 250
   },
244 251
   navbar: {

+ 14 - 8
src/router/index.js View File

@@ -27,6 +27,10 @@ import outpatientRegistration from './modules/outpatientRegistration'
27 27
 import outpatientDoctorStation from './modules/outpatientDoctorStation'
28 28
 import outpatientCharges from './modules/outpatientCharges'
29 29
 import outpatientPharmacy from './modules/outpatientPharmacy'
30
+import hospitalStation from './modules/hospitalStation'
31
+
32
+
33
+import outpatientRecord from './modules/outpatientRecord'
30 34
 import kuyiShopping from './modules/kuyiShopping'
31 35
 import createPatient from './modules/createPatient'
32 36
 import dialysisRecord from './modules/dialysisRecord'
@@ -45,7 +49,7 @@ import templateManagement from './modules/templateManagement'
45 49
 import DepartManage from './modules/DepartManage'
46 50
 import basicConfig from './modules/basicConfig'
47 51
 
48
-Vue.use(Router)
52
+Vue.use(Router);
49 53
 
50 54
 /** note: submenu only apppear when children.length>=1
51 55
  *   detail see  https://panjiachen.github.io/vue-element-admin-site/guide/essentials/router-and-nav.html
@@ -130,7 +134,7 @@ service
130 134
   // device,
131 135
   // role,
132 136
   // org
133
-]
137
+];
134 138
 
135 139
 var _asy_router_map = [
136 140
   patient,
@@ -151,7 +155,7 @@ var _asy_router_map = [
151 155
   slow,
152 156
   scrm,
153 157
   shop,
154
-  
158
+
155 159
   systems,
156 160
   DepartManage,
157 161
   roleManage,
@@ -169,21 +173,23 @@ var _asy_router_map = [
169 173
   outpatientDoctorStation,
170 174
   outpatientCharges,
171 175
   outpatientPharmacy,
176
+  outpatientRecord,
177
+  hospitalStation,
172 178
   // kuyiShopping,
173 179
   integration,
174 180
   basicConfig
175
-]
181
+];
176 182
 
177
-var is_asy_router = process.env.NODE_ENV === 'production' // true; 设置为 true 强制进行路由验证
183
+var is_asy_router = process.env.NODE_ENV === 'production'; // true; 设置为 true 强制进行路由验证
178 184
 if (!is_asy_router) {
179
-  _constant_router_map = _constant_router_map.concat(_asy_router_map)
185
+  _constant_router_map = _constant_router_map.concat(_asy_router_map);
180 186
   _asy_router_map = []
181 187
 } else {
182 188
 
183 189
 }
184 190
 
185
-export const xt_constantRouterMap = _constant_router_map
186
-export const xt_asyncRouterMap = _asy_router_map
191
+export const xt_constantRouterMap = _constant_router_map;
192
+export const xt_asyncRouterMap = _asy_router_map;
187 193
 
188 194
 export default new Router({
189 195
   // mode: 'history', // require service support

+ 82 - 0
src/router/modules/hospitalStation.js View File

@@ -0,0 +1,82 @@
1
+import Layout from '@/views/layout/Layout'
2
+
3
+export default {
4
+  path: '/hospitalStation',
5
+  component: Layout,
6
+  redirect: 'noredirect',
7
+  name: 'hospitalStation',
8
+  alwaysShow: true,
9
+  meta: {
10
+    title: 'hospitalStation',
11
+    icon: 'hospitalStation',
12
+    isChild: true
13
+  },
14
+  children: [
15
+    {
16
+      path: '/hospitalStation/index',
17
+      component: () => import('@/xt_pages/hospitalStation/index'),
18
+      name: 'hospitalIndex',
19
+      meta: { title: 'hospitalIndex', noCache: true }
20
+    },
21
+    {
22
+      path: '/hospitalStation/doctorDesk',
23
+      component: () => import('@/xt_pages/hospitalStation/doctorDesk'),
24
+      name: 'outpatientDoctorStationDoctorDesk',
25
+      meta: { title: 'outpatientDoctorStationDoctorDesk', noCache: true }
26
+    },
27
+    {
28
+      path: '/hospitalStation/outpatientChargesManagement',
29
+      component: () => import('@/xt_pages/hospitalStation/outpatientChargesManagement'),
30
+      name: 'hospitalChargesManagement',
31
+      meta: { title: 'hospitalChargesManagement', noCache: true }
32
+    },
33
+
34
+    // {
35
+    //   path: '/hospitalStation/templateManagement',
36
+    //   component: () => import('@/xt_pages/hospitalStation/templateManagement'),
37
+    //   name: 'outpatientDoctorStationTemplateManagement',
38
+    //   meta: { title: 'outpatientDoctorStationTemplateManagement', noCache: true }
39
+    // },
40
+    // {
41
+    //   path: '/hospitalStation/print',
42
+    //   component: () => import('@/xt_pages/hospitalStation/print'),
43
+    //   hidden: true,
44
+    //   is_menu: false,
45
+    //   name: 'outpatientDoctorStationPrint',
46
+    //   meta: { title: 'outpatientDoctorStationPrint', noCache: true }
47
+    // },
48
+    // {
49
+    //   path: '/hospitalStation/printtwo',
50
+    //   component: () => import('@/xt_pages/hospitalStation/printtwo'),
51
+    //   hidden: true,
52
+    //   is_menu: false,
53
+    //   name: 'outpatientDoctorStationPrint',
54
+    //   meta: { title: 'outpatientDoctorStationPrint', noCache: true }
55
+    // },
56
+    // {
57
+    //   path: '/hospitalStation/recordPrint',
58
+    //   component: () => import('@/xt_pages/hospitalStation/recordPrint'),
59
+    //   hidden: true,
60
+    //   is_menu: false,
61
+    //   name: 'outpatientDoctorStationRecordPrint',
62
+    //   meta: { title: 'outpatientDoctorStationRecordPrint', noCache: true }
63
+    // },
64
+    // {
65
+    //   path: '/hospitalStation/treatPrint',
66
+    //   component: () => import('@/xt_pages/hospitalStation/treatPrint'),
67
+    //   hidden: true,
68
+    //   is_menu: false,
69
+    //   name: 'outpatientDoctorStationTreatPrint',
70
+    //   meta: { title: 'outpatientDoctorStationTreatPrint', noCache: true }
71
+    // },
72
+    //
73
+    // {
74
+    //   path: '/hospitalStation/printone',
75
+    //   component: () => import('@/xt_pages/hospitalStation/template/printOne'),
76
+    //   hidden: true,
77
+    //   is_menu: false,
78
+    //   name: 'outpatientDoctorStationPrint',
79
+    //   meta: { title: 'outpatientDoctorStationPrint', noCache: true }
80
+    // },
81
+  ]
82
+}

+ 53 - 0
src/router/modules/outpatientRecord.js View File

@@ -0,0 +1,53 @@
1
+import Layout from '@/views/layout/Layout'
2
+
3
+export default {
4
+  path: '/outpatientRecord',
5
+  component: Layout,
6
+  redirect: 'noredirect',
7
+  name: 'outpatientRecord',
8
+  alwaysShow: true,
9
+  meta: {
10
+    title: 'outpatientRecord',
11
+    icon: 'outpatientRecord',
12
+    isChild: true
13
+  },
14
+  children: [
15
+    {
16
+        path: '/outpatientRecord/outpatientRecord',
17
+        component: () => import('@/xt_pages/outpatientRecord/outpatientRecord'),
18
+        name: 'outpatientSickRecord',
19
+        meta: { title: 'outpatientSickRecord', noCache: true }
20
+    },
21
+    {
22
+      path: '/outpatientRecord/index',
23
+      component: () => import('@/xt_pages/hospitalStation/index'),
24
+      name: 'hospitalIndex',
25
+      meta: { title: 'hospitalIndex', noCache: true }
26
+    },
27
+    {
28
+      path: '/outpatientRecord/doctorDesk',
29
+      component: () => import('@/xt_pages/hospitalStation/doctorDesk'),
30
+      name: 'outpatientDoctorStationDoctorDesk',
31
+      meta: { title: 'outpatientDoctorStationDoctorDesk', noCache: true }
32
+    }, {
33
+      path: '/outpatientRecord/pastInquiries',
34
+      component: () => import('@/xt_pages/hospitalStation/pastInquiries'),
35
+      name: 'pastInquiries',
36
+      meta: { title: 'pastInquiries', noCache: true }
37
+    },
38
+    {
39
+      path: '/outpatientRecord/outpatientChargesManagement',
40
+      component: () => import('@/xt_pages/hospitalStation/outpatientChargesManagement'),
41
+      name: 'hospitalChargesManagement',
42
+      meta: { title: 'hospitalChargesManagement', noCache: true }
43
+    },
44
+    {
45
+      path: '/outpatientRecord/summary',
46
+      component: () => import('@/xt_pages/hospitalStation/summary'),
47
+      name: 'summary',
48
+      meta: { title: 'summary', noCache: true }
49
+    },
50
+
51
+
52
+  ]
53
+}

+ 12 - 1
src/router/modules/workforce.js View File

@@ -81,6 +81,17 @@ export default {
81 81
         title: 'next_remind_print',
82 82
         noCache: true
83 83
       }
84
-    }
84
+    },
85
+    // {
86
+    //   path: '/schedule/remind/print/setting',
87
+    //   component: () => import('@/xt_pages/workforce/remind_print_setting'),
88
+    //   name: 'remind_print_setting',
89
+    //   hidden: true,
90
+    //   is_menu: false,
91
+    //   meta: {
92
+    //     title: 'remind_print_setting',
93
+    //     noCache: true
94
+    //   }
95
+    // },
85 96
   ]
86 97
 }

+ 48 - 1
src/store/modules/globalConfig.js View File

@@ -509,6 +509,21 @@ const global_config = {
509 509
         sodium: 1,
510 510
         calcium: 1,
511 511
         bicarbonate: 1
512
+      },
513
+      21: {
514
+        id: 21,
515
+        name: 'HD+',
516
+        dialysis_duration: 1,
517
+        replacement_way: 1,
518
+        hemodialysis_machine: 2,
519
+        blood_filter: 1,
520
+        perfusion_apparatus: 2,
521
+        blood_flow_volume: 1,
522
+        dialysate_flow: 1,
523
+        kalium: 1,
524
+        sodium: 1,
525
+        calcium: 1,
526
+        bicarbonate: 1
512 527
       }
513 528
     },
514 529
     anticoagulants_confit: { // 抗凝剂
@@ -1826,8 +1841,40 @@ const global_config = {
1826 1841
       },{
1827 1842
         id: 29,
1828 1843
         name: '只'
1844
+      },{
1845
+        id: 30,
1846
+        name: '次'
1847
+      },{
1848
+        id: 31,
1849
+        name: '米'
1850
+      },{
1851
+        id: 32,
1852
+        name: '对'
1853
+      },
1854
+      {
1855
+        id: 31,
1856
+        name: '米'
1857
+      },
1858
+      {
1859
+        id: 32,
1860
+        name: '对'
1861
+      },
1862
+      {
1863
+        id: 33,
1864
+        name: '万份'
1865
+      },
1866
+      {
1867
+        id: 34,
1868
+        name: '副'
1869
+      },
1870
+      {
1871
+        id: 35,
1872
+        name: '本'
1873
+      },
1874
+      {
1875
+        id: 36,
1876
+        name: '轴'
1829 1877
       },
1830
-
1831 1878
     ],
1832 1879
     body_fluid: [{
1833 1880
       id: 1,

+ 19 - 19
src/views/layout/Layout.vue View File

@@ -1,7 +1,7 @@
1 1
 <template>
2 2
   <div class="app-wrapper" :class="classObj">
3 3
     <div v-if="device==='mobile'&&sidebar.opened" class="drawer-bg" @click="handleClickOutside"></div>
4
-    
4
+
5 5
     <div class="mainBox">
6 6
       <div class="navLeft">
7 7
         <div v-if="menzhenShow" :class="index == 0 ? 'navOne navActive' : 'navOne'" @click="clickActive(0,'门诊管理')">
@@ -24,7 +24,7 @@
24 24
           <i class="iconfont icon-shangcheng-1 navIcon"></i>
25 25
           <p>酷医商城</p>
26 26
         </div>
27
-        
27
+
28 28
         <div class="navOne" @click="open">
29 29
           <i class="iconfont icon-manage_fill navIcon"></i>
30 30
           <p>更多</p>
@@ -33,7 +33,7 @@
33 33
       <sidebar :navTitle="navTitle" v-show="navShow" class="sidebar-container" @func="show"></sidebar>
34 34
       <div class="main-container new-main-container" style="flex:1;margin-top:50px;">
35 35
         <navbar></navbar>
36
-        
36
+
37 37
         <!-- <tags-view></tags-view> -->
38 38
         <app-main></app-main>
39 39
       </div>
@@ -122,19 +122,19 @@ export default {
122 122
     }
123 123
   },
124 124
   created(){
125
-    console.log('permission_routers',this.permission_routers)
126
-    let menzhen = ['outpatientRegistration','outpatientDoctorStation','outpatientCharges','outpatientPharmacy']
127
-    let bingli = ['User','createPatient']
128
-    let touxi = ['home','workforce', 'dialysisrecord', 'dialysis', 'medicalScheduling', 'signIndex', 'qcd', 'device', 'quality_control']
129
-    let kucun = ['stockManage','stockDrugs','selfPreparedMedicine','otherManagement']
130
-    let peizhi = ['system','roleManage','DepartManage', 'bedManagement', 'dictionaryManagement', 'templateManagement','showconfig','printTemplate','integration_config','basicConfig']
131
-    let kuyishopping = ['kuyiShopping']
132
-    let menzhenArr = []
133
-    let bingliArr = []
134
-    let touxiArr = []
135
-    let kucunArr = []
136
-    let peizhiArr = []
137
-    let kuyishoppingArr = []
125
+    console.log('permission_routers',this.permission_routers);
126
+    let menzhen = ['outpatientRegistration','outpatientDoctorStation','outpatientCharges','outpatientPharmacy','outpatientRecord','hospitalStation'];
127
+    let bingli = ['User','createPatient'];
128
+    let touxi = ['home','workforce', 'dialysisrecord', 'dialysis', 'medicalScheduling', 'signIndex', 'qcd', 'device', 'quality_control'];
129
+    let kucun = ['stockManage','stockDrugs','selfPreparedMedicine','otherManagement'];
130
+    let peizhi = ['system','roleManage','DepartManage', 'bedManagement', 'dictionaryManagement', 'templateManagement','showconfig','printTemplate','integration_config','basicConfig'];
131
+    let kuyishopping = ['kuyiShopping'];
132
+    let menzhenArr = [];
133
+    let bingliArr = [];
134
+    let touxiArr = [];
135
+    let kucunArr = [];
136
+    let peizhiArr = [];
137
+    let kuyishoppingArr = [];
138 138
     this.permission_routers.map(item => {
139 139
       if(menzhen.indexOf(item.name) > -1){
140 140
         menzhenArr.push(item)
@@ -149,7 +149,7 @@ export default {
149 149
       }else if(kuyishopping.indexOf(item.name) > -1){
150 150
         kuyishoppingArr.push(item)
151 151
       }
152
-    })
152
+    });
153 153
     // console.log('menzhenArr.length',menzhenArr.length)
154 154
     // console.log('bingliArr.length',bingliArr.length)
155 155
     // console.log('touxiArr.length',touxiArr.length)
@@ -198,8 +198,8 @@ export default {
198 198
       }else if(index == 6){
199 199
         this.CDMWebsit()
200 200
       }
201
-      this.index = index
202
-      this.navTitle = title
201
+      this.index = index;
202
+      this.navTitle = title;
203 203
       this.sign = false
204 204
     },
205 205
     open(){

+ 39 - 39
src/views/layout/components/Sidebar/index.vue View File

@@ -48,19 +48,19 @@ export default {
48 48
   },
49 49
   created(){
50 50
     if(this.navTitle == '透析管理'){
51
-      let nameArr = ['home','workforce', 'dialysisrecord', 'dialysis', 'medicalScheduling', 'signIndex', 'qcd', 'device', 'quality_control']
51
+      let nameArr = ['home','workforce', 'dialysisrecord', 'dialysis', 'medicalScheduling', 'signIndex', 'qcd', 'device', 'quality_control'];
52 52
       // console.log('permission_routers',this.permission_routers)
53
-      let routerArr = []
53
+      let routerArr = [];
54 54
       this.permission_routers.map(item => {
55 55
         if(nameArr.indexOf(item.name) > -1){
56 56
           routerArr.push(item)
57 57
         }
58
-      })
58
+      });
59 59
       this.arr = routerArr
60 60
     }else if(this.navTitle == '电子病历'){
61 61
       this.arr = []
62 62
     }
63
-    
63
+
64 64
     // let a = this.permission_routers
65 65
     // this.arr = a.slice(0,10)
66 66
     // console.log('this.arr',this.arr)
@@ -69,98 +69,98 @@ export default {
69 69
     navTitle:{
70 70
       handler(newVal,oldVal){
71 71
         if(newVal == '门诊管理'){
72
-          let nameArr = ['outpatientRegistration','outpatientDoctorStation','outpatientCharges','outpatientPharmacy']
72
+          let nameArr = ['outpatientRegistration','outpatientDoctorStation','outpatientCharges','outpatientPharmacy','outpatientRecord','hospitalStation'];
73 73
           // console.log('permission_routers',this.permission_routers)
74
-          let routerArr = []
74
+          let routerArr = [];
75 75
           this.permission_routers.map(item => {
76 76
             if(nameArr.indexOf(item.name) > -1){
77 77
               routerArr.push(item)
78 78
             }
79
-          })
80
-          this.arr = routerArr
79
+          });
80
+          this.arr = routerArr;
81 81
           if(this.arr.length > 0){
82
-            let a = true
82
+            let a = true;
83 83
             this.$emit('func',a)
84 84
           }else{
85
-            let a = false
85
+            let a = false;
86 86
             this.$emit('func',a)
87 87
           }
88 88
         }else if(newVal == '电子病历'){
89
-          let nameArr = ['User','createPatient']
89
+          let nameArr = ['User','createPatient'];
90 90
           // console.log('permission_routers',this.permission_routers)
91
-          let routerArr = []
91
+          let routerArr = [];
92 92
           this.permission_routers.map(item => {
93 93
             if(nameArr.indexOf(item.name) > -1){
94 94
               routerArr.push(item)
95 95
             }
96
-          })
97
-          this.arr = routerArr
96
+          });
97
+          this.arr = routerArr;
98 98
           if(this.arr.length > 0){
99
-            let a = true
99
+            let a = true;
100 100
             this.$emit('func',a)
101 101
           }else{
102
-            let a = false
102
+            let a = false;
103 103
             this.$emit('func',a)
104 104
           }
105 105
         }else if(newVal == '透析管理'){
106
-          let nameArr = ['home','workforce', 'dialysisrecord', 'dialysis', 'medicalScheduling', 'signIndex', 'qcd', 'device', 'quality_control']
106
+          let nameArr = ['home','workforce', 'dialysisrecord', 'dialysis', 'medicalScheduling', 'signIndex', 'qcd', 'device', 'quality_control'];
107 107
           // console.log('permission_routers',this.permission_routers)
108
-          let routerArr = []
108
+          let routerArr = [];
109 109
           this.permission_routers.map(item => {
110 110
             if(nameArr.indexOf(item.name) > -1){
111 111
               routerArr.push(item)
112 112
             }
113
-          })
114
-          console.log('routerArr',routerArr)
115
-          this.arr = routerArr
113
+          });
114
+          console.log('routerArr',routerArr);
115
+          this.arr = routerArr;
116 116
           if(this.arr.length > 0){
117
-            let a = true
117
+            let a = true;
118 118
             this.$emit('func',a)
119 119
           }else{
120
-            let a = false
120
+            let a = false;
121 121
             this.$emit('func',a)
122 122
           }
123 123
         }else if(newVal == '库房管理'){
124
-          let nameArr = ['stockManage','stockDrugs','selfPreparedMedicine','otherManagement']
124
+          let nameArr = ['stockManage','stockDrugs','selfPreparedMedicine','otherManagement'];
125 125
           // console.log('permission_routers',this.permission_routers)
126
-          let routerArr = []
126
+          let routerArr = [];
127 127
           this.permission_routers.map(item => {
128 128
             if(nameArr.indexOf(item.name) > -1){
129 129
               routerArr.push(item)
130 130
             }
131
-          })
132
-          this.arr = routerArr
131
+          });
132
+          this.arr = routerArr;
133 133
           if(this.arr.length > 0){
134
-            let a = true
134
+            let a = true;
135 135
             this.$emit('func',a)
136 136
           }else{
137
-            let a = false
137
+            let a = false;
138 138
             this.$emit('func',a)
139 139
           }
140 140
         }else if(newVal == '配置管理'){
141
-          let nameArr = ['system','roleManage','DepartManage', 'bedManagement', 'dictionaryManagement', 'templateManagement','showconfig','printTemplate','integration_config','basicConfig']
141
+          let nameArr = ['system','roleManage','DepartManage', 'bedManagement', 'dictionaryManagement', 'templateManagement','showconfig','printTemplate','integration_config','basicConfig'];
142 142
           // console.log('permission_routers',this.permission_routers)
143
-          let routerArr = []
143
+          let routerArr = [];
144 144
           this.permission_routers.map(item => {
145 145
             if(nameArr.indexOf(item.name) > -1){
146 146
               routerArr.push(item)
147 147
             }
148
-          })
149
-          this.arr = routerArr
148
+          });
149
+          this.arr = routerArr;
150 150
           if(this.arr.length > 0){
151
-            let a = true
151
+            let a = true;
152 152
             this.$emit('func',a)
153 153
           }else{
154
-            let a = false
154
+            let a = false;
155 155
             this.$emit('func',a)
156 156
           }
157 157
         }else {
158
-          this.arr = []
158
+          this.arr = [];
159 159
           if(this.arr.length > 0){
160
-            let a = true
160
+            let a = true;
161 161
             this.$emit('func',a)
162 162
           }else{
163
-            let a = false
163
+            let a = false;
164 164
             this.$emit('func',a)
165 165
           }
166 166
         }
@@ -196,7 +196,7 @@ export default {
196 196
     -o-object-position: center;
197 197
     object-position: center;
198 198
     }
199
-  } 
199
+  }
200 200
   .title {
201 201
     font-size: 14px;
202 202
     color: #bfcbd9;

+ 147 - 0
src/xt_pages/components/GoodExcel/index.vue View File

@@ -0,0 +1,147 @@
1
+<template>
2
+  <div>
3
+    <input id="excel-good-input" ref="excel-good-input" type="file" accept=".xlsx, .xls, .xltx" @change="handleClick">
4
+    <el-button :loading="loading" style="margin-left:16px;" size="mini" type="primary" @click="handleUpload">导入模板
5
+    </el-button>
6
+  </div>
7
+</template>
8
+
9
+<script>
10
+  import XLSX from 'xlsx'
11
+
12
+  export default {
13
+    props: {
14
+      beforeUpload: Function,
15
+      onSuccess: Function
16
+    },
17
+    data() {
18
+      return {
19
+        loading: false,
20
+        excelData: {
21
+          header: null,
22
+          results: null
23
+        }
24
+      }
25
+    },
26
+    methods: {
27
+      generateDate({ header, results }) {
28
+        this.excelData.header = header
29
+        this.excelData.results = results
30
+        this.onSuccess && this.onSuccess(this.excelData)
31
+      },
32
+      handleDrop(e) {
33
+        e.stopPropagation()
34
+        e.preventDefault()
35
+        if (this.loading) return
36
+        const files = e.dataTransfer.files
37
+        if (files.length !== 1) {
38
+          this.$message.error('Only support uploading one file!')
39
+          return
40
+        }
41
+        const rawFile = files[0] // only use files[0]
42
+
43
+        if (!this.isExcel(rawFile)) {
44
+          this.$message.error('Only supports upload .xlsx, .xls, .csv suffix files')
45
+          return false
46
+        }
47
+        this.upload(rawFile)
48
+        e.stopPropagation()
49
+        e.preventDefault()
50
+      },
51
+      handleDragover(e) {
52
+        e.stopPropagation()
53
+        e.preventDefault()
54
+        e.dataTransfer.dropEffect = 'copy'
55
+      },
56
+      handleUpload() {
57
+        document.getElementById('excel-good-input').click()
58
+      },
59
+      handleClick(e) {
60
+        const files = e.target.files
61
+        const rawFile = files[0] // only use files[0]
62
+        if (!rawFile) return
63
+        this.upload(rawFile)
64
+      },
65
+      upload(rawFile) {
66
+        this.$refs['excel-good-input'].value = null // fix can't select the same excel
67
+
68
+        if (!this.beforeUpload) {
69
+          this.readerData(rawFile)
70
+          return
71
+        }
72
+        const before = this.beforeUpload(rawFile)
73
+        if (before) {
74
+          this.readerData(rawFile)
75
+        }
76
+      },
77
+      readerData(rawFile) {
78
+        this.loading = true
79
+        return new Promise((resolve, reject) => {
80
+          const reader = new FileReader()
81
+          reader.onload = e => {
82
+            const data = e.target.result
83
+            const fixedData = this.fixdata(data)
84
+            const workbook = XLSX.read(btoa(fixedData), { type: 'base64' })
85
+            const firstSheetName = workbook.SheetNames[0]
86
+            const worksheet = workbook.Sheets[firstSheetName]
87
+            const header = this.get_header_row(worksheet)
88
+            const results = XLSX.utils.sheet_to_json(worksheet)
89
+            this.generateDate({ header, results })
90
+            this.loading = false
91
+            resolve()
92
+          }
93
+          reader.readAsArrayBuffer(rawFile)
94
+        })
95
+      },
96
+      fixdata(data) {
97
+        let o = ''
98
+        let l = 0
99
+        const w = 10240
100
+        for (; l < data.byteLength / w; ++l) o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w)))
101
+        o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w)))
102
+        return o
103
+      },
104
+      get_header_row(sheet) {
105
+        if(sheet['!ref'] == undefined){
106
+          this.loading = false
107
+          return
108
+        }
109
+
110
+        const headers = []
111
+        const range = XLSX.utils.decode_range(sheet['!ref'])
112
+        let C
113
+        const R = range.s.r /* start in the first row */
114
+        for (C = range.s.c; C <= range.e.c; ++C) { /* walk every column in the range */
115
+          var cell = sheet[XLSX.utils.encode_cell({ c: C, r: R })] /* find the cell in the first row */
116
+          var hdr = 'UNKNOWN ' + C // <-- replace with your desired default
117
+          if (cell && cell.t) hdr = XLSX.utils.format_cell(cell)
118
+          headers.push(hdr)
119
+        }
120
+        return headers
121
+      },
122
+      isExcel(file) {
123
+        return /\.(xlsx|xls|csv)$/.test(file.name)
124
+      }
125
+    }
126
+  }
127
+</script>
128
+
129
+<style scoped>
130
+  #excel-good-input {
131
+    display: none;
132
+    z-index: -9999;
133
+  }
134
+
135
+  #drop {
136
+    border: 2px dashed #bbb;
137
+    width: 600px;
138
+    height: 160px;
139
+    line-height: 160px;
140
+    margin: 0 auto;
141
+    font-size: 24px;
142
+    border-radius: 5px;
143
+    text-align: center;
144
+    color: #bbb;
145
+    position: relative;
146
+  }
147
+</style>

+ 147 - 0
src/xt_pages/components/ProjectExcel/index.vue View File

@@ -0,0 +1,147 @@
1
+<template>
2
+  <div>
3
+    <input id="excel-project-input" ref="excel-project-input" type="file" accept=".xlsx, .xls, .xltx" @change="handleClick">
4
+    <el-button :loading="loading" style="margin-left:16px;" size="mini" type="primary" @click="handleUpload">导入模板
5
+    </el-button>
6
+  </div>
7
+</template>
8
+
9
+<script>
10
+  import XLSX from 'xlsx'
11
+
12
+  export default {
13
+    props: {
14
+      beforeUpload: Function,
15
+      onSuccess: Function
16
+    },
17
+    data() {
18
+      return {
19
+        loading: false,
20
+        excelData: {
21
+          header: null,
22
+          results: null
23
+        }
24
+      }
25
+    },
26
+    methods: {
27
+      generateDate({ header, results }) {
28
+        this.excelData.header = header
29
+        this.excelData.results = results
30
+        this.onSuccess && this.onSuccess(this.excelData)
31
+      },
32
+      handleDrop(e) {
33
+        e.stopPropagation()
34
+        e.preventDefault()
35
+        if (this.loading) return
36
+        const files = e.dataTransfer.files
37
+        if (files.length !== 1) {
38
+          this.$message.error('Only support uploading one file!')
39
+          return
40
+        }
41
+        const rawFile = files[0] // only use files[0]
42
+
43
+        if (!this.isExcel(rawFile)) {
44
+          this.$message.error('Only supports upload .xlsx, .xls, .csv suffix files')
45
+          return false
46
+        }
47
+        this.upload(rawFile)
48
+        e.stopPropagation()
49
+        e.preventDefault()
50
+      },
51
+      handleDragover(e) {
52
+        e.stopPropagation()
53
+        e.preventDefault()
54
+        e.dataTransfer.dropEffect = 'copy'
55
+      },
56
+      handleUpload() {
57
+        document.getElementById('excel-project-input').click()
58
+      },
59
+      handleClick(e) {
60
+        const files = e.target.files
61
+        const rawFile = files[0] // only use files[0]
62
+        if (!rawFile) return
63
+        this.upload(rawFile)
64
+      },
65
+      upload(rawFile) {
66
+        this.$refs['excel-project-input'].value = null // fix can't select the same excel
67
+
68
+        if (!this.beforeUpload) {
69
+          this.readerData(rawFile)
70
+          return
71
+        }
72
+        const before = this.beforeUpload(rawFile)
73
+        if (before) {
74
+          this.readerData(rawFile)
75
+        }
76
+      },
77
+      readerData(rawFile) {
78
+        this.loading = true
79
+        return new Promise((resolve, reject) => {
80
+          const reader = new FileReader()
81
+          reader.onload = e => {
82
+            const data = e.target.result
83
+            const fixedData = this.fixdata(data)
84
+            const workbook = XLSX.read(btoa(fixedData), { type: 'base64' })
85
+            const firstSheetName = workbook.SheetNames[0]
86
+            const worksheet = workbook.Sheets[firstSheetName]
87
+            const header = this.get_header_row(worksheet)
88
+            const results = XLSX.utils.sheet_to_json(worksheet)
89
+            this.generateDate({ header, results })
90
+            this.loading = false
91
+            resolve()
92
+          }
93
+          reader.readAsArrayBuffer(rawFile)
94
+        })
95
+      },
96
+      fixdata(data) {
97
+        let o = ''
98
+        let l = 0
99
+        const w = 10240
100
+        for (; l < data.byteLength / w; ++l) o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w)))
101
+        o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w)))
102
+        return o
103
+      },
104
+      get_header_row(sheet) {
105
+        if(sheet['!ref'] == undefined){
106
+          this.loading = false
107
+          return
108
+        }
109
+
110
+        const headers = []
111
+        const range = XLSX.utils.decode_range(sheet['!ref'])
112
+        let C
113
+        const R = range.s.r /* start in the first row */
114
+        for (C = range.s.c; C <= range.e.c; ++C) { /* walk every column in the range */
115
+          var cell = sheet[XLSX.utils.encode_cell({ c: C, r: R })] /* find the cell in the first row */
116
+          var hdr = 'UNKNOWN ' + C // <-- replace with your desired default
117
+          if (cell && cell.t) hdr = XLSX.utils.format_cell(cell)
118
+          headers.push(hdr)
119
+        }
120
+        return headers
121
+      },
122
+      isExcel(file) {
123
+        return /\.(xlsx|xls|csv)$/.test(file.name)
124
+      }
125
+    }
126
+  }
127
+</script>
128
+
129
+<style scoped>
130
+  #excel-project-input {
131
+    display: none;
132
+    z-index: -9999;
133
+  }
134
+
135
+  #drop {
136
+    border: 2px dashed #bbb;
137
+    width: 600px;
138
+    height: 160px;
139
+    line-height: 160px;
140
+    margin: 0 auto;
141
+    font-size: 24px;
142
+    border-radius: 5px;
143
+    text-align: center;
144
+    color: #bbb;
145
+    position: relative;
146
+  }
147
+</style>

+ 88 - 2
src/xt_pages/data/basicConfig.vue View File

@@ -25,6 +25,22 @@
25 25
           <el-switch v-model="is_open_xt_his" @change="changeFuncOne"></el-switch>
26 26
           </p>
27 27
         </div>
28
+
29
+        <!-- <div class="configBox">
30
+          <p style="font-size:18px;font-weight:bold">血压数据自动获取</p>
31
+          <p style="font-size:14px;margin-top:5px;color:#333;">在联机的状态下,开启透析监测-血压数据自动获取功能后,则不需要手动输入,数据会自动上传到监测中</p>
32
+          <p style="margin-top:20px;">透析监测-血压数据自动获取:
33
+          <el-switch v-model="is_open_monitor" @change="changeFuncTwo"></el-switch>
34
+          </p>
35
+        </div>
36
+
37
+        <div class="configBox">
38
+          <p style="font-size:18px;font-weight:bold">透析机数据自动获取</p>
39
+          <p style="font-size:14px;margin-top:5px;color:#333;">在联机的状态下,开启透析监测-透析机数据自动获取功能后,则不需要手动输入,数据会自动上传到监测中</p>
40
+          <p style="margin-top:20px;">透析监测-血压数据自动获取:
41
+          <el-switch v-model="is_open_order" @change="changeFuncThree"></el-switch>
42
+          </p>
43
+        </div> -->
28 44
         <!--<div class="configBox">-->
29 45
             <!--<p>药品,耗材出库</p>-->
30 46
             <!--<p style="font-size:14px;margin-top:5px;">开启药品,耗材出库自动扣减则医生开完医嘱或处方可直接出库,不开启则由发药动作或出库按钮手动出库</p>-->
@@ -62,7 +78,7 @@
62 78
 
63 79
 <script>
64 80
 import BreadCrumb from "@/xt_pages/components/bread-crumb";
65
-import { getAllIsOpenInit,postXtHisIsOpen } from '@/api/config'
81
+import { getAllIsOpenInit,postXtHisIsOpen,postMonitorIsOpen} from '@/api/config'
66 82
 
67 83
 export default {
68 84
   name: "printTemplate",
@@ -76,6 +92,8 @@ export default {
76 92
       ],
77 93
       value:false,
78 94
       is_open_xt_his:false,
95
+      is_open_monitor:false,
96
+      is_open_order:false,
79 97
     };
80 98
   },
81 99
   methods: {
@@ -126,14 +144,82 @@ export default {
126 144
           }
127 145
         )
128 146
       }
147
+    },
129 148
 
149
+    changeFuncTwo(){
150
+      console.log("3333333",this.is_open_monitor)
151
+      var is_open = 0
152
+      if(this.is_open_monitor == true){
153
+          is_open = 1
154
+       }
155
+       if(this.is_open_monitor == false){
156
+         is_open = 2
157
+       }
158
+      let params = {
159
+         is_open:is_open,
160
+       }
161
+     console.log("params",params)
162
+      postMonitorIsOpen(params).then(response=>{
163
+         if(response.data.state == 1){
164
+            var config = response.data.data.config
165
+            this.$message.success("成功")
166
+            this.getMonitorConfig()
167
+         }
168
+      })
169
+    },
170
+    getMonitorConfig(){
171
+      getMonitorConfig().then(response=>{
172
+         if(response.data.state == 1){
173
+           var config =  response.data.data.config
174
+           console.log("config",config)
175
+           if (config.is_open == 1) {
176
+              this.is_open_monitor = true
177
+           }
178
+           if (config.is_open == 2) {
179
+              this.is_open_monitor = false
180
+           }
181
+         }
182
+      })
183
+    },
130 184
 
131
-
185
+    changeFuncThree(){
186
+      var is_open = 0
187
+      if(this.is_open_order == true){
188
+          is_open = 1
189
+       }
190
+       if(this.is_open_order == false){
191
+         is_open = 2
192
+       }
193
+      let params = {
194
+         is_open:is_open,
195
+       } 
196
+      addOrderConfig(params).then(response=>{
197
+         if(response.data.state == 1){
198
+           var config = response.data.data.config
199
+           this.$message.success("成功")
200
+           this.getOrderConfig()
201
+         }
202
+      })
203
+    },
204
+    getOrderConfig(){
205
+      getOrderConfig().then(response=>{
206
+        if(response.data.state == 1){
207
+           var config =  response.data.data.config
208
+          if (config.is_open == 1) {
209
+              this.is_open_order = true
210
+           }
211
+           if (config.is_open == 2) {
212
+              this.is_open_order = false
213
+           }
214
+        }
215
+      })
132 216
     }
133 217
 
134 218
   },
135 219
   created() {
136 220
     this.getInitIsOpenConfig()
221
+    this.getMonitorConfig()
222
+    this.getOrderConfig()
137 223
 
138 224
   }
139 225
 };

File diff suppressed because it is too large
+ 596 - 466
src/xt_pages/data/components/addDrugs.vue


+ 69 - 10
src/xt_pages/data/components/addProject.vue View File

@@ -44,7 +44,7 @@
44 44
                         <el-form-item label="执行科室 : " prop="executive_section">
45 45
                             <el-select v-model="form.executive_section" style="width:160px;" placeholder="请选择">
46 46
                                 <el-option
47
-                                v-for="(item,index) in getDictionaryDataConfig('system','executive_section')"
47
+                                v-for="(item,index) in departMentList"
48 48
                                 :key="index"
49 49
                                 :label="item.name"
50 50
                                 :value="item.id">
@@ -135,6 +135,28 @@
135 135
                                 </el-option>
136 136
                             </el-select>
137 137
                         </el-form-item>
138
+                        <el-form-item label="特检项目:" prop="">
139
+                           <el-select v-model="form.specail_project" style="width:160px;" placeholder="请选择">
140
+                              <el-option
141
+                                v-for="(item,index) in specailProject"
142
+                                :key="index"
143
+                                :label="item.name"
144
+                                :value="item.id">
145
+                                </el-option>
146
+                            </el-select>
147
+                        </el-form-item>
148
+                         <el-form-item label="社保目录编码" >
149
+                            <el-input v-model="form.social_security_directory_code" style="width:180px"></el-input>
150
+                         </el-form-item>
151
+
152
+                        <el-form-item label="备案日期:" >
153
+                            <el-date-picker
154
+                                value-format="yyyy-MM-dd"
155
+                                v-model="form.record_date"
156
+                                type="date"
157
+                                placeholder="选择日期时间">
158
+                            </el-date-picker>
159
+                        </el-form-item>
138 160
                         <el-form-item label="备注 : " prop="remark" style="width:100%;">
139 161
                             <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="form.remark"></el-input>
140 162
                         </el-form-item>
@@ -221,7 +243,7 @@
221 243
 
222 244
 <script>
223 245
 import { getDictionaryDataConfig,getDataConfig } from "@/utils/data";
224
-import { saveProject } from "@/api/project/project"
246
+import { saveProject,getDePartmentList } from "@/api/project/project"
225 247
 export default {
226 248
     data(){
227 249
         return{
@@ -262,7 +284,11 @@ export default {
262 284
               delivery_way:"",
263 285
               execution_frequency:"",
264 286
               number_days:"",
265
-              total:""
287
+              total:"",
288
+              category:"",
289
+              specail_project:"",
290
+              social_security_directory_code:"",
291
+              record_date:""
266 292
             },
267 293
             rules: {
268 294
                 project_name: [{ required: true, message: '请填写项目名称', trigger: 'blur'  }],
@@ -276,13 +302,28 @@ export default {
276 302
              {id:1,name:"常规诊疗项目"},
277 303
              {id:4,name:"辅助器具项目"},
278 304
              {id:5,name:"加收项目"}
279
-           ]
305
+           ],
306
+           specailProject:[
307
+             {id:1,name:"是"},
308
+             {id:2,name:"否"}
309
+           ],
310
+           limit:100,
311
+           page:1,
312
+           departMentList:[]
280 313
         }
281 314
     },
282 315
     methods:{
283 316
         _close: function(done) {
284 317
             // this.clear()
285
-            done()
318
+            // done()
319
+            this.$confirm('是否保存')
320
+            .then(_ => {
321
+                this.submitAction('form')
322
+                // done();
323
+            })
324
+            .catch(_ => {
325
+                done()
326
+            });
286 327
         },
287 328
         clear: function() {
288 329
             this.form.id = 0;
@@ -340,8 +381,11 @@ export default {
340 381
                     number_days:this.form.number_days,
341 382
                     total:this.form.total,
342 383
                     category:this.form.category,
384
+                    specail_project:this.form.specail_project,
385
+                    social_security_directory_code:this.form.social_security_directory_code,
386
+                    record_date:this.form.record_date
343 387
                }
344
-           
388
+             console.log("params222222",params)
345 389
               saveProject(params).then(response=>{
346 390
                  if(response.data.state == 1){
347 391
                    var hisProject = response.data.data.hisProject
@@ -375,18 +419,33 @@ export default {
375 419
                    this.form.delivery_way = ""
376 420
                    this.form.execution_frequency = ""
377 421
                    this.form.number_days = ""
378
-                   this.form.total = ""
422
+                   this.form.total = "",
423
+                   this.form.social_security_directory_code = ""
424
+                   this.form.record_date = ""
425
+                   this.form.specail_project = ""
379 426
                  }else {
380 427
                     this.$message.error("项目名称已存在!")
381 428
                  }
382 429
               })
383 430
             }
384 431
           })
385
-       }
432
+       },
433
+        getlist(){
434
+        var params = {
435
+            limit:this.limit,
436
+            page:this.page,
437
+        }
438
+        getDePartmentList(params).then(response=>{
439
+            if(response.data.state == 1){
440
+            var department =   response.data.data.departMentList
441
+            console.log("科室列表",department)
442
+            this.departMentList = department
443
+            }
444
+        })
445
+        },
386 446
     },
387 447
     created(){
388
-       var statistics =   getDictionaryDataConfig('system','statistics_category')
389
-       console.log("#333333333",statistics)
448
+       this.getlist()
390 449
     }
391 450
 }
392 451
 </script>

File diff suppressed because it is too large
+ 733 - 160
src/xt_pages/data/components/consumables.vue


File diff suppressed because it is too large
+ 843 - 75
src/xt_pages/data/components/drugs.vue


+ 9 - 2
src/xt_pages/data/components/editInspection.vue View File

@@ -30,7 +30,7 @@
30 30
                         </el-option>
31 31
                   </el-select>
32 32
                 </el-form-item>
33
-                <el-form-item label="组套类型 : " prop="name" style="width:50%">
33
+                <el-form-item label="组套类型 : " prop="team_type" style="width:50%">
34 34
                     <el-select v-model="form.team_type" style="width:100%;" placeholder="请选择">
35 35
                         <el-option
36 36
                         v-for="item in options"
@@ -146,7 +146,8 @@ export default {
146 146
               team_type: [{ required:true,message:'请填写组套类型',trigger:'change' }]
147 147
            },
148 148
            tableData:[],
149
-           item_id:[]
149
+           item_id:[],
150
+           projectList:[]
150 151
         }
151 152
     },
152 153
     methods:{
@@ -211,7 +212,13 @@ export default {
211 212
                  this.form.pinyin = projectTeamDetail.pinyin
212 213
                  this.form.wubi  = projectTeamDetail.wubi
213 214
                  this.form.tube_color = projectTeamDetail.tube_color
215
+                 if(projectTeamDetail.tube_color == 0){
216
+                    this.form.tube_color = ""
217
+                 }
214 218
                  this.form.team_type = projectTeamDetail.team_type
219
+                 if(projectTeamDetail.team_type == 0){
220
+                    this.form.team_type = ""
221
+                 }     
215 222
                  this.form.remark = projectTeamDetail.remark
216 223
                  this.form.item_id = projectTeamDetail.item_id
217 224
                 //  console.log("project",projectTeamDetail)

+ 117 - 13
src/xt_pages/data/components/editProject.vue View File

@@ -34,17 +34,17 @@
34 34
                         <el-form-item label="费用类别 : " prop="cost_classify">
35 35
                             <el-select v-model="form.cost_classify" style="width:160px;" placeholder="请选择">
36 36
                                 <el-option
37
-                                v-for="(item,index) in getDictionaryDataConfig('system','cost_classify')"
37
+                                v-for="(item,index) in costClassifyList"
38 38
                                 :key="index"
39 39
                                 :label="item.name"
40
-                                :value="item.id">
40
+                                :value="item.value">
41 41
                                 </el-option>
42 42
                             </el-select>
43 43
                         </el-form-item>
44 44
                         <el-form-item label="执行科室 : " prop="executive_section">
45 45
                             <el-select v-model="form.executive_section" style="width:160px;" placeholder="请选择">
46 46
                                 <el-option
47
-                                v-for="(item,index) in getDictionaryDataConfig('system','executive_section')"
47
+                                v-for="(item,index) in departMentList"
48 48
                                 :key="index"
49 49
                                 :label="item.name"
50 50
                                 :value="item.id">
@@ -64,10 +64,10 @@
64 64
                         <el-form-item label="统计分类 : " prop="statistical_classification">
65 65
                             <el-select v-model="form.statistical_classification" style="width:160px;" placeholder="请选择">
66 66
                                 <el-option
67
-                                v-for="(item,index) in getDictionaryDataConfig('system','statistics_category')"
67
+                                v-for="(item,index) in statisticsCategoryList"
68 68
                                 :key="index"
69 69
                                 :label="item.name"
70
-                                :value="item.id">
70
+                                :value="item.value">
71 71
                                 </el-option>
72 72
                             </el-select>
73 73
                         </el-form-item>
@@ -97,10 +97,10 @@
97 97
                         <el-form-item label="试管颜色 : " prop="tube_color">
98 98
                             <el-select v-model="form.tube_color" style="width:160px;" placeholder="请选择">
99 99
                               <el-option
100
-                                v-for="(item,index) in getDictionaryDataConfig('system','tube_color')"
100
+                                v-for="(item,index) in tubeColorList"
101 101
                                 :key="index"
102 102
                                 :label="item.name"
103
-                                :value="item.id">
103
+                                :value="item.value">
104 104
                                 </el-option>
105 105
                             </el-select>
106 106
                         </el-form-item>
@@ -135,6 +135,29 @@
135 135
                                 </el-option>
136 136
                             </el-select>
137 137
                         </el-form-item>
138
+                         <el-form-item label="特检项目:" prop="">
139
+                           <el-select v-model="form.specail_project" style="width:160px;" placeholder="请选择">
140
+                              <el-option
141
+                                v-for="(item,index) in specailProject"
142
+                                :key="index"
143
+                                :label="item.name"
144
+                                :value="item.id">
145
+                                </el-option>
146
+                            </el-select>
147
+                        </el-form-item>
148
+                         <el-form-item label="社保目录编码" >
149
+                            <el-input v-model="form.social_security_directory_code" style="width:180px"></el-input>
150
+                         </el-form-item>
151
+
152
+                        <el-form-item label="备案日期:" >
153
+                            <el-date-picker
154
+                                value-format="yyyy-MM-dd"
155
+                                v-model="form.record_date"
156
+                                type="date"
157
+                                placeholder="选择日期时间">
158
+                            </el-date-picker>
159
+                        </el-form-item>
160
+                      
138 161
                         <el-form-item label="备注 : " prop="remark" style="width:100%;">
139 162
                             <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="form.remark"></el-input>
140 163
                         </el-form-item>
@@ -222,8 +245,10 @@
222 245
 </template>
223 246
 
224 247
 <script>
248
+import { uParseTime } from '@/utils/tools'
225 249
 import { getDictionaryDataConfig,getDataConfig } from "@/utils/data";
226
-import { getProjectDetail,updatedProject } from "@/api/project/project"
250
+import { getProjectDetail,updatedProject,getDePartmentList } from "@/api/project/project"
251
+ import {getInitializtion} from '@/api/stock'
227 252
 export default {
228 253
     data(){
229 254
         return{
@@ -267,7 +292,11 @@ export default {
267 292
               execution_frequency:"",
268 293
               number_days:"",
269 294
               total:"",
270
-              category:""
295
+              category:"",
296
+              specail_project:"",
297
+              social_security_directory_code:"",
298
+              record_date:"",
299
+              
271 300
             },
272 301
             rules: {
273 302
                 project_name: [{ required: true, message: '请填写项目名称', trigger: 'blur'  }],
@@ -283,10 +312,30 @@ export default {
283 312
              {id:1,name:"常规诊疗项目"},
284 313
              {id:4,name:"辅助器具项目"},
285 314
              {id:5,name:"加收项目"}
286
-           ]
315
+           ],
316
+         specailProject:[
317
+             {id:1,name:"是"},
318
+             {id:2,name:"否"}
319
+           ],
320
+          limit:100,
321
+           page:1,
322
+           departMentList:[],
323
+           statisticsCategoryList:[],
324
+           tubeColorList:[],
325
+           costClassifyList:[]
287 326
         }
288 327
     },
289 328
     methods:{
329
+        getTime(val) {
330
+         if(val < 0){
331
+           return ""
332
+         }
333
+         if(val == ""){
334
+          return ""
335
+         }else {
336
+          return uParseTime(val, '{y}-{m}-{d}')
337
+         }
338
+      },
290 339
         _close: function(done) {
291 340
             done()
292 341
         },
@@ -296,10 +345,12 @@ export default {
296 345
             this.form.intro = "";
297 346
         },
298 347
         show(id) {
299
-          
348
+           this.getlist()
349
+           this.getInitializtion()
300 350
            this.visible = true
301 351
            this.formTitle = '编辑'
302 352
            this.getProjectDetail(id)
353
+          
303 354
         },
304 355
         hide() {
305 356
          this.visible = false
@@ -325,6 +376,9 @@ export default {
325 376
               this.form.cost_classify = projecDetail.cost_classify
326 377
               this.form.executive_section = projecDetail.executive_section
327 378
               this.form.medical_coverage = projecDetail.medical_coverage
379
+              if(projecDetail.statistical_classification == 0){
380
+                 this.form.statistical_classification = ""
381
+              }
328 382
               this.form.statistical_classification =projecDetail.statistical_classification
329 383
               this.form.disease_directory = projecDetail.disease_directory?projecDetail.disease_directory:""
330 384
               this.form.is_record = projecDetail.is_record?projecDetail.is_record:""
@@ -345,7 +399,23 @@ export default {
345 399
               this.form.execution_frequency = projecDetail.execution_frequency
346 400
               this.form.number_days = projecDetail.number_days
347 401
               this.form.total = projecDetail.total
402
+            
348 403
               this.form.category = projecDetail.category
404
+               if(projecDetail.category == 0){
405
+                this.form.category = ""
406
+              }
407
+              if(projecDetail.specail_project == 0){
408
+                this.form.specail_project = ""
409
+              }
410
+              this.form.specail_project = projecDetail.specail_project
411
+              if(projecDetail.specail_project == 0){
412
+                 this.form.specail_project = ""
413
+              }
414
+              this.form.social_security_directory_code = projecDetail.social_security_directory_code
415
+              if(projecDetail.social_security_directory_code == 0){
416
+                this.form.social_security_directory_code = ""
417
+              }
418
+              this.form.record_date = this.getTime(projecDetail.record_date)
349 419
             }
350 420
          })
351 421
        },
@@ -384,7 +454,10 @@ export default {
384 454
                     execution_frequency:this.form.execution_frequency,
385 455
                     number_days:this.form.number_days,
386 456
                     total:this.form.total,
387
-                    category:this.form.category
457
+                    category:this.form.category,
458
+                     specail_project:this.form.specail_project,
459
+                    social_security_directory_code:this.form.social_security_directory_code,
460
+                    record_date:this.form.record_date
388 461
                }
389 462
               
390 463
               updatedProject(params).then(response=>{
@@ -398,7 +471,38 @@ export default {
398 471
               })
399 472
             }
400 473
           })
401
-       }
474
+       },
475
+       getlist(){
476
+        var params = {
477
+            limit:this.limit,
478
+            page:this.page,
479
+        }
480
+        getDePartmentList(params).then(response=>{
481
+            if(response.data.state == 1){
482
+            var department =   response.data.data.departMentList
483
+            console.log("科室列表",department)
484
+            this.departMentList = department
485
+            }
486
+        })
487
+      },
488
+     getInitializtion(){
489
+       getInitializtion().then(response=>{
490
+         if(response.data.state == 1){
491
+           var statisticsCategoryList = response.data.data.statisticsCategoryList
492
+           this.statisticsCategoryList = statisticsCategoryList
493
+           var tubeColorList = response.data.data.tubeColorList
494
+           this.tubeColorList = tubeColorList
495
+           var costClassifyList =  response.data.data.costClassifyList
496
+           this.costClassifyList = costClassifyList
497
+         }
498
+       })
499
+      }
500
+
501
+    },
502
+
503
+    created(){
504
+       this.getlist() 
505
+       this.getInitializtion()
402 506
     }
403 507
 }
404 508
 </script>

+ 623 - 49
src/xt_pages/data/components/project.vue View File

@@ -34,15 +34,40 @@
34 34
             </div>
35 35
             <div>
36 36
              <el-button type="primary" @click="openForm(0)">新增</el-button>
37
-             <el-button type="primary" @click="BatchDelete()">批量备案</el-button>
37
+             <!-- <el-button type="primary" @click="BatchDelete()" v-if="$store.getters.xt_user.org_id == 9504 || $store.getters.xt_user.org_id == 10028">批量备案</el-button>
38
+             <el-button type="primary" v-if="$store.getters.xt_user.org_id != 9504 && $store.getters.xt_user.org_id != 10028" @click="GDYBBatchPutOnRecord">批量备案</el-button> -->
38 39
             </div>
39 40
         </div>
41
+        <div style="display:flex; align-items:center;margin-bottom:10px;">
42
+        <el-button type="primary" size="small" @click="BatchDelete()" v-if="$store.getters.xt_user.org_id == 9504 || $store.getters.xt_user.org_id == 10028" >批量备案</el-button>
43
+        <el-button type="primary" size="small" v-if="$store.getters.xt_user.org_id != 9504 && $store.getters.xt_user.org_id != 10028" @click="GDYBBatchPutOnRecord()">批量备案</el-button>
44
+        <el-link target="_blank" href="https://kuyi.shengws.com/itemTemplate.xlsx" :underline="false"
45
+                 style="margin-left:15px">
46
+          <el-button
47
+            class="filter-item"
48
+            type="primary"
49
+            size="small"
50
+          >下载模版
51
+          </el-button>
52
+        </el-link>
53
+
54
+        <project-excel :on-success='handleSuccessOne'></project-excel>
55
+
56
+        <el-button
57
+          style="margin-left:10px;"
58
+          @click="generateLog()"
59
+          class="filter-item"
60
+          type="primary"
61
+          size="small"
62
+        >下载日志
63
+        </el-button>
64
+      </div>
40 65
         <el-table :data="tableData" border style="width: 100%" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)', color: '#606266'}"  @selection-change="handleSelectionChange">
41 66
             <el-table-column
42 67
               align="center"
43 68
               type="selection"
44 69
               width="55">
45
-            </el-table-column>  
70
+            </el-table-column>
46 71
             <el-table-column prop="date" label="序号" width="80" align="center">
47 72
                  <template  slot-scope="scope">
48 73
                       {{scope.$index+1}}
@@ -52,6 +77,16 @@
52 77
                 <template  slot-scope="scope">
53 78
                     {{scope.row.project_name}}
54 79
                 </template>
80
+            </el-table-column>
81
+             <el-table-column prop="date" label="单价" align="center">
82
+                <template  slot-scope="scope">
83
+                    {{scope.row.price}}
84
+                </template>
85
+            </el-table-column>
86
+            <el-table-column prop="date" label="单位" align="center">
87
+                <template  slot-scope="scope">
88
+                    {{scope.row.unit}}
89
+                </template>
55 90
             </el-table-column>
56 91
             <el-table-column prop="date" label="费用类别" align="center">
57 92
                   <template  slot-scope="scope">
@@ -79,10 +114,15 @@
79 114
                 <template slot-scope="scope">
80 115
                     <el-button @click="editHisProject(scope.row.id)" type="primary" size="small">编辑</el-button>
81 116
                     <el-button type="danger" size="small" @click="deleteProject(scope.row.id,scope.$index)">删除</el-button>
82
-                    <el-button type="primary" size="small" icon="el-icon-refresh-left" @click="toReturn(scope.row.id,scope.row.is_mark)">
117
+                    <el-button type="primary" size="small" icon="el-icon-refresh-left" @click="toReturn(scope.row.id,scope.row.is_mark)" v-if="$store.getters.xt_user.org_id == 9504 || $store.getters.xt_user.org_id == 10028">
83 118
                       <span v-if="scope.row.is_mark ==0">备案</span>
84 119
                       <span v-if="scope.row.is_mark ==1">撤销</span>
85 120
                     </el-button>
121
+
122
+                    <el-button type="primary" size="small" icon="el-icon-refresh-left" v-if="$store.getters.xt_user.org_id != 9504 && $store.getters.xt_user.org_id != 10028">
123
+                        <span v-if="scope.row.is_mark == 0 || scope.row.is_mark == 2"  @click="putOnRecord(scope.row.id)" >目录对照</span>
124
+                        <span v-if="scope.row.is_mark == 1"  @click="putOnUnRecord(scope.row.id)" >撤消对照</span>
125
+                    </el-button>
86 126
                 </template>
87 127
             </el-table-column>
88 128
         </el-table>
@@ -101,19 +141,59 @@
101 141
 
102 142
         <add-project ref="addProject"></add-project>
103 143
         <editProject ref="editProject"></editProject>
144
+
145
+
146
+    <el-dialog
147
+      title="提示"
148
+      :visible.sync="dialogVisible"
149
+      width="40%"
150
+    >
151
+      <span>您提交的文档不是系统标准导入模板,请检查您的文档或重新 </span>
152
+      <span slot="footer" class="dialog-footer">
153
+    <el-button @click="dialogVisible = false">取 消</el-button>
154
+    <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
155
+      </span>
156
+    </el-dialog>
157
+
158
+
159
+     <el-dialog
160
+      title="提示"
161
+      :visible.sync="exportLogVisible"
162
+      width="40%"
163
+    >
164
+
165
+      <div v-for="(item,index) in logs" :key="index">
166
+        <span> {{ item.export_time | parseTime('{y}-{m}-{d} {h}:{i}:{s}')}}</span>
167
+        <br/>
168
+        <br/>
169
+        <span>{{getContent(item)}}</span>
170
+        <span >点击</span>
171
+        <span style="color:blue" @click="generateTxt(item)">查看详情</span>
172
+        <br/>
173
+        <br/>
174
+      </div>
175
+
176
+      <span slot="footer" class="dialog-footer">
177
+    <el-button @click="exportLogVisible = false">取 消</el-button>
178
+    <el-button type="primary" @click="exportLogVisible = false">确 定</el-button>
179
+    </span>
180
+    </el-dialog>
104 181
     </div>
105 182
 </template>
106 183
 
107 184
 <script>
108 185
 import addProject from './addProject'
109 186
 import editProject from './editProject'
110
-import { getProjectList,deleteHisProject } from "@/api/project/project"
187
+import { getProjectList,deleteHisProject,getDePartmentList,postProjectInformation } from "@/api/project/project"
111 188
 import { getDictionaryDataConfig } from "@/utils/data";
112 189
 import axios from 'axios'
190
+import ProjectExcel from '@/xt_pages/components/ProjectExcel'
191
+import { generateLog } from '@/api/config'
113 192
 export default {
114 193
     components:{
115 194
         addProject,
116
-        editProject
195
+        editProject,
196
+        ProjectExcel
117 197
     },
118 198
     data(){
119 199
         return{
@@ -147,23 +227,133 @@ export default {
147 227
               value: '2',
148 228
               label: '未备案'
149 229
           }],
150
-         is_mark:""
230
+          is_mark:"",
231
+          limit:100,
232
+          page:1,
233
+          departMentList:[],
234
+           dialogVisible:false,
235
+           exportLogVisible:false,
236
+           logs:[]
237
+
151 238
         }
152 239
     },
153 240
     methods:{
154
-        changeStart(){
241
+      putOnUnRecord(id){
242
+        var that = this;
243
+        let params = {
244
+          ids:id.toString(),
245
+          record_type: 3,
246
+          admin_user_id:this.$store.getters.xt_user.user.id
247
+        };
248
+        axios.get('http://127.0.0.1:9532/api/uncheckcode/get',{params:params}).then(function(response) {
249
+          if (response.data.state == 0) {
250
+            that.$message.error(response.data.data.msg);
251
+            return false
252
+          } else {
253
+            if(response.data.data.failed_code == -10){
254
+              // that.$message.error(response.data.data.msg)
255
+              that.$confirm(response.data.data.msg, '医保错误信息', {
256
+                confirmButtonText: '确 定',
257
+                type: 'warning'
258
+              }).then(() => {
259
+
260
+              }).catch(() => {
261
+              })
262
+            }else{
263
+              // for (let i = 0; i < that.tableData.length; i++) {
264
+              //   if (that.tableData[i].id == that.currentObject.id) {
265
+              //     that.tableData[i].record.is_cancel == 1
266
+              //   }
267
+              // }
268
+            }
269
+
270
+          }
271
+        }).catch(function(error) {
272
+        })
273
+      },
274
+      putOnRecord(id){
275
+        var that = this;
276
+
277
+        let params = {
278
+          ids:id.toString(),
279
+          record_type: 3,
280
+          admin_user_id:this.$store.getters.xt_user.user.id
281
+        };
282
+
283
+        axios.get('http://127.0.0.1:9532/api/checkcode/get',{params:params}).then(function(response) {
284
+          if (response.data.state == 0) {
285
+            that.$message.error(response.data.data.msg);
286
+            return false
287
+          } else {
288
+            if(response.data.data.failed_code == -10){
289
+              // that.$message.error(response.data.data.msg)
290
+              that.$confirm(response.data.data.msg, '医保错误信息', {
291
+                confirmButtonText: '确 定',
292
+                type: 'warning'
293
+              }).then(() => {
294
+
295
+              }).catch(() => {
296
+              })
297
+            }else{
298
+
299
+
300
+            }
301
+
302
+
303
+
304
+          }
305
+        }).catch(function(error) {
306
+        })
307
+      },
308
+      GDYBBatchPutOnRecord(){
309
+        var that = this;
310
+        var ids = [];
311
+        var idMap = {};
312
+        for (const index in this.selectDrug) {
313
+          ids.push(this.selectDrug[index].id);
314
+          idMap[this.selectDrug[index].id] = this.selectDrug[index].id;
315
+        }
316
+        let params = {
317
+          ids:ids.join(','),
318
+          record_type: 3,
319
+          admin_user_id:this.$store.getters.xt_user.user.id
320
+        };
321
+        axios.get('http://127.0.0.1:9532/api/checkcode/get',{params:params}).then(function(response) {
322
+          if (response.data.state == 0) {
323
+            that.$message.error(response.data.data.msg);
324
+            return false
325
+          } else {
326
+            if(response.data.data.failed_code == -10){
327
+              // that.$message.error(response.data.data.msg)
328
+              that.$confirm(response.data.data.msg, '医保错误信息', {
329
+                confirmButtonText: '确 定',
330
+                type: 'warning'
331
+              }).then(() => {
332
+
333
+              }).catch(() => {
334
+              })
335
+            }else{
336
+
337
+
338
+            }
339
+          }
340
+        }).catch(function(error) {
341
+        })
342
+      },
343
+
344
+      changeStart(){
155 345
          this.getlist()
156 346
         },
157 347
         handleSizeChange(val) {
158
-            this.limit = val
348
+            this.limit = val;
159 349
             this.getlist()
160 350
         },
161 351
         handleCurrentChange(val) {
162
-            this.page = val
352
+            this.page = val;
163 353
             this.getlist()
164 354
         },
165 355
         searchAction(){
166
-           this.getlist()   
356
+           this.getlist()
167 357
         },
168 358
         clickSelfPayment(){
169 359
             this.$refs.selfPayment.show();
@@ -177,8 +367,8 @@ export default {
177 367
            this.$refs.editProject.show(id)
178 368
         },
179 369
         getCostClassify(id){
180
-          var costClassify = getDictionaryDataConfig('system','cost_classify')
181
-          var name = ""
370
+          var costClassify = getDictionaryDataConfig('system','cost_classify');
371
+          var name = "";
182 372
           for(let i=0;i<costClassify.length;i++){
183 373
              if(id == costClassify[i].id){
184 374
                name = costClassify[i].name
@@ -187,8 +377,8 @@ export default {
187 377
           return name
188 378
         },
189 379
         getExecutiveSection(id){
190
-          var executiveSection =  getDictionaryDataConfig('system','executive_section')
191
-          var name = ""
380
+          var executiveSection =  this.departMentList;
381
+          var name = "";
192 382
           for(let i=0;i<executiveSection.length;i++){
193 383
             if(id == executiveSection[i].id){
194 384
                name = executiveSection[i].name
@@ -196,7 +386,7 @@ export default {
196 386
           }
197 387
           return name
198 388
         },
199
-      
389
+
200 390
         getlist(){
201 391
             var params = {
202 392
                keyword:this.search_input,
@@ -205,18 +395,18 @@ export default {
205 395
                limit:this.limit,
206 396
                page:this.page,
207 397
                is_mark:this.is_mark,
208
-            }
209
-           console.log("222",params)
398
+            };
399
+
210 400
           getProjectList(params).then(response=>{
211 401
              if(response.data.state == 1){
212
-               var projecList = response.data.data.projecList
213
-               console.log('projectlist',projecList)
214
-               this.tableData = projecList
215
-               var total = response.data.data.total
216
-               console.log("total-----",total)
402
+               var projecList = response.data.data.projecList;
403
+
404
+               this.tableData = projecList;
405
+               var total = response.data.data.total;
406
+
217 407
                this.total = total
218 408
              }
219
-          })  
409
+          })
220 410
         },
221 411
         deleteProject(id,index){
222 412
             this.$confirm("确认删除此项目吗?", "删除", {
@@ -226,8 +416,8 @@ export default {
226 416
            }).then(() => {
227 417
             deleteHisProject(id).then(response => {
228 418
                if (response.data.state == 1) {
229
-                 var msg = response.data.data.msg
230
-                 this.$message.success("删除成功")
419
+                 var msg = response.data.data.msg;
420
+                 this.$message.success("删除成功");
231 421
                 this.tableData.splice(index, 1);
232 422
                 }
233 423
              });
@@ -239,13 +429,13 @@ export default {
239 429
         },
240 430
 
241 431
         toRecord(){
242
-         var that = this
432
+         var that = this;
243 433
          axios.get('http://127.0.0.1:9532/sz/api/treatment/get').then(function(response) {
244 434
           if (response.data.state == 0) {
245
-               that.$message.error(response.data.msg)
435
+               that.$message.error(response.data.msg);
246 436
                return false
247 437
             } else {
248
-              that.$message({ message: '备案成功', type: 'success' })
438
+              that.$message({ message: '备案成功', type: 'success' });
249 439
               that.getlist()
250 440
              }
251 441
            }).catch(function(error) {
@@ -253,33 +443,40 @@ export default {
253 443
       },
254 444
 
255 445
      toReturn(id,isMark){
256
-        console.log("id2222",id)
257
-         var that = this
446
+
447
+         var that = this;
258 448
          let params = {
259 449
              'id':id,
260 450
              'type_id':2,
261 451
              'is_mark':isMark,
262
-          }
263
-          console.log("params22222222",params)
264
-         
452
+             'admin_user_id':this.$store.getters.xt_user.user.id,
453
+          };
454
+
455
+
265 456
          axios.get('http://127.0.0.1:9532/sz/api/revocation/get',{params:params}).then(function(response) {
266 457
           if (response.data.state == 0) {
267
-               that.$message.error(response.data.msg)
458
+               that.$message.error(response.data.data.msg);
268 459
                return false
269 460
             } else {
270
-              that.$message({ message: '操作成功', type: 'success' })
271
-              that.getlist()
461
+              if(response.data.data.msg == ""){
462
+                  that.$message.success("备案成功!");
463
+                  that.getlist()
464
+               }
465
+               if(response.data.data.msg!=""){
466
+                  that.$message.error(response.data.data.msg);
467
+                  that.getlist()
468
+               }
272 469
              }
273 470
            }).catch(function(error) {
274 471
         })
275 472
       },
276 473
       handleSelectionChange(val) {
277 474
         this.selectDrug = val;
278
-      }, 
475
+      },
279 476
     changeRecord(){
280 477
       this.getlist()
281 478
     },
282
-      
479
+
283 480
     BatchDelete() {
284 481
       if (this.selectDrug.length == 0) {
285 482
         this.$message.error("请选择要备案的信息");
@@ -301,29 +498,406 @@ export default {
301 498
           ids.push(this.selectDrug[index].id);
302 499
           idMap[this.selectDrug[index].id] = this.selectDrug[index].id;
303 500
         }
304
-        console.log('ids222222222',ids)
305
-        var idss = ids.join(',')
501
+
502
+        var idss = ids.join(',');
306 503
         let params = {
307
-          ids:idss
308
-        }
309
-     
310
-        var that = this
504
+          ids:idss,
505
+          admin_user_id:this.$store.getters.xt_user.user.id
506
+        };
507
+
508
+        var that = this;
311 509
         axios.get('http://127.0.0.1:9532/sz/api/treatment/get',{ params: params }).then(function(response) {
312 510
          if (response.data.state == 0) {
313
-               that.$message.error(response.data.msg)
511
+               that.$message.error(response.data.data.msg);
314 512
                return false
315 513
             } else {
316
-              that.$message({ message: '备案成功', type: 'success' })
317
-              that.getList()
514
+              if(response.data.data.msg == ""){
515
+                  that.$message.success("备案成功!");
516
+                  that.getlist()
517
+               }
518
+               if(response.data.data.msg!=""){
519
+                  that.$message.error(response.data.data.msg);
520
+                  that.getlist()
521
+               }
318 522
              }
319 523
            }).catch(function(error) {
320 524
         })
321 525
        });
322 526
      },
527
+
528
+     getDartmentList(){
529
+        var params = {
530
+            limit:this.limit,
531
+            page:this.page,
532
+        };
533
+        getDePartmentList(params).then(response=>{
534
+            if(response.data.state == 1){
535
+            var department =   response.data.data.departMentList;
536
+
537
+            this.departMentList = department
538
+            }
539
+        })
540
+     },
541
+      handleSuccessOne({ results, header }) {
542
+
543
+        if (header != undefined && header.length > 0) {
544
+
545
+          var isHasProjectName = header.includes('*项目名称');
546
+
547
+          var isHasProjectPrice = header.includes('*零价');
548
+
549
+          var isHasProjectUnit = header.includes('*单位');
550
+
551
+          var isHasProjectCostClassify = header.includes('*费用类别');
552
+
553
+          var isHasProjectExecutiveSection = header.includes('*执行科室');
554
+
555
+          var isHasProjectMedicalCoverage = header.includes('*医保等级');
556
+
557
+          if (!(isHasProjectName && isHasProjectPrice && isHasProjectUnit && isHasProjectCostClassify && isHasProjectExecutiveSection && isHasProjectMedicalCoverage )) {
558
+            this.dialogVisible = true;
559
+            return
560
+          }
561
+        }else {
562
+          this.dialogVisible = true;
563
+          return
564
+        }
565
+
566
+       var tableData = [];
567
+       for(let i=1;i<results.length;i++){
568
+         let obj = {"cost_classify_id":0,"medical_insurance_level_id":0,"executive_section_id":0,"tube_color_id":0,"statistical_classification_id":0,"category":0,"specail_project":0,"medical_status":0};
569
+         for (var key in results[i]) {
570
+           if (results[i]['*项目名称'] === undefined) {
571
+                obj['project_name'] = ''
572
+              } else {
573
+           if (key == '*项目名称') {
574
+               obj['project_name'] = results[i][key].replace(/\s/g,"")
575
+              }
576
+           }
577
+
578
+          if (results[i]['*零价'] === undefined) {
579
+                obj['price'] = ''
580
+              } else {
581
+           if (key == '*零价') {
582
+               obj['price'] = results[i][key].replace(/\s/g,"")
583
+              }
584
+           }
585
+
586
+         if (results[i]['*单位'] === undefined) {
587
+                obj['unit'] = ''
588
+              } else {
589
+         if (key == '*单位') {
590
+               obj['unit'] = results[i][key].replace(/\s/g,"")
591
+              }
592
+          }
593
+
594
+         if (results[i]['*费用类别'] === undefined) {
595
+                obj['cost_classify'] = ''
596
+              } else {
597
+         if (key == '*费用类别') {
598
+               obj['cost_classify'] = results[i][key].replace(/\s/g,"")
599
+              }
600
+          }
601
+
602
+        if (results[i]['*执行科室'] === undefined) {
603
+                obj['executive_section'] = ''
604
+              } else {
605
+         if (key == '*执行科室') {
606
+               obj['executive_section'] = results[i][key].replace(/\s/g,"")
607
+              }
608
+          }
609
+
610
+         if (results[i]['*医保等级'] === undefined) {
611
+                obj['medical_coverage'] = ''
612
+              } else {
613
+         if (key == '*医保等级') {
614
+               obj['medical_coverage'] = results[i][key].replace(/\s/g,"")
615
+              }
616
+          }
617
+
618
+        if (results[i]['拼音'] === undefined) {
619
+                obj['pinyin'] = ''
620
+              } else {
621
+         if (key == '拼音') {
622
+               obj['pinyin'] = results[i][key].replace(/\s/g,"")
623
+              }
624
+          }
625
+
626
+        if (results[i]['五笔'] === undefined) {
627
+                obj['wubi'] = ''
628
+              } else {
629
+         if (key == '五笔') {
630
+               obj['wubi'] = results[i][key].replace(/\s/g,"")
631
+              }
632
+          }
633
+
634
+         if (results[i]['统计分类'] === undefined) {
635
+                obj['statistical_classification'] = ''
636
+              } else {
637
+         if (key == '统计分类') {
638
+               obj['statistical_classification'] = results[i][key].replace(/\s/g,"")
639
+              }
640
+          }
641
+
642
+         if (results[i]['是否特病目录'] === undefined) {
643
+                obj['disease_directory'] = ''
644
+              } else {
645
+         if (key == '是否特病目录') {
646
+               obj['disease_directory'] = results[i][key].replace(/\s/g,"")
647
+              }
648
+          }
649
+         if (results[i]['是否备案'] === undefined) {
650
+                obj['is_record'] = ''
651
+              } else {
652
+         if (key == '是否备案') {
653
+               obj['is_record'] = results[i][key].replace(/\s/g,"")
654
+              }
655
+          }
656
+
657
+         if (results[i]['医保编码'] === undefined) {
658
+                obj['medical_code'] = ''
659
+              } else {
660
+         if (key == '医保编码') {
661
+               obj['medical_code'] = results[i][key].replace(/\s/g,"")
662
+              }
663
+          }
664
+
665
+         if (results[i]['试管颜色'] === undefined) {
666
+                obj['tube_color'] = ''
667
+              } else {
668
+         if (key == '试管颜色') {
669
+               obj['tube_color'] = results[i][key].replace(/\s/g,"")
670
+              }
671
+          }
672
+
673
+          if (results[i]['单次用量'] === undefined) {
674
+                obj['single_dose'] = ''
675
+              } else {
676
+         if (key == '单次用量') {
677
+               obj['single_dose'] = results[i][key].replace(/\s/g,"")
678
+              }
679
+          }
680
+
681
+           if (results[i]['用法'] === undefined) {
682
+                obj['delivery_way'] = ''
683
+              } else {
684
+          if (key == '用法') {
685
+               obj['delivery_way'] = results[i][key].replace(/\s/g,"")
686
+              }
687
+          }
688
+
689
+          if (results[i]['频率'] === undefined) {
690
+                obj['execution_frequency'] = ''
691
+              } else {
692
+          if (key == '频率') {
693
+               obj['execution_frequency'] = results[i][key].replace(/\s/g,"")
694
+              }
695
+          }
696
+
697
+
698
+          if (results[i]['天数'] === undefined) {
699
+                obj['number_days'] = ''
700
+              } else {
701
+          if (key == '天数') {
702
+               obj['number_days'] = results[i][key].replace(/\s/g,"")
703
+              }
704
+          }
705
+
706
+
707
+         if (results[i]['总量'] === undefined) {
708
+                obj['total'] = ''
709
+              } else {
710
+          if (key == '总量') {
711
+               obj['total'] = results[i][key].replace(/\s/g,"")
712
+              }
713
+          }
714
+
715
+          if (results[i]['状态'] === undefined) {
716
+                obj['medical_status'] = ''
717
+              } else {
718
+          if (key == '状态') {
719
+               obj['medical_status'] = results[i][key].replace(/\s/g,"")
720
+              }
721
+          }
722
+
723
+          if (results[i]['类别'] === undefined) {
724
+                obj['category'] = ''
725
+              } else {
726
+          if (key == '类别') {
727
+               obj['category'] = results[i][key].replace(/\s/g,"")
728
+              }
729
+          }
730
+
731
+            if (results[i]['特检项目'] === undefined) {
732
+                obj['specail_project'] = ''
733
+              } else {
734
+          if (key == '特检项目') {
735
+               obj['specail_project'] = results[i][key].replace(/\s/g,"")
736
+              }
737
+          }
738
+
739
+           if (results[i]['社保目录编码'] === undefined) {
740
+                obj['social_security_directory_code'] = ''
741
+              } else {
742
+           if (key == '社保目录编码') {
743
+               obj['social_security_directory_code'] = results[i][key].replace(/\s/g,"")
744
+              }
745
+          }
746
+
747
+           if (results[i]['备案日期'] === undefined) {
748
+                obj['record_date'] = ''
749
+              } else {
750
+           if (key == '备案日期') {
751
+               obj['record_date'] = results[i][key].replace(/\s/g,"")
752
+              }
753
+          }
754
+           if (results[i]['备注'] === undefined) {
755
+                obj['remark'] = ''
756
+              } else {
757
+           if (key == '备注') {
758
+               obj['remark'] = results[i][key].replace(/\s/g,"")
759
+              }
760
+          }
761
+         }
762
+         tableData.push(obj);
763
+
764
+
765
+        for(let i=0;i<tableData.length;i++){
766
+
767
+          if(tableData[i].disease_directory == ""){
768
+              tableData[i].disease_directory = 0
769
+          }
770
+          if(tableData[i].disease_directory == "是"){
771
+             tableData[i].disease_directory = 1
772
+          }
773
+
774
+         if(tableData[i].disease_directory == "否"){
775
+             tableData[i].disease_directory = 2
776
+          }
777
+
778
+          if(tableData[i].is_record == ""){
779
+             tableData[i].is_record = 0
780
+          }
781
+           if(tableData[i].is_record == "是"){
782
+             tableData[i].is_record = 1
783
+          }
784
+
785
+          if(tableData[i].is_record == "否"){
786
+             tableData[i].is_record = 2
787
+          }
788
+
789
+
790
+
791
+          if(tableData[i].category == ""){
792
+             tableData[i].category = 0
793
+          }
794
+          if(tableData[i].category == "常规诊疗项目"){
795
+             tableData[i].category = 1
796
+          }
797
+
798
+           if(tableData[i].category == "辅助器具项目"){
799
+             tableData[i].category = 2
800
+          }
801
+
802
+          if(tableData[i].category == "加收项目"){
803
+             tableData[i].category = 3
804
+          }
805
+
806
+          if(tableData[i].specail_project == ""){
807
+            tableData[i].specail_project = 0
808
+          }
809
+          if(tableData[i].specail_project == "是"){
810
+             tableData[i].specail_project = 1
811
+          }
812
+          if(tableData[i].specail_project == "否"){
813
+             tableData[i].specail_project = 2
814
+          }
815
+          if(tableData[i].medical_status == ""){
816
+             tableData[i].medical_status = 0
817
+          }
818
+
819
+          if(tableData[i].medical_status == "停用"){
820
+            tableData[i].medical_status = 1
821
+          }
822
+          if(tableData[i].medical_status == "收费"){
823
+            tableData[i].medical_status = 2
824
+          }
825
+        }
826
+       }
827
+       let params = {
828
+          'projects':tableData
829
+        };
830
+       console.log("params222",params);
831
+
832
+        postProjectInformation(params).then(response=>{
833
+           if(response.data.state == 1){
834
+             var msg =  response.data.data.msg;
835
+             this.$message.success("导入成功!");
836
+             this.getlist()
837
+           }else{
838
+             this.$message.error("导入失败")
839
+           }
840
+        })
841
+      },
842
+      generateTxt: function(log) {
843
+        var content = '';
844
+        var errlog = log.err_logs;
845
+        content = this.getContent(log);
846
+        for (let i = 0; i < errlog.length; i++) {
847
+          if (content.length == 0) {
848
+            content = errlog[i].err_msg
849
+          } else {
850
+            content = content + '\n' + errlog[i].err_msg
851
+          }
852
+        }
853
+
854
+        var url = new Blob(['\ufeff' + content], { type: 'text/txt,charset=UTF-8' });
855
+        if (typeof url === 'object' && url instanceof Blob) {
856
+          url = URL.createObjectURL(url) // 创建blob地址
857
+        }
858
+        const aLink = document.createElement('a');
859
+        aLink.href = url;
860
+        aLink.download = this.timestampToTime(log.export_time) + '患者导入日志' + '.txt';
861
+        aLink.click()
862
+
863
+      },
864
+      getContent(log) {
865
+
866
+        return '您导入的文档共' + log.total_num + '条患者数据' + ',' + '已成功导入' + log.success_num + '条,导入失败' + log.fail_num + '条,'
867
+      },
868
+      timestampToTime(timestamp) {
869
+        var date = new Date(timestamp * 1000);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
870
+        var Y = date.getFullYear() + '年';
871
+        var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '月';
872
+        var D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()) + '日 ';
873
+        var h = (date.getHours() < 10 ? '0' + (date.getHours()) : date.getHours()) + '时';
874
+        var m = (date.getMinutes() < 10 ? '0' + (date.getMinutes()) : date.getMinutes()) + '分';
875
+        var s = (date.getSeconds() < 10 ? '0' + (date.getSeconds()) : date.getSeconds()) + '秒';
876
+        return Y + M + D + h + m + s
877
+      },
878
+       generateLog() {
879
+        let params = {
880
+          'log_type': 6
881
+        };
882
+        generateLog(params).then(
883
+          response => {
884
+            if (response.data.state === 1) {
885
+              this.logs = response.data.data.logs;
886
+              this.exportLogVisible = true
887
+            } else {
888
+              this.$message.error(response.data.msg)
889
+            }
890
+          }
891
+        )
892
+      },
893
+      getDictionaryDataConfig(module, filed_name) {
894
+          return getDictionaryDataConfig(module, filed_name)
895
+      },
323 896
     },
324 897
     created(){
325
-      this.getlist()
326
-     
898
+      this.getlist();
899
+      this.getDartmentList()
900
+
327 901
     }
328 902
 }
329 903
 </script>

+ 1 - 0
src/xt_pages/data/components/tableson.vue View File

@@ -405,6 +405,7 @@ export default {
405 405
       this.$refs["dataForm"].validate(valid => {
406 406
         if (valid) {
407 407
           this.temp.field_type = parseInt(this.temp.field_type)
408
+         
408 409
           console.log("2222",this.temp.field_name)
409 410
           createChildConfig(this.temp).then(response => {
410 411
             if (!response.data) {

+ 2 - 1
src/xt_pages/data/prescription.vue View File

@@ -1167,7 +1167,8 @@ export default {
1167 1167
     this.body_fluid_option = this.$store.getters.body_fluid;
1168 1168
     this.special_medicine_option = this.$store.getters.special_medicine;
1169 1169
     this.displace_liqui_part_option = this.$store.getters.displace_liqui;
1170
-    this.blood_access_option = this.$store.getters.blood_access;
1170
+    this.blood_access_option = this.$store.getters.vascular_access_desc;
1171
+    console.log("列表33333333血管通路",this.blood_access_option)
1171 1172
     this.addPlan.mode = 1;
1172 1173
     this.dialyzerPerfusionApparatus = getDataConfig(
1173 1174
       'hemodialysis',

+ 1 - 1
src/xt_pages/data/specialDictionary.vue View File

@@ -12,7 +12,7 @@
12 12
           <consumables></consumables>
13 13
         </el-tab-pane>
14 14
         <el-tab-pane label="项目" name="3">
15
-        <project></project>
15
+         <project></project>
16 16
         </el-tab-pane>
17 17
         <el-tab-pane label="项目组套" name="4">
18 18
         <inspection></inspection>

+ 4 - 4
src/xt_pages/dialysis/batch_print/batch_print_order.vue View File

@@ -249,7 +249,7 @@
249 249
                         <!--"-->
250 250
                         <!--&gt;</check-box>-->
251 251
                       </div>
252
-                      <div v-if="org_id == 9987" class="inline_block" style="width:200px;margin-left: 30px;">
252
+                      <div v-if="org_id == 9987" class="inline_block" style="margin-left: 30px;">
253 253
                           透前血压:
254 254
                           <span class="under_line" style="width:50px;">
255 255
                               &nbsp;{{ record.assessment_before_dislysis.systolic_blood_pressure ? record.assessment_before_dislysis.systolic_blood_pressure : ""}}
@@ -946,9 +946,9 @@
946 946
                       </div>
947 947
                       <div class="inline_block" style="float: right;">
948 948
                         医生签名:
949
-                        <div class="under-line" v-if="org_id == 9987">
950
-                          <span v-if="setAdminUserES(record.prescription==null?0:(record.prescription.prescription_doctor?record.prescription.prescription_doctor:record.prescription.creater)) == ''">{{getAdminUser(record.prescription==null?0:(record.prescription.prescription_doctor?record.prescription.prescription_doctor:record.prescription.creater))}}</span>
951
-                          <img v-else style="height:30px;" :src="setAdminUserES(record.prescription==null?0:(record.prescription.prescription_doctor?record.prescription.prescription_doctor:record.prescription.creater))" alt="" srcset="">
949
+                        <div class="under_line" v-if="org_id == 9987">
950
+                          <span v-if="setAdminUserES(record.prescription, record.prescription.prescription_doctor ? 'prescription_doctor' : 'creater') == ''">{{getAdminUser(record.prescription, record.prescription.prescription_doctor ? 'prescription_doctor' : 'creater')}}</span>
951
+                          <img class="es-img" :src="setAdminUserES(record.prescription, record.prescription.prescription_doctor ? 'prescription_doctor' : 'creater')" alt="" srcset="" v-else style="height: 30px;">
952 952
                         </div>
953 953
                         <div class="under_line" v-else style="width: 100px;">
954 954
                           <span

+ 19 - 83
src/xt_pages/dialysis/batch_print/batch_print_order_six.vue View File

@@ -984,18 +984,10 @@
984 984
                           <td width="50">跨膜压<br />(mmHg)</td>
985 985
                           <td width="60" v-if="org_id != 9836">透析液温度(°C)</td>
986 986
                           <td width="60" v-if="org_id == 9836">体温(°C)</td>
987
-                          <td width="60">透析液温度(°C)</td>
988 987
                           <td width="50">电导度<br />(ms/cm)</td>
989 988
                           <td width="50">超滤量<br />(ml)</td>
990
-                          <td
991
-                            v-if="
992
-                              record.prescription.mode_id == 2 ||
993
-                                record.prescription.mode_id == 5 ||
994
-                                record.prescription.mode_id == 12
995
-                            "
996
-                            width="50"
997
-                          >
998
-                            置换量<br />(ml)
989
+                          <td v-if="record.prescription.mode_id == 2 || record.prescription.mode_id == 5 || record.prescription.mode_id == 12"
990
+                            width="50">置换量<br />(ml)
999 991
                           </td>
1000 992
                           <td width="200">病情变化及处理</td>
1001 993
                         </tr>
@@ -1003,95 +995,41 @@
1003 995
                           v-for="(monitor_record, j) in record.monitor_records"
1004 996
                           :key="j"
1005 997
                         >
998
+                          <td>{{ getTime(monitor_record.operate_time, "{h}:{i}")}}</td>
1006 999
                           <td>
1007
-                            {{
1008
-                              getTime(monitor_record.operate_time, "{h}:{i}")
1009
-                            }}
1000
+                            {{monitor_record.systolic_blood_pressure? monitor_record.systolic_blood_pressure + "/": ""}}{{
1001
+                              monitor_record.diastolic_blood_pressure? monitor_record.diastolic_blood_pressure: ""}}
1010 1002
                           </td>
1011 1003
                           <td>
1012
-                            {{
1013
-                              monitor_record.systolic_blood_pressure
1014
-                                ? monitor_record.systolic_blood_pressure + "/"
1015
-                                : ""
1016
-                            }}{{
1017
-                              monitor_record.diastolic_blood_pressure
1018
-                                ? monitor_record.diastolic_blood_pressure
1019
-                                : ""
1020
-                            }}
1004
+                            {{ monitor_record.pulse_frequency? monitor_record.pulse_frequency: ""}}
1021 1005
                           </td>
1022 1006
                           <td>
1023
-                            {{
1024
-                              monitor_record.pulse_frequency
1025
-                                ? monitor_record.pulse_frequency
1026
-                                : ""
1027
-                            }}
1007
+                            {{monitor_record.breathing_rate? monitor_record.breathing_rate: ""}}
1028 1008
                           </td>
1029 1009
                           <td>
1030
-                            {{
1031
-                              monitor_record.breathing_rate
1032
-                                ? monitor_record.breathing_rate
1033
-                                : ""
1034
-                            }}
1010
+                            {{monitor_record.blood_flow_volume? monitor_record.blood_flow_volume: ""}}
1035 1011
                           </td>
1036 1012
                           <td>
1037
-                            {{
1038
-                              monitor_record.blood_flow_volume
1039
-                                ? monitor_record.blood_flow_volume
1040
-                                : ""
1041
-                            }}
1013
+                            {{monitor_record.venous_pressure? monitor_record.venous_pressure: ""}}
1042 1014
                           </td>
1043 1015
                           <td>
1044
-                            {{
1045
-                              monitor_record.venous_pressure
1046
-                                ? monitor_record.venous_pressure
1047
-                                : ""
1048
-                            }}
1049
-                          </td>
1050
-                          <td>
1051
-                            {{
1052
-                              monitor_record.transmembrane_pressure
1053
-                                ? monitor_record.transmembrane_pressure
1054
-                                : ""
1016
+                            {{monitor_record.transmembrane_pressure? monitor_record.transmembrane_pressure: ""
1055 1017
                             }}
1056 1018
                           </td>
1057 1019
                           <td v-if="org_id != 9836">
1058
-                            {{
1059
-                              monitor_record.dialysate_temperature
1060
-                                ? monitor_record.dialysate_temperature
1061
-                                : ""
1062
-                            }}
1020
+                            {{monitor_record.dialysate_temperature? monitor_record.dialysate_temperature: ""}}
1063 1021
                           </td>
1064 1022
                           <td v-if="org_id == 9836">
1065
-                            {{
1066
-                              monitor_record.temperature
1067
-                                ? monitor_record.temperature
1068
-                                : ""
1069
-                            }}
1023
+                            {{monitor_record.temperature? monitor_record.temperature: ""}}
1070 1024
                           </td>
1071 1025
                           <td>
1072
-                            {{
1073
-                              monitor_record.sodium_concentration
1074
-                                ? monitor_record.sodium_concentration
1075
-                                : ""
1076
-                            }}
1026
+                            {{monitor_record.sodium_concentration? monitor_record.sodium_concentration: ""}}
1077 1027
                           </td>
1078 1028
                           <td>
1079 1029
                             {{
1080
-                              monitor_record.ultrafiltration_volume
1081
-                                ? monitor_record.ultrafiltration_volume
1082
-                                : 0
1083
-                            }}
1030
+                              monitor_record.ultrafiltration_volume? monitor_record.ultrafiltration_volume: ""}}
1084 1031
                           </td>
1085
-                          <td
1086
-                            v-if="
1087
-                              record.prescription.mode_id == 2 ||
1088
-                                record.prescription.mode_id == 5 ||
1089
-                                (record.prescription.mode_id == 12 &&
1090
-                                  monitor_record.operate_time >
1091
-                                    record.dialysis_order.end_time)
1092
-                            "
1093
-                            style="width:50px"
1094
-                          >
1032
+                          <td v-if=" record.prescription.mode_id == 2 || record.prescription.mode_id == 5 ||(record.prescription.mode_id == 12 &&monitor_record.operate_time >record.dialysis_order.end_time) " style="width:50px">
1095 1033
                             {{
1096 1034
                               monitor_record.displacement_quantity
1097 1035
                                 ? monitor_record.displacement_quantity
@@ -1131,6 +1069,7 @@
1131 1069
                           <td></td>
1132 1070
                           <td></td>
1133 1071
                           <td></td>
1072
+                          
1134 1073
                           <td style="line-height:16px;padding:0px;">
1135 1074
                             <div
1136 1075
                               style="height:40px;line-height:20px; overflow:hidden;"
@@ -1193,10 +1132,7 @@
1193 1132
                           >
1194 1133
                             <span v-if="advice[0].parent_id > 0">---></span>
1195 1134
                             <span>{{ advice[0].advice_name }}</span>
1196
-                            <span v-if="advice[0].advice_desc != ''"
1197
-                              >({{ advice[0].advice_desc
1198
-                              }}{{ advice[0].drug_spec_unit }})</span
1199
-                            >
1135
+                            <span v-if=" advice[advice_index] && advice[0].advice_desc != ''">({{ advice[0].advice_desc}}{{ advice[0].drug_spec_unit }})</span>
1200 1136
                             <span v-if="advice[0].prescribing_number"
1201 1137
                               >&nbsp;&nbsp; {{ advice[0].prescribing_number
1202 1138
                               }}{{ advice[0].prescribing_number_unit }}</span
@@ -2133,9 +2069,9 @@ export default {
2133 2069
             var delghTwo = 0;
2134 2070
             if (
2135 2071
               this.records[recordIndex].advices &&
2136
-              this.records[recordIndex].advices.length < 14
2072
+              this.records[recordIndex].advices.length < 7
2137 2073
             ) {
2138
-              delghTwo = 14 - this.records[recordIndex].advices.length;
2074
+              delghTwo = 7 - this.records[recordIndex].advices.length;
2139 2075
             } else {
2140 2076
               delghTwo = 0;
2141 2077
             }

+ 23 - 3
src/xt_pages/dialysis/batch_print/batch_print_order_thirty.vue View File

@@ -122,10 +122,30 @@
122 122
                         <tbody>
123 123
                             <tr>
124 124
                                 <td width="70">血管通路:</td>
125
-                                <td width="370">
125
+                                <td width="560">
126 126
                                     <div>
127
-                                        <label-box :isChecked="isBbloodAccessParOperaCheck(record.assessment_before_dislysis, '内瘘')" showValue="内瘘"></label-box>
127
+                                        <label-box :isChecked="isBbloodAccessParOperaCheck(record.assessment_before_dislysis, '绳梯')" showValue="绳梯"></label-box>
128 128
                                         &nbsp;
129
+                                        A:( 
130
+                                          <span style="width:50px;display:inline-block;text-align:center;">
131
+                                            &nbsp;<span v-if="record.assessment_before_dislysis.puncture_way.indexOf('A1')>-1">A1</span>
132
+                                            <span v-if="record.assessment_before_dislysis.puncture_way.indexOf('A2')>-1">A2</span>
133
+                                            <span v-if="record.assessment_before_dislysis.puncture_way.indexOf('A3')>-1">A3</span>
134
+                                            <span v-if="record.assessment_before_dislysis.puncture_way.indexOf('A4')>-1">A4</span>
135
+                                            <span v-if="record.assessment_before_dislysis.puncture_way.indexOf('A5')>-1">A5</span>
136
+                                            <span v-if="record.assessment_before_dislysis.puncture_way.indexOf('A6')>-1">A6</span>
137
+                                          </span>
138
+                                        )&nbsp;
139
+                                        V:( 
140
+                                          <span style="width:50px;display:inline-block;text-align:center;">
141
+                                            <span v-if="record.assessment_before_dislysis.puncture_way.indexOf('V1')>-1">V1</span>
142
+                                            <span v-if="record.assessment_before_dislysis.puncture_way.indexOf('V2')>-1">V2</span>
143
+                                            <span v-if="record.assessment_before_dislysis.puncture_way.indexOf('V3')>-1">V3</span>
144
+                                            <span v-if="record.assessment_before_dislysis.puncture_way.indexOf('V4')>-1">V4</span>
145
+                                            <span v-if="record.assessment_before_dislysis.puncture_way.indexOf('V5')>-1">V5</span>
146
+                                            <span v-if="record.assessment_before_dislysis.puncture_way.indexOf('V6')>-1">V6</span>
147
+                                          </span>
148
+                                        )
129 149
                                         <label-box :isChecked="isBbloodAccessParOperaCheck(record.assessment_before_dislysis, '长期管')" showValue="长期管"></label-box>
130 150
                                         &nbsp;
131 151
                                         <label-box :isChecked="isBbloodAccessParOperaCheck(record.assessment_before_dislysis, '临时管')" showValue="临时管"></label-box>
@@ -337,7 +357,7 @@
337 357
                                     <tr>
338 358
                                     <td wdith='70'>下机情况:</td>
339 359
                                     <td wdith='30'>凝血:</td>
340
-                                    <td width="240">
360
+                                    <td width="260">
341 361
                                         <label-box :isChecked="record.assessment_after_dislysis.cruor?(record.assessment_after_dislysis.cruor.indexOf('无凝血') > -1 ? true : false):false" showValue="无"></label-box>&nbsp;
342 362
                                         <label-box :isChecked="record.assessment_after_dislysis.cruor?(record.assessment_after_dislysis.cruor.indexOf('有凝血') > -1 ? true : false):false" showValue="有"></label-box>&nbsp;
343 363
                                         <label-box :isChecked="record.assessment_after_dislysis.cruor?(record.assessment_after_dislysis.cruor.indexOf('透析器-Ⅰ度') > -1 ? true : false):false" showValue="Ⅰ"></label-box>&nbsp;

+ 124 - 113
src/xt_pages/dialysis/batch_print/batch_print_order_twentyEight.vue View File

@@ -25,26 +25,26 @@
25 25
                     <td width="90">
26 26
                         <div class="under-line">&nbsp;{{ record.patient.name }}</div>
27 27
                     </td>
28
-                    <td width="30"></td>
28
+                    <td width="10"></td>
29 29
                     <td width="50">性 别:</td>
30 30
                     <td width="50">
31 31
                         <div class="under-line">
32 32
                         {{ record.patient.gender == 1 ? "男" : "女" }}
33 33
                         </div>
34 34
                     </td>
35
-                    <td width="30"></td>
35
+                    <td width="10"></td>
36 36
                     <td width="50">年 龄:</td>
37 37
                     <td width="40">
38 38
                         <div class="under-line">{{ getNewAge(record.patient.id_card_no) }}</div>
39 39
                     </td>
40 40
                     <td>岁</td>
41 41
 
42
-                    <td width="120">透析号/住院号:</td>
43
-                    <td width="130">
42
+                    <td width="140">透析号/住院号:</td>
43
+                    <td width="200">
44 44
                         <div class="under-line">&nbsp;{{ record.patient.dialysis_no }} /{{ record.receive_assessment.admission_number ? record.receive_assessment.admission_number : "无" }}
45 45
                         </div>
46 46
                     </td>
47
-                    <td width="30"></td>
47
+                    <td width="10"></td>
48 48
                     <td width="80">治疗日期:</td>
49 49
                     <td width="120">
50 50
                         <div class="under-line">
@@ -57,13 +57,13 @@
57 57
                 <table class="table-box" style="margin-top: 10px;">
58 58
                     <tbody>
59 59
                     <tr>
60
-                    <td width="40">诊 断:</td>
60
+                    <td width="50">诊断:</td>
61 61
                     <td width="">
62
-                        <div class="under-line">
62
+                        <div class="under-line" style="text-align:left;">
63 63
                         &nbsp;{{ record.patient.diagnose ? record.patient.diagnose : '' }}
64 64
                         </div>
65 65
                     </td>
66
-                    <td width="60">治疗次数:</td>
66
+                    <td width="80">治疗次数:</td>
67 67
                     <td width="60">
68 68
                      <div class="under-line">{{ record.patient.total_dialysis + record.patient.user_sys_before_count}}</div>
69 69
                      </td>
@@ -84,29 +84,30 @@
84 84
                         <table class="table-box">
85 85
                         <tbody>
86 86
                         <tr>
87
-                            <td width="70">入科方式:</td>
88
-                            <td width="240">
87
+                            <td width="80">入科方式:</td>
88
+                            <td width="260">
89 89
                             <div style="display:flex;justify-content:space-between;">
90 90
                                 <label-box v-for="(item, index) in way_arr" :key="index" :isChecked="record.receive_assessment.way == item.id ? true : false" :showValue="item.name"></label-box>
91 91
                                 
92 92
                             </div>
93 93
                             </td>
94 94
 
95
-                            <td width="50"></td>
95
+                            <td width="20"></td>
96 96
                             <td width="50">意识:</td>
97
-                            <td width="240">
97
+                            <td width="260">
98 98
                             <div style="display:flex;justify-content:space-between;">
99 99
                                 <label-box v-for="(item, index) in consciousness_arr" :key="index" :isChecked="record.receive_assessment.consciousness == item.id ? true : false" :showValue="item.name"></label-box>
100 100
 
101 101
                             </div>
102 102
                             </td>
103
+                            <td width="20"></td>
103 104
                             <td width="80">透析频次:</td>
104 105
                             <td width="70">
105 106
                             <div class="under-line">
106 107
                                 &nbsp;{{ record.assessment_before_dislysis.dialysis_count ? record.assessment_before_dislysis.dialysis_count : "" }}
107 108
                             </div>
108 109
                             </td>
109
-                            <td width='40'>次/周</td>
110
+                            <td width='50'>次/周</td>
110 111
                             <td></td>
111 112
                         </tr>
112 113
                         </tbody>
@@ -115,8 +116,8 @@
115 116
                         <table class="table-box">
116 117
                         <tbody>
117 118
                         <tr>
118
-                            <td width="80">生命体征:</td>
119
-                            <td width="40">体温:</td>
119
+                            <td width="100">生命体征:</td>
120
+                            <td width="50">体温:</td>
120 121
                             <td width="70">
121 122
                             <div class="under-line">
122 123
                                 &nbsp;{{ record.assessment_before_dislysis.temperature ? record.assessment_before_dislysis.temperature : "" }}
@@ -125,22 +126,20 @@
125 126
                             <td width="35">℃</td>
126 127
                             <td width="30"></td>
127 128
 
128
-                           
129
-
130
-                            <td width="40">脉搏:</td>
129
+                            <td width="50">脉搏:</td>
131 130
                             <td width="70">
132 131
                             <div class="under-line">
133 132
                                 &nbsp;{{ record.assessment_before_dislysis.pulse_frequency ? record.assessment_before_dislysis.pulse_frequency : "" }}
134 133
                             </div>
135 134
                             </td>
136
-                            <td width="40">次/分</td>
135
+                            <td width="50">次/分</td>
137 136
                             <td width="30"></td>
138 137
 
139
-                            <td width="40">血压:</td>
138
+                            <td width="50">血压:</td>
140 139
                             <td width="140">
141 140
                             <div class="under-line">
142
-                                {{ record.assessment_before_dislysis.systolic_blood_pressure ? record.assessment_before_dislysis.systolic_blood_pressure : "" }}/
143
-                                {{ record.assessment_before_dislysis.diastolic_blood_pressure ? record.assessment_before_dislysis.diastolic_blood_pressure : "" }}
141
+                                {{ record.monitor_records[0] && record.monitor_records[0].systolic_blood_pressure ? record.monitor_records[0].systolic_blood_pressure : "" }}/
142
+                                {{ record.monitor_records[0] && record.monitor_records[0].diastolic_blood_pressure ? record.monitor_records[0].diastolic_blood_pressure : "" }}
144 143
                             </div>
145 144
                             </td>
146 145
                             <td width="35">mmHg</td>
@@ -153,9 +152,11 @@
153 152
                         <table class="table-box">
154 153
                         <tbody>
155 154
                         <tr>
156
-                            <td width="90">导管穿刺口:</td>
157
-                            <td width="240">
155
+                            <td width="100">导管穿刺口:</td>
156
+                            <td width="380">
158 157
                             <div style="display:flex;justify-content:space-between;">
158
+                                <label-box :isChecked="record.assessment_before_dislysis.catheter.indexOf('正常') > -1 ? true : false" showValue="正常"></label-box>
159
+                                &nbsp;
159 160
                                 <label-box :isChecked="record.assessment_before_dislysis.catheter.indexOf('穿刺口-干洁') > -1 ? true : false" showValue="干洁"></label-box>
160 161
                                 &nbsp;
161 162
                                 <label-box :isChecked="record.assessment_before_dislysis.catheter.indexOf('穿刺口-红肿') > -1 ? true : false" showValue="红肿"></label-box>
@@ -165,22 +166,29 @@
165 166
                                 <label-box :isChecked="record.assessment_before_dislysis.catheter.indexOf('穿刺口-渗血') > -1 ? true : false" showValue="渗血"></label-box>
166 167
                             </div>
167 168
                             </td>
168
-                            <td width="40"></td>
169
+                            <td width=""></td>
169 170
                             
170
-                            <td width="40">体位:</td>
171
-                            <td width="380">
172
-                              <label-box v-for="(item, index) in posture_arr" :key="index" :isChecked="record.receive_assessment.posture == item.id ? true : false" :showValue="item.name"></label-box>
173
-                            </td>
174
-                            <td></td>
175 171
                         </tr>
176 172
                         </tbody>
177 173
                         </table>
174
+                        <table class="table-box">
175
+                          <tbody>
176
+                            <tr>
177
+                              <td width="50">体位:</td>
178
+                              <td style="text-align:left;">
179
+                                <label-box style="margin-right:10px;" v-for="(item, index) in posture_arr" :key="index" :isChecked="record.receive_assessment.posture == item.id ? true : false" :showValue="item.name"></label-box>
180
+                              </td>
181
+                              <td></td>
182
+                            </tr>
183
+                          </tbody>
184
+                        </table>
185
+                          
178 186
 
179 187
                         <table class="table-box">
180 188
                         <tbody>
181 189
                         <tr>
182
-                            <td width="70">内瘘评估:</td>
183
-                            <td width="35">震颤:</td>
190
+                            <td width="80">内瘘评估:</td>
191
+                            <td width="50">震颤:</td>
184 192
                             <td width="210">
185 193
                             <div style="display:flex;justify-content:space-between;">
186 194
                                 <label-box :isChecked="record.assessment_before_dislysis.internal_fistula.indexOf('震颤-存在') > -1 ? true : false" showValue="存在"></label-box>
@@ -193,8 +201,8 @@
193 201
                             <td width="30"></td>
194 202
                             <td width="30"></td>
195 203
 
196
-                            <td width="95">内瘘皮肤情况:</td>
197
-                            <td width="220">
204
+                            <td width="120">内瘘皮肤情况:</td>
205
+                            <td width="260">
198 206
                             <div style="display:flex;justify-content:space-between;">
199 207
                                 <label-box :isChecked="record.assessment_before_dislysis.internal_fistula_skin.indexOf('正常') > -1 ? true : false" showValue="正常"></label-box>
200 208
                                 &nbsp;
@@ -215,8 +223,8 @@
215 223
                      <table class="table-box">
216 224
                         <tbody>
217 225
                         <tr>
218
-                            <td width="40">皮肤:</td>
219
-                            <td width="500">
226
+                            <td width="50">皮肤:</td>
227
+                            <td width="760">
220 228
                             <div>
221 229
                                 <label-box showValue="完整" :isChecked="record.assessment_before_dislysis.skin.indexOf('完整')>-1 ? true : false"></label-box>
222 230
                                 <label-box showValue="干燥" :isChecked="record.assessment_before_dislysis.skin.indexOf('干燥')>-1? true : false"></label-box>
@@ -227,10 +235,11 @@
227 235
                                 <label-box showValue="出血点" :isChecked="record.assessment_before_dislysis.skin.indexOf('出血点')>-1 ? true : false"></label-box>
228 236
                                 <label-box showValue="压疮" :isChecked="record.assessment_before_dislysis.skin.indexOf('压疮')>-1 ? true : false"></label-box>
229 237
                                 <label-box showValue="皮下淤血" :isChecked="record.assessment_before_dislysis.skin.indexOf('皮下淤血')>-1 ? true : false"></label-box>
238
+                                <label-box showValue="皮下出血" :isChecked="record.assessment_before_dislysis.skin.indexOf('皮下出血')>-1 ? true : false"></label-box>
230 239
                             </div>
231 240
                             </td>
232 241
                            
233
-                            <td width="35">其它</td>
242
+                            <td width="50">其它</td>
234 243
                             <td width="">
235 244
                             <div class="under-line">
236 245
                                 &nbsp;
@@ -245,8 +254,8 @@
245 254
                      <table class="table-box">
246 255
                         <tbody>
247 256
                         <tr>
248
-                            <td width="80">活动性出血:</td>
249
-                            <td width="400">
257
+                            <td width="100">活动性出血:</td>
258
+                            <td width="540">
250 259
                             <div>
251 260
                                
252 261
                                <label-box :isChecked="record.assessment_before_dislysis.is_hemorrhage == 2 ? true : false" showValue="无"></label-box>
@@ -260,7 +269,7 @@
260 269
                             </div>
261 270
                             </td>
262 271
                            
263
-                            <td width="35">其它</td>
272
+                            <td width="50">其它</td>
264 273
                             <td width="">
265 274
                             <div class="under-line">
266 275
                                 &nbsp;
@@ -274,8 +283,8 @@
274 283
                         <table class="table-box">
275 284
                         <tbody>
276 285
                         <tr>
277
-                            <td width="70">血管通路:</td>
278
-                            <td width="580">
286
+                            <td width="80">血管通路:</td>
287
+                            <td width="760">
279 288
                             <div>
280 289
                                 <label-box :isChecked="isBbloodAccessParOperaCheck(record.assessment_before_dislysis, '自体内瘘')" showValue="自体内瘘"></label-box>
281 290
                                 &nbsp;
@@ -302,8 +311,8 @@
302 311
                        <table class="table-box">
303 312
                         <tbody>
304 313
                         <tr>
305
-                            <td width="40">穿刺方式:</td>
306
-                            <td width="140">
314
+                            <td width="70">穿刺方式:</td>
315
+                            <td width="220">
307 316
                             <div>
308 317
                               <label-box showValue="绳梯" :isChecked="record.assessment_before_dislysis.puncture_way.indexOf('绳梯')>-1 ? true : false"></label-box>&nbsp;
309 318
                               <label-box showValue="定点" :isChecked="record.assessment_before_dislysis.puncture_way.indexOf('定点')>-1 ? true : false"></label-box>&nbsp;
@@ -311,8 +320,8 @@
311 320
                             </div>
312 321
                             </td>
313 322
                            <td width="60"></td>
314
-                            <td width="35">穿刺针:</td>
315
-                            <td width="150">
323
+                            <td width="60">穿刺针:</td>
324
+                            <td width="200">
316 325
                             <div>
317 326
                                &nbsp;
318 327
                                <label-box :isChecked="record.assessment_before_dislysis.puncture_needle && record.assessment_before_dislysis.puncture_needle.indexOf('16G') > -1 ? true : false" showValue="16G"></label-box>
@@ -342,7 +351,7 @@
342 351
                         <table class="table-box">
343 352
                         <tbody>
344 353
                         <tr>
345
-                            <td width="60">干体重:</td>
354
+                            <td width="70">干体重:</td>
346 355
                             <td width="50">
347 356
                             <div class="under-line">
348 357
                                 &nbsp;{{ record.assessment_before_dislysis.dry_weight ? record.assessment_before_dislysis.dry_weight : "" }}
@@ -350,7 +359,7 @@
350 359
                             </td>
351 360
                             <td width="20">Kg</td>
352 361
                             <td></td>
353
-                            <td width="70">透前体重:</td>
362
+                            <td width="80">透前体重:</td>
354 363
                             <td width="50">
355 364
                             <div class="under-line">
356 365
                                 &nbsp;{{ record.assessment_before_dislysis.weight_before ? record.assessment_before_dislysis.weight_before : "" }}
@@ -359,7 +368,7 @@
359 368
                             <td width="20">Kg</td>
360 369
                             <td></td>
361 370
                             <td></td>
362
-                            <td width="100">计划治疗时间:</td>
371
+                            <td width="120">计划治疗时间:</td>
363 372
                             <td width="40">
364 373
                             <div class="under-line">
365 374
                                 &nbsp;{{ record.prescription.dialysis_duration_hour ? record.prescription.dialysis_duration_hour : "0" }}
@@ -373,7 +382,7 @@
373 382
                             </td>
374 383
                             <td width="35">min</td>
375 384
                             <td></td>
376
-                            <td width="90">透析机编号:</td>
385
+                            <td width="100">透析机编号:</td>
377 386
                             <td width="150">
378 387
                             <div class="under-line">
379 388
                                 &nbsp;{{ record.device_zone.name && record.device_number.number ? getNewNumber(record.device_zone.name,record.device_number.number) : '' }}
@@ -388,14 +397,13 @@
388 397
                         <table class="table-box">
389 398
                         <tbody>
390 399
                         <tr>
391
-                            <td width="100">计划超滤总量:</td>
400
+                            <td width="120">计划超滤总量:</td>
392 401
                             <td width="50">
393 402
                             <div class="under-line">
394 403
                                 &nbsp;{{ record.prescription.target_ultrafiltration ? record.prescription.target_ultrafiltration : 0 }}
395 404
                             </div>
396 405
                             </td>
397 406
                             <td width="10">ml</td>
398
-                            <td width='70'></td>
399 407
     
400 408
                             <td width="60">置换量:</td>
401 409
                             <td width="40">
@@ -403,7 +411,7 @@
403 411
                                 &nbsp;{{ record.prescription.replacement_total ? record.prescription.replacement_total : "/" }}
404 412
                             </div>
405 413
                             </td>
406
-                            <td width="20">ml</td>
414
+                            <td width="10">ml</td>
407 415
                             
408 416
                             <td width="80">透析方式:</td>
409 417
                             <td width="50">
@@ -412,13 +420,16 @@
412 420
                             <td width="60">
413 421
                             <label-box :isChecked="record.prescription.mode_id == 2 ? true : false" showValue="HDF"></label-box>
414 422
                             </td>
423
+                            <td width="60">
424
+                            <label-box :isChecked="record.prescription.mode_id == 5 ? true : false" showValue="HF"></label-box>
425
+                            </td>
415 426
                             <td width="50">
416 427
                             <label-box :isChecked="record.prescription.mode_id == 4 ? true : false" showValue="HP"></label-box>
417 428
                             </td>
418
-                            <td width="80">
429
+                            <td width="90">
419 430
                             <label-box :isChecked="record.prescription.mode_id == 3 ? true : false" showValue="HD+HP"></label-box>
420 431
                             </td>
421
-                            <td width="80">透析器型号</td>
432
+                            <td width="90">透析器型号</td>
422 433
                             <td width="80">
423 434
                                <div class="under-line">
424 435
                                  &nbsp;{{ record.prescription.dialyzer_perfusion_apparatus ? record.prescription.dialyzer_perfusion_apparatus : "/" }}
@@ -515,12 +526,12 @@
515 526
                         <table class="table-box">
516 527
                             <tbody>
517 528
                             <tr>
518
-                                <td width="85">透析液配方:</td>
519
-                                <td width='90'>B液: 碳酸盐:</td>
520
-                                <td width='30'>A液:</td>
529
+                                <td width="100">透析液配方:</td>
530
+                                <td width='120'>B液: 碳酸盐:</td>
531
+                                <td width='40'>A液:</td>
521 532
                                 <td width="10">钙</td>
522 533
                                 <td width="10">(</td>
523
-                                <td width="210">
534
+                                <td width="280">
524 535
                                 <label-box :isChecked="dialysateFormulationName(record.prescription.dialysate_formulation).indexOf('A液:钙(1.25mmol/L)钾(2.0mmol/L)') > -1 ? true : dialysateFormulationName(record.prescription.dialysate_formulation).indexOf('A液:钙(1.25mmol/L)钾(3.5mmol/L)') > -1 ? true : false" showValue="1.25mmol/L"></label-box>
525 536
                                 &nbsp;
526 537
                                 <label-box :isChecked="dialysateFormulationName(record.prescription.dialysate_formulation).indexOf('A液:钙(1.5mmol/L)钾(2.0mmol/L)') > -1 ? true : dialysateFormulationName(record.prescription.dialysate_formulation).indexOf('A液:钙(1.5mmol/L)钾(3.5mmol/L)') > -1 ? true : false" showValue="1.5mmol/L"></label-box>
@@ -529,7 +540,7 @@
529 540
                                 <td width="10">)</td>
530 541
                                 <td width="10">钾</td>
531 542
                                 <td width="10">(</td>
532
-                                <td width="210">
543
+                                <td width="280">
533 544
                                 <label-box :isChecked="dialysateFormulationName(record.prescription.dialysate_formulation).indexOf('A液:钙(1.25mmol/L)钾(2.0mmol/L)') > -1 ? true : dialysateFormulationName(record.prescription.dialysate_formulation).indexOf('A液:钙(1.5mmol/L)钾(2.0mmol/L)') > -1 ? true : false" showValue="2.0mmol/L"></label-box>
534 545
                                 &nbsp;
535 546
                                 <label-box :isChecked="dialysateFormulationName(record.prescription.dialysate_formulation).indexOf('A液:钙(1.25mmol/L)钾(3.5mmol/L)') > -1 ? true : dialysateFormulationName(record.prescription.dialysate_formulation).indexOf('A液:钙(1.5mmol/L)钾(3.5mmol/L)') > -1 ? true : false" showValue="3.5mmol/L"></label-box>
@@ -555,7 +566,7 @@
555 566
                      <td width="60">时间</td>
556 567
                     <td width="40" style="line-height:20px">T<br />℃</td>
557 568
                     <td width="80" style="line-height:20px">Bp<br />mmHg</td>
558
-                    <td width="40" style="line-height:20px">P<br />次/分</td>
569
+                    <td width="50" style="line-height:20px">P<br />次/分</td>
559 570
                     <td width="60" style="line-height:20px">R<br />次/分</td>
560 571
                     <td width="60" style="line-height:20px">静脉压<br />{{record.monitor_records[0] && record.monitor_records[0]['venous_pressure_type'] == 2 ? 'kpa' : 'mmHg'}}</td>
561 572
                     <td width="60" style="line-height:20px">动脉压<br />{{record.monitor_records[0] && record.monitor_records[0]['venous_pressure_type'] == 2 ? 'kpa' : 'mmHg'}}</td>
@@ -634,7 +645,7 @@
634 645
                     </tr>
635 646
 
636 647
                     <tr v-for="(advice, advice_index) in record.advices" :key="advice_index">
637
-                        <td height="40px">
648
+                        <td height="30px">
638 649
                             <span v-if="advice[0].start_time">
639 650
                                 {{ getTime(advice[0].start_time, "{h}:{i}") }}
640 651
                             </span>
@@ -662,7 +673,7 @@
662 673
                                 <!-- </span> -->
663 674
                             </span>
664 675
                         </td>
665
-                        <td height="40px">
676
+                        <td height="30px">
666 677
                             <span v-if="setAdminUserES(advice[0], 'advice_doctor') == ''">
667 678
                                 {{getAdminUser(advice[0], 'advice_doctor')}}
668 679
                             </span>
@@ -670,7 +681,7 @@
670 681
                                 <img style="height:30px;" :src="setAdminUserES(advice[0], 'advice_doctor')" alt srcset />
671 682
                             </span>
672 683
                         </td>
673
-                        <td height="40px">
684
+                        <td height="30px">
674 685
                             <span v-if="setAdminUserES(advice[0], 'execution_staff') == ''">
675 686
                                 {{getAdminUser(advice[0], 'execution_staff')}}
676 687
                             </span>
@@ -685,7 +696,7 @@
685 696
                              <img class="es-img" :src="setAdminUserES(advice[0], 'checker')" alt="" srcset="" style="height: 30px;" />
686 697
                           </span>
687 698
                         </td>
688
-                        <td height="40px">
699
+                        <td height="30px">
689 700
                             <span v-if="advice[0].execution_time">{{ getTime(advice[0].execution_time, "{h}:{i}") }}</span>
690 701
                         </td>
691 702
                     </tr>
@@ -700,8 +711,8 @@
700 711
                         <table class="table-box">
701 712
                             <tbody>
702 713
                             <tr>
703
-                            <td width="28">拔针压迫:</td>
704
-                            <td width='140'>
714
+                            <td width="80">拔针压迫:</td>
715
+                            <td width='500'>
705 716
                                 <label-box showValue="自己压迫" :isChecked="record.assessment_after_dislysis.hemostasis_opera == 3 ? true : false"></label-box>
706 717
                                 &nbsp;
707 718
                                 <label-box showValue="他人协助" :isChecked="record.assessment_after_dislysis.hemostasis_opera == 2 ? true : false"></label-box>
@@ -710,16 +721,15 @@
710 721
                                 <label-box showValue="内瘘止血带" :isChecked="record.assessment_after_dislysis.hemostasis_opera == 4 ? true : false"></label-box>
711 722
                             </td>
712 723
                           
713
-                            <td width="40">内瘘震颤:</td>
714
-                            <td width="80">
724
+                            <td width="80">内瘘震颤:</td>
725
+                            <td width="200">
715 726
                                 <div style="display:flex;justify-content:space-between;">
716 727
                                 <label-box :isChecked="record.assessment_after_dislysis.internal_fistula.indexOf('震颤-存在') > -1 ? true : false" showValue="存在"></label-box>
717 728
                                 <label-box :isChecked="record.assessment_after_dislysis.internal_fistula.indexOf('震颤-减弱') > -1 ? true : false" showValue="减弱"></label-box>
718 729
                                 <label-box :isChecked="record.assessment_after_dislysis.internal_fistula.indexOf('震颤-无') > -1 ? true : false" showValue="不存在"></label-box>
719 730
                                 </div>
720 731
                             </td>
721
-                            <td width="10"></td>
722
-                            <td width="40"></td>
732
+                            <td></td>
723 733
                             </tr>
724 734
                             </tbody>
725 735
                         </table>
@@ -727,16 +737,16 @@
727 737
                         <table class="table-box">
728 738
                             <tbody>
729 739
                             <tr>
730
-                            <td width="130">拔针后穿刺点渗血:</td>
731
-                            <td width="80">
740
+                            <td width="160">拔针后穿刺点渗血:</td>
741
+                            <td width="100">
732 742
                                 <div style="display:flex;justify-content:space-between;">
733 743
                                 <label-box :isChecked="record.assessment_after_dislysis.puncture_point_oozing_blood == 1 ? true : false" showValue="有"></label-box>
734 744
                                 <label-box :isChecked="record.assessment_after_dislysis.puncture_point_oozing_blood == 2 ? true : false" showValue="无"></label-box>
735 745
                                 </div>
736 746
                             </td>
737 747
                             <td width="10"></td>
738
-                            <td width="85">穿刺处血肿:</td>
739
-                            <td width="80">
748
+                            <td width="100">穿刺处血肿:</td>
749
+                            <td width="100">
740 750
                                 <div style="display:flex;justify-content:space-between;">
741 751
                                 <label-box :isChecked="record.assessment_after_dislysis.puncture_point_haematoma == 1 ? true : false" showValue="有"></label-box>
742 752
                                 <label-box :isChecked="record.assessment_after_dislysis.puncture_point_haematoma == 2 ? true : false" showValue="无"></label-box>
@@ -744,14 +754,14 @@
744 754
                             </td>
745 755
 
746 756
                             <td width="10"></td>
747
-                            <td width="105">中心静脉封管:</td>
748
-                            <td width="40">肝素:</td>
749
-                            <td width="30">A端</td>
757
+                            <td width="120">中心静脉封管:</td>
758
+                            <td width="50">肝素:</td>
759
+                            <td width="40">A端</td>
750 760
                             <td width="30">
751 761
                                 <div class="under-line">&nbsp;{{ record.assessment_after_dislysis.cvc_a ? record.assessment_after_dislysis.cvc_a : "" }}</div>
752 762
                             </td>
753 763
                             <td width="20">ml</td>
754
-                            <td width="30">V端</td>
764
+                            <td width="40">V端</td>
755 765
                             <td width="30">
756 766
                                 <div class="under-line">&nbsp;{{ record.assessment_after_dislysis.cvc_v ? record.assessment_after_dislysis.cvc_v : "" }}</div>
757 767
                             </td>
@@ -764,7 +774,7 @@
764 774
                         <table class="table-box">
765 775
                             <tbody>
766 776
                             <tr>
767
-                            <td width="85">透析并发症:</td>
777
+                            <td width="100">透析并发症:</td>
768 778
                             <td width="600">
769 779
                                 <div style="display:flex;justify-content:space-between;">
770 780
                                 <label-box :isChecked="record.assessment_after_dislysis.complication.indexOf('无') > -1 ? true : false" showValue="无"></label-box>
@@ -779,7 +789,7 @@
779 789
 
780 790
                                 </div>
781 791
                             </td>
782
-                            <td width="40">其他:</td>
792
+                            <td width="50">其他:</td>
783 793
                             <td width="">
784 794
                                 <div class="under-line">
785 795
                                 &nbsp;{{ record.assessment_after_dislysis.complication ? getComplication(record.assessment_after_dislysis.complication) : '' }}
@@ -792,8 +802,8 @@
792 802
                         <table class="table-box">
793 803
                             <tbody>
794 804
                             <tr>
795
-                            <td width="40">凝血:</td>
796
-                            <td width="60">透析器:</td>
805
+                            <td width="50">凝血:</td>
806
+                            <td width="70">透析器:</td>
797 807
                             <td width="220">
798 808
                                 <div style="display:flex;justify-content:space-between;">
799 809
                                 <label-box :isChecked="record.assessment_after_dislysis.cruor.indexOf('透析器-0度') > -1 ? true : false" showValue="无"></label-box>
@@ -803,7 +813,7 @@
803 813
                                 </div>
804 814
                             </td>
805 815
                             <td></td>
806
-                            <td width="70">静脉管道:</td>
816
+                            <td width="90">静脉管道:</td>
807 817
                             <td width="220">
808 818
                                 <div style="display:flex;justify-content:space-between;">
809 819
                                     <label-box :isChecked="record.assessment_after_dislysis.intravenous_tube == 1 ? true : false" showValue="无"></label-box>
@@ -813,7 +823,7 @@
813 823
                                 </div>
814 824
                                 </td>
815 825
                                 
816
-                                <td width="70">动脉管道:</td>
826
+                                <td width="90">动脉管道:</td>
817 827
                                 <td width="220">
818 828
                                 <div style="display:flex;justify-content:space-between;">
819 829
                                     <label-box :isChecked="record.assessment_after_dislysis.arterial_tube == 1 ? true : false" showValue="无"></label-box>
@@ -829,7 +839,7 @@
829 839
                         <table class="table-box">
830 840
                             <tbody>
831 841
                             <tr>
832
-                            <td width="70">透后体重:</td>
842
+                            <td width="80">透后体重:</td>
833 843
                             <td width="50">
834 844
                                 <div class="under-line">
835 845
                                 &nbsp;{{ record.assessment_after_dislysis.weight_after ? record.assessment_after_dislysis.weight_after : "" }}
@@ -837,7 +847,7 @@
837 847
                             </td>
838 848
                             <td width="20">Kg</td>
839 849
                             <td width="20"></td>
840
-                            <td width="90">实际超滤总量</td>
850
+                            <td width="120">实际超滤总量</td>
841 851
                             <td width="40">
842 852
                                 <div class="under-line">
843 853
                                 &nbsp;{{ record.assessment_after_dislysis.actual_ultrafiltration ? record.assessment_after_dislysis.actual_ultrafiltration : 0 }}
@@ -845,7 +855,7 @@
845 855
                             </td>
846 856
                             <td width="10">ml</td>
847 857
                             <td width="20"></td>
848
-                            <td width="90">实际治疗时间</td>
858
+                            <td width="120">实际治疗时间</td>
849 859
                             <td width="40">
850 860
                                 <div class="under-line">
851 861
                                 &nbsp;{{ record.assessment_after_dislysis.actual_treatment_hour ? record.assessment_after_dislysis.actual_treatment_hour : "0" }}
@@ -859,7 +869,7 @@
859 869
                             </td>
860 870
                             <td width="35">min</td>
861 871
                             <td width="60">去向</td>
862
-                            <td width="160">
872
+                            <td width="200">
863 873
                             <div style="display:flex;justify-content:space-between;">
864 874
                                 <label-box :isChecked="record.assessment_after_dislysis.patient_gose == 1 ? true : false" showValue="回家"></label-box>
865 875
                                 <label-box :isChecked="record.assessment_after_dislysis.patient_gose == 2 ? true : false" showValue="留观"></label-box>
@@ -882,15 +892,15 @@
882 892
                     <tbody>
883 893
                     <tr>
884 894
                     <td width="150"></td>
885
-                    <td width="30">医生</td>
895
+                    <td width="50">医生</td>
886 896
                     <td width="80">
887 897
                         <div class="under-line">
888 898
                         &nbsp;
889
-                        <span v-if="setAdminUserES(record.prescription, 'creater') == ''">{{getAdminUser(record.prescription, 'creater')}}</span>
890
-                        <img class="es-img" :src="setAdminUserES(record.prescription, 'creater')" alt="" srcset="" v-else style="height: 30px;">
899
+                        <span v-if="setAdminUserES(record.prescription, 'prescription_doctor') == ''">{{getAdminUser(record.prescription, 'prescription_doctor')}}</span>
900
+                        <img class="es-img" :src="setAdminUserES(record.prescription, 'prescription_doctor')" alt="" srcset="" v-else style="height: 30px;">
891 901
                         </div>
892 902
                     </td>
893
-                    <td width="50">责任护士</td>
903
+                    <td width="80">责任护士</td>
894 904
                     <td width="80">
895 905
                         <div class="under-line">
896 906
                         &nbsp;
@@ -900,7 +910,7 @@
900 910
                         </span>
901 911
                         </div>
902 912
                     </td>
903
-                    <td width="50">穿刺护士</td>
913
+                    <td width="80">穿刺护士</td>
904 914
                     <td width="80">
905 915
                         <div class="under-line">
906 916
                         &nbsp;
@@ -912,7 +922,7 @@
912 922
                     </td>
913 923
                    
914 924
                    
915
-                    <td width="50">核对护士</td>
925
+                    <td width="80">核对护士</td>
916 926
                   
917 927
                      <td width="80">
918 928
                         <div class="under-line">
@@ -1006,7 +1016,8 @@ export default {
1006 1016
         "出血",
1007 1017
         "心衰",
1008 1018
         "腹痛"
1009
-      ]
1019
+      ],
1020
+      isShowZero:false
1010 1021
     };
1011 1022
   },
1012 1023
   created() {
@@ -1078,9 +1089,9 @@ export default {
1078 1089
             var dlegh = 0
1079 1090
             if (
1080 1091
               this.records[recordIndex].monitor_records &&
1081
-              this.records[recordIndex].monitor_records.length < 8
1092
+              this.records[recordIndex].monitor_records.length < 6
1082 1093
             ) {
1083
-              dlegh = 8 - this.records[recordIndex].monitor_records.length
1094
+              dlegh = 6 - this.records[recordIndex].monitor_records.length
1084 1095
             } else {
1085 1096
               dlegh = 0
1086 1097
             }
@@ -1340,7 +1351,7 @@ export default {
1340 1351
       const style =
1341 1352
         '@media print { .option_panel { margin: 0 5px 0 0; } .option_panel .check_box_panel { white-space: nowrap; outline: none; display: inline-block; line-height: 1; position: relative; vertical-align: middle; } .option_panel .check_box_panel .check_box { display: inline-block; position: relative; border: 1px solid #000; box-sizing: border-box; width: 14px; height: 14px; background-color: #fff; } .check_box_panel .did_checked::after { content: "√"; font-size: 15px; } .print_page_main_content { background-color: white; width:960px; margin:0 auto; padding: 0 0 0 0; page-break-after: always; } .print_page_main_content .order-yy-name { margin: auto; text-align: center; font-size: 20px; letter-spacing: 5px;} .print_page_main_content .order_title { text-align: center; font-size: 23px; line-height: 50px; font-weight: 500; } .row { font-size: 14px; line-height: 20px; padding: 5px 0; } .inline_block { display: inline-block; } .under_line { display: inline-block; border-bottom: 1px solid #999; text-align: center; white-space: nowrap; } .under_line::before { content: "\\00A0"; } .under_line::after { content: "\\00A0"; } .flex { display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: -webkit-flex; display: flex; align-items: center; -webkit-align-items: center; box-align: center; -moz-box-align: center; -webkit-box-align: center; text-align: center; -webkit-justify-content: space-between; justify-content: space-between; -moz-box-pack: space-between; -webkit--moz-box-pack: space-between; box-pack: space-between; } .print_page_main_content .proj_table { width: 100%; border: 1px solid; border-collapse: collapse; padding: 2px; } .print_page_main_content .proj_table tbody tr td { border: 1px solid; font-size: 16px; padding: 10px 8px; line-height: 30px; } .print_page_main_content .proj_table .inside_table { width: 100%; border: hidden; border-collapse: collapse; } .print_page_main_content .proj_table .inside_table tr td { border: 1px solid; text-align: center; font-size: 14px; padding: 8px 5px; line-height: 25px; } }.es-img{height: 20px; }.advice-name{text-align: left !important;line-height: 16px !important;}.advice-children{display:flex;}.did_checke::after {font-size: 8px;margin-left: 2px;margin-top: 2px;position: absolute;}';
1342 1353
        const style2 =
1343
-        '@media print {.dialysis-print-order{width:960px;margin:0 auto}.dialysis-print-order .order-yy-name{margin:auto;text-align:center;font-size:20px;letter-spacing:5px}.dialysis-print-order .order-title{margin:auto;font-weight:600;text-align:center;font-size:22px;padding:10px 20px 20px 20px}.dialysis-print-order .table-box{width:100%;line-height:23px;font-size:14px}.dialysis-print-order .print-table{width:100%;text-align:center;border-collapse:collapse;line-height:25px;font-size:16px}.dialysis-print-order .print-table-no{width:100%;text-align:center;border-collapse:collapse;font-size:14px}.dialysis-print-order .under-line{border-bottom:1px solid #999;width:95%;text-align:center;margin-left:2px}.dialysis-print-order .title-box{text-align:center;font-size:16px;border:1px solid #666}.dialysis-print-order .radio-lebel-box{font-weight:400;cursor:pointer}.dialysis-print-order .radio-no{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.dialysis-print-order .radio-inner{white-space:nowrap;cursor:pointer;outline:0;display:inline-block;line-height:1;position:relative;vertical-align:middle}.dialysis-print-order .radio-fang{display:inline-block;position:relative;border:1px solid #000;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.dialysis-print-order .is-checked-radio::after{content:"√";font-size:15px}}.dialysis-print-order .print-table-no tr td { padding: 8px 5px; line-height: 25px; }.es-img{height: 20px; }.advice-name{text-align: left;}.advice-children{display:flex;} .dialysis-print-order .print-table tr td{padding: 0px 0px;} .print-template-two tr {line-height: 30px;}   .title-box-pro{border: 0 #fff;line-height: 40px;height: 40px;text-align: left;padding-left: 10px !important;}  .text-align-left{text-align: left !important;padding-left:10px !important;font-size: 14px !important;line-height: 25px;}.row {font-size: 16px;line-height: 20px;padding: 5px 0;}.inline_block { display: inline-block;}.under_line {display: inline-block;border-bottom: 1px solid #999;text-align: center;white-space: nowrap; width: 50%;}'
1354
+        '@media print {.dialysis-print-order{width:960px;margin:0 auto}.dialysis-print-order .order-yy-name{margin:auto;text-align:center;font-size:20px;letter-spacing:5px}.dialysis-print-order .order-title{margin:auto;font-weight:600;text-align:center;font-size:22px;padding:10px 20px 20px 20px}.dialysis-print-order .table-box{width:100%;line-height:23px;font-size:18px}.dialysis-print-order .print-table{width:100%;text-align:center;border-collapse:collapse;line-height:25px;font-size:18px}.dialysis-print-order .print-table-no{width:100%;text-align:center;border-collapse:collapse;font-size:18px}.dialysis-print-order .under-line{border-bottom:1px solid #999;width:95%;text-align:center;margin-left:2px}.dialysis-print-order .title-box{text-align:center;font-size:18px;border:1px solid #666}.dialysis-print-order .radio-lebel-box{font-weight:400;cursor:pointer}.dialysis-print-order .radio-no{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.dialysis-print-order .radio-inner{white-space:nowrap;cursor:pointer;outline:0;display:inline-block;line-height:1;position:relative;vertical-align:middle}.dialysis-print-order .radio-fang{display:inline-block;position:relative;border:1px solid #000;box-sizing:border-box;width:18px;height:18px;background-color:#fff;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.dialysis-print-order .is-checked-radio::after{content:"√";font-size:19px}}.dialysis-print-order .print-table-no tr td { padding: 8px 5px; line-height: 25px; }.es-img{height: 20px; }.advice-name{text-align: left;}.advice-children{display:flex;} .dialysis-print-order .print-table tr td{padding: 0px 0px;} .print-template-two tr {line-height: 30px;}   .title-box-pro{border: 0 #fff;line-height: 40px;height: 40px;text-align: left;padding-left: 10px !important;}  .text-align-left{text-align: left !important;padding-left:10px !important;font-size: 14px !important;line-height: 25px;}.row {font-size: 16px;line-height: 20px;padding: 5px 0;}.inline_block { display: inline-block;}.under_line {display: inline-block;border-bottom: 1px solid #999;text-align: center;white-space: nowrap; width: 50%;}'
1344 1355
       printJS({
1345 1356
         printable: "print_content",
1346 1357
         type: "html",
@@ -1585,7 +1596,7 @@ export default {
1585 1596
   width: 100%;
1586 1597
   text-align: center;
1587 1598
   border-collapse: collapse;
1588
-  font-size: 14px;
1599
+  font-size: 18px;
1589 1600
 }
1590 1601
 
1591 1602
 .es-img {
@@ -1669,7 +1680,7 @@ export default {
1669 1680
 .dialysis-print-order .table-box {
1670 1681
   width: 100%;
1671 1682
   line-height: 23px;
1672
-  font-size: 14px;
1683
+  font-size: 18px;
1673 1684
 }
1674 1685
 
1675 1686
 .dialysis-print-order .print-table {
@@ -1677,14 +1688,14 @@ export default {
1677 1688
   text-align: center;
1678 1689
   border-collapse: collapse;
1679 1690
   line-height: 40px;
1680
-  font-size: 14px;
1691
+  font-size: 18px;
1681 1692
 }
1682 1693
 
1683 1694
 .dialysis-print-order .print-table-no {
1684 1695
   width: 100%;
1685 1696
   text-align: center;
1686 1697
   border-collapse: collapse;
1687
-  font-size: 14px;
1698
+  font-size: 18px;
1688 1699
 }
1689 1700
 
1690 1701
 .dialysis-print-order .under-line {
@@ -1729,8 +1740,8 @@ export default {
1729 1740
   position: relative;
1730 1741
   border: 1px solid #000;
1731 1742
   box-sizing: border-box;
1732
-  width: 14px;
1733
-  height: 14px;
1743
+  width: 18px;
1744
+  height: 18px;
1734 1745
   background-color: #fff;
1735 1746
   z-index: 1;
1736 1747
   transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),
@@ -1739,7 +1750,7 @@ export default {
1739 1750
 
1740 1751
 .dialysis-print-order .is-checked-radio::after {
1741 1752
   content: "√";
1742
-  font-size: 15px;
1753
+  font-size: 19px;
1743 1754
 }
1744 1755
 
1745 1756
 .dialysis-print-order .print-table-no tr td {
@@ -1819,7 +1830,7 @@ export default {
1819 1830
 .dialysis-print-order .table-box {
1820 1831
   width: 100%;
1821 1832
   line-height: 23px;
1822
-  font-size: 14px;
1833
+  font-size: 18px;
1823 1834
 }
1824 1835
 
1825 1836
 .dialysis-print-order .print-table {
@@ -1827,14 +1838,14 @@ export default {
1827 1838
   text-align: center;
1828 1839
   border-collapse: collapse;
1829 1840
   line-height: 40px;
1830
-  font-size: 14px;
1841
+  font-size: 18px;
1831 1842
 }
1832 1843
 
1833 1844
 .dialysis-print-order .print-table-no {
1834 1845
   width: 100%;
1835 1846
   text-align: center;
1836 1847
   border-collapse: collapse;
1837
-  font-size: 14px;
1848
+  font-size: 18px;
1838 1849
 }
1839 1850
 
1840 1851
 .dialysis-print-order .under-line {
@@ -1846,7 +1857,7 @@ export default {
1846 1857
 
1847 1858
 .dialysis-print-order .title-box {
1848 1859
   text-align: center;
1849
-  font-size: 16px;
1860
+  font-size: 18px;
1850 1861
 }
1851 1862
 
1852 1863
 .dialysis-print-order .radio-lebel-box {
@@ -1879,8 +1890,8 @@ export default {
1879 1890
   position: relative;
1880 1891
   border: 1px solid #000;
1881 1892
   box-sizing: border-box;
1882
-  width: 14px;
1883
-  height: 14px;
1893
+  width: 18px;
1894
+  height: 18px;
1884 1895
   background-color: #fff;
1885 1896
   z-index: 1;
1886 1897
   transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),
@@ -1889,7 +1900,7 @@ export default {
1889 1900
 
1890 1901
 .dialysis-print-order .is-checked-radio::after {
1891 1902
   content: "√";
1892
-  font-size: 15px;
1903
+  font-size: 19px;
1893 1904
 }
1894 1905
 
1895 1906
 .dialysis-print-order .print-table-no tr td {

+ 21 - 19
src/xt_pages/dialysis/components/consumables.vue View File

@@ -160,7 +160,9 @@
160 160
       this.query.page = 1
161 161
       this.GetDialysisgoods()
162 162
     },
163
-    methods: { handleSizeChange(val) {
163
+    methods: {
164
+
165
+      handleSizeChange(val) {
164 166
         this.query.limit = val;
165 167
         this.GetDialysisgoods();
166 168
       },
@@ -180,7 +182,7 @@
180 182
 
181 183
       },
182 184
       getGoodUserInfo(good_type_id,good_user,last_good_user) {
183
-        var arrlist =[] 
185
+        var arrlist =[]
184 186
         if (good_user != null && good_user.length > 0) {
185 187
           let desc = ""
186 188
           for (let b = 0; b < good_user.length; b++){
@@ -191,7 +193,7 @@
191 193
           return desc
192 194
         }
193 195
         return ""
194
-       
196
+
195 197
         // else if (good_user != null && good_user.length <= 0) {
196 198
         //   if (last_good_user != null && last_good_user.length > 0) {
197 199
         //     let desc = ""
@@ -213,7 +215,7 @@
213 215
             this.$message.error(response.data.msg)
214 216
             return false
215 217
           } else {
216
-           
218
+
217 219
             this.list = []
218 220
             this.good_types = []
219 221
             this.allGoodInfo = []
@@ -233,9 +235,9 @@
233 235
             }
234 236
 
235 237
             this.arrKey.push(...arr)
236
-          
238
+
237 239
             this.allGoodInfo = res.data.dialysis_goods
238
-           
240
+
239 241
             for(let i = 0; i < res.data.dialysis_goods.length; i++){
240 242
               let arr =[]
241 243
               let obj = {
@@ -276,15 +278,15 @@
276 278
 
277 279
               }
278 280
             }
279
-           
281
+
280 282
           //  console.log("99999999",this.list)
281
-           let a = [] 
283
+           let a = []
282 284
           this.list.map(item => {
283 285
             a.push(item.good_type)
284 286
           })
285 287
           // console.log('aaaaaaaaa',a)
286 288
           let b = []
287
-       
289
+
288 290
           a.map(item => {
289 291
             let obj = []
290 292
             item.map((it,index) => {
@@ -293,9 +295,9 @@
293 295
               let str = 'name' + index
294 296
               c[str] = it.name
295 297
               obj.push(c)
296
-              
298
+
297 299
             })
298
-            
300
+
299 301
             b.push(obj)
300 302
           })
301 303
           var temp = []
@@ -304,7 +306,7 @@
304 306
             var objC = {...b[i]}
305 307
             temp.push(objC)
306 308
           }
307
-       
309
+
308 310
           // console.log("temp--------",temp)
309 311
           var tempTwo = []
310 312
           temp.map(item => {
@@ -314,18 +316,18 @@
314 316
             })
315 317
             let obj2 = {}
316 318
             obj.map((i,ind) => {
317
-            
319
+
318 320
               let str = 'name' + ind
319 321
               obj2[str] = i[str]
320 322
             })
321 323
             tempTwo.push(obj2)
322 324
             console.log(325556574342354234234,tempTwo)
323 325
           })
324
-          
326
+
325 327
           this.arrList.push(...tempTwo)
326 328
           console.log("cccccccc",this.arrList)
327 329
           }
328
-        })  
330
+        })
329 331
       },
330 332
       selectSchedulType(scheduleType) {
331 333
         this.schedulType = scheduleType
@@ -368,9 +370,9 @@
368 370
 
369 371
        exportList(){
370 372
          import('@/vendor/Export2Excel').then(excel => {
371
-         
372
-        
373
-       
373
+
374
+
375
+
374 376
          var arrTwo = []
375 377
          for(let i=0;i<this.arrKey.length;i++){
376 378
             arrTwo.push('name'+i)
@@ -385,7 +387,7 @@
385 387
          console.log("33333",this.arrList)
386 388
          const data = this.formatJson(filterVal,this.arrList)
387 389
          console.log("data",data)
388
-      
390
+
389 391
          excel.export_json_to_excel({
390 392
            header: tHeader,
391 393
            data,

+ 25 - 5
src/xt_pages/dialysis/details/DialysisPrescription.vue View File

@@ -10,7 +10,7 @@
10 10
           <span class="content">{{ dialysis_mode }}</span>
11 11
         </li>
12 12
 
13
-        <li v-if="isShow('置换量')">
13
+        <li v-if="isShow('置换量') && (dialysis_mode == 'HDF' || dialysis_mode == 'HF' || dialysis_mode =='HDF+HP')">
14 14
           <label>置换量 : </label>
15 15
           <span class="content">{{
16 16
             replacement_total != "0" ? replacement_total : ""
@@ -47,7 +47,7 @@
47 47
           <span class="content">{{ anticoagulant }}</span>
48 48
         </li>
49 49
 
50
-        <li v-if="isShow('抗凝剂商品名称')">
50
+        <li v-if="isShow('抗凝剂商品名称') && this.$store.getters.xt_user.template_info.template_id != 24">
51 51
           <label>抗凝剂商品名称 : </label>
52 52
           <span class="content">{{ antioxidant_commodity_name }}</span>
53 53
         </li>
@@ -106,8 +106,8 @@
106 106
           <span class="content">{{
107 107
             target_ultrafiltration != "0" ? target_ultrafiltration : ""
108 108
           }}</span>
109
-          <span v-if="this.$store.getters.xt_user.template_info.template_id != 17 && this.$store.getters.xt_user.template_info.template_id != 9 && this.$store.getters.xt_user.template_info.template_id != 20 && this.$store.getters.xt_user.template_info.template_id != 21 && this.$store.getters.xt_user.template_info.template_id != 22 && this.$store.getters.xt_user.template_info.template_id != 23 && this.$store.getters.xt_user.template_info.template_id != 24 && this.$store.getters.xt_user.template_info.template_id != 26 && this.$store.getters.xt_user.template_info.template_id != 28 && this.$store.getters.xt_user.template_info.template_id != 27 && this.$store.getters.xt_user.template_info.template_id != 29 && this.$store.getters.xt_user.template_info.template_id != 30 && this.$store.getters.xt_user.template_info.template_id != 31 && this.$store.getters.xt_user.template_info.template_id != 32 && this.$store.getters.xt_user.template_info.template_id != 34 && this.$store.getters.xt_user.template_info.org_id != 9555" class="unit">{{ target_ultrafiltration != "0" ? "L" : "" }}</span>
110
-          <span v-if="this.$store.getters.xt_user.template_info.template_id == 17 || this.$store.getters.xt_user.template_info.template_id == 9 || this.$store.getters.xt_user.template_info.template_id == 20 || this.$store.getters.xt_user.template_info.template_id == 21 || this.$store.getters.xt_user.template_info.template_id == 22 || this.$store.getters.xt_user.template_info.template_id == 23 || this.$store.getters.xt_user.template_info.template_id == 24 || this.$store.getters.xt_user.template_info.template_id == 26 || this.$store.getters.xt_user.template_info.template_id == 28 || this.$store.getters.xt_user.template_info.template_id == 27 || this.$store.getters.xt_user.template_info.template_id == 29 || this.$store.getters.xt_user.template_info.template_id == 30 || this.$store.getters.xt_user.template_info.template_id == 31 || this.$store.getters.xt_user.template_info.template_id == 32 || this.$store.getters.xt_user.template_info.template_id == 34 || this.$store.getters.xt_user.template_info.org_id == 9555" class="unit">{{ target_ultrafiltration != "0" ? "ml" : "" }}</span>
109
+          <span v-if="this.$store.getters.xt_user.template_info.template_id != 17 && this.$store.getters.xt_user.template_info.template_id != 9 && this.$store.getters.xt_user.template_info.template_id != 20 && this.$store.getters.xt_user.template_info.template_id != 21 && this.$store.getters.xt_user.template_info.template_id != 22 && this.$store.getters.xt_user.template_info.template_id != 23 && this.$store.getters.xt_user.template_info.template_id != 24 && this.$store.getters.xt_user.template_info.template_id != 26 && this.$store.getters.xt_user.template_info.template_id != 28 && this.$store.getters.xt_user.template_info.template_id != 27 && this.$store.getters.xt_user.template_info.template_id != 29 && this.$store.getters.xt_user.template_info.template_id != 30 && this.$store.getters.xt_user.template_info.template_id != 31 && this.$store.getters.xt_user.template_info.template_id != 32 && this.$store.getters.xt_user.template_info.template_id != 34 && this.$store.getters.xt_user.template_info.template_id != 36 && this.$store.getters.xt_user.template_info.template_id != 38 && this.$store.getters.xt_user.template_info.org_id != 9555" class="unit">{{ target_ultrafiltration != "0" ? "L" : "" }}</span>
110
+          <span v-if="this.$store.getters.xt_user.template_info.template_id == 17 || this.$store.getters.xt_user.template_info.template_id == 9 || this.$store.getters.xt_user.template_info.template_id == 20 || this.$store.getters.xt_user.template_info.template_id == 21 || this.$store.getters.xt_user.template_info.template_id == 22 || this.$store.getters.xt_user.template_info.template_id == 23 || this.$store.getters.xt_user.template_info.template_id == 24 || this.$store.getters.xt_user.template_info.template_id == 26 || this.$store.getters.xt_user.template_info.template_id == 28 || this.$store.getters.xt_user.template_info.template_id == 27 || this.$store.getters.xt_user.template_info.template_id == 29 || this.$store.getters.xt_user.template_info.template_id == 30 || this.$store.getters.xt_user.template_info.template_id == 31 || this.$store.getters.xt_user.template_info.template_id == 32 || this.$store.getters.xt_user.template_info.template_id == 34 || this.$store.getters.xt_user.template_info.template_id == 36 || this.$store.getters.xt_user.template_info.template_id == 38 || this.$store.getters.xt_user.template_info.org_id == 9555" class="unit">{{ target_ultrafiltration != "0" ? "ml" : "" }}</span>
111 111
         </li>
112 112
         <li v-if="isShow('葡萄糖')">
113 113
           <label>葡萄糖 : </label>
@@ -312,7 +312,16 @@
312 312
           <span class="content" v-if="this.prescription.anticoagulant_stop_time_hour == 0 && this.prescription.anticoagulant_stop_time_min == 0 "></span>
313 313
           <span class="unit"></span>
314 314
         </li>
315
+       
316
+        <li v-if="isShow('病情')">
317
+          <label>病情: </label>
318
+          <span class="content">{{getIllness(this.prescription.illness)}}</span>
319
+        </li>
315 320
 
321
+         <li v-if="isShow('葡萄糖')">
322
+          <label>葡萄糖: </label>
323
+          <span class="content">{{this.prescription.amylaceum}}</span>
324
+        </li>
316 325
 
317 326
       </ul>
318 327
     </div>
@@ -628,7 +637,8 @@ export default {
628 637
     },
629 638
     displace_speed:function(){
630 639
       return this.getValueStr('displace_speed','displace_speed')
631
-    }
640
+    },
641
+   
632 642
   },
633 643
   created() {
634 644
 
@@ -685,6 +695,16 @@ export default {
685 695
         }
686 696
       }
687 697
       return false
698
+    },
699
+     getIllness(id){
700
+       var illnessList = getDataConfig('hemodialysis','illness')
701
+       var name = ""
702
+       for(let i=0;i<illnessList.length;i++){
703
+          if(id == illnessList[i].id){
704
+            name = illnessList[i].name
705
+          }
706
+       }
707
+       return name
688 708
     }
689 709
   }
690 710
 }

+ 4 - 2
src/xt_pages/dialysis/details/NavIgation.vue View File

@@ -206,7 +206,7 @@ export default {
206 206
 
207 207
   data() {
208 208
     return {
209
-      temp_schedual: null
209
+      temp_schedual: {}
210 210
     };
211 211
   },
212 212
   mounted() {},
@@ -578,7 +578,9 @@ export default {
578 578
         system_prescribe
579 579
       );
580 580
 
581
-      // this.temp_schedual = schedual
581
+      this.temp_schedual = schedual
582
+
583
+      console.log("排班列表2222222222222222",schedual)
582 584
     },
583 585
 
584 586
     add_monitor: function(monitor) {

+ 11 - 1
src/xt_pages/dialysis/details/acceptsAssessment.vue View File

@@ -83,6 +83,9 @@
83 83
           <span class="content">{{sickCondition}} </span>
84 84
         </li>
85 85
 
86
+
87
+       
88
+
86 89
         <li v-if="isShow('风险程度')">
87 90
           <label>风险程度:</label>
88 91
           <span class="content">{{ dangerLevel }}</span>
@@ -103,7 +106,14 @@
103 106
             this.record.psychological_assessment_other
104 107
           }}</span>
105 108
         </li>
106
-
109
+        
110
+       <li v-if="isShow('是否跌倒')">
111
+          <label>是否跌倒:</label>
112
+          <span class="content">
113
+            <span v-if="this.record.tumble == 1">是</span>
114
+            <span v-if="this.record.tumble == 2">否</span>
115
+          </span>
116
+        </li>
107 117
 
108 118
       </ul>
109 119
 

+ 37 - 3
src/xt_pages/dialysis/details/assessmentAfter.vue View File

@@ -17,8 +17,8 @@
17 17
           <span class="content" v-if="actual_ultrafiltration != '0'">{{
18 18
             actual_ultrafiltration
19 19
           }}</span>
20
-          <span class="unit" v-if=" actual_ultrafiltration != '0' && (this.$store.getters.xt_user.template_info.template_id == 6 || this.$store.getters.xt_user.template_info.template_id == 9 || this.$store.getters.xt_user.template_info.template_id == 17 || this.$store.getters.xt_user.template_info.template_id == 20 || this.$store.getters.xt_user.template_info.template_id == 21 || this.$store.getters.xt_user.template_info.template_id == 22 || this.$store.getters.xt_user.template_info.template_id == 23 || this.$store.getters.xt_user.template_info.template_id == 24 || this.$store.getters.xt_user.template_info.template_id == 26 || this.$store.getters.xt_user.template_info.template_id == 28 || this.$store.getters.xt_user.template_info.template_id == 27 || this.$store.getters.xt_user.template_info.template_id == 29 || this.$store.getters.xt_user.template_info.template_id == 30 || this.$store.getters.xt_user.template_info.template_id == 31 || this.$store.getters.xt_user.template_info.template_id == 32 || this.$store.getters.xt_user.template_info.template_id == 34 || this.$store.getters.xt_user.template_info.org_id == 9555) " >ml</span>
21
-          <span class="unit" v-if=" actual_ultrafiltration != '0' && this.$store.getters.xt_user.template_info.template_id != 6 && this.$store.getters.xt_user.template_info.template_id != 9 && this.$store.getters.xt_user.template_info.template_id != 17 && this.$store.getters.xt_user.template_info.template_id != 20 && this.$store.getters.xt_user.template_info.template_id != 21 && this.$store.getters.xt_user.template_info.template_id != 22 && this.$store.getters.xt_user.template_info.template_id != 23 && this.$store.getters.xt_user.template_info.template_id != 24 && this.$store.getters.xt_user.template_info.template_id != 26 && this.$store.getters.xt_user.template_info.template_id != 28 && this.$store.getters.xt_user.template_info.template_id != 27 && this.$store.getters.xt_user.template_info.template_id != 29 && this.$store.getters.xt_user.template_info.template_id != 30 && this.$store.getters.xt_user.template_info.template_id != 31 && this.$store.getters.xt_user.template_info.template_id != 32 && this.$store.getters.xt_user.template_info.template_id != 34 &&  this.$store.getters.xt_user.template_info.org_id == 9555 " >L</span>
20
+          <span class="unit" v-if=" actual_ultrafiltration != '0' && (this.$store.getters.xt_user.template_info.template_id == 6 || this.$store.getters.xt_user.template_info.template_id == 9 || this.$store.getters.xt_user.template_info.template_id == 17 || this.$store.getters.xt_user.template_info.template_id == 20 || this.$store.getters.xt_user.template_info.template_id == 21 || this.$store.getters.xt_user.template_info.template_id == 22 || this.$store.getters.xt_user.template_info.template_id == 23 || this.$store.getters.xt_user.template_info.template_id == 24 || this.$store.getters.xt_user.template_info.template_id == 26 || this.$store.getters.xt_user.template_info.template_id == 28 || this.$store.getters.xt_user.template_info.template_id == 27 || this.$store.getters.xt_user.template_info.template_id == 29 || this.$store.getters.xt_user.template_info.template_id == 30 || this.$store.getters.xt_user.template_info.template_id == 31 || this.$store.getters.xt_user.template_info.template_id == 32 || this.$store.getters.xt_user.template_info.template_id == 34 || this.$store.getters.xt_user.template_info.template_id == 36 || this.$store.getters.xt_user.template_info.template_id == 38 || this.$store.getters.xt_user.template_info.org_id == 9555) " >ml</span>
21
+          <span class="unit" v-if=" actual_ultrafiltration != '0' && this.$store.getters.xt_user.template_info.template_id != 6 && this.$store.getters.xt_user.template_info.template_id != 9 && this.$store.getters.xt_user.template_info.template_id != 17 && this.$store.getters.xt_user.template_info.template_id != 20 && this.$store.getters.xt_user.template_info.template_id != 21 && this.$store.getters.xt_user.template_info.template_id != 22 && this.$store.getters.xt_user.template_info.template_id != 23 && this.$store.getters.xt_user.template_info.template_id != 24 && this.$store.getters.xt_user.template_info.template_id != 26 && this.$store.getters.xt_user.template_info.template_id != 28 && this.$store.getters.xt_user.template_info.template_id != 27 && this.$store.getters.xt_user.template_info.template_id != 29 && this.$store.getters.xt_user.template_info.template_id != 30 && this.$store.getters.xt_user.template_info.template_id != 31 && this.$store.getters.xt_user.template_info.template_id != 32 && this.$store.getters.xt_user.template_info.template_id != 34 && this.$store.getters.xt_user.template_info.template_id != 36 && this.$store.getters.xt_user.template_info.template_id != 38 &&  this.$store.getters.xt_user.template_info.org_id == 9555 " >L</span>
22 22
         </li>
23 23
         <li v-if="isShow('导管')">
24 24
           <label>导管 : </label>
@@ -296,6 +296,18 @@
296 296
           <span class="content" >{{ this.record.stroke_volume ? this.record.stroke_volume : ""  }}</span>
297 297
           <span class="unit">{{ this.record.stroke_volume ? "ml" : "" }}</span>
298 298
         </li>
299
+        <li v-if="isShow('KT/V')">
300
+          <label>KT/V: </label>
301
+          <span class="content" >{{ this.record.ktv ? this.record.ktv : ""  }}</span>
302
+        </li>
303
+        <li v-if="isShow('意识')">
304
+          <label>意识: </label>
305
+          <span class="content" >{{ getConsciousness(this.record.consciousness)}}</span>
306
+        </li>
307
+        <li v-if="isShow('跌倒风险')">
308
+          <label>跌倒风险: </label>
309
+          <span class="content" >{{ getFallrisk(this.record.fallrisk)}}</span>
310
+        </li>
299 311
       </ul>
300 312
     </div>
301 313
     <div class="note">
@@ -636,7 +648,8 @@ export default {
636 648
         return ''
637 649
       }
638 650
       return this.record.in_advance_reason_other
639
-    }
651
+    },
652
+   
640 653
   },
641 654
   methods: {
642 655
     getInternal: function() {
@@ -771,6 +784,27 @@ export default {
771 784
         }
772 785
       }
773 786
       return false
787
+    },
788
+     getConsciousness:function(id){
789
+       var consciousnessList = getDataConfig("hemodialysis","consciousness")
790
+     
791
+       var name = ""
792
+       for(let i=0;i<consciousnessList.length;i++){
793
+         if(id == consciousnessList[i].id){
794
+           name= consciousnessList[i].name
795
+         }
796
+      }
797
+      return name
798
+    },
799
+    getFallrisk:function(id){
800
+      var fallriskList = getDataConfig("hemodialysis","fallrisk")
801
+      var name = ""
802
+      for(let i=0;i<fallriskList.length;i++){
803
+        if(id == fallriskList[i].id){
804
+           name = fallriskList[i].name
805
+        }
806
+      }
807
+      return name
774 808
     }
775 809
   }
776 810
 }

+ 31 - 0
src/xt_pages/dialysis/details/assessmentBefore.vue View File

@@ -333,6 +333,37 @@
333 333
           <span class="content">{{this.record.thromubus_v}}</span>
334 334
           <span class="unit"></span>
335 335
         </li>
336
+
337
+
338
+        <li v-if="isShow('预增脱水量')">
339
+          <label>预增脱水量(L): </label>
340
+          <span class="content">{{this.record.dehydration}}</span>
341
+          <span class="unit"></span>
342
+        </li>
343
+
344
+
345
+         <li v-if="isShow('透析前药物')">
346
+          <label>透析前药物: </label>
347
+          <span class="content">{{this.record.pre_dialysis_drugs}}</span>
348
+          <span class="unit"></span>
349
+        </li>
350
+       
351
+        <li v-if="isShow('围手术期')">
352
+          <label>围手术期: </label>
353
+          <span class="content">
354
+            <span v-if="this.record.period==1">无</span>
355
+            <span v-if="this.record.period==2">有</span>
356
+          </span>
357
+          <span class="unit"></span>
358
+        </li>
359
+
360
+
361
+         <li v-if="isShow('预计进食量')">
362
+          <label>预计进食量: </label>
363
+          <span class="content">{{this.record.estimated_food_intake}}</span>
364
+          <span class="unit"></span>
365
+        </li>
366
+       
336 367
       </ul>
337 368
     </div>
338 369
     <div class="note">

+ 127 - 6
src/xt_pages/dialysis/details/dialog/AssessmentAfterDislysis.vue View File

@@ -28,7 +28,7 @@
28 28
           <el-col :span="8" v-if="isShow('实际超滤量')">
29 29
             <el-form-item
30 30
               label="实际超滤量(ml): "
31
-              v-if=" this.template_id == 6 || this.template_id == 9 || this.template_id == 10 || this.template_id == 11  || this.template_id == 17 || this.template_id == 20 || this.template_id == 21 || this.template_id == 22 || this.template_id == 23 || this.template_id == 24 || this.template_id == 26 || this.template_id == 28 || this.template_id == 27 || this.template_id == 29 || this.template_id == 30 || this.template_id == 31 || this.template_id == 32 || this.template_id == 34 || this.$store.getters.xt_user.template_info.org_id == 9555 "  >
31
+              v-if=" this.template_id == 6 || this.template_id == 9 || this.template_id == 10 || this.template_id == 11  || this.template_id == 17 || this.template_id == 20 || this.template_id == 21 || this.template_id == 22 || this.template_id == 23 || this.template_id == 24 || this.template_id == 26 || this.template_id == 28 || this.template_id == 27 || this.template_id == 29 || this.template_id == 30 || this.template_id == 31 || this.template_id == 32 || this.template_id == 34 || this.template_id == 36 || this.template_id == 38 || this.$store.getters.xt_user.template_info.org_id == 9555 "  >
32 32
               <el-input v-model="form.actual_ultrafiltration"></el-input>
33 33
             </el-form-item>
34 34
             <el-form-item label="实际超滤量(L): " v-else>
@@ -596,7 +596,92 @@
596 596
           </el-form-item>
597 597
         </el-col>
598 598
 
599
+        <el-col :span="8" v-if="isShow('URR')">
600
+            <el-form-item label="URR:">
601
+               <el-input v-model="form.urr"></el-input>
602
+            </el-form-item>
603
+        </el-col>
604
+        <el-col :span="8" v-if="isShow('透析相关高血压')">
605
+            <el-form-item label="透析相关高血压:">
606
+        
607
+             <el-select v-model="form.hypertenison">
608
+              <el-option :key="0" label="请选择" :value="0"></el-option>
609
+              <el-option
610
+                v-for="item in option"
611
+                :label="item.name"
612
+                :value="item.id"
613
+                :key="item.id"
614
+              ></el-option>
615
+            </el-select>
616
+            </el-form-item>
617
+        </el-col>
618
+         <el-col :span="8" v-if="isShow('透析相关低血压')">
619
+            <el-form-item label="透析相关低血压">
620
+             <el-select v-model="form.hypopiesia">
621
+              <el-option
622
+                v-for="item in optionOne"
623
+                :label="item.name"
624
+                :value="item.id"
625
+                :key="item.id"
626
+              ></el-option>
627
+             </el-select>
628
+            </el-form-item>
629
+        </el-col>
630
+        <el-col :span="8" v-if="isShow('离科方式')">
631
+            <el-form-item label="离科方式">
632
+               <el-select v-model="form.leave_office_method">
633
+                <el-option
634
+                  v-for="item in leaveOfficeMethod"
635
+                  :label="item.name"
636
+                  :value="item.id"
637
+                  :key="item.id"
638
+                ></el-option>
639
+             </el-select>
640
+            </el-form-item>
641
+        </el-col>
642
+         <el-col :span="8" v-if="isShow('转归')">
643
+            <el-form-item label="转归">
644
+             <el-select v-model="form.lapse">
645
+              <el-option
646
+                v-for="item in lapseList"
647
+                :label="item.name"
648
+                :value="item.id"
649
+                :key="item.id"
650
+              ></el-option>
651
+             </el-select>
652
+            </el-form-item>
653
+        </el-col>
654
+        <el-col :span="8" v-if="isShow('意识')">
655
+            <el-form-item label="意识">
656
+             <el-select v-model="form.consciousness">
657
+              <el-option
658
+                v-for="item in consciousnessList"
659
+                :label="item.name"
660
+                :value="item.id"
661
+                :key="item.id"
662
+              ></el-option>
663
+             </el-select>
664
+            </el-form-item>
665
+        </el-col>
666
+        <el-col :span="8" v-if="isShow('跌倒风险')">
667
+            <el-form-item label="跌倒风险">
668
+             <el-select v-model="form.fallrisk">
669
+              <el-option
670
+                v-for="item in fallriskList"
671
+                :label="item.name"
672
+                :value="item.id"
673
+                :key="item.id"
674
+              ></el-option>
675
+             </el-select>
676
+            </el-form-item>
677
+        </el-col>
678
+        <el-col :span="24" v-if="isShow('KT/V')">
679
+            <el-form-item label="KT/V:">
680
+              <el-input type="textarea" :rows="4" v-model="form.ktv"></el-input>
681
+            </el-form-item>
682
+        </el-col>
599 683
       </el-form>
684
+         
600 685
 
601 686
       <span slot="footer" class="dialog-footer">
602 687
         <el-button @click="hide">取 消</el-button>
@@ -679,7 +764,14 @@ export default {
679 764
       isVisibiltyForCruorDialog: false,
680 765
       dialogCruorTitle: '凝血',
681 766
       sealing_fluid_special_name: '',
682
-
767
+      option:[
768
+        {id:"1",name:"有"},
769
+        {id:"2",name:"无"},
770
+      ],
771
+       optionOne:[
772
+        {id:"1",name:"有"},
773
+        {id:"2",name:"无"},
774
+      ],
683 775
       InnerDialogProps: {
684 776
         values: [],
685 777
         visibility: false,
@@ -748,8 +840,20 @@ export default {
748 840
         supine_diastolic_blood_pressure:'',
749 841
         diastolic_pressure:'',
750 842
         additional_weight:'',
751
-        other_complication:''
752
-      }
843
+        other_complication:'',
844
+        ktv:"",
845
+        urr:"",
846
+        hypertenison:"",
847
+        hypopiesia:"",
848
+        leave_office_method:"",
849
+        lapse:"",
850
+        consciousness:"",
851
+        fallrisk:"",
852
+      },
853
+      lapseList:[],
854
+      leaveOfficeMethod:[],
855
+      consciousnessList:[],
856
+      fallriskList:[]
753 857
     }
754 858
   },
755 859
   watch: {
@@ -952,6 +1056,15 @@ export default {
952 1056
       data["diastolic_pressure"] = this.form.diastolic_pressure
953 1057
       data["additional_weight"] = this.form.additional_weight ? parseFloat(this.form.additional_weight) : 0
954 1058
       data["other_complication"] = this.form.other_complication
1059
+      data["ktv"] = this.form.ktv
1060
+      data["urr"] = this.form.urr
1061
+      data["hypertenison"] = parseInt(this.form.hypertenison)
1062
+      data["hypopiesia"] = parseInt(this.form.hypopiesia)
1063
+      data["leave_office_method"] = this.form.leave_office_method
1064
+      data["lapse"] = this.form.lapse
1065
+      data["consciousness"] = this.form.consciousness
1066
+      data["fallrisk"] = this.form.fallrisk
1067
+      console.log("Paramsquery",data)
955 1068
       postAssessmentAfterDislysis(ParamsQuery, data)
956 1069
         .then(response => {
957 1070
           this.loading = false
@@ -1100,8 +1213,11 @@ export default {
1100 1213
       this.predialysis = predialysis
1101 1214
       this.form.observation_content = predialysis.observation_content
1102 1215
       this.form.inpatient_department = predialysis.inpatient_department
1103
-      this.form.observation_content_other =
1104
-        predialysis.observation_content_other
1216
+      this.form.observation_content_other = predialysis.observation_content_other
1217
+      this.form.hypertenison = predialysis.hypertenison.toString()
1218
+      this.form.hypopiesia = predialysis.hypopiesia.toString()
1219
+      this.form.leave_office_method = predialysis.leave_office_method
1220
+      this.form.lapse = predialysis.lapse
1105 1221
       // console.log("透后", predialysis);
1106 1222
 
1107 1223
       if(predialysis != null && predialysis.id == 0){
@@ -1213,11 +1329,16 @@ export default {
1213 1329
     this.complicationOptions = getDataConfig('hemodialysis', 'complication')
1214 1330
     this.bloodFlowOptions = getDataConfig('hemodialysis', 'blood_flow')
1215 1331
     this.sealingFluidDisposeOptions = getDataConfig('hemodialysis', 'sealing_fluid_dispose')
1332
+    this.lapseList = getDataConfig('hemodialysis', 'lapse')
1333
+    this.leaveOfficeMethod = getDataConfig('hemodialysis','leave_office_method')
1334
+    this.consciousnessList = getDataConfig("hemodialysis","consciousness")
1335
+    this.fallriskList = getDataConfig("hemodialysis","fallrisk")
1216 1336
     this.internalFistulaTremorAcOptions = this.$store.getters.internal_fistula_tremor_ac
1217 1337
     this.patientGoseOptions = this.$store.getters.patient_gose
1218 1338
     this.observationContentOptions = this.$store.getters.observation_content
1219 1339
     this.template_id = this.$store.getters.xt_user.template_info.template_id
1220 1340
     this.channels = this.$store.getters.channels
1341
+
1221 1342
     var date = this.$route.query && this.$route.query.date
1222 1343
     this.record_date = uParseTime(date, '{y}-{m}-{d}')
1223 1344
   },

+ 2 - 2
src/xt_pages/dialysis/details/dialog/DoctorAdviceDialog.vue View File

@@ -295,7 +295,7 @@
295 295
         >
296 296
           <template slot-scope="scope">
297 297
             <span v-if="scope.row.execution_time != 0">
298
-              {{scope.row.start_time | parseTime('{m}-{d} {h}:{i}')}}
298
+              {{scope.row.execution_time | parseTime('{m}-{d} {h}:{i}')}}
299 299
             </span>
300 300
             <span v-else></span>
301 301
           </template>
@@ -385,7 +385,7 @@
385 385
         >
386 386
           <template slot-scope="scope">
387 387
             <span v-if="scope.row.execution_time != 0">
388
-              {{scope.row.start_time | parseTime('{m}-{d} {h}:{i}')}}
388
+              {{scope.row.execution_time | parseTime('{m}-{d} {h}:{i}')}}
389 389
             </span>
390 390
             <span v-else></span>
391 391
           </template>

+ 14 - 1
src/xt_pages/dialysis/details/dialog/acceptsTreatmentDialog.vue View File

@@ -229,6 +229,17 @@
229 229
           v-model="receiveTreatmentAsses.psychological_other"
230 230
         ></el-input>
231 231
       </el-form-item>
232
+        <el-form-item label="是否跌倒: " v-if="isShow('是否跌倒')">
233
+        <el-radio
234
+          v-model="receiveTreatmentAsses.tumble"
235
+          label="1"
236
+          >是</el-radio>
237
+        <el-radio
238
+          v-model="receiveTreatmentAsses.tumble"
239
+          label="2"
240
+          >否
241
+        </el-radio>
242
+      </el-form-item>
232 243
     </el-form>
233 244
     <div slot="footer" class="dialog-footer">
234 245
       <el-button @click="handleCancle">取 消</el-button>
@@ -281,7 +292,8 @@ export default {
281 292
         precaution: "",
282 293
         precaution_other: "",
283 294
         admission_number: "",
284
-        diacrisis:""
295
+        diacrisis:"",
296
+        tumble:"",
285 297
       },
286 298
       precautionTwo: []
287 299
     };
@@ -301,6 +313,7 @@ export default {
301 313
       return false;
302 314
     },
303 315
     show(accepts) {
316
+    
304 317
       this.accepts = accepts;
305 318
       // console.log("accepts", accepts);
306 319
       var arr = [];

+ 40 - 3
src/xt_pages/dialysis/details/dialog/assessmentBeforeDislysisDialog.vue View File

@@ -541,8 +541,35 @@
541 541
               <el-input v-model="assessmentBeforeDislysis.edema" @focus="showInnerDialog('16')"></el-input>
542 542
             </el-form-item>
543 543
           </el-col>
544
-          
545 544
 
545
+         <el-col :span="8">
546
+            <el-form-item label="预增脱水量(L):" v-if="isShow('预增脱水量')">
547
+             <el-input v-model="assessmentBeforeDislysis.dehydration"></el-input>
548
+            </el-form-item>
549
+          </el-col>
550
+
551
+
552
+          <el-col :span="8">
553
+            <el-form-item label="透析前药物:" v-if="isShow('透析前药物')">
554
+             <el-input v-model="assessmentBeforeDislysis.pre_dialysis_drugs"></el-input>
555
+            </el-form-item>
556
+          </el-col>
557
+
558
+          <el-col :span="8">
559
+            <el-form-item label="围手术期:" v-if="isShow('围手术期')">
560
+              <el-select v-model="assessmentBeforeDislysis.period">
561
+                <el-option :key="0" label="请选择" :value="0"></el-option>
562
+                <el-option label="无" value="1"></el-option>
563
+                <el-option label="有" value="2"></el-option>
564
+              </el-select>
565
+            </el-form-item>
566
+          </el-col>
567
+          
568
+          <el-col :span="8">
569
+            <el-form-item label="预计进食量:" v-if="isShow('预计进食量')">
570
+             <el-input v-model="assessmentBeforeDislysis.estimated_food_intake"></el-input>
571
+            </el-form-item>
572
+          </el-col>
546 573
          
547 574
           <el-col :span="24">
548 575
             <el-form-item label="备注: ">
@@ -705,8 +732,11 @@
705 732
           thromubus_type:"",
706 733
           thrombus_av:"",
707 734
           thromubus_a:"",
708
-          thromubus_v:""
709
-
735
+          thromubus_v:"",
736
+          dehydration:"",
737
+          pre_dialysis_drugs:"",
738
+          period:"",
739
+          estimated_food_intake:"",
710 740
         },
711 741
 
712 742
         InnerDialogProps: {
@@ -798,6 +828,12 @@
798 828
           if (this.lastPredialysisEvaluation.is_infect == 2) {
799 829
             this.lastPredialysisEvaluation.is_infect = "2"
800 830
           }
831
+          if(this.lastPredialysisEvaluation.period == 1){
832
+             this.lastPredialysisEvaluation.period = "1"
833
+          }
834
+          if(this.lastPredialysisEvaluation.period == 2){
835
+             this.lastPredialysisEvaluation.period = "2"
836
+          }
801 837
         }
802 838
 
803 839
 
@@ -1045,6 +1081,7 @@
1045 1081
             this.InnerDialogProps.isShowTextArea = false
1046 1082
 
1047 1083
             break
1084
+         
1048 1085
         }
1049 1086
       },
1050 1087
       innerDialogComfirm: function(val) {

+ 5 - 0
src/xt_pages/dialysis/details/dialog/computer_dialog.vue View File

@@ -211,6 +211,7 @@
211 211
       changeSchedualType: function(schedual_type) {
212 212
         let ParamsQuery = {}
213 213
         ParamsQuery['schedual_type'] = schedual_type
214
+        ParamsQuery['record_date'] = this.$route.query.date
214 215
         GetSchedualNumber(ParamsQuery).then(response => {
215 216
           if (response.data.state == 0) {
216 217
             return false
@@ -230,6 +231,10 @@
230 231
       GetSchedualNumber: function() {
231 232
         let ParamsQuery = {}
232 233
         ParamsQuery['schedual_type'] = this.schedual_type
234
+        ParamsQuery['record_date'] = this.$route.query.date
235
+        console.log("列表33333333333333333333",ParamsQuery)
236
+        // console.log("路由",this.$route.query.date)
237
+       
233 238
         GetSchedualNumber(ParamsQuery).then(response => {
234 239
           if (response.data.state == 0) {
235 240
             this.$message.error(response.data.msg)

+ 48 - 14
src/xt_pages/dialysis/details/dialog/dialysisPrescriptionDialog.vue View File

@@ -67,7 +67,7 @@
67 67
 
68 68
 
69 69
            <el-col :span="8"
70
-                  v-if="isShows('预冲量') && (this.$store.getters.xt_user.template_info.template_id == 17 || this.$store.getters.xt_user.template_info.template_id == 9 || this.$store.getters.xt_user.template_info.template_id == 20 || this.$store.getters.xt_user.template_info.template_id == 21 || this.$store.getters.xt_user.template_info.template_id == 22 || this.$store.getters.xt_user.template_info.template_id == 23)">
70
+                  v-if="isShows('预冲量') && (this.$store.getters.xt_user.template_info.template_id == 17 || this.$store.getters.xt_user.template_info.template_id == 9 || this.$store.getters.xt_user.template_info.template_id == 20 || this.$store.getters.xt_user.template_info.template_id == 21 || this.$store.getters.xt_user.template_info.template_id == 22 || this.$store.getters.xt_user.template_info.template_id == 23 || this.$store.getters.xt_user.template_info.template_id == 36)">
71 71
             <el-form-item label="预冲量(ml):">
72 72
               <el-input
73 73
                 type="number"
@@ -77,7 +77,7 @@
77 77
           </el-col>
78 78
 
79 79
           <el-col :span="8"
80
-                  v-if="isShows('预冲量')  && this.$store.getters.xt_user.template_info.template_id != 17 && this.$store.getters.xt_user.template_info.template_id != 9 && this.$store.getters.xt_user.template_info.template_id != 20 && this.$store.getters.xt_user.template_info.template_id != 21 && this.$store.getters.xt_user.template_info.template_id != 22 && this.$store.getters.xt_user.template_info.template_id !=23">
80
+                  v-if="isShows('预冲量')  && this.$store.getters.xt_user.template_info.template_id != 17 && this.$store.getters.xt_user.template_info.template_id != 9 && this.$store.getters.xt_user.template_info.template_id != 20 && this.$store.getters.xt_user.template_info.template_id != 21 && this.$store.getters.xt_user.template_info.template_id != 22 && this.$store.getters.xt_user.template_info.template_id !=23 && this.$store.getters.xt_user.template_info.template_id !=36">
81 81
             <el-form-item label="预冲量(L):">
82 82
               <el-input
83 83
                 type="number"
@@ -87,7 +87,7 @@
87 87
           </el-col>
88 88
 
89 89
           <el-col :span="8"
90
-                  v-if="isShows('目标超滤量') && (this.$store.getters.xt_user.template_info.template_id == 17 || this.$store.getters.xt_user.template_info.template_id == 9 || this.$store.getters.xt_user.template_info.template_id == 20 || this.$store.getters.xt_user.template_info.template_id == 21 || this.$store.getters.xt_user.template_info.template_id == 22  || this.$store.getters.xt_user.template_info.template_id == 23 || this.$store.getters.xt_user.template_info.template_id == 24 || this.$store.getters.xt_user.template_info.template_id == 26 || this.$store.getters.xt_user.template_info.template_id == 28  || this.$store.getters.xt_user.template_info.template_id == 27 || this.$store.getters.xt_user.template_info.template_id == 29 || this.$store.getters.xt_user.template_info.template_id == 30 || this.$store.getters.xt_user.template_info.template_id == 31 || this.$store.getters.xt_user.template_info.template_id == 32 || this.$store.getters.xt_user.template_info.template_id == 34 || this.$store.getters.xt_user.template_info.org_id == 9555 )">
90
+                  v-if="isShows('目标超滤量') && (this.$store.getters.xt_user.template_info.template_id == 17 || this.$store.getters.xt_user.template_info.template_id == 9 || this.$store.getters.xt_user.template_info.template_id == 20 || this.$store.getters.xt_user.template_info.template_id == 21 || this.$store.getters.xt_user.template_info.template_id == 22  || this.$store.getters.xt_user.template_info.template_id == 23 || this.$store.getters.xt_user.template_info.template_id == 24 || this.$store.getters.xt_user.template_info.template_id == 26 || this.$store.getters.xt_user.template_info.template_id == 28  || this.$store.getters.xt_user.template_info.template_id == 27 || this.$store.getters.xt_user.template_info.template_id == 29 || this.$store.getters.xt_user.template_info.template_id == 30 || this.$store.getters.xt_user.template_info.template_id == 31 || this.$store.getters.xt_user.template_info.template_id == 32 || this.$store.getters.xt_user.template_info.template_id == 34 || this.$store.getters.xt_user.template_info.template_id == 36 || this.$store.getters.xt_user.template_info.template_id == 38 || this.$store.getters.xt_user.template_info.org_id == 9555 )">
91 91
             <el-form-item label="目标超滤量(ml):">
92 92
               <el-input
93 93
                 type="number"
@@ -97,7 +97,7 @@
97 97
           </el-col>
98 98
 
99 99
           <el-col :span="8"
100
-                  v-if="isShows('目标超滤量')  && this.$store.getters.xt_user.template_info.template_id != 17 && this.$store.getters.xt_user.template_info.template_id != 9 && this.$store.getters.xt_user.template_info.template_id != 20 && this.$store.getters.xt_user.template_info.template_id != 21 && this.$store.getters.xt_user.template_info.template_id != 22 && this.$store.getters.xt_user.template_info.template_id != 23 && this.$store.getters.xt_user.template_info.template_id != 24 && this.$store.getters.xt_user.template_info.template_id != 26 && this.$store.getters.xt_user.template_info.template_id != 28 && this.$store.getters.xt_user.template_info.template_id != 27 && this.$store.getters.xt_user.template_info.template_id != 29 && this.$store.getters.xt_user.template_info.template_id != 30 && this.$store.getters.xt_user.template_info.template_id != 31 && this.$store.getters.xt_user.template_info.template_id != 32 && this.$store.getters.xt_user.template_info.template_id != 34 && this.$store.getters.xt_user.template_info.org_id != 9555 ">
100
+                  v-if="isShows('目标超滤量')  && this.$store.getters.xt_user.template_info.template_id != 17 && this.$store.getters.xt_user.template_info.template_id != 9 && this.$store.getters.xt_user.template_info.template_id != 20 && this.$store.getters.xt_user.template_info.template_id != 21 && this.$store.getters.xt_user.template_info.template_id != 22 && this.$store.getters.xt_user.template_info.template_id != 23 && this.$store.getters.xt_user.template_info.template_id != 24 && this.$store.getters.xt_user.template_info.template_id != 26 && this.$store.getters.xt_user.template_info.template_id != 28 && this.$store.getters.xt_user.template_info.template_id != 27 && this.$store.getters.xt_user.template_info.template_id != 29 && this.$store.getters.xt_user.template_info.template_id != 30 && this.$store.getters.xt_user.template_info.template_id != 31 && this.$store.getters.xt_user.template_info.template_id != 32 && this.$store.getters.xt_user.template_info.template_id != 34 && this.$store.getters.xt_user.template_info.template_id != 36 && this.$store.getters.xt_user.template_info.template_id != 38 && this.$store.getters.xt_user.template_info.org_id != 9555 ">
101 101
             <el-form-item label="目标超滤量(L):">
102 102
               <el-input
103 103
                 type="number"
@@ -525,6 +525,28 @@
525 525
 
526 526
             </el-form-item>
527 527
           </el-col>
528
+               
529
+          
530
+          <el-col :span="8" v-if="isShows('病情')">
531
+             <el-form-item label="病情:">
532
+                <el-select v-model="dialysisPrescription.illness" placeholder="请选择">
533
+                <el-option :key="0" label="请选择" :value="0"></el-option>
534
+                <el-option
535
+                  v-for="(item, index) in  illnessList "
536
+                  :key="index"
537
+                  :label="item.name"
538
+                  :value="item.id"
539
+                ></el-option>
540
+              </el-select>
541
+             </el-form-item>
542
+          </el-col>
543
+
544
+          <el-col :span="8" v-if="isShows('葡萄糖')">
545
+             <el-form-item label="葡萄糖:">
546
+                <el-input v-model="dialysisPrescription.amylaceum"></el-input>
547
+             </el-form-item>
548
+          </el-col>
549
+
528 550
         </el-row>
529 551
 
530 552
         <el-row :gutter="20">
@@ -1018,6 +1040,8 @@
1018 1040
           irrigation:"",
1019 1041
           antioxidant_commodity_name:"",
1020 1042
           displace_speed:"",
1043
+          illness:"",
1044
+          amylaceum:"",
1021 1045
         },
1022 1046
 
1023 1047
         anticoagulant: {
@@ -1041,6 +1065,7 @@
1041 1065
         bloods:[],
1042 1066
         irrigations:[],
1043 1067
         dialyzers:[],
1068
+        illnessList:[]
1044 1069
       }
1045 1070
     },
1046 1071
     methods: {
@@ -1248,7 +1273,7 @@
1248 1273
           'hemodialysis',
1249 1274
           'blood'
1250 1275
         )
1251
-        console.log("抽血-----",this.bloods)
1276
+      
1252 1277
       //  dialyzerPerfusionApparatus.map(item => {
1253 1278
       //    item.name = item.name.toUpperCase()
1254 1279
       //  })
@@ -1290,6 +1315,7 @@
1290 1315
         } else {
1291 1316
 
1292 1317
           if (schedual.mode_id == 2 ||schedual.mode_id == 5 ||schedual.mode_id == 12) {
1318
+            
1293 1319
             this.zhiShow = true
1294 1320
             this.huShow = true
1295 1321
             this.totalShow = true
@@ -1592,7 +1618,7 @@
1592 1618
         return uParseTime(val, '{y}-{m}-{d} {h}:{i}')
1593 1619
       },
1594 1620
       show(pre,schedual,last,his_is_open) {
1595
-
1621
+        
1596 1622
         if(his_is_open == 1){
1597 1623
           this.is_open = 0
1598 1624
         }
@@ -1616,13 +1642,16 @@
1616 1642
         if (minites < 10) {
1617 1643
           minites = '0' + minites
1618 1644
         }
1619
-
1620
-        if(schedual.schedule_type == 1){
1621
-          this.start_time = year +"-"+month +"-"+day +" " + "07:00"
1622
-        }else if(schedual.schedule_type == 2){
1623
-          this.start_time = year +"-"+month +"-"+day +" " + "12:00"
1624
-        }else if(schedual.schedule_type ==3){
1625
-          this.start_time = year +"-"+month +"-"+day +" " + "18:00"
1645
+        if(this.$store.getters.xt_user.org.id == 10016){
1646
+          this.start_time = year +"-"+month +"-"+day +" " + hours + ':' + minites
1647
+        }else{
1648
+          if(schedual.schedule_type == 1){
1649
+            this.start_time = year +"-"+month +"-"+day +" " + "07:00"
1650
+          }else if(schedual.schedule_type == 2){
1651
+            this.start_time = year +"-"+month +"-"+day +" " + "12:00"
1652
+          }else if(schedual.schedule_type ==3){
1653
+            this.start_time = year +"-"+month +"-"+day +" " + "18:00"
1654
+          }
1626 1655
         }
1627 1656
 
1628 1657
         if (pre.anticoagulant == 3) {
@@ -1631,7 +1660,7 @@
1631 1660
         // 入口
1632 1661
         var pre = pre
1633 1662
         this.dialysisPrescription.mode_id = this.$route.query.mode_id
1634
-        if (pre.mode_id == 2 || pre.mode_id == 5 || pre.mode_id == 12) {
1663
+        if (pre.mode_id == 2 || pre.mode_id == 5 || pre.mode_id == 12 || this.schedual.mode_id == 2 || this.schedual.mode_id == 5 || this.schedual.mode_id == 12) {
1635 1664
           this.zhiShow = true
1636 1665
           this.huShow = true
1637 1666
           this.totalShow = true
@@ -2869,6 +2898,7 @@
2869 2898
             this.$message.error(response.data.msg)
2870 2899
             return false
2871 2900
           } else {
2901
+            console.log("切换数据", response.data.data.solution)
2872 2902
             this.$message.success('切换成功')
2873 2903
             if (response.data.data.solution != null) {
2874 2904
               for (const key in response.data.data.solution) {
@@ -3523,6 +3553,10 @@
3523 3553
         console.log("透析器",this.dialyzers)
3524 3554
         console.log("灌流器",this.irrigations)
3525 3555
       }
3556
+    },
3557
+    created(){
3558
+      this.illnessList = getDataConfig('hemodialysis','illness')
3559
+      console.log("列表22222222222",this.illnessList)
3526 3560
     }
3527 3561
   }
3528 3562
 </script>

+ 307 - 225
src/xt_pages/dialysis/details/dialog/monitor_dialog.vue View File

@@ -164,6 +164,8 @@
164 164
                   template_id == 32 ||
165 165
                   template_id == 34 ||
166 166
                   template_id == 35 ||
167
+                  template_id == 36 ||
168
+                  template_id == 38 ||
167 169
                   org_id == 9555)
168 170
             "
169 171
           >
@@ -204,6 +206,8 @@
204 206
                 template_id != 32 &&
205 207
                 template_id != 34 &&
206 208
                 template_id != 35 &&
209
+                template_id != 36 &&
210
+                template_id != 38 &&
207 211
                 org_id!=9555
208 212
             "
209 213
           >
@@ -221,7 +225,7 @@
221 225
             align="center"
222 226
             label="超滤率(ml/h)"
223 227
             width="100"
224
-            v-if="isShow('超滤率') && (template_id == 6 || template_id == 10 || template_id == 11 || template_id == 12 || template_id == 13 || template_id == 17 || template_id == 18 || template_id == 19 || template_id == 20 || template_id == 21 || template_id == 22 || template_id == 23 || template_id == 24 || template_id == 26 || template_id == 29 || template_id == 30 || template_id == 31 || template_id == 34 || template_id == 35) "
228
+            v-if="isShow('超滤率') && (template_id == 6 || template_id == 10 || template_id == 11 || template_id == 12 || template_id == 13 || template_id == 17 || template_id == 18 || template_id == 19 || template_id == 20 || template_id == 21 || template_id == 22 || template_id == 23 || template_id == 24 || template_id == 26 || template_id == 29 || template_id == 30 || template_id == 31 || template_id == 34 || template_id == 35 || template_id == 38) "
225 229
           >
226 230
             <template slot-scope="scope">
227 231
               {{ scope.row.ultrafiltration_rate ? scope.row.ultrafiltration_rate : ""  }}
@@ -232,7 +236,7 @@
232 236
             align="center"
233 237
             label="超滤率(L/h)"
234 238
             width="100"
235
-            v-if="isShow('超滤率') && template_id != 6 && template_id != 10 && template_id != 11 && template_id != 12 && template_id != 13 && template_id != 17 && template_id != 18 && template_id != 19 && template_id != 20 && template_id != 21 && template_id != 22  && template_id != 23 && template_id != 24 && template_id != 26 && template_id != 29 && template_id != 30 && template_id != 31 && template_id != 34 && template_id != 35"
239
+            v-if="isShow('超滤率') && template_id != 6 && template_id != 10 && template_id != 11 && template_id != 12 && template_id != 13 && template_id != 17 && template_id != 18 && template_id != 19 && template_id != 20 && template_id != 21 && template_id != 22  && template_id != 23 && template_id != 24 && template_id != 26 && template_id != 29 && template_id != 30 && template_id != 31 && template_id != 34 && template_id != 35 && template_id != 38"
236 240
           >
237 241
             <template slot-scope="scope">
238 242
               {{ scope.row.ultrafiltration_rate ? scope.row.ultrafiltration_rate : ""  }}
@@ -370,7 +374,7 @@
370 374
           </el-table-column>
371 375
 
372 376
 
373
-          
377
+
374 378
 
375 379
           <el-table-column
376 380
             prop="heparin"
@@ -385,12 +389,12 @@
385 389
           <el-table-column
386 390
             prop="heparin"
387 391
             align="center"
388
-            label="抗凝剂" 
392
+            label="抗凝剂"
389 393
             width="140"
390 394
             v-if="isShow('抗凝剂')"
391 395
           >
392 396
             <template slot-scope="scope">
393
-             <span v-if="scope.row.monitor_anticoagulant == 1">无肝素</span> 
397
+             <span v-if="scope.row.monitor_anticoagulant == 1">无肝素</span>
394 398
              <span v-if="scope.row.monitor_anticoagulant == 2">普通肝素</span>
395 399
              <span v-if="scope.row.monitor_anticoagulant == 3">低分子肝素</span>
396 400
              <span v-if="scope.row.monitor_anticoagulant == 4">阿加曲班</span>
@@ -400,10 +404,37 @@
400 404
              <span v-if="scope.row.monitor_anticoagulant == 8">依诺肝素</span>
401 405
              <span v-if="scope.row.monitor_anticoagulant == 9">达肝素</span>
402 406
              <span v-if="scope.row.monitor_anticoagulant_value!=''">({{ scope.row.monitor_anticoagulant_value ? scope.row.monitor_anticoagulant_value : ""  }})</span>
403
-             
407
+
404 408
             </template>
405 409
           </el-table-column>
406 410
 
411
+
412
+          <el-table-column
413
+            prop="heparin"
414
+            align="center"
415
+            label="血压监测部位"
416
+            width="140"
417
+            v-if="isShow('血压监测部位')"
418
+          >
419
+           <template slot-scope="scope">
420
+               {{ getBloodPressure(scope.row.blood_pressure_monitoring_site)}}
421
+           </template>
422
+          </el-table-column>
423
+
424
+
425
+          <el-table-column
426
+            prop="heparin"
427
+            align="center"
428
+            label="并发症"
429
+            width="140"
430
+            v-if="isShow('并发症')"
431
+          >
432
+           <template slot-scope="scope">
433
+              {{getComplication(scope.row.complication)}}
434
+           </template>
435
+          </el-table-column>
436
+
437
+
407 438
            <el-table-column
408 439
             prop="heparin"
409 440
             align="center"
@@ -424,7 +455,7 @@
424 455
             v-if="isShow('病情变化')"
425 456
           >
426 457
           </el-table-column>
427
-          
458
+
428 459
           <el-table-column
429 460
             prop="dispose"
430 461
             align="center"
@@ -556,7 +587,7 @@
556 587
 
557 588
           <el-col
558 589
             :span="8"
559
-            v-if=" isShow('超滤量') && (template_id == 6 || template_id == 9 || template_id == 10 || template_id == 11 || template_id == 12 || template_id == 13 || template_id == 17 || template_id == 18 || template_id == 19 || template_id == 20 || template_id == 21 || template_id == 22 || template_id == 23 || template_id == 24 || template_id == 26 || template_id == 27 || template_id == 29 || template_id == 30 || template_id == 31 || template_id == 32 || template_id == 34 || template_id == 35 || org_id == 9555) " >
590
+            v-if=" isShow('超滤量') && (template_id == 6 || template_id == 9 || template_id == 10 || template_id == 11 || template_id == 12 || template_id == 13 || template_id == 17 || template_id == 18 || template_id == 19 || template_id == 20 || template_id == 21 || template_id == 22 || template_id == 23 || template_id == 24 || template_id == 26 || template_id == 27 || template_id == 29 || template_id == 30 || template_id == 31 || template_id == 32 || template_id == 34 || template_id == 35 || template_id == 36 || org_id == 9555) " >
560 591
             <el-form-item label="超滤量(ml):">
561 592
               <el-input v-model="form.ultrafiltration_volume"></el-input>
562 593
             </el-form-item>
@@ -564,7 +595,7 @@
564 595
 
565 596
           <el-col
566 597
             :span="8"
567
-            v-if=" isShow('超滤量') && template_id != 6 && template_id !=9 && template_id != 10 && template_id != 11 && template_id != 12 && template_id != 13 && template_id != 17 && template_id != 18 && template_id != 19 && template_id != 20 && template_id != 21 && template_id != 22 && template_id != 23 && template_id != 24 && template_id != 26 && template_id!=27 && template_id!=29 && template_id!=30 && template_id!=31 && template_id!=32 && template_id!=34 && template_id!=35 && org_id !=9555" >
598
+            v-if=" isShow('超滤量') && template_id != 6 && template_id !=9 && template_id != 10 && template_id != 11 && template_id != 12 && template_id != 13 && template_id != 17 && template_id != 18 && template_id != 19 && template_id != 20 && template_id != 21 && template_id != 22 && template_id != 23 && template_id != 24 && template_id != 26 && template_id!=27 && template_id!=29 && template_id!=30 && template_id!=31 && template_id!=32 && template_id!=34 && template_id!=35 && template_id!=36 && org_id !=9555" >
568 599
             <el-form-item label="超滤量(L):">
569 600
               <el-input v-model="form.ultrafiltration_volume"></el-input>
570 601
             </el-form-item>
@@ -656,7 +687,29 @@
656 687
             </el-form-item>
657 688
           </el-col>
658 689
 
659
-      
690
+         <el-col :span="8" v-if="isShow('血压监测部位')">
691
+            <el-form-item label="血压监测部位:">
692
+              <div style="display:flex;">
693
+                <el-select v-model="form.blood_pressure_monitoring_site" placeholder="请选择" style="width:50%;">
694
+                  <el-option v-for="(item, index) in bloodPressureMmonitoringSite" :label="item.name" :key="index + 'e'" :value="item.id"></el-option>
695
+                </el-select>
696
+                </div>
697
+            </el-form-item>
698
+         </el-col>
699
+
700
+
701
+           <el-col :span="8" v-if="isShow('并发症')">
702
+            <el-form-item label="并发症">
703
+              <div style="display:flex;">
704
+                <el-select v-model="form.complication" placeholder="请选择" style="width:50%;">
705
+                  <el-option v-for="(item, index) in complicationList" :label="item.name" :key="index + 'e'" :value="item.id"></el-option>
706
+                </el-select>
707
+                </div>
708
+            </el-form-item>
709
+         </el-col>
710
+
711
+
712
+
660 713
           <!-- </el-row>
661 714
 
662 715
           <el-row :gutter="20"> -->
@@ -843,10 +896,12 @@ export default {
843 896
         dispose: '', // 处理
844 897
         result: '', // 结果,
845 898
         blood_oxygen_saturation: '',
846
-        urr:'', 
899
+        urr:'',
847 900
         blood_sugar:'',//血糖
848 901
         monitor_anticoagulant:'',
849 902
         monitor_anticoagulant_value:"",
903
+        blood_pressure_monitoring_site:"",
904
+        complication:""
850 905
       },
851 906
 
852 907
       table_current_row: null,
@@ -860,7 +915,9 @@ export default {
860 915
       valueOne: 0,
861 916
       valueTwo: 0,
862 917
       valueThree: 0,
863
-      anticoagulantsConfit:{}
918
+      anticoagulantsConfit:{},
919
+      bloodPressureMmonitoringSite:[],
920
+      complicationList:[],
864 921
     }
865 922
   },
866 923
   props: {
@@ -874,20 +931,23 @@ export default {
874 931
     }
875 932
   },
876 933
   created() {
877
-    this.template_id = this.$store.getters.xt_user.template_info.template_id
878
-    this.org_id = this.$store.getters.xt_user.template_info.org_id
879
-    var date = this.$route.query.date
880
-    var patient_id = this.$route.query.patient_id
881
-    this.patient_id = patient_id
882
-    this.schedule_date = date
883
-    this.form.monitoring_date = date
934
+    this.template_id = this.$store.getters.xt_user.template_info.template_id;
935
+    this.org_id = this.$store.getters.xt_user.template_info.org_id;
936
+    var date = this.$route.query.date;
937
+    var patient_id = this.$route.query.patient_id;
938
+    this.patient_id = patient_id;
939
+    this.schedule_date = date;
940
+    this.form.monitoring_date = date;
884 941
     // this.form.operate_date = parseInt((new Date()).getTime() / 1000)
885 942
     // this.form.monitoring_time = parseTime(new Date(), "{h}:{i}")
886
-    this.form.operate_time = new Date().getTime()
887
-    var symptoms = getDataConfig('hemodialysis', 'symptoms')
888
-    console.log("sysmptoms3333333333",symptoms)
889
-    this.anticoagulantsConfit = this.$store.getters.anticoagulants_confit
890
-    console.log("抗凝剂",this.anticoagulantsConfit)
943
+    this.form.operate_time = new Date().getTime();
944
+    var symptoms = getDataConfig('hemodialysis', 'symptoms');
945
+    console.log("sysmptoms3333333333",symptoms);
946
+    this.anticoagulantsConfit = this.$store.getters.anticoagulants_confit;
947
+    //console.log("抗凝剂",this.anticoagulantsConfit)
948
+    this.bloodPressureMmonitoringSite = getDataConfig('hemodialysis','blood_pressure_monitoring_site');
949
+    this.complicationList = getDataConfig('hemodialysis','complication')
950
+
891 951
   },
892 952
   methods: {
893 953
     venousPressureChange(type) {
@@ -971,7 +1031,7 @@ export default {
971 1031
     },
972 1032
 
973 1033
     isShow(name) {
974
-      var filedList = store.getters.xt_user.fileds
1034
+      var filedList = store.getters.xt_user.fileds;
975 1035
       for (let i = 0; i < filedList.length; i++) {
976 1036
         if (filedList[i].module == 4 && filedList[i].filed_name_cn == name && filedList[i].is_show == 1) {
977 1037
           return true
@@ -983,7 +1043,7 @@ export default {
983 1043
       this.cancelEditAction()
984 1044
     },
985 1045
     show() {
986
-      this.getPermission()
1046
+      this.getPermission();
987 1047
       this.visible = true
988 1048
     },
989 1049
     hide() {
@@ -994,67 +1054,67 @@ export default {
994 1054
     },
995 1055
 
996 1056
     newRecordAction: function() {
997
-      this.setEditMonitor(null)
998
-      this.$refs.table.setCurrentRow(null)
999
-      this.edit = true
1000
-      this.isAdd = true
1057
+      this.setEditMonitor(null);
1058
+      this.$refs.table.setCurrentRow(null);
1059
+      this.edit = true;
1060
+      this.isAdd = true;
1001 1061
       this.getLastRecordTody()
1002 1062
     },
1003 1063
     getLastRecordTody() {
1004 1064
       const params = {
1005 1065
         patient_id: this.patient_id
1006
-      }
1066
+      };
1007 1067
 
1008 1068
       getTodayMonitor(params).then(rs => {
1009
-        console.log("机构ID",this.org_id)
1010
-        
1011
-        var resp = rs.data.data
1012
-       
1013
-        this.form.operate_time = resp.monitor.operate_time ? (resp.monitor.operate_time + 3600) * 1000 : Date.parse(new Date())
1014
-        this.form.temperature = '' // this.last_monitor_record.pulse_frequency;
1015
-
1016
-        this.form.pulse_frequency = '' // this.last_monitor_record.pulse_frequency;
1017
-        this.form.breathing_rated =  resp.monitor.breathing_rated ? resp.monitor.breathing_rated : ''
1018
-        this.form.systolic_bp = '' // this.last_monitor_record.systolic_blood_pressure;
1019
-        this.form.diastolic_bp = '' // this.last_monitor_record.diastolic_blood_pressure;
1020
-        this.form.blood_flow_volume = resp.monitor.blood_flow_volume ? resp.monitor.blood_flow_volume : ''
1069
+        console.log("机构ID",this.org_id);
1070
+
1071
+        var resp = rs.data.data;
1072
+
1073
+        this.form.operate_time = resp.monitor.operate_time ? (resp.monitor.operate_time + 3600) * 1000 : Date.parse(new Date());
1074
+        this.form.temperature = ''; // this.last_monitor_record.pulse_frequency;
1075
+
1076
+        this.form.pulse_frequency = ''; // this.last_monitor_record.pulse_frequency;
1077
+        this.form.breathing_rated =  resp.monitor.breathing_rated ? resp.monitor.breathing_rated : '';
1078
+        this.form.systolic_bp = ''; // this.last_monitor_record.systolic_blood_pressure;
1079
+        this.form.diastolic_bp = ''; // this.last_monitor_record.diastolic_blood_pressure;
1080
+        this.form.blood_flow_volume = resp.monitor.blood_flow_volume ? resp.monitor.blood_flow_volume : '';
1021 1081
         // 静脉压
1022 1082
         if(this.org_id == 10060){
1023 1083
           this.form.venous_pressure = resp.monitor.venous_pressure
1024 1084
         }else{
1025 1085
           this.form.venous_pressure = '' // this.last_monitor_record.venous_pressure;
1026 1086
         }
1027
-        
1028
-        this.form.venous_pressure_type = resp.monitor.venous_pressure_type ? resp.monitor.venous_pressure_type : 1
1029
-        this.form.arterial_pressure = resp.monitor.arterial_pressure ? resp.monitor.arterial_pressure : '' // this.last_monitor_record.arterial_pressure;
1030
-        this.form.arterial_pressure_type = resp.monitor.arterial_pressure_type ? resp.monitor.arterial_pressure_type : 1
1087
+
1088
+        this.form.venous_pressure_type = resp.monitor.venous_pressure_type ? resp.monitor.venous_pressure_type : 1;
1089
+        this.form.arterial_pressure = resp.monitor.arterial_pressure ? resp.monitor.arterial_pressure : ''; // this.last_monitor_record.arterial_pressure;
1090
+        this.form.arterial_pressure_type = resp.monitor.arterial_pressure_type ? resp.monitor.arterial_pressure_type : 1;
1031 1091
         if(this.org_id == 10060){
1032 1092
           this.form.transmembrane_pressure = resp.monitor.transmembrane_pressure;
1033 1093
         }else{
1034 1094
           this.form.transmembrane_pressure = '' // this.last_monitor_record.transmembrane_pressure;
1035 1095
         }
1036
-        this.form.transmembrane_pressure_type = resp.monitor.transmembrane_pressure_type ? resp.monitor.transmembrane_pressure_type : 1
1037
-        this.form.ultrafiltration_rate = resp.monitor.ultrafiltration_rate ? resp.monitor.ultrafiltration_rate : ''
1038
-        this.form.ultrafiltration_volume = resp.monitor.ultrafiltration_volume ? resp.monitor.ultrafiltration_volume : ''
1039
-        this.form.sodium_concentration = resp.monitor.sodium_concentration ? resp.monitor.sodium_concentration : ''
1040
-        this.form.dialysate_temperature = resp.monitor.dialysate_temperature ? resp.monitor.dialysate_temperature : ''
1041
-        this.form.temperature =  resp.monitor.temperature ? resp.monitor.temperature : ''
1042
-        this.form.replacement_rate = resp.monitor.replacement_rate ? resp.monitor.replacement_rate : ''
1043
-        this.form.heparin = resp.monitor.heparin ? resp.monitor.heparin : ''
1044
-        this.form.dialysate_flow = resp.monitor.dialysate_flow ? resp.monitor.dialysate_flow : ''
1045
-        this.form.displacement_quantity =  resp.monitor.displacement_quantity ? resp.monitor.displacement_quantity : '' // this.last_monitor_record.displacement_quantity;
1046
-        this.form.conductivity =   ''
1047
-        this.form.displacement_flow_quantity = resp.monitor.displacement_flow_quantity ? resp.monitor.displacement_flow_quantity : ''
1048
-        this.form.ktv =  resp.monitor.ktv ? resp.monitor.ktv : '' // this.last_monitor_record.ktv;
1049
-        this.form.symptom =  resp.monitor.symptom ? resp.monitor.symptom : '' // this.last_monitor_record.symptom;
1050
-        this.form.dispose =  resp.monitor.dispose ? resp.monitor.dispose : '' // this.last_monitor_record.dispose;
1051
-        this.form.result =  resp.monitor.result ? resp.monitor.result : '' // this.last_monitor_record.result;
1052
-        this.form.blood_oxygen_saturation = resp.monitor.blood_oxygen_saturation ? resp.monitor.blood_oxygen_saturation : ''
1053
-        this.form.urr = resp.monitor.urr?resp.monitor.urr:''
1054
-        this.form.blood_sugar = resp.monitor.blood_sugar?resp.monitor.blood_sugar:''
1055
-        this.form.sodium_concentration = resp.monitor.sodium_concentration?resp.monitor.sodium_concentration:''
1056
-        this.form.conductivity = resp.monitor.conductivity?resp.monitor.conductivity:''
1057
-        this.form.monitor_anticoagulant = resp.monitor.monitor_anticoagulant?resp.monitor.monitor_anticoagulant:""
1096
+        this.form.transmembrane_pressure_type = resp.monitor.transmembrane_pressure_type ? resp.monitor.transmembrane_pressure_type : 1;
1097
+        this.form.ultrafiltration_rate = resp.monitor.ultrafiltration_rate ? resp.monitor.ultrafiltration_rate : '';
1098
+        this.form.ultrafiltration_volume = resp.monitor.ultrafiltration_volume ? resp.monitor.ultrafiltration_volume : '';
1099
+        this.form.sodium_concentration = resp.monitor.sodium_concentration ? resp.monitor.sodium_concentration : '';
1100
+        this.form.dialysate_temperature = resp.monitor.dialysate_temperature ? resp.monitor.dialysate_temperature : '';
1101
+        this.form.temperature =  resp.monitor.temperature ? resp.monitor.temperature : '';
1102
+        this.form.replacement_rate = resp.monitor.replacement_rate ? resp.monitor.replacement_rate : '';
1103
+        this.form.heparin = resp.monitor.heparin ? resp.monitor.heparin : '';
1104
+        this.form.dialysate_flow = resp.monitor.dialysate_flow ? resp.monitor.dialysate_flow : '';
1105
+        this.form.displacement_quantity =  resp.monitor.displacement_quantity ? resp.monitor.displacement_quantity : ''; // this.last_monitor_record.displacement_quantity;
1106
+        this.form.conductivity =   '';
1107
+        this.form.displacement_flow_quantity = resp.monitor.displacement_flow_quantity ? resp.monitor.displacement_flow_quantity : '';
1108
+        this.form.ktv =  resp.monitor.ktv ? resp.monitor.ktv : ''; // this.last_monitor_record.ktv;
1109
+        this.form.symptom =  resp.monitor.symptom ? resp.monitor.symptom : ''; // this.last_monitor_record.symptom;
1110
+        this.form.dispose =  resp.monitor.dispose ? resp.monitor.dispose : ''; // this.last_monitor_record.dispose;
1111
+        this.form.result =  resp.monitor.result ? resp.monitor.result : ''; // this.last_monitor_record.result;
1112
+        this.form.blood_oxygen_saturation = resp.monitor.blood_oxygen_saturation ? resp.monitor.blood_oxygen_saturation : '';
1113
+        this.form.urr = resp.monitor.urr?resp.monitor.urr:'';
1114
+        this.form.blood_sugar = resp.monitor.blood_sugar?resp.monitor.blood_sugar:'';
1115
+        this.form.sodium_concentration = resp.monitor.sodium_concentration?resp.monitor.sodium_concentration:'';
1116
+        this.form.conductivity = resp.monitor.conductivity?resp.monitor.conductivity:'';
1117
+        this.form.monitor_anticoagulant = resp.monitor.monitor_anticoagulant?resp.monitor.monitor_anticoagulant:"";
1058 1118
         this.form.monitor_anticoagulant_value = resp.monitor.monitor_anticoagulant_value?resp.monitor.monitor_anticoagulant_value:""
1059 1119
 
1060 1120
       })
@@ -1062,18 +1122,18 @@ export default {
1062 1122
 
1063 1123
     modifyRecordAction: function() {
1064 1124
       if (this.table_current_row == null) {
1065
-        this.$message.error('请选择一条监测记录')
1125
+        this.$message.error('请选择一条监测记录');
1066 1126
         return
1067 1127
       }
1068
-      this.creator = this.table_current_row.creator
1069
-      this.setEditMonitor(this.table_current_row)
1070
-      this.$refs.table.setCurrentRow(null)
1071
-      this.edit = true
1128
+      this.creator = this.table_current_row.creator;
1129
+      this.setEditMonitor(this.table_current_row);
1130
+      this.$refs.table.setCurrentRow(null);
1131
+      this.edit = true;
1072 1132
       this.isAdd = false
1073 1133
     },
1074 1134
     cancelEditAction: function() {
1075
-      this.setEditMonitor(null)
1076
-      this.$refs.table.setCurrentRow(null)
1135
+      this.setEditMonitor(null);
1136
+      this.$refs.table.setCurrentRow(null);
1077 1137
       this.edit = false
1078 1138
     },
1079 1139
     tableCurrentRowChange: function(currentRow) {
@@ -1083,140 +1143,142 @@ export default {
1083 1143
     },
1084 1144
     setEditMonitor: function(monitor) {
1085 1145
       if (monitor == null || monitor == undefined) {
1086
-        this.form.id = 0
1146
+        this.form.id = 0;
1087 1147
         // this.form.operate_date = parseInt((new Date()).getTime() / 1000)
1088 1148
         // this.form.monitoring_time = parseTime(new Date(), "{h}:{i}")
1089
-        this.form.operate_time = new Date().getTime()
1090
-        this.form.systolic_bp = ''
1091
-        this.form.diastolic_bp = ''
1092
-        this.form.pulse_frequency = ''
1093
-        this.form.breathing_rated = ''
1094
-        this.form.blood_flow_volume = ''
1095
-        this.form.temperature = ''
1096
-        this.form.venous_pressure = ''
1097
-        this.form.venous_pressure_type = 1
1098
-        this.form.transmembrane_pressure = ''
1099
-        this.form.transmembrane_pressure_type = 1
1100
-        this.form.ultrafiltration_volume = ''
1101
-        this.form.ultrafiltration_rate = ''
1102
-        this.form.arterial_pressure = ''
1103
-        this.form.arterial_pressure_type = 1
1104
-        this.form.sodium_concentration = ''
1105
-        this.form.dialysate_temperature = ''
1106
-        this.form.replacement_rate = ''
1107
-        this.form.displacement_quantity = ''
1108
-        this.form.conductivity = ''
1109
-        this.form.displacement_flow_quantity = ''
1110
-        this.form.heparin = ''
1111
-        this.form.dialysate_flow = ''
1112
-        this.form.ktv = ''
1113
-        this.form.symptom = ''
1114
-        this.form.dispose = ''
1115
-        this.form.result = ''
1116
-        this.symptom_selecteds = []
1117
-        this.dispose_selecteds = []
1118
-        this.result_selecteds = []
1119
-        this.form.urr = ''
1120
-        this.form.blood_sugar = ''
1121
-        this.form.monitor_anticoagulant = ''
1149
+        this.form.operate_time = new Date().getTime();
1150
+        this.form.systolic_bp = '';
1151
+        this.form.diastolic_bp = '';
1152
+        this.form.pulse_frequency = '';
1153
+        this.form.breathing_rated = '';
1154
+        this.form.blood_flow_volume = '';
1155
+        this.form.temperature = '';
1156
+        this.form.venous_pressure = '';
1157
+        this.form.venous_pressure_type = 1;
1158
+        this.form.transmembrane_pressure = '';
1159
+        this.form.transmembrane_pressure_type = 1;
1160
+        this.form.ultrafiltration_volume = '';
1161
+        this.form.ultrafiltration_rate = '';
1162
+        this.form.arterial_pressure = '';
1163
+        this.form.arterial_pressure_type = 1;
1164
+        this.form.sodium_concentration = '';
1165
+        this.form.dialysate_temperature = '';
1166
+        this.form.replacement_rate = '';
1167
+        this.form.displacement_quantity = '';
1168
+        this.form.conductivity = '';
1169
+        this.form.displacement_flow_quantity = '';
1170
+        this.form.heparin = '';
1171
+        this.form.dialysate_flow = '';
1172
+        this.form.ktv = '';
1173
+        this.form.symptom = '';
1174
+        this.form.dispose = '';
1175
+        this.form.result = '';
1176
+        this.symptom_selecteds = [];
1177
+        this.dispose_selecteds = [];
1178
+        this.result_selecteds = [];
1179
+        this.form.urr = '';
1180
+        this.form.blood_sugar = '';
1181
+        this.form.monitor_anticoagulant = '';
1122 1182
         this.form.monitor_anticoagulant_value = ''
1123 1183
       } else {
1124 1184
         (this.form.id = monitor.id),
1125 1185
         // this.form.operate_date = monitor.operate_date
1126 1186
         // this.form.monitoring_time = monitor.monitoring_time
1127
-        (this.form.operate_time = monitor.operate_time * 1000)
1128
-        this.form.systolic_bp = monitor.systolic_blood_pressure ? monitor.systolic_blood_pressure : ''
1129
-        this.form.temperature = monitor.temperature ? monitor.temperature : ''
1130
-        this.form.diastolic_bp = monitor.diastolic_blood_pressure ? monitor.diastolic_blood_pressure : ''
1131
-        this.form.pulse_frequency = monitor.pulse_frequency ? monitor.pulse_frequency : ''
1132
-        this.form.breathing_rated = monitor.breathing_rate ? monitor.breathing_rate : ''
1133
-        this.form.blood_flow_volume = monitor.blood_flow_volume ? monitor.blood_flow_volume : ''
1134
-        this.form.venous_pressure = monitor.venous_pressure ? monitor.venous_pressure : ''
1135
-        this.form.venous_pressure_type = monitor.venous_pressure_type ? monitor.venous_pressure_type : ''
1136
-        this.form.transmembrane_pressure = monitor.transmembrane_pressure ? monitor.transmembrane_pressure : ''
1137
-        this.form.transmembrane_pressure_type = monitor.transmembrane_pressure_type ? monitor.transmembrane_pressure_type : ''
1138
-        this.form.ultrafiltration_volume = monitor.ultrafiltration_volume ? monitor.ultrafiltration_volume : ''
1139
-        this.form.ultrafiltration_rate = monitor.ultrafiltration_rate ? monitor.ultrafiltration_rate : ''
1140
-        this.form.arterial_pressure = monitor.arterial_pressure ? monitor.arterial_pressure : ''
1141
-        this.form.arterial_pressure_type = monitor.arterial_pressure_type ? monitor.arterial_pressure_type : ''
1142
-        this.form.sodium_concentration = monitor.sodium_concentration ? monitor.sodium_concentration : ''
1143
-        this.form.dialysate_temperature = monitor.dialysate_temperature ? monitor.dialysate_temperature : ''
1144
-        this.form.replacement_rate = monitor.replacement_rate ? monitor.replacement_rate : ''
1145
-        this.form.displacement_quantity = monitor.displacement_quantity ? monitor.displacement_quantity : ''
1146
-        this.form.conductivity = monitor.conductivity ? monitor.conductivity : ''
1147
-        this.form.displacement_flow_quantity = monitor.displacement_flow_quantity ? monitor.displacement_flow_quantity : ''
1148
-        this.form.heparin = monitor.heparin ? monitor.heparin : ''
1149
-        this.form.dialysate_flow = monitor.dialysate_flow ? monitor.dialysate_flow : ''
1150
-
1151
-        this.form.ktv = monitor.ktv ? monitor.ktv : ''
1152
-        this.form.symptom = monitor.symptom
1153
-        this.form.dispose = monitor.dispose
1154
-        this.form.result = monitor.result
1155
-        this.form.blood_oxygen_saturation = monitor.blood_oxygen_saturation
1156
-        this.form.urr = monitor.urr?monitor.urr:''
1157
-        this.form.blood_sugar = monitor.blood_sugar?monitor.blood_sugar:''
1158
-        this.form.monitor_anticoagulant = monitor.monitor_anticoagulant?monitor.monitor_anticoagulant:''
1159
-        this.form.monitor_anticoagulant_value = monitor.monitor_anticoagulant_value?monitor.monitor_anticoagulant_value:""
1187
+        (this.form.operate_time = monitor.operate_time * 1000);
1188
+        this.form.systolic_bp = monitor.systolic_blood_pressure ? monitor.systolic_blood_pressure : '';
1189
+        this.form.temperature = monitor.temperature ? monitor.temperature : '';
1190
+        this.form.diastolic_bp = monitor.diastolic_blood_pressure ? monitor.diastolic_blood_pressure : '';
1191
+        this.form.pulse_frequency = monitor.pulse_frequency ? monitor.pulse_frequency : '';
1192
+        this.form.breathing_rated = monitor.breathing_rate ? monitor.breathing_rate : '';
1193
+        this.form.blood_flow_volume = monitor.blood_flow_volume ? monitor.blood_flow_volume : '';
1194
+        this.form.venous_pressure = monitor.venous_pressure ? monitor.venous_pressure : '';
1195
+        this.form.venous_pressure_type = monitor.venous_pressure_type ? monitor.venous_pressure_type : '';
1196
+        this.form.transmembrane_pressure = monitor.transmembrane_pressure ? monitor.transmembrane_pressure : '';
1197
+        this.form.transmembrane_pressure_type = monitor.transmembrane_pressure_type ? monitor.transmembrane_pressure_type : '';
1198
+        this.form.ultrafiltration_volume = monitor.ultrafiltration_volume ? monitor.ultrafiltration_volume : '';
1199
+        this.form.ultrafiltration_rate = monitor.ultrafiltration_rate ? monitor.ultrafiltration_rate : '';
1200
+        this.form.arterial_pressure = monitor.arterial_pressure ? monitor.arterial_pressure : '';
1201
+        this.form.arterial_pressure_type = monitor.arterial_pressure_type ? monitor.arterial_pressure_type : '';
1202
+        this.form.sodium_concentration = monitor.sodium_concentration ? monitor.sodium_concentration : '';
1203
+        this.form.dialysate_temperature = monitor.dialysate_temperature ? monitor.dialysate_temperature : '';
1204
+        this.form.replacement_rate = monitor.replacement_rate ? monitor.replacement_rate : '';
1205
+        this.form.displacement_quantity = monitor.displacement_quantity ? monitor.displacement_quantity : '';
1206
+        this.form.conductivity = monitor.conductivity ? monitor.conductivity : '';
1207
+        this.form.displacement_flow_quantity = monitor.displacement_flow_quantity ? monitor.displacement_flow_quantity : '';
1208
+        this.form.heparin = monitor.heparin ? monitor.heparin : '';
1209
+        this.form.dialysate_flow = monitor.dialysate_flow ? monitor.dialysate_flow : '';
1210
+
1211
+        this.form.ktv = monitor.ktv ? monitor.ktv : '';
1212
+        this.form.symptom = monitor.symptom;
1213
+        this.form.dispose = monitor.dispose;
1214
+        this.form.result = monitor.result;
1215
+        this.form.blood_oxygen_saturation = monitor.blood_oxygen_saturation;
1216
+        this.form.urr = monitor.urr?monitor.urr:'';
1217
+        this.form.blood_sugar = monitor.blood_sugar?monitor.blood_sugar:'';
1218
+        this.form.monitor_anticoagulant = monitor.monitor_anticoagulant?monitor.monitor_anticoagulant:'';
1219
+        this.form.monitor_anticoagulant_value = monitor.monitor_anticoagulant_value?monitor.monitor_anticoagulant_value:"";
1160 1220
         // 设置三个下拉框的值,直接调用事件偷懒
1161
-        this.symptomTextareaBlur()
1162
-        this.disposeTextareaBlur()
1221
+        this.symptomTextareaBlur();
1222
+        this.disposeTextareaBlur();
1163 1223
         this.resultTextareaBlur()
1164 1224
       }
1165 1225
     },
1166 1226
 
1167 1227
     submitAction: function() {
1168
-      
1228
+
1169 1229
       // TODO loading
1170
-      var is_new = this.form.id
1171
-      this.form.operate_time = parseInt(this.form.operate_time / 1000)
1172
-      this.form.systolic_bp = parseFloat(this.form.systolic_bp) == NaN ? 0 : parseFloat(this.form.systolic_bp)
1173
-      this.form.diastolic_bp = parseFloat(this.form.diastolic_bp) == NaN ? 0 : parseFloat(this.form.diastolic_bp)
1174
-      this.form.temperature = parseFloat(this.form.temperature) == NaN ? 0 : parseFloat(this.form.temperature)
1175
-      this.form.pulse_frequency = parseFloat(this.form.pulse_frequency) == NaN ? 0 : parseFloat(this.form.pulse_frequency)
1176
-      this.form.breathing_rated = parseFloat(this.form.breathing_rated) == NaN ? 0 : parseFloat(this.form.breathing_rated)
1177
-      this.form.blood_flow_volume = parseFloat(this.form.blood_flow_volume) == NaN ? 0 : parseFloat(this.form.blood_flow_volume)
1178
-      this.form.venous_pressure = parseFloat(this.form.venous_pressure) == NaN ? 0 : parseFloat(this.form.venous_pressure)
1179
-      this.form.venous_pressure_type = parseFloat(this.form.venous_pressure_type) == NaN ? 1 : parseFloat(this.form.venous_pressure_type)
1180
-      this.form.transmembrane_pressure = parseFloat(this.form.transmembrane_pressure) == NaN ? 0 : parseFloat(this.form.transmembrane_pressure)
1181
-      this.form.transmembrane_pressure_type = parseFloat(this.form.transmembrane_pressure_type) == NaN ? 1 : parseFloat(this.form.transmembrane_pressure_type)
1182
-      this.form.ultrafiltration_volume = parseFloat(this.form.ultrafiltration_volume) == NaN ? 0 : parseFloat(this.form.ultrafiltration_volume)
1183
-      this.form.ultrafiltration_rate = parseFloat(this.form.ultrafiltration_rate) == NaN ? 0 : parseFloat(this.form.ultrafiltration_rate)
1184
-      this.form.arterial_pressure = parseFloat(this.form.arterial_pressure) == NaN ? 0 : parseFloat(this.form.arterial_pressure)
1185
-      this.form.arterial_pressure_type = parseFloat(this.form.arterial_pressure_type) == NaN ? 1 : parseFloat(this.form.arterial_pressure_type)
1186
-      this.form.sodium_concentration = parseFloat(this.form.sodium_concentration) == NaN ? 0 : parseFloat(this.form.sodium_concentration)
1187
-      this.form.dialysate_temperature = parseFloat(this.form.dialysate_temperature) == NaN ? 0 : parseFloat(this.form.dialysate_temperature)
1188
-      this.form.replacement_rate = parseFloat(this.form.replacement_rate) == NaN ? 0 : parseFloat(this.form.replacement_rate)
1189
-      this.form.displacement_quantity = parseFloat(this.form.displacement_quantity) == NaN ? 0 : parseFloat(this.form.displacement_quantity)
1190
-      this.form.conductivity = parseFloat(this.form.conductivity) == NaN ? 0 : parseFloat(this.form.conductivity)
1191
-      this.form.displacement_flow_quantity = parseFloat(this.form.displacement_flow_quantity) == NaN ? 0 : parseFloat(this.form.displacement_flow_quantity)
1192
-      this.form.heparin = parseFloat(this.form.heparin) == NaN ? 0 : parseFloat(this.form.heparin)
1193
-      this.form.dialysate_flow = parseFloat(this.form.dialysate_flow) == NaN ? 0 : parseFloat(this.form.dialysate_flow)
1194
-      this.form.ktv = parseFloat(this.form.ktv) == NaN ? 0 : parseFloat(this.form.ktv)
1195
-      this.form.monitoring_date = parseInt(this.form.monitoring_date)
1196
-      this.form.urr = this.form.urr
1197
-      this.form.blood_sugar = parseFloat(this.form.blood_sugar) == NaN ? 0 : parseFloat(this.form.blood_sugar)
1198
-      this.form.monitor_anticoagulant = parseInt(this.form.monitor_anticoagulant)
1199
-      this.form.monitor_anticoagulant_value = this.form.monitor_anticoagulant_value
1200
-      let mode = '1'
1230
+      var is_new = this.form.id;
1231
+      this.form.operate_time = parseInt(this.form.operate_time / 1000);
1232
+      this.form.systolic_bp = parseFloat(this.form.systolic_bp) == NaN ? 0 : parseFloat(this.form.systolic_bp);
1233
+      this.form.diastolic_bp = parseFloat(this.form.diastolic_bp) == NaN ? 0 : parseFloat(this.form.diastolic_bp);
1234
+      this.form.temperature = parseFloat(this.form.temperature) == NaN ? 0 : parseFloat(this.form.temperature);
1235
+      this.form.pulse_frequency = parseFloat(this.form.pulse_frequency) == NaN ? 0 : parseFloat(this.form.pulse_frequency);
1236
+      this.form.breathing_rated = parseFloat(this.form.breathing_rated) == NaN ? 0 : parseFloat(this.form.breathing_rated);
1237
+      this.form.blood_flow_volume = parseFloat(this.form.blood_flow_volume) == NaN ? 0 : parseFloat(this.form.blood_flow_volume);
1238
+      this.form.venous_pressure = parseFloat(this.form.venous_pressure) == NaN ? 0 : parseFloat(this.form.venous_pressure);
1239
+      this.form.venous_pressure_type = parseFloat(this.form.venous_pressure_type) == NaN ? 1 : parseFloat(this.form.venous_pressure_type);
1240
+      this.form.transmembrane_pressure = parseFloat(this.form.transmembrane_pressure) == NaN ? 0 : parseFloat(this.form.transmembrane_pressure);
1241
+      this.form.transmembrane_pressure_type = parseFloat(this.form.transmembrane_pressure_type) == NaN ? 1 : parseFloat(this.form.transmembrane_pressure_type);
1242
+      this.form.ultrafiltration_volume = parseFloat(this.form.ultrafiltration_volume) == NaN ? 0 : parseFloat(this.form.ultrafiltration_volume);
1243
+      this.form.ultrafiltration_rate = parseFloat(this.form.ultrafiltration_rate) == NaN ? 0 : parseFloat(this.form.ultrafiltration_rate);
1244
+      this.form.arterial_pressure = parseFloat(this.form.arterial_pressure) == NaN ? 0 : parseFloat(this.form.arterial_pressure);
1245
+      this.form.arterial_pressure_type = parseFloat(this.form.arterial_pressure_type) == NaN ? 1 : parseFloat(this.form.arterial_pressure_type);
1246
+      this.form.sodium_concentration = parseFloat(this.form.sodium_concentration) == NaN ? 0 : parseFloat(this.form.sodium_concentration);
1247
+      this.form.dialysate_temperature = parseFloat(this.form.dialysate_temperature) == NaN ? 0 : parseFloat(this.form.dialysate_temperature);
1248
+      this.form.replacement_rate = parseFloat(this.form.replacement_rate) == NaN ? 0 : parseFloat(this.form.replacement_rate);
1249
+      this.form.displacement_quantity = parseFloat(this.form.displacement_quantity) == NaN ? 0 : parseFloat(this.form.displacement_quantity);
1250
+      this.form.conductivity = parseFloat(this.form.conductivity) == NaN ? 0 : parseFloat(this.form.conductivity);
1251
+      this.form.displacement_flow_quantity = parseFloat(this.form.displacement_flow_quantity) == NaN ? 0 : parseFloat(this.form.displacement_flow_quantity);
1252
+      this.form.heparin = parseFloat(this.form.heparin) == NaN ? 0 : parseFloat(this.form.heparin);
1253
+      this.form.dialysate_flow = parseFloat(this.form.dialysate_flow) == NaN ? 0 : parseFloat(this.form.dialysate_flow);
1254
+      this.form.ktv = parseFloat(this.form.ktv) == NaN ? 0 : parseFloat(this.form.ktv);
1255
+      this.form.monitoring_date = parseInt(this.form.monitoring_date);
1256
+      this.form.urr = this.form.urr;
1257
+      this.form.blood_sugar = parseFloat(this.form.blood_sugar) == NaN ? 0 : parseFloat(this.form.blood_sugar);
1258
+      this.form.monitor_anticoagulant = parseInt(this.form.monitor_anticoagulant);
1259
+      this.form.monitor_anticoagulant_value = this.form.monitor_anticoagulant_value;
1260
+      this.form.blood_pressure_monitoring_site = parseInt(this.form.blood_pressure_monitoring_site);
1261
+      this.form.complication = parseInt(this.form.complication);
1262
+      let mode = '1';
1201 1263
       if (this.form.id > 0) {
1202
-        mode = '2'
1264
+        mode = '2';
1203 1265
         if (this.creator > 0 && this.creator != this.$store.getters.xt_user.user.id) {
1204 1266
           mode = '3'
1205 1267
         }
1206 1268
       }
1207 1269
       editMonitor(this.patient_id, this.schedule_date, this.form, mode).then(
1208
-        
1270
+
1209 1271
         rs => {
1210
-          var resp = rs.data
1272
+          var resp = rs.data;
1211 1273
           if (resp.state == 1) {
1212
-            var monitor = resp.data.monitor
1274
+            var monitor = resp.data.monitor;
1213 1275
             if (this.isAdd) {
1214
-              this.monitors.unshift(monitor)
1215
-              this.monitors.sort((a, b) => b.operate_time - a.operate_time)
1276
+              this.monitors.unshift(monitor);
1277
+              this.monitors.sort((a, b) => b.operate_time - a.operate_time);
1216 1278
               this.monitors.reverse()
1217 1279
             } else {
1218 1280
               for (let index = 0; index < this.monitors.length; index++) {
1219
-                const m = this.monitors[index]
1281
+                const m = this.monitors[index];
1220 1282
                 if (m.id == monitor.id) {
1221 1283
                   for (const key in monitor) {
1222 1284
                     m[key] = monitor[key]
@@ -1227,34 +1289,36 @@ export default {
1227 1289
             }
1228 1290
             this.reset()
1229 1291
           } else {
1230
-            this.form.systolic_bp = parseFloat(this.form.systolic_bp) == NaN ? 0 : parseFloat(this.form.systolic_bp)
1231
-            this.form.diastolic_bp = parseFloat(this.form.diastolic_bp) == NaN ? 0 : parseFloat(this.form.diastolic_bp)
1232
-            this.form.temperature = parseFloat(this.form.temperature) == NaN ? 0 : parseFloat(this.form.temperature)
1233
-            this.form.pulse_frequency = parseFloat(this.form.pulse_frequency) == NaN ? 0 : parseFloat(this.form.pulse_frequency)
1234
-            this.form.breathing_rated = parseFloat(this.form.breathing_rated) == NaN ? 0 : parseFloat(this.form.breathing_rated)
1235
-            this.form.blood_flow_volume = parseFloat(this.form.blood_flow_volume) == NaN ? 0 : parseFloat(this.form.blood_flow_volume)
1236
-            this.form.venous_pressure = parseFloat(this.form.venous_pressure) == NaN ? 0 : parseFloat(this.form.venous_pressure)
1237
-            this.form.venous_pressure_type = parseFloat(this.form.venous_pressure_type) == NaN ? 1 : parseFloat(this.form.venous_pressure_type)
1238
-            this.form.transmembrane_pressure = parseFloat(this.form.transmembrane_pressure) == NaN ? 0 : parseFloat(this.form.transmembrane_pressure)
1239
-            this.form.transmembrane_pressure_type = parseFloat(this.form.transmembrane_pressure_type) == NaN ? 1 : parseFloat(this.form.transmembrane_pressure_type)
1240
-            this.form.ultrafiltration_volume = parseFloat(this.form.ultrafiltration_volume) == NaN ? 0 : parseFloat(this.form.ultrafiltration_volume)
1241
-            this.form.ultrafiltration_rate = parseFloat(this.form.ultrafiltration_rate) == NaN ? 0 : parseFloat(this.form.ultrafiltration_rate)
1242
-            this.form.arterial_pressure = parseFloat(this.form.arterial_pressure) == NaN ? 0 : parseFloat(this.form.arterial_pressure)
1243
-            this.form.arterial_pressure_type = parseFloat(this.form.arterial_pressure_type) == NaN ? 1 : parseFloat(this.form.arterial_pressure_type)
1244
-            this.form.sodium_concentration = parseFloat(this.form.sodium_concentration) == NaN ? 0 : parseFloat(this.form.sodium_concentration)
1245
-            this.form.dialysate_temperature = parseFloat(this.form.dialysate_temperature) == NaN ? 0 : parseFloat(this.form.dialysate_temperature)
1246
-            this.form.replacement_rate = parseFloat(this.form.replacement_rate) == NaN ? 0 : parseFloat(this.form.replacement_rate)
1247
-            this.form.displacement_quantity = parseFloat(this.form.displacement_quantity) == NaN ? 0 : parseFloat(this.form.displacement_quantity)
1248
-            this.form.conductivity = parseFloat(this.form.conductivity) == NaN ? 0 : parseFloat(this.form.conductivity)
1249
-            this.form.displacement_flow_quantity = parseFloat(this.form.displacement_flow_quantity) == NaN ? 0 : parseFloat(this.form.displacement_flow_quantity)
1250
-            this.form.heparin = parseFloat(this.form.heparin) == NaN ? 0 : parseFloat(this.form.heparin)
1251
-            this.form.dialysate_flow = parseFloat(this.form.dialysate_flow) == NaN ? 0 : parseFloat(this.form.dialysate_flow)
1252
-
1253
-            this.form.ktv = parseFloat(this.form.ktv) == NaN ? 0 : parseFloat(this.form.ktv)
1254
-            this.form.urr = this.form.urr
1255
-            this.form.blood_sugar = parseFloat(this.form.blood_sugar) == NaN ? 0 : parseFloat(this.form.blood_sugar)
1256
-            this.form.monitor_anticoagulant = parseInt(this.form.monitor_anticoagulant)
1257
-            this.form.monitor_anticoagulant_value = this.form.monitor_anticoagulant_value
1292
+            this.form.systolic_bp = parseFloat(this.form.systolic_bp) == NaN ? 0 : parseFloat(this.form.systolic_bp);
1293
+            this.form.diastolic_bp = parseFloat(this.form.diastolic_bp) == NaN ? 0 : parseFloat(this.form.diastolic_bp);
1294
+            this.form.temperature = parseFloat(this.form.temperature) == NaN ? 0 : parseFloat(this.form.temperature);
1295
+            this.form.pulse_frequency = parseFloat(this.form.pulse_frequency) == NaN ? 0 : parseFloat(this.form.pulse_frequency);
1296
+            this.form.breathing_rated = parseFloat(this.form.breathing_rated) == NaN ? 0 : parseFloat(this.form.breathing_rated);
1297
+            this.form.blood_flow_volume = parseFloat(this.form.blood_flow_volume) == NaN ? 0 : parseFloat(this.form.blood_flow_volume);
1298
+            this.form.venous_pressure = parseFloat(this.form.venous_pressure) == NaN ? 0 : parseFloat(this.form.venous_pressure);
1299
+            this.form.venous_pressure_type = parseFloat(this.form.venous_pressure_type) == NaN ? 1 : parseFloat(this.form.venous_pressure_type);
1300
+            this.form.transmembrane_pressure = parseFloat(this.form.transmembrane_pressure) == NaN ? 0 : parseFloat(this.form.transmembrane_pressure);
1301
+            this.form.transmembrane_pressure_type = parseFloat(this.form.transmembrane_pressure_type) == NaN ? 1 : parseFloat(this.form.transmembrane_pressure_type);
1302
+            this.form.ultrafiltration_volume = parseFloat(this.form.ultrafiltration_volume) == NaN ? 0 : parseFloat(this.form.ultrafiltration_volume);
1303
+            this.form.ultrafiltration_rate = parseFloat(this.form.ultrafiltration_rate) == NaN ? 0 : parseFloat(this.form.ultrafiltration_rate);
1304
+            this.form.arterial_pressure = parseFloat(this.form.arterial_pressure) == NaN ? 0 : parseFloat(this.form.arterial_pressure);
1305
+            this.form.arterial_pressure_type = parseFloat(this.form.arterial_pressure_type) == NaN ? 1 : parseFloat(this.form.arterial_pressure_type);
1306
+            this.form.sodium_concentration = parseFloat(this.form.sodium_concentration) == NaN ? 0 : parseFloat(this.form.sodium_concentration);
1307
+            this.form.dialysate_temperature = parseFloat(this.form.dialysate_temperature) == NaN ? 0 : parseFloat(this.form.dialysate_temperature);
1308
+            this.form.replacement_rate = parseFloat(this.form.replacement_rate) == NaN ? 0 : parseFloat(this.form.replacement_rate);
1309
+            this.form.displacement_quantity = parseFloat(this.form.displacement_quantity) == NaN ? 0 : parseFloat(this.form.displacement_quantity);
1310
+            this.form.conductivity = parseFloat(this.form.conductivity) == NaN ? 0 : parseFloat(this.form.conductivity);
1311
+            this.form.displacement_flow_quantity = parseFloat(this.form.displacement_flow_quantity) == NaN ? 0 : parseFloat(this.form.displacement_flow_quantity);
1312
+            this.form.heparin = parseFloat(this.form.heparin) == NaN ? 0 : parseFloat(this.form.heparin);
1313
+            this.form.dialysate_flow = parseFloat(this.form.dialysate_flow) == NaN ? 0 : parseFloat(this.form.dialysate_flow);
1314
+
1315
+            this.form.ktv = parseFloat(this.form.ktv) == NaN ? 0 : parseFloat(this.form.ktv);
1316
+            this.form.urr = this.form.urr;
1317
+            this.form.blood_sugar = parseFloat(this.form.blood_sugar) == NaN ? 0 : parseFloat(this.form.blood_sugar);
1318
+            this.form.monitor_anticoagulant = parseInt(this.form.monitor_anticoagulant);
1319
+            this.form.monitor_anticoagulant_value = this.form.monitor_anticoagulant_value;
1320
+            this.form.blood_pressure_monitoring_site = this.form.blood_pressure_monitoring_site;
1321
+            this.form.complication = this.form.complication;
1258 1322
             this.$message.error(resp.msg)
1259 1323
           }
1260 1324
         }
@@ -1308,7 +1372,7 @@ export default {
1308 1372
     },
1309 1373
     deleteRecordAction: function() {
1310 1374
       if (this.table_current_row == null) {
1311
-        this.$message.error('请选择一条监测记录')
1375
+        this.$message.error('请选择一条监测记录');
1312 1376
         return
1313 1377
       }
1314 1378
 
@@ -1318,7 +1382,7 @@ export default {
1318 1382
         type: 'warning'
1319 1383
       })
1320 1384
         .then(() => {
1321
-          let mode = '4'
1385
+          let mode = '4';
1322 1386
           if (
1323 1387
             this.table_current_row.creator > 0 &&
1324 1388
             this.table_current_row.creator !=
@@ -1331,14 +1395,14 @@ export default {
1331 1395
             patient_id: this.patient_id,
1332 1396
             record_id: this.table_current_row.id,
1333 1397
             mode: mode
1334
-          }
1398
+          };
1335 1399
 
1336 1400
           postDelMonitorInfo(params).then(response => {
1337 1401
             if (response.data.state == 0) {
1338
-              this.$message.error(response.data.msg)
1402
+              this.$message.error(response.data.msg);
1339 1403
               return false
1340 1404
             } else {
1341
-              const record_id = response.data.data.record_id
1405
+              const record_id = response.data.data.record_id;
1342 1406
               for (let i = 0; i < this.monitors.length; i++) {
1343 1407
                 if (this.monitors[i].id == record_id) {
1344 1408
                   this.monitors.splice(i, 1)
@@ -1363,20 +1427,38 @@ export default {
1363 1427
           }
1364 1428
         })
1365 1429
         .then(res => {
1366
-          console.log(res)
1430
+          console.log(res);
1367 1431
           if (res.data.state == 0) {
1368 1432
             this.hasPermission = false
1369 1433
           } else if (res.data.state == 1) {
1370
-            this.is_has_create = res.data.data.is_has_create
1371
-            this.is_has_exce = res.data.data.is_has_exce
1372
-            this.is_has_check = res.data.data.is_has_check
1373
-            this.is_has_modify = res.data.data.is_has_modify
1374
-            this.is_has_modify_other = res.data.data.is_has_modify_other
1375
-            this.is_has_modify_exce = res.data.data.is_has_modify_exce
1376
-            this.is_has_del = res.data.data.is_has_del
1434
+            this.is_has_create = res.data.data.is_has_create;
1435
+            this.is_has_exce = res.data.data.is_has_exce;
1436
+            this.is_has_check = res.data.data.is_has_check;
1437
+            this.is_has_modify = res.data.data.is_has_modify;
1438
+            this.is_has_modify_other = res.data.data.is_has_modify_other;
1439
+            this.is_has_modify_exce = res.data.data.is_has_modify_exce;
1440
+            this.is_has_del = res.data.data.is_has_del;
1377 1441
             this.is_has_del_other = res.data.data.is_has_del_other
1378 1442
           }
1379 1443
         })
1444
+    },
1445
+    getBloodPressure(id){
1446
+       var name = "";
1447
+       for(let i=0;i<this.bloodPressureMmonitoringSite.length;i++){
1448
+         if(id == this.bloodPressureMmonitoringSite[i].id){
1449
+            name = this.bloodPressureMmonitoringSite[i].name
1450
+         }
1451
+       }
1452
+       return name
1453
+    },
1454
+    getComplication(id){
1455
+      var name = "";
1456
+      for(let i=0;i<this.complicationList.length;i++){
1457
+         if(id == this.complicationList[i].id){
1458
+            name = this.complicationList[i].name
1459
+         }
1460
+      }
1461
+      return name
1380 1462
     }
1381 1463
   }
1382 1464
 }

+ 36 - 11
src/xt_pages/dialysis/details/dialysisMonitoring.vue View File

@@ -14,10 +14,10 @@
14 14
           <th width="76px">静脉压/动脉压({{monitores[0]&&monitores[0]['venous_pressure_type'] == 2 ? 'kpa' : 'mmHg'}})</th>
15 15
           <th v-if="isShow('血流量')" width="92px">血流量(ml/min)</th>
16 16
           <th v-if="isShow('跨膜压')" width="76px">跨膜压({{monitores[0]&&monitores[0]['transmembrane_pressure_type'] == 2 ? 'kpa' : 'mmHg'}})</th>
17
-          <th v-if=" isShow('超滤量') &&(template_id == 6 || template_id == 9 || template_id == 10 || template_id == 11 || template_id == 13 || template_id == 17 || template_id == 18 || template_id == 19 || template_id == 20 || template_id == 21 || template_id == 22 || template_id == 23 || template_id == 24 || template_id == 26 || template_id == 27 || template_id == 28 || template_id == 29 || template_id == 30 || template_id == 31 || template_id == 32 || template_id == 34 || template_id == 35 || this.$store.getters.xt_user.template_info.org_id == 9555)" width="76px" > 超滤量(ml)</th>
18
-          <th v-if=" isShow('超滤量') && template_id != 6 && template_id != 9 && template_id != 10 && template_id != 11 && template_id != 13 && template_id != 17 && template_id != 18 && template_id != 19 && template_id != 20 && template_id != 21 && template_id != 22 && template_id != 23 && template_id != 24 && template_id != 26 && template_id !=27 && template_id!=28 && template_id!=29 && template_id!=30 && template_id!=31 && template_id!=32 && template_id!=34 && template_id!=35 && this.$store.getters.xt_user.template_info.org_id != 9555"  width="76px"> 超滤量(L) </th>
19
-          <th v-if="isShow('超滤率') && (template_id ==6 || template_id == 10 || template_id == 11 || template_id == 12 || template_id == 13 || template_id == 17 || template_id == 18 || template_id == 19 || template_id == 20 || template_id == 21 || template_id == 22 || template_id == 23 || template_id == 24 || template_id == 26 || template_id == 29 || template_id == 30 || template_id == 31 || template_id == 34 || template_id == 35)" width="50px"> 超滤率 <br />(ml/h) </th>
20
-          <th v-if="isShow('超滤率') && template_id !=6 && template_id !=10 && template_id !=11 && template_id !=12 && template_id !=13 && template_id !=17 && template_id !=18 && template_id !=19 && template_id !=20 && template_id !=21 && template_id !=22 && template_id !=23 && template_id !=24 && template_id !=26 && template_id !=29 && template_id !=30 && template_id !=31 && template_id !=34 && template_id !=35" width="50px"> 超滤率 <br />(L/h) </th>
17
+          <th v-if=" isShow('超滤量') &&(template_id == 6 || template_id == 9 || template_id == 10 || template_id == 11 || template_id == 13 || template_id == 17 || template_id == 18 || template_id == 19 || template_id == 20 || template_id == 21 || template_id == 22 || template_id == 23 || template_id == 24 || template_id == 26 || template_id == 27 || template_id == 28 || template_id == 29 || template_id == 30 || template_id == 31 || template_id == 32 || template_id == 34 || template_id == 35 || template_id == 36 || template_id == 38 || this.$store.getters.xt_user.template_info.org_id == 9555)" width="76px" > 超滤量(ml)</th>
18
+          <th v-if=" isShow('超滤量') && template_id != 6 && template_id != 9 && template_id != 10 && template_id != 11 && template_id != 13 && template_id != 17 && template_id != 18 && template_id != 19 && template_id != 20 && template_id != 21 && template_id != 22 && template_id != 23 && template_id != 24 && template_id != 26 && template_id !=27 && template_id!=28 && template_id!=29 && template_id!=30 && template_id!=31 && template_id!=32 && template_id!=34 && template_id!=35 && template_id!=36 && template_id!=38 && this.$store.getters.xt_user.template_info.org_id != 9555"  width="76px"> 超滤量(L) </th>
19
+          <th v-if="isShow('超滤率') && (template_id ==6 || template_id == 10 || template_id == 11 || template_id == 12 || template_id == 13 || template_id == 17 || template_id == 18 || template_id == 19 || template_id == 20 || template_id == 21 || template_id == 22 || template_id == 23 || template_id == 24 || template_id == 26 || template_id == 29 || template_id == 30 || template_id == 31 || template_id == 34 || template_id == 35 || template_id == 38)" width="50px"> 超滤率 <br />(ml/h) </th>
20
+          <th v-if="isShow('超滤率') && template_id !=6 && template_id !=10 && template_id !=11 && template_id !=12 && template_id !=13 && template_id !=17 && template_id !=18 && template_id !=19 && template_id !=20 && template_id !=21 && template_id !=22 && template_id !=23 && template_id !=24 && template_id !=26 && template_id !=29 && template_id !=30 && template_id !=31 && template_id !=34 && template_id !=35 && template_id !=38" width="50px"> 超滤率 <br />(L/h) </th>
21 21
           <th v-if="isShow('钠浓度')" width="92px">钠浓度(mmol/L)</th>
22 22
           <th v-if="isShow('透析液温度')" width="92px">透析液温度(℃)</th>
23 23
           <th v-if=" isShow('置换率') && (template_id == 6 || template_id == 10 || template_id == 11 || template_id == 20 || template_id == 26 || template_id == 29) " width="92px" > 置换率(ml/min) </th>
@@ -31,8 +31,11 @@
31 31
           <th v-if="isShow('透析液流量')" width="92px">透析液流量(ml/h)</th>
32 32
           <th v-if="isShow('肝素用量余量')" width="92px">肝素用量余量(ml)</th>
33 33
           <th v-if="isShow('抗凝剂')" width="92px">抗凝剂</th>
34
+          <!-- <th v-if="isShow('血压监测部位')" width="92px">血压监测部位</th>
35
+          <th v-if="isShow('并发症')" width="92px">并发症</th> -->
34 36
           <th v-if="isShow('KT/V') && org_id == 9987" width="92px">KT/V</th>
35 37
           <th v-if="isShow('病情变化')" width="92px">病情变化</th>
38
+
36 39
           <th v-if="isShow('处理')" width="92px">处理</th>
37 40
           <th v-if="isShow('结果')" width="92px">结果</th>
38 41
         </tr>
@@ -43,6 +46,7 @@
43 46
           <td v-if="isShow('脉搏')"> {{ monitor.pulse_frequency ? monitor.pulse_frequency : "" }} </td>
44 47
           <td v-if="isShow('呼吸频率')"> {{ monitor.breathing_rate ? monitor.breathing_rate : "" }} </td>
45 48
           <td> {{ monitor.venous_pressure ? monitor.venous_pressure : "" }} /{{ monitor.arterial_pressure ? monitor.arterial_pressure : "" }}  </td>
49
+          
46 50
           <td v-if="isShow('血流量')"> {{ monitor.blood_flow_volume ? monitor.blood_flow_volume : "" }} </td>
47 51
           <td v-if="isShow('跨膜压')"> {{ monitor.transmembrane_pressure ? monitor.transmembrane_pressure : "" }} </td>
48 52
           <td v-if="isShow('超滤量')"> {{ monitor.ultrafiltration_volume ? monitor.ultrafiltration_volume : "" }} </td>
@@ -53,10 +57,10 @@
53 57
           <td v-if="isShow('置换量')"> {{ monitor.displacement_quantity ? monitor.displacement_quantity : "" }} </td>
54 58
           <td v-if="isShow('SpO₂')"> {{ monitor.blood_oxygen_saturation ? monitor.blood_oxygen_saturation : "" }} </td>
55 59
           <td v-if="isShow('电导度')"> {{ monitor.conductivity ? monitor.conductivity : "" }} </td>
56
-          <th v-if="isShow('置换液流量')"> {{ monitor.displacement_flow_quantity  ? monitor.displacement_flow_quantity : "" }} </th>
57
-          <th v-if="isShow('透析液流量')"> {{ monitor.dialysate_flow  ? monitor.dialysate_flow : "" }} </th>
58
-          <th v-if="isShow('肝素用量余量')"> {{ monitor.heparin ? monitor.heparin : "" }} </th> 
59
-          <th v-if="isShow('抗凝剂')">
60
+          <td v-if="isShow('置换液流量')"> {{ monitor.displacement_flow_quantity  ? monitor.displacement_flow_quantity : "" }} </td>
61
+          <td v-if="isShow('透析液流量')"> {{ monitor.dialysate_flow  ? monitor.dialysate_flow : "" }} </td>
62
+          <td v-if="isShow('肝素用量余量')"> {{ monitor.heparin ? monitor.heparin : "" }} </td> 
63
+          <td v-if="isShow('抗凝剂')">
60 64
             <span v-if="monitor.monitor_anticoagulant == 1">无肝素</span>
61 65
             <span v-if="monitor.monitor_anticoagulant == 2">普通肝素</span>
62 66
             <span v-if="monitor.monitor_anticoagulant == 3">低分子肝素</span>
@@ -67,7 +71,9 @@
67 71
             <span v-if="monitor.monitor_anticoagulant == 8">依诺肝素</span>
68 72
             <span v-if="monitor.monitor_anticoagulant == 9">达肝素</span>
69 73
             <span v-if="monitor.monitor_anticoagulant_value!=''">({{monitor.monitor_anticoagulant_value ? monitor.monitor_anticoagulant_value : ""  }})</span>
70
-          </th>
74
+          </td>
75
+          <!-- <th v-if="isShow('血压监测部位')">{{getBloodPressure(monitor.blood_pressure_monitoring_site)}}</th>
76
+          <th v-if="isShow('并发症')">{{getComplication(monitor.complication)}}</th> -->
71 77
           <td v-if="isShow('KT/V') && org_id == 9987">{{ monitor.ktv?monitor.ktv:""}}</td>
72 78
           <td v-if="isShow('病情变化')">{{ monitor.symptom }}</td>
73 79
           <td v-if="isShow('处理')">{{ monitor.dispose }}</td>
@@ -81,9 +87,8 @@
81 87
 
82 88
 <script>
83 89
 import store from '@/store'
84
-
85 90
 import { parseTime } from '@/utils'
86
-
91
+import { getDataConfig } from '@/utils/data'
87 92
 export default {
88 93
   name: 'statOrder',
89 94
   data() {
@@ -113,6 +118,26 @@ export default {
113 118
         }
114 119
       }
115 120
       return false
121
+    },
122
+    getBloodPressure(id){
123
+       var bloodPressureMmonitoringSite = getDataConfig('hemodialysis','blood_pressure_monitoring_site')
124
+       var name = ""
125
+       for(let i=0;i<bloodPressureMmonitoringSite.length;i++){
126
+         if(id == bloodPressureMmonitoringSite[i].id){
127
+            name = bloodPressureMmonitoringSite[i].name
128
+         }
129
+       }
130
+       return name
131
+    },
132
+    getComplication(id){
133
+      var complication = getDataConfig('hemodialysis','complication')
134
+      var name = ""
135
+      for(let i=0;i<complication.length;i++){
136
+         if(id == complication[i].id){
137
+            name = complication[i].name
138
+         }
139
+      }
140
+      return name
116 141
     }
117 142
   }
118 143
 }

+ 2 - 1
src/xt_pages/dialysis/details/index.vue View File

@@ -979,7 +979,7 @@ export default {
979 979
         if (resp.state == 1) {
980 980
           var patient = resp.data.patient // 患者信息
981 981
           var schedual = resp.data.schedual // 患者排班信息
982
-
982
+          console.log("排班22222222222",schedual)
983 983
           var prescription = resp.data.prescription // 透析处方
984 984
           if (prescription != null) {
985 985
             if (prescription.body_fluid == -2) {
@@ -988,6 +988,7 @@ export default {
988 988
           }
989 989
 
990 990
           var solution = resp.data.solution // 透析方案
991
+          console.log("透析方案22223333333333",solution)
991 992
           var receiver_treatment_access = resp.data.receiver_treatment_access // 接诊评估
992 993
 
993 994
           var predialysis_evaluation = resp.data.predialysis_evaluation // 透前评估

+ 6 - 4
src/xt_pages/dialysis/dialysisDoctorAdvice.vue View File

@@ -149,7 +149,7 @@
149 149
         >
150 150
           <template slot-scope="scope">
151 151
             <span v-if="scope.row.execution_time != 0">
152
-              {{scope.row.start_time | parseTime('{m}-{d} {h}:{i}')}}
152
+              {{scope.row.execution_time | parseTime('{m}-{d} {h}:{i}')}}
153 153
             </span>
154 154
             <span v-else></span>
155 155
           </template>
@@ -495,7 +495,7 @@ export default {
495 495
             console.log("列表数据",schedules)
496 496
             var config = resp.data.config
497 497
             console.log("config222222",config.is_open)
498
-           if(config.is_open == 0){
498
+           if(config.is_open == 0 || config.is_open == 2){
499 499
             this.show = true
500 500
             this.showOne = false
501 501
             let arr = []
@@ -539,6 +539,7 @@ export default {
539 539
                 })
540 540
                 this.scheduleMap = a
541 541
             }
542
+            console.log("列表22222",this.scheduleMap)
542 543
             this.scheduleMap.map(ele => {
543 544
                 let firstIndex = this.scheduleMap.findIndex(item => {
544 545
                   return item.patient_id === ele.patient_id   // 当category相同的时候,返回第一个相同的Index 赋值给 firstIndex
@@ -554,7 +555,7 @@ export default {
554 555
             })
555 556
             this.indexInfoList = newArr
556 557
            }
557
-           if(config.is_open == 1 || config.is_open == 2){
558
+           if(config.is_open == 1){
558 559
              this.show = false
559 560
              this.showOne  = true
560 561
             var schedules =  resp.data.hisAdvices
@@ -599,6 +600,7 @@ export default {
599 600
                 })
600 601
                 this.scheduleMap = a
601 602
             }
603
+            console.log('333333344444',this.scheduleMap)
602 604
             this.scheduleMap.map(ele => {
603 605
                 let firstIndex = this.scheduleMap.findIndex(item => {
604 606
                   return item.patient_id === ele.patient_id   // 当category相同的时候,返回第一个相同的Index 赋值给 firstIndex
@@ -615,7 +617,7 @@ export default {
615 617
             this.indexInfoList = newArr
616 618
            }
617 619
          }
618
-         console.log("列表22222",this.scheduleMap)
620
+        //  console.log("列表22222",this.scheduleMap)
619 621
         })
620 622
     },
621 623
     getValue: function(val) {

+ 110 - 1
src/xt_pages/dialysis/dialysisPrintOrder.vue View File

@@ -495,6 +495,54 @@
495 495
           >打印</el-button
496 496
         >
497 497
       </template>
498
+      <template v-if="org_template_info.template_id == 36">
499
+        <div>
500
+          <el-button
501
+            :loading="loading"
502
+            size="small"
503
+            icon="el-icon-printer"
504
+            @click="printThisPage"
505
+            type="primary"
506
+            >打印全部</el-button
507
+          >
508
+          <el-button
509
+            :loading="loading"
510
+            size="small"
511
+            icon="el-icon-printer"
512
+            @click="printThisOnePage"
513
+            type="primary"
514
+            >打印纪录单</el-button
515
+          >
516
+          <el-button
517
+            :loading="loading"
518
+            size="small"
519
+            icon="el-icon-printer"
520
+            @click="printThisTwoPage"
521
+            type="primary"
522
+            >打印医嘱单</el-button
523
+          >
524
+        </div>
525
+      </template>
526
+      <template v-if="org_template_info.template_id == 37">
527
+        <el-button
528
+          :loading="loading"
529
+          size="small"
530
+          icon="el-icon-printer"
531
+          @click="printThisPage"
532
+          type="primary"
533
+          >打印</el-button
534
+        >
535
+      </template>
536
+      <template v-if="org_template_info.template_id == 38">
537
+        <el-button
538
+          :loading="loading"
539
+          size="small"
540
+          icon="el-icon-printer"
541
+          @click="printThisPage"
542
+          type="primary"
543
+          >打印</el-button
544
+        >
545
+      </template>
498 546
     </div>
499 547
     <div class="app-container" style="min-height:0;">
500 548
       <!--<div class="order-print-btn"-->
@@ -750,6 +798,21 @@
750 798
             v-if="org_template_info.template_id == 35"
751 799
           >
752 800
           </DialysisPrintOrderThirtyFive>
801
+          <DialysisPrintOrderThirtySix
802
+            v-bind:childResponse="childResponse"
803
+            v-if="org_template_info.template_id == 36"
804
+          >
805
+          </DialysisPrintOrderThirtySix>
806
+          <DialysisPrintOrderThirtySeven
807
+            v-bind:childResponse="childResponse"
808
+            v-if="org_template_info.template_id == 37"
809
+          >
810
+          </DialysisPrintOrderThirtySeven>
811
+          <DialysisPrintOrderThirtyEight
812
+            v-bind:childResponse="childResponse"
813
+            v-if="org_template_info.template_id == 38"
814
+          >
815
+          </DialysisPrintOrderThirtyEight>
753 816
         </div>
754 817
       </el-container>
755 818
     </div>
@@ -804,9 +867,15 @@ import DialysisPrintOrderThirtyTwo from "./template/DialysisPrintOrderThirtyTwo"
804 867
 import DialysisPrintOrderThirtyThree from "./template/DialysisPrintOrderThirtyThree";
805 868
 import DialysisPrintOrderThirtyFour from "./template/DialysisPrintOrderThirtyFour";
806 869
 import DialysisPrintOrderThirtyFive from "./template/DialysisPrintOrderThirtyFive";
870
+import DialysisPrintOrderThirtySix from "./template/DialysisPrintOrderThirtySix";
871
+import DialysisPrintOrderThirtySeven from "./template/DialysisPrintOrderThirtySeven";
872
+import DialysisPrintOrderThirtyEight from "./template/DialysisPrintOrderThirtyEight";
807 873
 export default {
808 874
   name: "dialysisPrintOrder",
809 875
   components: {
876
+    DialysisPrintOrderThirtyEight,
877
+    DialysisPrintOrderThirtySeven,
878
+    DialysisPrintOrderThirtySix,
810 879
     DialysisPrintOrderThirtyFive,
811 880
     DialysisPrintOrderThirtyFour,
812 881
     DialysisPrintOrderThirtyThree,
@@ -1015,6 +1084,11 @@ export default {
1015 1084
         '@media print {.dialysis-print-order {width: 960px; margin: 0 auto;}.dialysis-print-order .order-yy-name {margin: auto;text-align: center;font-size: 20px;letter-spacing: 5px;}.dialysis-print-order .order-title {  margin: auto;  font-weight: 600;  text-align: center;  font-size: 22px;  padding: 10px 20px 0px 20px;}.dialysis-print-order .table-box {  width: 100%;  line-height: 18px;  font-size: 14px;}.dialysis-print-order .print-table {  width: 100%;  text-align: center;  border-collapse: collapse;  line-height: 28px;  font-size: 14px;}.dialysis-print-order .print-table-no {  width: 100%;  text-align: center;  border-collapse: collapse;  font-size: 14px;}.dialysis-print-order .under-line {  border-bottom: 1px solid #999;  width: 95%;  text-align: center;  margin-left: 2px;}.dialysis-print-order .title-box {  text-align: center;  font-size: 16px;}.dialysis-print-order .radio-lebel-box {  font-weight: 400;  cursor: pointer;}.dialysis-print-order .radio-no {  opacity: 0;  outline: none;  position: absolute;  margin: 0;  width: 0;  height: 0;  z-index: -1;}.dialysis-print-order .radio-inner {  white-space: nowrap;  cursor: pointer;  outline: none;  display: inline-block;  line-height: 1;  position: relative;  vertical-align: middle;}.dialysis-print-order .radio-fang {  display: inline-block;  position: relative;  border: 1px solid #000;  box-sizing: border-box;  width: 14px;  height: 14px;  background-color: #fff;  z-index: 1;  transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),    background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46);}.dialysis-print-order .is-checked-radio::after {  content: "√";  font-size: 15px;}.dialysis-print-order .print-table-no tr td {  padding: 8px 5px;  line-height: 25px;}.dialysis-print-order .print-table tr td {  padding: 1px 1px;  /*line-height: 25px;*/}.es-img {  height: 25px;}.advice-name {  text-align: left;}.advice-children {  display: flex;}.title-box-pro {  border: 0 #fff;  line-height: 25px;  height: 25px;  text-align: left;  padding-left: 10px !important;}.title-box-pro-tr {  border: 0 #fff;}.text-align-left {  text-align: left !important;  padding-left: 10px !important;  font-size: 14px !important;  line-height: 25px;}.print-table-tr-new td {line-height: 20px !important;}.border-top-solid {border: solid 1px #000;}.print-template-two tr {line-height: 30px;}}';
1016 1085
       const style6 =
1017 1086
         '@media print {.dialysis-print-order{width:960px;margin:0 auto}.dialysis-print-order .order-yy-name{margin:auto;text-align:center;font-size:20px;letter-spacing:5px}.dialysis-print-order .order-title{margin:auto;font-weight:600;text-align:center;font-size:22px;padding:10px 20px 20px 20px}.dialysis-print-order .table-box{width:100%;line-height:23px;font-size:16px}.dialysis-print-order .print-table{width:100%;text-align:center;border-collapse:collapse;line-height:25px;font-size:16px}.dialysis-print-order .print-table-no{width:100%;text-align:center;border-collapse:collapse;font-size:16px}.dialysis-print-order .under-line{border-bottom:1px solid #999;width:95%;text-align:center;margin-left:2px}.dialysis-print-order .title-box{text-align:center;font-size:16px;border:1px solid #666}.dialysis-print-order .radio-lebel-box{font-weight:400;cursor:pointer}.dialysis-print-order .radio-no{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.dialysis-print-order .radio-inner{white-space:nowrap;cursor:pointer;outline:0;display:inline-block;line-height:1;position:relative;vertical-align:middle}.dialysis-print-order .radio-fang{display:inline-block;position:relative;border:1px solid #000;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.dialysis-print-order .is-checked-radio::after{content:"√";font-size:15px}}.dialysis-print-order .print-table-no tr td { padding: 8px 5px; line-height: 25px; }.es-img{height: 20px; }.advice-name{text-align: left;}.advice-children{display:flex;} .dialysis-print-order .print-table tr td{padding: 0px 0px;} .print-template-two tr {line-height: 30px;}   .title-box-pro{border: 0 #fff;line-height: 40px;height: 40px;text-align: left;padding-left: 10px !important;}  .text-align-left{text-align: left !important;padding-left:10px !important;font-size: 14px !important;line-height: 25px;}';
1087
+      const style7 =
1088
+        '@media print {.dialysis-print-order {width: 960px; margin: 0 auto;}.dialysis-print-order .order-yy-name {margin: auto;text-align: center;font-size: 20px;letter-spacing: 5px;}.dialysis-print-order .order-title {  margin: auto;  font-weight: 600;  text-align: center;  font-size: 22px;  padding: 10px 20px 0px 20px;}.dialysis-print-order .table-box {  width: 100%;  line-height: 18px;  font-size: 18px;}.dialysis-print-order .print-table {  width: 100%;  text-align: center;  border-collapse: collapse;  line-height: 28px;  font-size: 18px;}.dialysis-print-order .print-table-no {  width: 100%;  text-align: center;  border-collapse: collapse;  font-size: 14px;}.dialysis-print-order .under-line {  border-bottom: 1px solid #999;  width: 95%;  text-align: center;  margin-left: 2px;}.dialysis-print-order .title-box {  text-align: center;  font-size: 16px;}.dialysis-print-order .radio-lebel-box {  font-weight: 400;  cursor: pointer;}.dialysis-print-order .radio-no {  opacity: 0;  outline: none;  position: absolute;  margin: 0;  width: 0;  height: 0;  z-index: -1;}.dialysis-print-order .radio-inner {  white-space: nowrap;  cursor: pointer;  outline: none;  display: inline-block;  line-height: 1;  position: relative;  vertical-align: middle;}.dialysis-print-order .radio-fang {  display: inline-block;  position: relative;  border: 1px solid #000;  box-sizing: border-box;  width: 18px;  height: 18px;  background-color: #fff;  z-index: 1;  transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),    background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46);}.dialysis-print-order .is-checked-radio::after {  content: "√";  font-size: 19px;}.dialysis-print-order .print-table-no tr td {  padding: 8px 5px;  line-height: 25px;}.dialysis-print-order .print-table tr td {  padding: 1px 1px;  /*line-height: 25px;*/}.es-img {  height: 25px;}.advice-name {  text-align: left;}.advice-children {  display: flex;}.title-box-pro {  border: 0 #fff;  line-height: 25px;  height: 25px;  text-align: left;  padding-left: 10px !important;}.title-box-pro-tr {  border: 0 #fff;}.text-align-left {  text-align: left !important;  padding-left: 10px !important;  font-size: 14px !important;  line-height: 25px;}.print-table-tr-new td {line-height: 20px !important;}.border-top-solid {border: solid 1px #000;}.print-template-two tr {line-height: 30px;}}';
1089
+      const style8 =
1090
+        '@media print {.dialysis-print-order{width:960px;margin:0 auto;font-size:10px;}.dialysis-print-order .order-yy-name{margin:auto;text-align:center;font-size:20px;letter-spacing:5px}.dialysis-print-order .order-title{margin:auto;font-weight:600;text-align:center;font-size:22px;padding:10px 20px 20px 20px}.dialysis-print-order .table-box{width:100%;line-height:23px;font-size:10px}.dialysis-print-order .print-table{width:100%;text-align:center;border-collapse:collapse;line-height:25px;font-size:14px}.dialysis-print-order .print-table-no{width:100%;text-align:center;border-collapse:collapse;font-size:14px}.dialysis-print-order .under-line{border-bottom:1px solid #999;width:95%;text-align:center;margin-left:2px}.dialysis-print-order .title-box{text-align:center;font-size:16px;border:1px solid #666}.dialysis-print-order .radio-lebel-box{font-weight:400;cursor:pointer}.dialysis-print-order .radio-no{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.dialysis-print-order .radio-inner{white-space:nowrap;cursor:pointer;outline:0;display:inline-block;line-height:1;position:relative;vertical-align:middle}.dialysis-print-order .radio-fang{display:inline-block;position:relative;border:1px solid #000;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.dialysis-print-order .is-checked-radio::after{content:"√";font-size:15px}}.dialysis-print-order .print-table-no tr td { padding: 8px 5px; line-height: 25px; }.es-img{height: 20px; }.advice-name{text-align: left;}.advice-children{display:flex;} .dialysis-print-order .print-table tr td{padding: 0px 0px;} .print-template-two tr {line-height: 30px;}   .title-box-pro{border: 0 #fff;line-height: 40px;height: 40px;text-align: left;padding-left: 10px !important;}  .text-align-left{text-align: left !important;padding-left:10px !important;font-size: 14px !important;line-height: 25px;}.widthLength25{width: 25%;}.lineHeight{line-height: 20px;display: flex;justify-content: space-between;}';
1091
+
1018 1092
 
1019 1093
       if (this.org_template_info.template_id == 1) {
1020 1094
         printJS({
@@ -1195,7 +1269,7 @@ export default {
1195 1269
         printJS({
1196 1270
           printable: "dialysis-print-box",
1197 1271
           type: "html",
1198
-          style: style5,
1272
+          style: style7,
1199 1273
           scanStyles: false
1200 1274
         });
1201 1275
       } else if (this.org_template_info.template_id == 29) {
@@ -1247,6 +1321,27 @@ export default {
1247 1321
           style: style,
1248 1322
           scanStyles: false
1249 1323
         });
1324
+      } else if (this.org_template_info.template_id == 36) {
1325
+        printJS({
1326
+          printable: "dialysis-print-box-1",
1327
+          type: "html",
1328
+          style: style,
1329
+          scanStyles: false
1330
+        });
1331
+      } else if (this.org_template_info.template_id == 37) {
1332
+        printJS({
1333
+          printable: "dialysis-print-box",
1334
+          type: "html",
1335
+          style: style,
1336
+          scanStyles: false
1337
+        });
1338
+      } else if (this.org_template_info.template_id == 38) {
1339
+        printJS({
1340
+          printable: "dialysis-print-box",
1341
+          type: "html",
1342
+          style: style8,
1343
+          scanStyles: false
1344
+        });
1250 1345
       }
1251 1346
     },
1252 1347
     printThisOnePage() {
@@ -1299,6 +1394,13 @@ export default {
1299 1394
           style: style,
1300 1395
           scanStyles: false
1301 1396
         });
1397
+      } else if(this.org_template_info.template_id == 36){
1398
+        printJS({
1399
+          printable: "dialysis-print-box-1-1",
1400
+          type: "html",
1401
+          style: style,
1402
+          scanStyles: false
1403
+        });
1302 1404
       }
1303 1405
     },
1304 1406
     printThisTwoPage() {
@@ -1351,6 +1453,13 @@ export default {
1351 1453
           style: style,
1352 1454
           scanStyles: false
1353 1455
         });
1456
+      } else if(this.org_template_info.template_id == 36){
1457
+        printJS({
1458
+          printable: "dialysis-print-box-1-2",
1459
+          type: "html",
1460
+          style: style,
1461
+          scanStyles: false
1462
+        });
1354 1463
       }
1355 1464
     },
1356 1465
     getNumber() {

+ 13 - 3
src/xt_pages/dialysis/template/DialysisPrintOrderOne.vue View File

@@ -1386,8 +1386,13 @@ export default {
1386 1386
 
1387 1387
           // this.advices = response.data.data.advices
1388 1388
 
1389
-          this.advices =  response.data.data.advices.concat(response.data.data.doctorAdvice)
1389
+           var advices =  response.data.data.advices.concat(response.data.data.doctorAdvice)
1390
+           
1391
+          var newAdvices = this.unique(advices)
1392
+           console.log("newAdvices",newAdvices)
1390 1393
 
1394
+           this.advices = newAdvices
1395
+          console.log("去重后",this.advices)
1391 1396
           this.monitors = response.data.data.monitors
1392 1397
           this.summary = response.data.data.summary
1393 1398
           this.org_template_info = response.data.data.org_template_info
@@ -1588,7 +1593,11 @@ export default {
1588 1593
           // checker: 0,
1589 1594
         }
1590 1595
       )
1591
-    }
1596
+    },
1597
+     unique(arr) {
1598
+        const res = new Map();
1599
+        return arr.filter((arr) => !res.has(arr.id) && res.set(arr.id, 1));
1600
+    },
1592 1601
   },
1593 1602
   watch: {
1594 1603
     'patientInfo.gender': function() {
@@ -1614,7 +1623,8 @@ export default {
1614 1623
         this.patientInfo_source_2 = false
1615 1624
         this.patientInfo_source_1 = false
1616 1625
       }
1617
-    }
1626
+    },
1627
+   
1618 1628
   },
1619 1629
   created() {
1620 1630
     var xtuser = this.$store.getters.xt_user

+ 21 - 21
src/xt_pages/dialysis/template/DialysisPrintOrderSix.vue View File

@@ -553,7 +553,7 @@
553 553
                         {{ monitor.ultrafiltration_volume ? monitor.ultrafiltration_volume : "" }}
554 554
                       </td>
555 555
                       <td v-if="(dialysisOrder && monitor.operate_time <= dialysisOrder.end_time) && ( dialysisOrder && monitor.operate_time >= dialysisOrder.start_time)">
556
-                        {{ monitor.ultrafiltration_volume ? monitor.ultrafiltration_volume : 0 }}
556
+                        {{ monitor.ultrafiltration_volume ? monitor.ultrafiltration_volume : "" }}
557 557
                       </td>
558 558
                       <td v-if="(prescription.mode_id == 2 || prescription.mode_id == 5 || prescription.mode_id == 12) && ((dialysisOrder && monitor.operate_time <= dialysisOrder.end_time) && (dialysisOrder && monitor.operate_time >= dialysisOrder.start_time))" style="width:50px">
559 559
                         {{ monitor.displacement_quantity ? monitor.displacement_quantity : 0 }}
@@ -643,7 +643,7 @@
643 643
                       <!-- <td width="10%" v-if="(advice.children && advice.children.length > 0 || advice.parent_id > 0) && advice.isShow == 2" ></td> -->
644 644
                       <td height="32px">
645 645
                         <span v-if="setAdminUserES(advice.advice_doctor) == ''">{{ getAdminUser(advice.advice_doctor) }}</span>
646
-                        <img style="height:20px;" :src="setAdminUserES(advice.advice_doctor)" alt="" srcset="" v-else />
646
+                        <img style="height:30px" :src="setAdminUserES(advice.advice_doctor)" alt="" srcset="" v-else />
647 647
                       </td>
648 648
                       <!-- <td height="35px">
649 649
                     <span v-if="setAdminUserES(advice.checker) == ''">{{getAdminUser(advice.checker)}}</span>
@@ -651,7 +651,7 @@
651 651
                   </td> -->
652 652
                       <td height="32px">
653 653
                         <span v-if="setAdminUserES(advice.execution_staff) == ''">{{ getAdminUser(advice.execution_staff) }}</span>
654
-                        <img style="height:20px;" :src="setAdminUserES(advice.execution_staff)" alt="" srcset="" v-else />
654
+                        <img style="height:30px" :src="setAdminUserES(advice.execution_staff)" alt="" srcset="" v-else />
655 655
                       </td>
656 656
                       <td height="32px">
657 657
                         <span v-if="advice.execution_time">{{ getTime(advice.execution_time, "{h}:{i}") }}</span>
@@ -824,7 +824,7 @@
824 824
                 <!-- <td width="10%" v-if="(advice.children && advice.children.length > 0 || advice.parent_id > 0) && advice.isShow == 2" ></td> -->
825 825
                 <td height="32px">
826 826
                   <span v-if="setAdminUserES(advice.advice_doctor) == ''">{{ getAdminUser(advice.advice_doctor) }}</span>
827
-                  <img style="height:20px;" :src="setAdminUserES(advice.advice_doctor)" alt="" srcset="" v-else />
827
+                  <img style="height:30px;" :src="setAdminUserES(advice.advice_doctor)" alt="" srcset="" v-else />
828 828
                 </td>
829 829
                 <!-- <td height="35px">
830 830
                 <span v-if="setAdminUserES(advice.checker) == ''">{{getAdminUser(advice.checker)}}</span>
@@ -832,7 +832,7 @@
832 832
               </td> -->
833 833
                 <td height="32px">
834 834
                   <span v-if="setAdminUserES(advice.execution_staff) == ''">{{ getAdminUser(advice.execution_staff) }}</span>
835
-                  <img style="height:20px;" :src="setAdminUserES(advice.execution_staff)" alt="" srcset="" v-else />
835
+                  <img style="height:30px;" :src="setAdminUserES(advice.execution_staff)" alt="" srcset="" v-else />
836 836
                 </td>
837 837
                 <td height="32px">
838 838
                   <span v-if="advice.execution_time">{{ getTime(advice.execution_time, "{h}:{i}") }}</span>
@@ -971,62 +971,62 @@
971 971
                   <div class="inline_block" style="flex:1;">
972 972
                     穿刺护士:
973 973
                     <div class="under_line" style="width: 80px;text-align: center">
974
-                      <span v-if="setAdminUserES(dialysisOrder == null ? 0 : dialysisOrder.puncture_nurse) == ''">
974
+                      <span style="height: 30px;display: inline-block;" v-if="setAdminUserES(dialysisOrder == null ? 0 : dialysisOrder.puncture_nurse) == ''">
975 975
                         {{ getAdminUser(dialysisOrder == null ? 0 : dialysisOrder.puncture_nurse) }}</span>
976
-                      <img style="height:20px;" :src="setAdminUserES(dialysisOrder == null ? 0 : dialysisOrder.puncture_nurse)" alt="" srcset="" v-else />
976
+                      <img style="height:30px;" :src="setAdminUserES(dialysisOrder == null ? 0 : dialysisOrder.puncture_nurse)" alt="" srcset="" v-else />
977 977
                     </div>
978 978
                   </div>
979 979
                   <div class="inline_block" style="flex:1;">
980 980
                     治疗护士:
981 981
                     <div class="under_line" style="width: 80px;text-align: center">
982
-                      <span v-if="setAdminUserES(dialysisOrder == null ? 0 : dialysisOrder.start_nurse) == ''">
982
+                      <span style="height: 30px;display: inline-block;" v-if="setAdminUserES(dialysisOrder == null ? 0 : dialysisOrder.start_nurse) == ''">
983 983
                         {{ getAdminUser(dialysisOrder == null ? 0 : dialysisOrder.start_nurse) }}</span>
984
-                      <img style="height:20px;" :src="setAdminUserES(dialysisOrder == null ? 0 : dialysisOrder.start_nurse)" alt="" srcset="" v-else />
984
+                      <img style="height:30px;" :src="setAdminUserES(dialysisOrder == null ? 0 : dialysisOrder.start_nurse)" alt="" srcset="" v-else />
985 985
                     </div>
986 986
                   </div>
987 987
                   <div class="inline_block" style="flex:1;">
988 988
                     核对人员:
989 989
                     <div class="under_line" style="width: 80px;text-align: center" v-if="dialysisOrder == null">
990
-                      <span v-if="setAdminUserES(check == null ? 0 : check.creater) == ''">
990
+                      <span style="height: 30px;display: inline-block;" v-if="setAdminUserES(check == null ? 0 : check.creater) == ''">
991 991
                         {{ getAdminUser(check == null ? 0 : check.creater) }}
992 992
                       </span>
993
-                      <img style="height:20px;" :src="setAdminUserES(check == null ? 0 : check.creater)" alt="" srcset="" v-else />
993
+                      <img style="height:30px;" :src="setAdminUserES(check == null ? 0 : check.creater)" alt="" srcset="" v-else />
994 994
                     </div>
995 995
                     <div class="under_line" style="width: 80px;text-align: center" v-if="dialysisOrder != null && dialysisOrder.start_nurse == check.modifier">
996
-                      <span v-if="setAdminUserES(check == null ? 0 : check.creater) == ''">
996
+                      <span style="height: 30px;display: inline-block;" v-if="setAdminUserES(check == null ? 0 : check.creater) == ''">
997 997
                         {{ getAdminUser(check == null ? 0 : check.creater) }}
998 998
                       </span>
999
-                      <img style="height:20px;" :src="setAdminUserES(check == null ? 0 : check.creater)" alt="" srcset="" v-else />
999
+                      <img style="height:30px;" :src="setAdminUserES(check == null ? 0 : check.creater)" alt="" srcset="" v-else />
1000 1000
                     </div>
1001 1001
                     <div class="under_line" style="width: 80px;text-align: center" v-if="dialysisOrder != null && dialysisOrder.start_nurse == check.creater">
1002
-                      <span v-if="setAdminUserES(check == null ? 0 : check.modifier) == ''">
1002
+                      <span style="height: 30px;display: inline-block;" v-if="setAdminUserES(check == null ? 0 : check.modifier) == ''">
1003 1003
                         {{ getAdminUser(check == null ? 0 : check.modifier) }}
1004 1004
                       </span>
1005
-                      <img style="height:20px;" :src="setAdminUserES(check == null ? 0 : check.modifier)" alt="" srcset="" v-else />
1005
+                      <img style="height:30px;" :src="setAdminUserES(check == null ? 0 : check.modifier)" alt="" srcset="" v-else />
1006 1006
                     </div>
1007 1007
                     <div class="under_line" style="width: 80px;text-align: center" v-if="dialysisOrder != null && dialysisOrder.start_nurse != check.creater && dialysisOrder.start_nurse != check.modifier">
1008
-                      <span v-if="setAdminUserES(check == null ? 0 : check.creater) == ''">
1008
+                      <span style="height: 30px;display: inline-block;" v-if="setAdminUserES(check == null ? 0 : check.creater) == ''">
1009 1009
                         {{ getAdminUser(check == null ? 0 : check.creater) }}
1010 1010
                       </span>
1011
-                      <img style="height:20px;" :src="setAdminUserES(check == null ? 0 : check.creater)" alt="" srcset="" v-else />
1011
+                      <img style="height:30px;" :src="setAdminUserES(check == null ? 0 : check.creater)" alt="" srcset="" v-else />
1012 1012
                     </div>
1013 1013
                   </div>
1014 1014
                   <div class="inline_block" style="flex:1;">
1015 1015
                     下机护士:
1016 1016
                     <div class="under_line" style="width: 80px;text-align: center">
1017
-                      <span v-if="setAdminUserES(dialysisOrder == null ? 0 : dialysisOrder.finish_nurse) == ''">
1017
+                      <span style="height: 30px;display: inline-block;" v-if="setAdminUserES(dialysisOrder == null ? 0 : dialysisOrder.finish_nurse) == ''">
1018 1018
                         {{ getAdminUser(dialysisOrder == null ? 0 : dialysisOrder.finish_nurse) }}
1019 1019
                       </span>
1020
-                      <img style="height:20px;" :src="setAdminUserES(dialysisOrder == null ? 0 : dialysisOrder.finish_nurse)" alt="" srcset="" v-else />
1020
+                      <img style="height:30px;" :src="setAdminUserES(dialysisOrder == null ? 0 : dialysisOrder.finish_nurse)" alt="" srcset="" v-else />
1021 1021
                     </div>
1022 1022
                   </div>
1023 1023
                   <div class="inline_block" style="flex:1;">
1024 1024
                     治疗医生:
1025 1025
                     <div class="under_line" style="width: 80px;text-align: center">
1026
-                      <span v-if="setAdminUserES(prescription.creater) == ''">
1026
+                      <span style="height: 30px;display: inline-block;" v-if="setAdminUserES(prescription.creater) == ''">
1027 1027
                         {{ getAdminUser(prescription.creater) }}
1028 1028
                       </span>
1029
-                      <img style="height:20px;" :src="setAdminUserES(prescription.creater)" alt="" srcset="" v-else />
1029
+                      <img style="height:30px;" :src="setAdminUserES(prescription.creater)" alt="" srcset="" v-else />
1030 1030
                     </div>
1031 1031
                   </div>
1032 1032
                 </div>

+ 5 - 3
src/xt_pages/dialysis/template/DialysisPrintOrderTen.vue View File

@@ -322,13 +322,15 @@
322 322
                   <div class="inline_block" style="flex:1;">
323 323
                     透析(滤)器:
324 324
                     <div class="under_line" style="width: 100px;text-align: center">
325
-                      {{ prescription.dialyzer_perfusion_apparatus ? prescription.dialyzer_perfusion_apparatus : "/" }}
325
+                      <!-- {{ prescription.dialyzer_perfusion_apparatus ? prescription.dialyzer_perfusion_apparatus : "/" }} -->
326
+
327
+                      {{ prescription.dialysis_dialyszers ? prescription.dialysis_dialyszers : "/" }}
326 328
                     </div>
327 329
                   </div>
328 330
                   <div class="inline_block" style="flex:1;">
329 331
                     灌流器:
330 332
                     <div class="under_line" style="width: 70px;text-align: center">
331
-                      /
333
+                      {{ prescription.dialysis_irrigation ? prescription.dialysis_irrigation : "/" }}
332 334
                     </div>
333 335
                   </div>
334 336
                   <div class="inline_block" style="flex:1;">
@@ -1401,7 +1403,7 @@ export default {
1401 1403
         this.prescription = response.data.data.dialysisPrescription;
1402 1404
 
1403 1405
         this.receiverTreatmentAccess =response.data.data.receiverTreatmentAccess;
1404
-        console.log("透析监测",this.receiverTreatmentAccess)
1406
+        // console.log("透析监测",this.receiverTreatmentAccess)
1405 1407
         this.prescription.mode = this.modeName(this.prescription.mode_id);
1406 1408
         var rwLen = this.replacementWays.length;
1407 1409
         this.prescription.replacement = "";

+ 26 - 4
src/xt_pages/dialysis/template/DialysisPrintOrderThirty.vue View File

@@ -100,10 +100,30 @@
100 100
           <tbody>
101 101
             <tr>
102 102
                 <td width="70">血管通路:</td>
103
-                <td width="370">
103
+                <td width="560">
104 104
                     <div>
105
-                        <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('内瘘') > -1 ? true : false" showValue="内瘘"></label-box>
105
+                        <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('绳梯') > -1 ? true : false" showValue="绳梯"></label-box>
106 106
                         &nbsp;
107
+                        A:( 
108
+                          <span style="width:50px;display:inline-block;text-align:center;">
109
+                            &nbsp;<span v-if="predialysis.puncture_way.indexOf('A1')>-1">A1</span>
110
+                            <span v-if="predialysis.puncture_way.indexOf('A2')>-1">A2</span>
111
+                            <span v-if="predialysis.puncture_way.indexOf('A3')>-1">A3</span>
112
+                            <span v-if="predialysis.puncture_way.indexOf('A4')>-1">A4</span>
113
+                            <span v-if="predialysis.puncture_way.indexOf('A5')>-1">A5</span>
114
+                            <span v-if="predialysis.puncture_way.indexOf('A6')>-1">A6</span>
115
+                          </span>
116
+                        )&nbsp;
117
+                        V:( 
118
+                          <span style="width:50px;display:inline-block;text-align:center;">
119
+                            <span v-if="predialysis.puncture_way.indexOf('V1')>-1">V1</span>
120
+                            <span v-if="predialysis.puncture_way.indexOf('V2')>-1">V2</span>
121
+                            <span v-if="predialysis.puncture_way.indexOf('V3')>-1">V3</span>
122
+                            <span v-if="predialysis.puncture_way.indexOf('V4')>-1">V4</span>
123
+                            <span v-if="predialysis.puncture_way.indexOf('V5')>-1">V5</span>
124
+                            <span v-if="predialysis.puncture_way.indexOf('V6')>-1">V6</span>
125
+                          </span>
126
+                         )
107 127
                         <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('长期管') > -1 ? true : false" showValue="长期管"></label-box>
108 128
                         &nbsp;
109 129
                         <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('临时管') > -1 ? true : false" showValue="临时管"></label-box>
@@ -112,9 +132,11 @@
112 132
                         &nbsp;
113 133
                        <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('人造血管') > -1 ? true : false" showValue="人造血管"></label-box>
114 134
                         &nbsp;
135
+                       <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('扣眼') > -1 ? true : false" showValue="扣眼"></label-box>
136
+                        &nbsp;
115 137
                     </div>
116 138
                 </td>
117
-                <td width='20'></td>
139
+                <td width='10'></td>
118 140
                 <td width="70">封管用药:</td>
119 141
                 <td>
120 142
                     <div class="under-line" style="text-align:left;">&nbsp;{{prescription.remark?prescription.remark:''}}</div>
@@ -315,7 +337,7 @@
315 337
                     <tr>
316 338
                       <td wdith='70'>下机情况:</td>
317 339
                       <td wdith='30'>凝血:</td>
318
-                      <td width="240">
340
+                      <td width="250">
319 341
                           <label-box :isChecked="afterdialysis.cruor?(afterdialysis.cruor.indexOf('无凝血') > -1 ? true : false):false" showValue="无"></label-box>&nbsp;
320 342
                           <label-box :isChecked="afterdialysis.cruor?(afterdialysis.cruor.indexOf('有凝血') > -1 ? true : false):false" showValue="有"></label-box>&nbsp;
321 343
                           <label-box :isChecked="afterdialysis.cruor?(afterdialysis.cruor.indexOf('透析器-Ⅰ度') > -1 ? true : false):false" showValue="Ⅰ"></label-box>&nbsp;

File diff suppressed because it is too large
+ 1500 - 0
src/xt_pages/dialysis/template/DialysisPrintOrderThirtyEight.vue


+ 9 - 1
src/xt_pages/dialysis/template/DialysisPrintOrderThirtyFive.vue View File

@@ -191,7 +191,15 @@
191 191
               <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('颈内静脉') > -1 ? true : false" showValue="临时颈内静脉导管"></label-box>&nbsp;
192 192
               <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('股静脉') > -1 ? true : false" showValue="临时股静脉导管"></label-box>&nbsp;
193 193
               <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('人造血管') > -1 ? true : predialysis.blood_access_part_opera_name.indexOf('移植血管') > -1 ? true : false" showValue="其他"></label-box>&nbsp;
194
-              <span style="width:50px;display: inline-block;"></span>
194
+              
195
+              穿刺方式:
196
+              <span style="width:60px;display: inline-block;">
197
+                {{ predialysis.puncture_way ? predialysis.puncture_way : "" }}
198
+              </span>
199
+              位点:
200
+              <span style="width:60px;display: inline-block;">
201
+                {{ predialysis.pinholing ? predialysis.pinholing : "" }}
202
+              </span>
195 203
               穿刺者:
196 204
               <span style="width:50px;display: inline-block;">
197 205
                 <span v-if="setAdminUserES(dialysisOrder == null ? 0 : dialysisOrder.puncture_nurse) == ''">

+ 156 - 115
src/xt_pages/dialysis/template/DialysisPrintOrderThirtyOne.vue View File

@@ -139,25 +139,15 @@
139 139
           (<label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('内瘘-左') > -1 ? true : false" showValue="左"></label-box>
140 140
               <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('内瘘-右') > -1 ? true : false" showValue="右"></label-box>)
141 141
           &nbsp;
142
-          <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-左') > -1 ? true : predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-右') > -1 ? true : false" showValue="中心静脉置管"></label-box>
143
-          (<label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-左') > -1 ? true : false" showValue="左"></label-box>
144
-              <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-右') > -1 ? true : false" showValue="右"></label-box>)部位
142
+          <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-左-颈内') > -1 ? true : predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-左-锁骨下') > -1 ? true : predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-左-股') > -1 ? true : predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-右-颈内') > -1 ? true : predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-右-锁骨下') > -1 ? true : predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-右-股') > -1 ? true : false" showValue="中心静脉置管"></label-box>
143
+          (<label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-左-颈内') > -1 ? true : predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-左-锁骨下') > -1 ? true : predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-左-股') > -1 ? true : false" showValue="左"></label-box>
144
+              <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-右-颈内') > -1 ? true : predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-右-锁骨下') > -1 ? true : predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-右-股') > -1 ? true : false" showValue="右"></label-box>)部位
145 145
           &nbsp;
146
-          <!-- <label-box :isChecked="predialysis.blood_access_part_id > 0 ? (getPartName(predialysis.blood_access_part_id).indexOf('颈内') > -1 ? true : false) : false" showValue="颈内"></label-box>
146
+          <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-左-颈内')>-1?true:predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-右-颈内')>-1?true:false" showValue="颈内"></label-box>
147 147
           &nbsp;
148
-          <label-box :isChecked="predialysis.blood_access_part_id > 0 ? (getPartName(predialysis.blood_access_part_id).indexOf('锁骨下') > -1 ? true : false) : false" showValue="锁骨下"></label-box>
148
+          <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-左-锁骨下')>-1?true:predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-右-锁骨下')>-1?true:false" showValue="锁骨下"></label-box>
149 149
           &nbsp;
150
-          <label-box :isChecked="predialysis.blood_access_part_id > 0 ? (getPartName(predialysis.blood_access_part_id).indexOf('股') > -1 ? true : false) : false" showValue="股"></label-box>
151
-          &nbsp;
152
-          <label-box :isChecked="predialysis.blood_access_part_id > 0 ? (getPartName(predialysis.blood_access_part_id).indexOf('其他') > -1? true : false) :false" showValue="其他"></label-box>
153
-          &nbsp; -->
154
-          <label-box :isChecked="predialysis.blood_access_part_id.indexOf('颈内')>-1?true:false" showValue="颈内"></label-box>
155
-          &nbsp;
156
-          <label-box :isChecked="predialysis.blood_access_part_id.indexOf('锁骨下')>-1?true:false" showValue="锁骨下"></label-box>
157
-          &nbsp;
158
-          <label-box :isChecked="predialysis.blood_access_part_id.indexOf('股')>-1?true:false" showValue="股"></label-box>
159
-          &nbsp;
160
-          <label-box :isChecked="predialysis.blood_access_part_id.indexOf('其他')>-1?true:false" showValue="其他"></label-box>
150
+          <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-左-股')>-1?true:predialysis.blood_access_part_opera_name.indexOf('中心静脉置管-右-股')>-1?true:false" showValue="股"></label-box>
161 151
           &nbsp;
162 152
         </div>
163 153
       </div>
@@ -311,7 +301,9 @@
311 301
         </div>
312 302
         出血
313 303
         <div class="inline_block under_line" style="width:150px;text-align: center;margin-right:30px;">
314
-          {{ predialysis.is_hemorrhage == 1 && predialysis.hemorrhage ? predialysis.hemorrhage : "" }}
304
+          <span v-if="predialysis.is_hemorrhage == 1">{{ predialysis.is_hemorrhage == 1 && predialysis.hemorrhage ? predialysis.hemorrhage : "" }}</span>
305
+          <span v-if="predialysis.is_hemorrhage == 2">无</span>
306
+          <span v-if="predialysis.is_hemorrhage != 2 && predialysis.is_hemorrhage != 1">/</span>
315 307
         </div>
316 308
         跌倒风险预防措施
317 309
         <div class="inline_block under_line" style="width:100px;text-align: center;">
@@ -446,110 +438,159 @@
446 438
       <table class="print-table" border="1">
447 439
         <tbody>
448 440
           <tr style="height:30px;line-height:30px">
449
-            <td width="70" rowspan="3" style="padding-left:5px;border:none;border-right:1px solid #000;">
441
+            <td width="30" rowspan="4" style="padding-left:5px;border:none;border-right:1px solid #000;">
450 442
               透后小结
451 443
             </td>
452
-
453
-            <td width="25" style="border:none;padding-left:5px;">
454
-              体温:
455
-            </td>
456
-            <td width="70" style="text-align:left;border:none;">
457
-              <div>
458
-                <span class="under_line" style="width:50px;display:inline-block;">
459
-                  {{ afterdialysis.temperature ? afterdialysis.temperature : "" }}
460
-                </span>℃
461
-              </div>
462
-            </td>
463
-            <!-- <td width="10" style="border:none;"></td> -->
464
-
465
-            <td width="20" style="border:none;padding-left:5px;">血压:</td>
466
-            <td width="60" style="text-align:left;border:none;line-height: 30px;">
467
-              <div>
468
-                <span class="under_line" style="width:100px;display:inline-block">
469
-                  {{ afterdialysis.systolic_blood_pressure ? afterdialysis.systolic_blood_pressure : "" }}/
470
-                  {{ afterdialysis.diastolic_blood_pressure ? afterdialysis.diastolic_blood_pressure : "" }}
471
-                </span>mmHg
472
-              </div>
473
-            </td>
474
-            <td width="10" style="border:none;padding-left:5px">脉搏:</td>
475
-            <td width="70" style="text-align:left;border:none;">
476
-              <div>
477
-                <span class="under_line" style="width:50px;display:inline-block">
478
-                  {{ afterdialysis.pulse_frequency ? afterdialysis.pulse_frequency : "" }}
479
-                </span>次/分
480
-              </div>
481
-            </td>
482
-            <td width="50" style="border:none;padding-left:5px">透后症状:</td>
483
-            <td width="100" style="text-align:left;border:none;">
484
-              <div>
485
-                <span class="under_line" style="width:100px;display:inline-block">
486
-                  {{ afterdialysis.symptom_after_dialysis ? afterdialysis.symptom_after_dialysis : "" }}
487
-                </span>
488
-              </div>
444
+            <td colspan="8">
445
+              <table class="table-box">
446
+                <tbody>
447
+                  <tr>
448
+                    <td width="50" style="border:none;padding-left:5px;">
449
+                      体温:
450
+                    </td>
451
+                    <td width="70" style="text-align:left;border:none;">
452
+                      <div>
453
+                        <span class="under_line" style="width:50px;display:inline-block;">
454
+                          {{ afterdialysis.temperature ? afterdialysis.temperature : "" }}
455
+                        </span>℃
456
+                      </div>
457
+                    </td>
458
+                    <!-- <td width="10" style="border:none;"></td> -->
459
+
460
+                    <td width="50" style="border:none;padding-left:5px;">血压:</td>
461
+                    <td width="120" style="text-align:left;border:none;line-height: 30px;">
462
+                      <div>
463
+                        <span class="under_line" style="width:100px;display:inline-block">
464
+                          {{ afterdialysis.systolic_blood_pressure ? afterdialysis.systolic_blood_pressure : "" }}/
465
+                          {{ afterdialysis.diastolic_blood_pressure ? afterdialysis.diastolic_blood_pressure : "" }}
466
+                        </span>mmHg
467
+                      </div>
468
+                    </td>
469
+                    <td width="50" style="border:none;padding-left:5px">脉搏:</td>
470
+                    <td width="70" style="text-align:left;border:none;">
471
+                      <div>
472
+                        <span class="under_line" style="width:50px;display:inline-block">
473
+                          {{ afterdialysis.pulse_frequency ? afterdialysis.pulse_frequency : "" }}
474
+                        </span>次/分
475
+                      </div>
476
+                    </td>
477
+                    <td width="70" style="border:none;padding-left:5px">透后症状:</td>
478
+                    <td width="100" style="text-align:left;border:none;">
479
+                      <div>
480
+                        <span class="under_line" style="width:100px;display:inline-block">
481
+                          {{ afterdialysis.symptom_after_dialysis ? afterdialysis.symptom_after_dialysis : "" }}
482
+                        </span>
483
+                      </div>
484
+                    </td>
485
+                  </tr>
486
+                </tbody>
487
+              </table>
488
+              <table class="table-box">
489
+                <tbody>
490
+                  <tr style="height:30px;line-height:30px;">
491
+                    <td width="80" style="border:none;padding-left:5px">实际置换量:</td>
492
+                    <td width="60" style="text-align:left;border:none;">
493
+                      <div>
494
+                        <span class="under_line" style="width:50px;display:inline-block">
495
+                          {{ afterdialysis.actual_displacement ? afterdialysis.actual_displacement : "" }}
496
+                        </span>L
497
+                      </div>
498
+                    </td>
499
+                    
500
+                    
501
+                    <!-- <td width="50" style="text-align:left;border:none;"></td> -->
502
+                    <!-- <td width="110" style="text-align:left;border:none;"></td> -->
503
+                    <td width="120" style="border:none;padding-left:5px">透析期间进食:</td>
504
+                    <td width="120" style="text-align:left;border:none;">
505
+                      <div>
506
+                        <span class="under_line" style="width:120px;display:inline-block">
507
+                          <span v-if='afterdialysis.is_eat == 1'>是</span>
508
+                          <span v-if='afterdialysis.is_eat == 2'>否</span>
509
+                        </span>
510
+                      </div>
511
+                    </td>
512
+                    <td width='20'></td>
513
+                    <td width="70" style="border:none;padding-left:5px">透析进食:</td>
514
+                    <td width="70" style="text-align:left;border:none;">
515
+                      <div>
516
+                        <span class="under_line" style="width:50px;display:inline-block">
517
+                          {{ afterdialysis.is_eat == 1 && afterdialysis.dialysis_during ? afterdialysis.dialysis_during : '' }}
518
+                        </span>g
519
+                      </div>
520
+                    </td>
521
+                    <td></td>
522
+                    <!-- <td width="10" style="text-align:left;border:none;"></td>
523
+                    <td width="110" style="text-align:left;border:none;"></td> -->
524
+                  </tr>
525
+                </tbody>
526
+              </table>
527
+              <table class="table-box">
528
+                <tbody>
529
+                  <tr>
530
+                    <td width="90" style="border:none;padding-left:5px">透析器凝血:</td>
531
+                    <td width="220" style="text-align:left;border:none;">
532
+                      <label-box :isChecked="afterdialysis.cruor ? (afterdialysis.cruor.indexOf('透析器0') > -1 ? true : false) :false" showValue="0"></label-box>
533
+                      <label-box :isChecked="afterdialysis.cruor ? (afterdialysis.cruor.indexOf('透析器+') > -1 ? true : false) :false" showValue="+"></label-box>
534
+                      <label-box :isChecked="afterdialysis.cruor ? (afterdialysis.cruor.indexOf('透析器++') > -1 ? true : false) :false" showValue="+ +"></label-box>
535
+                      <label-box :isChecked="afterdialysis.cruor ? (afterdialysis.cruor.indexOf('透析器+++') > -1 ? true : false) :false" showValue="+ + +"></label-box>
536
+                    </td>
537
+                    <td width="90" style="border:none;padding-left:5px">静脉管道:</td>
538
+                    <td width="220" style="text-align:left;border:none;">
539
+                      <label-box :isChecked="afterdialysis.intravenous_tube == 1 ? true : false" showValue="无"></label-box>&nbsp;
540
+                      <label-box :isChecked="afterdialysis.intravenous_tube == 2 ? true : false" showValue="+"></label-box>&nbsp;
541
+                      <label-box :isChecked="afterdialysis.intravenous_tube == 3 ? true : false" showValue="+ +"></label-box>&nbsp;
542
+                      <label-box :isChecked="afterdialysis.intravenous_tube == 4 ? true : false" showValue="+ + +"></label-box>&nbsp;
543
+                    </td>
544
+                    <td width="90" style="border:none;padding-left:5px">动脉管道:</td>
545
+                    <td width="220" style="text-align:left;border:none;">
546
+                      <label-box :isChecked="afterdialysis.arterial_tube == 1 ? true : false" showValue="无"></label-box>&nbsp;
547
+                      <label-box :isChecked="afterdialysis.arterial_tube == 2 ? true : false" showValue="+"></label-box>&nbsp;
548
+                      <label-box :isChecked="afterdialysis.arterial_tube == 3 ? true : false" showValue="+ +"></label-box>&nbsp;
549
+                      <label-box :isChecked="afterdialysis.arterial_tube == 4 ? true : false" showValue="+ + +"></label-box>&nbsp;
550
+                    </td>
551
+                    <td></td>
552
+                    <!-- <td width="10" style="text-align:left;border:none;"></td>
553
+                    <td width="110" style="text-align:left;border:none;"></td> -->
554
+                  </tr>
555
+                </tbody>
556
+              </table>
557
+              <table class="table-box">
558
+                <tbody>
559
+                  <tr style="height:30px;line-height:30px;">
560
+                    <td width="50" style="border:none;padding-left:5px;">内瘘:</td>
561
+                    <td width="150" colspan="3" style="text-align:left;border:none;">
562
+                      <div>
563
+                        <span class="under_line" style="width:150px;display:inline-block;">
564
+                          {{ afterdialysis.internal_fistula ? afterdialysis.internal_fistula : "" }}
565
+                        </span>
566
+                      </div>
567
+                    </td>
568
+                    <td width="70" style="border:none;padding-left:5px">下机护士:</td>
569
+                    <td width="100" style="text-align:left;border:none;">
570
+                      <div>
571
+                        <span class="under_line" style="width:100px;display:inline-block">
572
+                          <span v-if="setAdminUserES(dialysisOrder == null ? 0 : dialysisOrder.finish_nurse) == ''">
573
+                            {{ getAdminUser(dialysisOrder == null ? 0 : dialysisOrder.finish_nurse) }}</span>
574
+                          <img class="es-img" style="height:30px" :src="setAdminUserES(dialysisOrder == null ? 0 : dialysisOrder.finish_nurse)" alt="" srcset="" v-else />
575
+                        </span>
576
+                      </div>
577
+                    </td>
578
+                    <td></td>
579
+                    <!-- <td width="10" style="text-align:left;border:none;"></td>
580
+                    <td width="110" style="text-align:left;border:none;"></td> -->
581
+                    <!-- <td width="110" style="text-align:left;border:none;"></td> -->
582
+                    <!-- <td width="110" style="text-align:left;border:none;"></td> -->
583
+                  </tr>
584
+                </tbody>
585
+              </table>
489 586
             </td>
490
-          </tr>
491 587
             
492
-          <tr style="height:30px;line-height:30px;">
493
-            <td width="90" style="border:none;padding-left:5px">实际置换量:</td>
494
-            <td width="30" style="text-align:left;border:none;">
495
-              <div>
496
-                <span class="under_line" style="width:50px;display:inline-block">
497
-                  {{ afterdialysis.actual_displacement ? afterdialysis.actual_displacement : "" }}
498
-                </span>L
499
-              </div>
500
-            </td>
501 588
             
502
-            <td width="90" style="border:none;padding-left:5px">透析器凝血:</td>
503
-            <td width="200" style="text-align:left;border:none;">
504
-              <label-box :isChecked="afterdialysis.cruor ? (afterdialysis.cruor.indexOf('透析器-0度') > -1 ? true : false) :false" showValue="0"></label-box>
505
-              <label-box :isChecked="afterdialysis.cruor ? (afterdialysis.cruor.indexOf('透析器-Ⅰ度') > -1 ? true : false) :false" showValue="+"></label-box>
506
-              <label-box :isChecked="afterdialysis.cruor ? (afterdialysis.cruor.indexOf('透析器-Ⅱ度') > -1 ? true : false) :false" showValue="+ +"></label-box>
507
-              <label-box :isChecked="afterdialysis.cruor ? (afterdialysis.cruor.indexOf('透析器-Ⅲ度') > -1 ? true : false) :false" showValue="+ + +"></label-box>
508
-            </td>
509
-            <!-- <td width="50" style="text-align:left;border:none;"></td> -->
510
-            <!-- <td width="110" style="text-align:left;border:none;"></td> -->
511
-            <td width="100" style="border:none;padding-left:5px">透析期间进食:</td>
512
-            <td width="50" style="text-align:left;border:none;">
513
-              <div>
514
-                <span class="under_line" style="width:50px;display:inline-block">
515
-                  <span v-if='afterdialysis.is_eat == 1'>是</span>
516
-                  <span v-if='afterdialysis.is_eat == 2'>否</span>
517
-                </span>
518
-              </div>
519
-            </td>
520
-            <td width="70" style="border:none;padding-left:5px">透析进食:</td>
521
-            <td width="50" style="text-align:left;border:none;">
522
-              <div>
523
-                <span class="under_line" style="width:50px;display:inline-block">
524
-                  {{ afterdialysis.is_eat == 1 && afterdialysis.dialysis_during ? afterdialysis.dialysis_during : '' }}
525
-                </span>g
526
-              </div>
527
-            </td>
528
-          </tr>
529
-          <tr style="height:30px;line-height:30px;">
530
-            <td width="20" style="border:none;padding-left:5px;">内瘘:</td>
531
-            <td width="150" colspan="3" style="text-align:left;border:none;">
532
-              <div>
533
-                <span class="under_line" style="width:150px;display:inline-block;">
534
-                  {{ afterdialysis.internal_fistula ? afterdialysis.internal_fistula : "" }}
535
-                </span>
536
-              </div>
537
-            </td>
538
-            <td width="50" style="border:none;padding-left:5px">下机护士:</td>
539
-            <td width="100" style="text-align:left;border:none;">
540
-              <div>
541
-                <span class="under_line" style="width:100px;display:inline-block">
542
-                  <span v-if="setAdminUserES(dialysisOrder == null ? 0 : dialysisOrder.finish_nurse) == ''">
543
-                    {{ getAdminUser(dialysisOrder == null ? 0 : dialysisOrder.finish_nurse) }}</span>
544
-                  <img class="es-img" style="height:30px" :src="setAdminUserES(dialysisOrder == null ? 0 : dialysisOrder.finish_nurse)" alt="" srcset="" v-else />
545
-                </span>
546
-              </div>
547
-            </td>
548
-            <td width="10" style="text-align:left;border:none;"></td>
549
-            <td width="110" style="text-align:left;border:none;"></td>
550
-            <!-- <td width="110" style="text-align:left;border:none;"></td> -->
551
-            <!-- <td width="110" style="text-align:left;border:none;"></td> -->
552 589
           </tr>
590
+            
591
+          
592
+          
593
+          
553 594
         </tbody>
554 595
       </table>
555 596
 

File diff suppressed because it is too large
+ 1599 - 0
src/xt_pages/dialysis/template/DialysisPrintOrderThirtySeven.vue


File diff suppressed because it is too large
+ 1840 - 0
src/xt_pages/dialysis/template/DialysisPrintOrderThirtySix.vue


+ 112 - 112
src/xt_pages/dialysis/template/DialysisPrintOrderTwentyEight.vue View File

@@ -10,26 +10,26 @@
10 10
           <td width="90">
11 11
             <div class="under-line">&nbsp;{{ patientInfo.name }}</div>
12 12
           </td>
13
-          <td width="30"></td>
13
+          <td width="10"></td>
14 14
           <td width="50">性 别:</td>
15 15
           <td width="50">
16 16
             <div class="under-line">
17 17
               {{ patientInfo_gender_1 ? "男" : "女" }}
18 18
             </div>
19 19
           </td>
20
-          <td width="30"></td>
20
+          <td width="10"></td>
21 21
           <td width="50">年 龄:</td>
22 22
           <td width="40">
23 23
             <div class="under-line">{{ getAge(patientInfo) }}</div>
24 24
           </td>
25 25
           <td>岁</td>
26 26
 
27
-          <td width="120">透析号/住院号:</td>
28
-          <td width="130">
27
+          <td width="140">透析号/住院号:</td>
28
+          <td width="200">
29 29
             <div class="under-line">&nbsp;{{ patientInfo.dialysis_no }} /{{ receiverTreatmentAccess.admission_number ? receiverTreatmentAccess.admission_number : "无" }}
30 30
             </div>
31 31
           </td>
32
-          <td width="30"></td>
32
+          <td width="10"></td>
33 33
           <td width="80">治疗日期:</td>
34 34
           <td width="120">
35 35
             <div class="under-line">
@@ -43,13 +43,13 @@
43 43
       <table class="table-box" style="margin-top: 10px;">
44 44
         <tbody>
45 45
         <tr>
46
-          <td width="40">诊 断:</td>
46
+          <td width="60">诊 断:</td>
47 47
           <td width="">
48 48
             <div class="under-line" style="text-align:left">
49 49
               &nbsp;{{ patientInfo.diagnose }}
50 50
             </div>
51 51
           </td>
52
-          <td width="60">治疗次数:</td>
52
+          <td width="80">治疗次数:</td>
53 53
           <td width="60">
54 54
                 <div class="under-line">
55 55
                     &nbsp;{{ patientInfo.total_dialysis + patientInfo.user_sys_before_count ? patientInfo.total_dialysis + patientInfo.user_sys_before_count : "" }}
@@ -67,8 +67,8 @@
67 67
             <table class="table-box">
68 68
               <tbody>
69 69
               <tr>
70
-                <td width="70">入科方式:</td>
71
-                <td width="240">
70
+                <td width="80">入科方式:</td>
71
+                <td width="260">
72 72
                   <div style="display:flex;justify-content:space-between;">
73 73
                     <label-box v-for="(item, index) in way_arr" :key="index" :isChecked="receiverTreatmentAccess.way == item.id ? true : false" :showValue="item.name"></label-box>
74 74
                     <!--&nbsp-->
@@ -80,9 +80,9 @@
80 80
                   </div>
81 81
                 </td>
82 82
 
83
-                <td width="50"></td>
83
+                <td width="20"></td>
84 84
                 <td width="50">意识:</td>
85
-                <td width="240">
85
+                <td width="260">
86 86
                   <div style="display:flex;justify-content:space-between;">
87 87
                     <label-box v-for="(item, index) in consciousness_arr" :key="index" :isChecked="receiverTreatmentAccess.consciousness == item.id ? true : false" :showValue="item.name"></label-box>
88 88
 
@@ -99,13 +99,13 @@
99 99
                   </div>
100 100
                 </td>
101 101
                 <td width='20'></td>
102
-                <td width='60'>透析频次</td>
102
+                <td width='80'>透析频次</td>
103 103
                 <td width="70">
104 104
                   <div class="under-line">
105 105
                     &nbsp;{{ predialysis.dialysis_count ? predialysis.dialysis_count : "" }}
106 106
                   </div>
107 107
                 </td>
108
-                <td width='40'>次/周</td>
108
+                <td width='50'>次/周</td>
109 109
                 <td></td>
110 110
               </tr>
111 111
               </tbody>
@@ -114,8 +114,8 @@
114 114
             <table class="table-box">
115 115
               <tbody>
116 116
               <tr>
117
-                <td width="80">生命体征:</td>
118
-                <td width="40">体温:</td>
117
+                <td width="100">生命体征:</td>
118
+                <td width="50">体温:</td>
119 119
                 <td width="70">
120 120
                   <div class="under-line">
121 121
                     &nbsp;{{ predialysis.temperature ? predialysis.temperature : "" }}
@@ -131,20 +131,20 @@
131 131
                 <td width="35">次/分</td>
132 132
                 <td width="30"></td> -->
133 133
 
134
-                <td width="40">脉搏:</td>
134
+                <td width="50">脉搏:</td>
135 135
                 <td width="70">
136 136
                   <div class="under-line">
137 137
                     &nbsp;{{ predialysis.pulse_frequency ? predialysis.pulse_frequency : "" }}
138 138
                   </div>
139 139
                 </td>
140
-                <td width="40">次/分</td>
140
+                <td width="50">次/分</td>
141 141
                 <td width="30"></td>
142 142
 
143
-                <td width="40">血压:</td>
143
+                <td width="50">血压:</td>
144 144
                 <td width="140">
145 145
                   <div class="under-line">
146
-                    {{ predialysis.systolic_blood_pressure ? predialysis.systolic_blood_pressure : "" }}/
147
-                    {{ predialysis.diastolic_blood_pressure ? predialysis.diastolic_blood_pressure : "" }}
146
+                    {{ monitors[0] && monitors[0].systolic_blood_pressure ? monitors[0].systolic_blood_pressure : "" }}/
147
+                    {{ monitors[0] && monitors[0].diastolic_blood_pressure ? monitors[0].diastolic_blood_pressure : "" }}
148 148
                   </div>
149 149
                 </td>
150 150
                 <td width="35">mmHg</td>
@@ -157,19 +157,16 @@
157 157
             <table class="table-box">
158 158
               <tbody>
159 159
               <tr>
160
-                <td width="86">导管穿刺口:</td>
161
-                <td width="240">
160
+                <td width="100">导管穿刺口:</td>
161
+                <td width="330">
162 162
                   <div style="display:flex;justify-content:space-between;">
163
+                    <label-box :isChecked="predialysis.catheter.indexOf('正常') > -1 ? true : false" showValue="正常"></label-box>
163 164
                     <label-box :isChecked="predialysis.catheter.indexOf('穿刺口-干洁') > -1 ? true : false" showValue="干洁"></label-box>
164
-                    &nbsp;
165 165
                     <label-box :isChecked="predialysis.catheter.indexOf('穿刺口-红肿') > -1 ? true : false" showValue="红肿"></label-box>
166
-                    &nbsp;
167 166
                     <label-box :isChecked="predialysis.catheter.indexOf('穿刺口-分泌物') > -1 ? true : false" showValue="分泌物"></label-box>
168
-                    &nbsp;
169 167
                     <label-box :isChecked="predialysis.catheter.indexOf('穿刺口-渗血') > -1 ? true : false" showValue="渗血"></label-box>
170 168
                   </div>
171 169
                 </td>
172
-                <td width="40"></td>
173 170
                 <!-- <td width="65">导管打折</td>
174 171
                 <td width="10">(</td>
175 172
                 <td width="80">
@@ -193,8 +190,15 @@
193 190
                 <td></td> -->
194 191
 
195 192
                 <!-- 体位 -->
196
-                <td width="40">体位:</td>
197
-                <td width="400">
193
+                <td></td>
194
+              </tr>
195
+              </tbody>
196
+            </table>
197
+            <table class="table-box">
198
+              <tbody>
199
+              <tr>
200
+                <td width="50">体位:</td>
201
+                <td width="440">
198 202
                   <div style="display:flex;justify-content:space-between;">
199 203
                     <label-box v-for="(item, index) in posture_arr" :key="index" :isChecked="receiverTreatmentAccess.posture == item.id ? true : false" :showValue="item.name"></label-box>
200 204
 
@@ -219,12 +223,11 @@
219 223
               </tr>
220 224
               </tbody>
221 225
             </table>
222
-
223 226
             <table class="table-box">
224 227
               <tbody>
225 228
               <tr>
226
-                <td width="70">内瘘评估:</td>
227
-                <td width="35">震颤:</td>
229
+                <td width="80">内瘘评估:</td>
230
+                <td width="50">震颤:</td>
228 231
                 <td width="210">
229 232
                   <div style="display:flex;justify-content:space-between;">
230 233
                     <label-box :isChecked="predialysis.internal_fistula.indexOf('震颤-存在') > -1 ? true : false" showValue="存在"></label-box>
@@ -236,9 +239,9 @@
236 239
                 </td>
237 240
                 <td width="50"></td>
238 241
 
239
-                <td width="95">内瘘皮肤情况:</td>
240
-                <td width="220">
241
-                  <div style="display:flex;justify-content:space-between;">
242
+                <td width="120">内瘘皮肤情况:</td>
243
+                <td style="text-align:left;">
244
+                  <div>
242 245
                     <label-box :isChecked="predialysis.internal_fistula_skin.indexOf('正常') > -1 ? true : false" showValue="正常"></label-box>
243 246
                     &nbsp;
244 247
                     <label-box :isChecked="predialysis.internal_fistula_skin.indexOf('瘀斑') > -1 ? true : false" showValue="瘀斑"></label-box>
@@ -248,7 +251,6 @@
248 251
                     <label-box :isChecked="predialysis.internal_fistula_skin.indexOf('肿') > -1 ? true : false" showValue="肿"></label-box>
249 252
                   </div>
250 253
                 </td>
251
-                <td></td>
252 254
               </tr>
253 255
               </tbody>
254 256
             </table>
@@ -256,8 +258,8 @@
256 258
             <table class="table-box">
257 259
               <tbody>
258 260
                 <tr>
259
-                  <td width="40">皮肤:</td>
260
-                  <td width="600">
261
+                  <td width="50">皮肤:</td>
262
+                  <td width="780">
261 263
                     <div style="display:flex;justify-content:space-between;">
262 264
                       <!-- <label-box showValue="完整" :isChecked="predialysis.skin == 1 ? true : false"></label-box>
263 265
                       <label-box showValue="干燥" :isChecked="predialysis.skin == 2 ? true : false"></label-box>
@@ -277,11 +279,12 @@
277 279
                       <label-box showValue="出血点" :isChecked="predialysis.skin.indexOf('出血点')>-1 ? true : false"></label-box>
278 280
                       <label-box showValue="压疮" :isChecked="predialysis.skin.indexOf('压疮')>-1 ? true : false"></label-box>
279 281
                       <label-box showValue="皮下淤血" :isChecked="predialysis.skin.indexOf('皮下淤血')>-1 ? true : false"></label-box>
282
+                      <label-box showValue="皮下出血" :isChecked="predialysis.skin.indexOf('皮下出血')>-1 ? true : false"></label-box>
280 283
                       &ensp;
281 284
                     </div>
282 285
                   </td>
283 286
 
284
-                  <td width="35">其它</td>
287
+                  <td width="50">其它</td>
285 288
                   <td width="">
286 289
                     <div class="under-line">
287 290
                       &nbsp;
@@ -295,8 +298,8 @@
295 298
             <table class="table-box">
296 299
               <tbody>
297 300
               <tr>
298
-                <td width="86">活动性出血:</td>
299
-                <td width="40">
301
+                <td width="110">活动性出血:</td>
302
+                <td width="60">
300 303
                   <div>
301 304
                     <label-box :isChecked="predialysis.is_hemorrhage == 2 ? true : false" showValue="无"></label-box>
302 305
                     <!-- &nbsp;
@@ -309,7 +312,7 @@
309 312
                   </div>
310 313
                 </td>
311 314
                 <!-- <td width="10">(</td> -->
312
-                <td width="380">
315
+                <td width="500" style="text-align:left;">
313 316
                   <div>
314 317
                     <label-box :isChecked="predialysis.is_hemorrhage == 1 && predialysis.hemorrhage.indexOf('牙龈出血') > -1 ? true : false" showValue="牙龈出血"></label-box>
315 318
                     &nbsp;
@@ -322,7 +325,7 @@
322 325
                   </div>
323 326
                 </td>
324 327
 
325
-                <td width="35">其它</td>
328
+                <td width="50">其它</td>
326 329
                 <td width="">
327 330
                   <div class="under-line">
328 331
                     &nbsp;
@@ -337,8 +340,8 @@
337 340
             <table class="table-box">
338 341
               <tbody>
339 342
               <tr>
340
-                <td width="70">血管通路:</td>
341
-                <td width="590">
343
+                <td width="90">血管通路:</td>
344
+                <td style="text-align:left;">
342 345
                   <div>
343 346
                     <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('自体内瘘') > -1 ? true : false" showValue="自体内瘘"></label-box>
344 347
                     &nbsp;
@@ -357,16 +360,14 @@
357 360
                     &nbsp;
358 361
                   </div>
359 362
                 </td>
360
-
361
-                <td></td>
362 363
               </tr>
363 364
               </tbody>
364 365
             </table>
365 366
             <table class="table-box">
366 367
               <tbody>
367 368
               <tr>
368
-                <td width="70">穿刺方式:</td>
369
-                <td width="200">
369
+                <td width="90">穿刺方式:</td>
370
+                <td width="260" style="text-align:left;">
370 371
                   <div>
371 372
                     <label-box showValue="绳梯" :isChecked="predialysis.puncture_way.indexOf('绳梯')>-1 ? true : false"></label-box>&nbsp;
372 373
                     <label-box showValue="定点" :isChecked="predialysis.puncture_way.indexOf('定点')>-1 ? true : false"></label-box>&nbsp;
@@ -375,7 +376,7 @@
375 376
                 </td>
376 377
                 <td width='20'></td>
377 378
                 <td width="70">穿刺针:</td>
378
-                <td width="180">
379
+                <td width="260" style="text-align:left;">
379 380
                   <div>
380 381
                     <label-box :isChecked="predialysis.puncture_needle && predialysis.puncture_needle.indexOf('16G') > -1 ? true : false" showValue="16G"></label-box>
381 382
                     &nbsp;
@@ -403,7 +404,7 @@
403 404
             <table class="table-box">
404 405
               <tbody>
405 406
               <tr>
406
-                <td width="60">干体重:</td>
407
+                <td width="80">干体重:</td>
407 408
                 <td width="50">
408 409
                   <div class="under-line">
409 410
                     &nbsp;{{ predialysis.dry_weight ? predialysis.dry_weight : "" }}
@@ -411,7 +412,7 @@
411 412
                 </td>
412 413
                 <td width="20">Kg</td>
413 414
                 <td></td>
414
-                <td width="70">透前体重:</td>
415
+                <td width="90">透前体重:</td>
415 416
                 <td width="50">
416 417
                   <div class="under-line">
417 418
                     &nbsp;{{ predialysis.weight_before ? predialysis.weight_before : "" }}
@@ -420,7 +421,7 @@
420 421
                 <td width="20">Kg</td>
421 422
 
422 423
                 <td></td>
423
-                <td width="100">计划治疗时间:</td>
424
+                <td width="120">计划治疗时间:</td>
424 425
                 <td width="40">
425 426
                   <div class="under-line">
426 427
                     &nbsp;{{ prescription.dialysis_duration_hour ? prescription.dialysis_duration_hour : "0" }}
@@ -434,7 +435,7 @@
434 435
                 </td>
435 436
                 <td width="35">min</td>
436 437
                 <td></td>
437
-                <td width="80">透析机编号:</td>
438
+                <td width="100">透析机编号:</td>
438 439
                 <td width="120">
439 440
                   <div class="under-line">{{ getNumber() }}</div>
440 441
                 </td>
@@ -483,13 +484,13 @@
483 484
                     &nbsp;{{ prescription.replacement_total ? prescription.replacement_total : "/" }}
484 485
                   </div>
485 486
                 </td>
486
-                <td width="20">ml</td>
487
+                <td width="10">ml</td>
487 488
 
488 489
                 <td width="80">透析方式:</td>
489
-                <td width="50">
490
+                <td width="60">
490 491
                   <label-box :isChecked="prescription.mode_id == 1 ? true : false" showValue="HD"></label-box>
491 492
                 </td>
492
-                <td width="60">
493
+                <td width="70">
493 494
                   <label-box :isChecked="prescription.mode_id == 2 ? true : false" showValue="HDF"></label-box>
494 495
                 </td>
495 496
                 <td width="50">
@@ -498,11 +499,11 @@
498 499
                 <td width="50">
499 500
                   <label-box :isChecked="prescription.mode_id == 4 ? true : false" showValue="HP"></label-box>
500 501
                 </td>
501
-                <td width="80">
502
+                <td width="90">
502 503
                   <label-box :isChecked="prescription.mode_id == 3 ? true : false" showValue="HD+HP"></label-box>
503 504
                 </td>
504
-                <td width="90">透析器型号:</td>
505
-                <td width="100">
505
+                <td width="100">透析器型号:</td>
506
+                <td width="80">
506 507
                   <div class="under-line">
507 508
                     &nbsp;{{ prescription.dialyzer_perfusion_apparatus ? prescription.dialyzer_perfusion_apparatus : "/" }}
508 509
                   </div>
@@ -537,7 +538,7 @@
537 538
                 <td width="70">
538 539
                   <label-box :isChecked="prescription.anticoagulant == 1 ? true : false" showValue="无肝素"></label-box>
539 540
                 </td>
540
-                <td width="80">
541
+                <td width="100">
541 542
                   <label-box :isChecked="prescription.anticoagulant == 2 ? true : false" showValue="普通肝素:"></label-box>
542 543
                 </td>
543 544
                 <td width="35">首剂</td>
@@ -591,12 +592,12 @@
591 592
             <table class="table-box">
592 593
               <tbody>
593 594
               <tr>
594
-                <td width="85">透析液配方:</td>
595
-                <td width='90'>B液: 碳酸盐:</td>
596
-                <td width='30'>A液:</td>
595
+                <td width="110">透析液配方:</td>
596
+                <td width='110'>B液: 碳酸盐:</td>
597
+                <td width='50'>A液:</td>
597 598
                 <td width="10">钙</td>
598 599
                 <td width="10">(</td>
599
-                <td width="210">
600
+                <td width="270">
600 601
                   <label-box :isChecked="prescription.dialysate_formulation_name.indexOf('A液:钙(1.25mmol/L)钾(2.0mmol/L)') > -1 ? true : prescription.dialysate_formulation_name.indexOf('A液:钙(1.25mmol/L)钾(3.5mmol/L)') > -1 ? true : false" showValue="1.25mmol/L"></label-box>
601 602
                   &nbsp;
602 603
                   <label-box :isChecked="prescription.dialysate_formulation_name.indexOf('A液:钙(1.5mmol/L)钾(2.0mmol/L)') > -1 ? true : prescription.dialysate_formulation_name.indexOf('A液:钙(1.5mmol/L)钾(3.5mmol/L)') > -1 ? true : false" showValue="1.5mmol/L"></label-box>
@@ -605,7 +606,7 @@
605 606
                 <td width="10">)</td>
606 607
                 <td width="10">钾</td>
607 608
                 <td width="10">(</td>
608
-                <td width="210">
609
+                <td width="270">
609 610
                   <label-box :isChecked="prescription.dialysate_formulation_name.indexOf('A液:钙(1.25mmol/L)钾(2.0mmol/L)') > -1 ? true : prescription.dialysate_formulation_name.indexOf('A液:钙(1.5mmol/L)钾(2.0mmol/L)') > -1 ? true : false" showValue="2.0mmol/L"></label-box>
610 611
                   &nbsp;
611 612
                   <label-box :isChecked="prescription.dialysate_formulation_name.indexOf('A液:钙(1.25mmol/L)钾(3.5mmol/L)') > -1 ? true : prescription.dialysate_formulation_name.indexOf('A液:钙(1.5mmol/L)钾(3.5mmol/L)') > -1 ? true : false" showValue="3.5mmol/L"></label-box>
@@ -620,7 +621,7 @@
620 621
             <table class="table-box">
621 622
               <tbody>
622 623
               <tr>
623
-                <td width="40">其他:</td>
624
+                <td width="50">其他:</td>
624 625
                 <td width="">
625 626
                   <div class="under-line">&nbsp;</div>
626 627
                 </td>
@@ -776,7 +777,7 @@
776 777
           <td width="60">时间</td>
777 778
           <td width="40" style="line-height:20px">T<br />℃</td>
778 779
           <td width="80" style="line-height:20px">Bp<br />mmHg</td>
779
-          <td width="40" style="line-height:20px">P<br />次/分</td>
780
+          <td width="50" style="line-height:20px">P<br />次/分</td>
780 781
           <td width="60" style="line-height:20px">R<br />次/分</td>
781 782
           <td width="60" style="line-height:20px">静脉压<br />{{monitors[0] && monitors[0]['venous_pressure_type'] == 2 ? 'kpa' : 'mmHg'}}</td>
782 783
           <td width="60" style="line-height:20px">动脉压<br />{{monitors[0] && monitors[0]['venous_pressure_type'] == 2 ? 'kpa' : 'mmHg'}}</td>
@@ -986,8 +987,8 @@
986 987
                   </td>
987 988
                 </tr> -->
988 989
                 <tr>
989
-                  <td width="70">拔针压迫:</td>
990
-                  <td width="350">
990
+                  <td width="90">拔针压迫:</td>
991
+                  <td width="450">
991 992
                     <div style="display:flex;justify-content:space-between;">
992 993
                       <label-box showValue="自己压迫" :isChecked="afterdialysis.hemostasis_opera == 3 ? true : false"></label-box>
993 994
                       &nbsp;
@@ -998,7 +999,7 @@
998 999
                     </div>
999 1000
                   </td>
1000 1001
                   <td width="50"></td>
1001
-                  <td width="70">内瘘震颤:</td>
1002
+                  <td width="90">内瘘震颤:</td>
1002 1003
                   <td width="200">
1003 1004
                     <div style="display:flex;justify-content:space-between;">
1004 1005
                       <label-box :isChecked="afterdialysis.internal_fistula.indexOf('震颤-存在') > -1 ? true : false" showValue="存在"></label-box>
@@ -1014,16 +1015,16 @@
1014 1015
               <table class="table-box">
1015 1016
                 <tbody>
1016 1017
                 <tr>
1017
-                  <td width="130">拔针后穿刺点渗血:</td>
1018
-                  <td width="80">
1018
+                  <td width="160">拔针后穿刺点渗血:</td>
1019
+                  <td width="100">
1019 1020
                     <div style="display:flex;justify-content:space-between;">
1020 1021
                       <label-box :isChecked="afterdialysis.puncture_point_oozing_blood == 1 ? true : false" showValue="有"></label-box>
1021 1022
                       <label-box :isChecked="afterdialysis.puncture_point_oozing_blood == 2 ? true : false" showValue="无"></label-box>
1022 1023
                     </div>
1023 1024
                   </td>
1024 1025
                   <td width="10"></td>
1025
-                  <td width="85">穿刺处血肿:</td>
1026
-                  <td width="80">
1026
+                  <td width="100">穿刺处血肿:</td>
1027
+                  <td width="100">
1027 1028
                     <div style="display:flex;justify-content:space-between;">
1028 1029
                       <label-box :isChecked="afterdialysis.puncture_point_haematoma == 1 ? true : false" showValue="有"></label-box>
1029 1030
                       <label-box :isChecked="afterdialysis.puncture_point_haematoma == 2 ? true : false" showValue="无"></label-box>
@@ -1031,14 +1032,14 @@
1031 1032
                   </td>
1032 1033
 
1033 1034
                   <td width="10"></td>
1034
-                  <td width="105">中心静脉封管:</td>
1035
-                  <td width="40">肝素:</td>
1036
-                  <td width="30">A端</td>
1035
+                  <td width="120">中心静脉封管:</td>
1036
+                  <td width="50">肝素:</td>
1037
+                  <td width="40">A端</td>
1037 1038
                   <td width="30">
1038 1039
                     <div class="under-line">&nbsp;{{ afterdialysis.cvc_a ? afterdialysis.cvc_a : "" }}</div>
1039 1040
                   </td>
1040 1041
                   <td width="20">ml</td>
1041
-                  <td width="30">V端</td>
1042
+                  <td width="40">V端</td>
1042 1043
                   <td width="30">
1043 1044
                     <div class="under-line">&nbsp;{{ afterdialysis.cvc_v ? afterdialysis.cvc_v : "" }}</div>
1044 1045
                   </td>
@@ -1051,8 +1052,8 @@
1051 1052
               <table class="table-box">
1052 1053
                 <tbody>
1053 1054
                 <tr>
1054
-                  <td width="85">透析并发症:</td>
1055
-                  <td width="600">
1055
+                  <td width="110">透析并发症:</td>
1056
+                  <td width="640">
1056 1057
                     <div style="display:flex;justify-content:space-between;">
1057 1058
                       <label-box :isChecked="afterdialysis.complication.indexOf('无') > -1 ? true : false" showValue="无"></label-box>
1058 1059
                       <label-box :isChecked="afterdialysis.complication.indexOf('头晕') > -1 ? true : false" showValue="头晕"></label-box>
@@ -1093,7 +1094,7 @@
1093 1094
                       ></label-box> -->
1094 1095
                     </div>
1095 1096
                   </td>
1096
-                  <td width="40">其他:</td>
1097
+                  <td width="50">其他:</td>
1097 1098
                   <td width="">
1098 1099
                     <div class="under-line">
1099 1100
                       &nbsp;{{ afterdialysis.complication ? getComplication(afterdialysis.complication) : '' }}
@@ -1106,9 +1107,9 @@
1106 1107
               <table class="table-box">
1107 1108
                 <tbody>
1108 1109
                 <tr>
1109
-                  <td width="40">凝血:</td>
1110
-                  <td width="60">透析器:</td>
1111
-                  <td width="220">
1110
+                  <td width="50">凝血:</td>
1111
+                  <td width="70">透析器:</td>
1112
+                  <td width="240">
1112 1113
                     <div style="display:flex;justify-content:space-between;">
1113 1114
                       <label-box :isChecked="afterdialysis.cruor.indexOf('透析器-0度') > -1 ? true : false" showValue="无"></label-box>
1114 1115
                       <label-box :isChecked="afterdialysis.cruor.indexOf('透析器-Ⅰ度') > -1 ? true : false" showValue="+"></label-box>
@@ -1116,9 +1117,9 @@
1116 1117
                       <label-box :isChecked="afterdialysis.cruor.indexOf('透析器-Ⅲ度')> -1  ? true : false" showValue="+ + +"></label-box>
1117 1118
                     </div>
1118 1119
                   </td>
1119
-                  <td width="20"></td>
1120
-                  <td width="70">静脉管道:</td>
1121
-                    <td width="220">
1120
+                  <td width="10"></td>
1121
+                  <td width="100">静脉管道:</td>
1122
+                    <td width="240">
1122 1123
                       <div style="display:flex;justify-content:space-between;">
1123 1124
                         <label-box :isChecked="afterdialysis.intravenous_tube == 1 ? true : false" showValue="无"></label-box>
1124 1125
                         <label-box :isChecked="afterdialysis.intravenous_tube == 2 ? true : false" showValue="+"></label-box>
@@ -1126,9 +1127,9 @@
1126 1127
                         <label-box :isChecked="afterdialysis.intravenous_tube == 4 ? true : false" showValue="+ + +"></label-box>
1127 1128
                       </div>
1128 1129
                     </td>
1129
-                    <td width="20"></td>
1130
-                    <td width="70">动脉管道:</td>
1131
-                    <td width="220">
1130
+                    <td width="10"></td>
1131
+                    <td width="100">动脉管道:</td>
1132
+                    <td width="240">
1132 1133
                       <div style="display:flex;justify-content:space-between;">
1133 1134
                         <label-box :isChecked="afterdialysis.arterial_tube == 1 ? true : false" showValue="无"></label-box>
1134 1135
                         <label-box :isChecked="afterdialysis.arterial_tube == 2 ? true : false" showValue="+"></label-box>
@@ -1136,7 +1137,6 @@
1136 1137
                         <label-box :isChecked="afterdialysis.arterial_tube == 4 ? true : false" showValue="+ + +"></label-box>
1137 1138
                       </div>
1138 1139
                     </td>
1139
-                  <td></td>
1140 1140
                 </tr>
1141 1141
                 </tbody>
1142 1142
               </table>
@@ -1144,23 +1144,23 @@
1144 1144
               <table class="table-box">
1145 1145
                 <tbody>
1146 1146
                 <tr>
1147
-                  <td width="70">透后体重:</td>
1147
+                  <td width="90">透后体重:</td>
1148 1148
                   <td width="50">
1149 1149
                     <div class="under-line">
1150 1150
                       &nbsp;{{ afterdialysis.weight_after ? afterdialysis.weight_after : "" }}
1151 1151
                     </div>
1152 1152
                   </td>
1153 1153
                   <td width="20">Kg</td>
1154
-                  <td width="20"></td>
1155
-                  <td width="90">实际超滤总量</td>
1154
+                  <td width="10"></td>
1155
+                  <td width="120">实际超滤总量</td>
1156 1156
                   <td width="40">
1157 1157
                     <div class="under-line">
1158 1158
                       &nbsp;{{ afterdialysis.actual_ultrafiltration ? afterdialysis.actual_ultrafiltration : "" }}
1159 1159
                     </div>
1160 1160
                   </td>
1161 1161
                   <td width="10">ml</td>
1162
-                  <td width="20"></td>
1163
-                  <td width="90">实际治疗时间</td>
1162
+                  <td width="10"></td>
1163
+                  <td width="120">实际治疗时间</td>
1164 1164
                   <td width="40">
1165 1165
                     <div class="under-line">
1166 1166
                       &nbsp;{{ afterdialysis.actual_treatment_hour ? afterdialysis.actual_treatment_hour : "0" }}
@@ -1172,9 +1172,9 @@
1172 1172
                       &nbsp;{{ afterdialysis.actual_treatment_minute ? afterdialysis.actual_treatment_minute : "0" }}
1173 1173
                     </div>
1174 1174
                   </td>
1175
-                  <td width="35">min</td>
1176
-                  <td width="40">去向:</td>
1177
-                    <td width="160">
1175
+                  <td width="20">min</td>
1176
+                  <td width="50">去向:</td>
1177
+                    <td width="200">
1178 1178
                       <div style="display:flex;justify-content:space-between;">
1179 1179
                         <label-box :isChecked="afterdialysis.patient_gose == 1 ? true : false" showValue="回家"></label-box>
1180 1180
                         <label-box :isChecked="afterdialysis.patient_gose == 2 ? true : false" showValue="留观"></label-box>
@@ -1308,7 +1308,7 @@
1308 1308
         <tbody>
1309 1309
         <tr>
1310 1310
           <td width="300"></td>
1311
-          <td width="30">医生</td>
1311
+          <td width="50">医生</td>
1312 1312
           <td width="80">
1313 1313
             <div class="under-line">
1314 1314
               &nbsp;
@@ -1316,7 +1316,7 @@
1316 1316
               <img style="height:30px;" :src="setAdminUserES(prescription==null?0:(prescription.prescription_doctor?prescription.prescription_doctor:''))" alt="" srcset="" v-else />
1317 1317
             </div>
1318 1318
           </td>
1319
-          <td width="50">责任护士</td>
1319
+          <td width="90">责任护士</td>
1320 1320
           <td width="80">
1321 1321
             <div class="under-line">
1322 1322
               &nbsp;
@@ -1324,7 +1324,7 @@
1324 1324
               <img class="es-img" style="height:30px" :src="setAdminUserES(dialysisOrder==null?0:dialysisOrder.start_nurse)" alt="" srcset="" v-else>
1325 1325
             </div>
1326 1326
           </td>
1327
-          <td width="50">穿刺护士</td>
1327
+          <td width="90">穿刺护士</td>
1328 1328
           <td width="80">
1329 1329
             <div class="under-line">
1330 1330
               &nbsp;
@@ -1332,7 +1332,7 @@
1332 1332
               <img class="es-img" style="height:30px" :src="setAdminUserES(dialysisOrder==null?0:dialysisOrder.puncture_nurse)" alt="" srcset="" v-else>
1333 1333
             </div>
1334 1334
           </td>
1335
-          <td width="50">核对护士</td>
1335
+          <td width="90">核对护士</td>
1336 1336
           <td width="80">
1337 1337
             <div class="under-line">
1338 1338
               &nbsp;
@@ -2010,8 +2010,8 @@ export default {
2010 2010
             if (this.org_template_info.org_id == 9535) {
2011 2011
               this.isShowZero = true
2012 2012
             }
2013
-            if (this.monitors.length < 9) {
2014
-              var nl = 9 - this.monitors.length
2013
+            if (this.monitors.length < 6) {
2014
+              var nl = 6 - this.monitors.length
2015 2015
               for (let index = 0; index < nl; index++) {
2016 2016
                 this.monitors.push([])
2017 2017
               }
@@ -2371,7 +2371,7 @@ export default {
2371 2371
   .dialysis-print-order .table-box {
2372 2372
     width: 100%;
2373 2373
     line-height: 23px;
2374
-    font-size: 14px;
2374
+    font-size: 18px;
2375 2375
   }
2376 2376
 
2377 2377
   .dialysis-print-order .print-table {
@@ -2379,14 +2379,14 @@ export default {
2379 2379
     text-align: center;
2380 2380
     border-collapse: collapse;
2381 2381
     line-height: 40px;
2382
-    font-size: 14px;
2382
+    font-size: 18px;
2383 2383
   }
2384 2384
 
2385 2385
   .dialysis-print-order .print-table-no {
2386 2386
     width: 100%;
2387 2387
     text-align: center;
2388 2388
     border-collapse: collapse;
2389
-    font-size: 14px;
2389
+    font-size: 18px;
2390 2390
   }
2391 2391
 
2392 2392
   .dialysis-print-order .under-line {
@@ -2398,7 +2398,7 @@ export default {
2398 2398
 
2399 2399
   .dialysis-print-order .title-box {
2400 2400
     text-align: center;
2401
-    font-size: 16px;
2401
+    font-size: 18px;
2402 2402
   }
2403 2403
 
2404 2404
   .dialysis-print-order .radio-lebel-box {
@@ -2431,8 +2431,8 @@ export default {
2431 2431
     position: relative;
2432 2432
     border: 1px solid #000;
2433 2433
     box-sizing: border-box;
2434
-    width: 14px;
2435
-    height: 14px;
2434
+    width: 18px !important;
2435
+    height: 18px !important;
2436 2436
     background-color: #fff;
2437 2437
     z-index: 1;
2438 2438
     transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),
@@ -2441,7 +2441,7 @@ export default {
2441 2441
 
2442 2442
   .dialysis-print-order .is-checked-radio::after {
2443 2443
     content: "√";
2444
-    font-size: 15px;
2444
+    font-size: 19px;
2445 2445
   }
2446 2446
 
2447 2447
   .dialysis-print-order .print-table-no tr td {

+ 57 - 12
src/xt_pages/dialysis/template/DialysisPrintOrderTwentyFour.vue View File

@@ -605,11 +605,11 @@
605 605
                             <td width='100'>
606 606
                                 <label-box :isChecked="prescription.anticoagulant == 3 ? true : prescription.anticoagulant == 6 ? true : prescription.anticoagulant == 7 ? true : false" showValue="低分子肝素"></label-box>
607 607
                             </td>
608
-                            <td width='100'>
608
+                            <!-- <td width='100'>
609 609
                                 <div class="under-line">
610 610
                                     &nbsp;{{ prescription.antioxidant_commodity_name ? prescription.antioxidant_commodity_name : '' }}
611 611
                                 </div>
612
-                            </td>
612
+                            </td> -->
613 613
                             <td width='10'>(</td>
614 614
                             <td width='40'>首剂</td>
615 615
                             <td width='50'>
@@ -768,6 +768,16 @@
768 768
                             </span>
769 769
                         </div>
770 770
                     </td>
771
+                    <td width='50'>其他:</td>
772
+                    <td width='100'>
773
+                      
774
+                      <div class="under-line">
775
+                        <span>
776
+                          {{afterdialysis.sealing_fluid_dispose ? otherSealingFluidDispose(afterdialysis.sealing_fluid_dispose) : ''}}
777
+                        </span>   
778
+                      </div>
779
+                    </td>
780
+
771 781
                     <td width='10'>A:</td>
772 782
                     <td width='50'>
773 783
                         <div class="under-line">
@@ -783,16 +793,24 @@
783 793
                         </div>
784 794
                     </td>
785 795
                     <td width='10'>ml</td>
796
+                    
797
+                    
798
+                    <td></td>
799
+                  </tr>
800
+                </tbody>
801
+              </table>
802
+              <table class="table-box">
803
+                <tbody>
804
+                  <tr>
805
+                    <td></td>
786 806
                     <td width='70'>医生签名</td>
787 807
                     <td width='100'>
788
-                        <div class="under-line">
789
-                            &nbsp;
790
-                            <span v-if="setAdminUserES(prescription==null?0:(prescription.prescription_doctor?prescription.prescription_doctor:'')) == ''"> {{ getAdminUser(prescription==null?0:(prescription.prescription_doctor?prescription.prescription_doctor:'')) }} </span>
791
-                            <img style="height:30px;" :src="setAdminUserES(prescription==null?0:(prescription.prescription_doctor?prescription.prescription_doctor:''))" alt="" srcset="" v-else />
792
-                        </div>
808
+                      <div class="under-line">
809
+                          &nbsp;
810
+                          <span v-if="setAdminUserES(prescription==null?0:(prescription.prescription_doctor?prescription.prescription_doctor:'')) == ''"> {{ getAdminUser(prescription==null?0:(prescription.prescription_doctor?prescription.prescription_doctor:'')) }} </span>
811
+                          <img style="height:30px;" :src="setAdminUserES(prescription==null?0:(prescription.prescription_doctor?prescription.prescription_doctor:''))" alt="" srcset="" v-else />
812
+                      </div>
793 813
                     </td>
794
-                    
795
-                    <td></td>
796 814
                   </tr>
797 815
                 </tbody>
798 816
               </table>
@@ -1249,7 +1267,8 @@
1249 1267
             <td style="line-height:20px;" width="40">钠<br />浓<br />度<br /><span style="font-size:10px; !important">mmol/L</span></td>
1250 1268
             <td style="line-height:20px;" width="40">电<br />导<br />度<br /><span style="font-size:10px; !important">ms/cm</span></td>
1251 1269
             
1252
-            <td style="line-height:20px;" width="60">透析液<br />温度<br /><span style="font-size:10px; !important">ml</span></td>
1270
+            <td style="line-height:20px;" width="60">透析液<br />温度<br /><span style="font-size:10px; !important">℃</span></td>
1271
+            <td style="line-height:20px;" width="100">抗凝剂</td>
1253 1272
             <td style="line-height:20px;" width="">病情变化及处理</td>
1254 1273
             <td style="line-height:20px;" width="60">签名</td>
1255 1274
           </tr>
@@ -1287,11 +1306,24 @@
1287 1306
             <td>
1288 1307
               &nbsp;{{ monitor.transmembrane_pressure ? monitor.transmembrane_pressure : "" }}
1289 1308
             </td>
1290
-            <td>&nbsp;{{ monitor.ultrafiltration_rate ? monitor.ultrafiltration_rate : "" }}</td>
1309
+            <td>&nbsp;<span v-if="getTime(monitor.operate_time, '{h}:{i}')">{{ monitor.ultrafiltration_rate ? monitor.ultrafiltration_rate : "0" }}</span></td>
1291 1310
             <td>&nbsp;{{ monitor.sodium_concentration ? monitor.sodium_concentration : "" }}</td>
1292 1311
             <td>&nbsp;{{ monitor.conductivity ? monitor.conductivity : "" }}</td>
1293 1312
 
1294 1313
             <td>&nbsp;{{ monitor.dialysate_temperature ? monitor.dialysate_temperature : '' }}</td>
1314
+            <td>&nbsp;
1315
+              <span v-if="monitor.monitor_anticoagulant == 0"></span>
1316
+              <span v-if="monitor.monitor_anticoagulant == 1">无肝素</span>
1317
+              <span v-if="monitor.monitor_anticoagulant == 2">普通肝素</span>
1318
+              <span v-if="monitor.monitor_anticoagulant == 3">低分子肝素</span>
1319
+              <span v-if="monitor.monitor_anticoagulant == 4">阿加曲班</span>
1320
+              <span v-if="monitor.monitor_anticoagulant == 5">枸橼酸钠</span>
1321
+              <span v-if="monitor.monitor_anticoagulant == 6">低分子肝素钙</span>
1322
+              <span v-if="monitor.monitor_anticoagulant == 7">低分子肝素钠</span>
1323
+              <span v-if="monitor.monitor_anticoagulant == 8">依诺肝素</span>
1324
+              <span v-if="monitor.monitor_anticoagulant == 9">达肝素</span>
1325
+              <span v-if="monitor.monitor_anticoagulant_value!=undefined && monitor.monitor_anticoagulant_value!='' ">({{monitor.monitor_anticoagulant_value}})</span>
1326
+            </td>
1295 1327
             <td style="text-align:left;line-height:20px;">
1296 1328
               &nbsp;{{ monitor.symptom }} &nbsp;{{ monitor.dispose }} &nbsp;{{ monitor.result }}
1297 1329
             </td>
@@ -1437,6 +1469,16 @@ export default {
1437 1469
     }
1438 1470
   },
1439 1471
   methods: {
1472
+    otherSealingFluidDispose(sealing_fluid_dispose){
1473
+      let sealing_fluid_dispose_name = ''
1474
+      let str = sealing_fluid_dispose.split(',')
1475
+      str.map(item => {
1476
+        if(item.indexOf('肝素') == -1 && item.indexOf('NS') == -1 && item.indexOf('特殊')){
1477
+          sealing_fluid_dispose_name += item + " "
1478
+        }
1479
+      })
1480
+      return sealing_fluid_dispose_name
1481
+    },
1440 1482
     getDialyzerPerfusionApparatus(dialyzer_perfusion_apparatus,name){
1441 1483
       let str = ''
1442 1484
       if(dialyzer_perfusion_apparatus.indexOf(',') > -1){
@@ -1588,6 +1630,9 @@ export default {
1588 1630
        if(arr[i] == "肝素1.7ml"){
1589 1631
           strname = "肝素1.7ml"
1590 1632
         }
1633
+       if(arr[i] == "肝素4ml"){
1634
+          strname = "肝素4ml"
1635
+        }
1591 1636
       }
1592 1637
       return strname
1593 1638
     },
@@ -1766,7 +1811,7 @@ export default {
1766 1811
           }
1767 1812
           this.check = response.data.data.check
1768 1813
           this.predialysis = response.data.data.PredialysisEvaluation
1769
-          console.log('透前评估', this.predialysis)
1814
+          // console.log('透前评估', this.predialysis)
1770 1815
           this.predialysis.blood_access_part_opera_name = this.bloodAccessParOperaName(
1771 1816
             this.predialysis.blood_access_part_opera_id
1772 1817
           )

+ 8 - 12
src/xt_pages/dialysis/template/DialysisPrintOrderTwentyNine.vue View File

@@ -132,7 +132,7 @@
132 132
                 <tbody>
133 133
                   <tr>
134 134
                     <td width="70">血管通路:</td>
135
-                    <td width="460">
135
+                    <td width="480">
136 136
                       <div>
137 137
                         <label-box :isChecked="predialysis.blood_access_part_opera_name.indexOf('自体内瘘') > -1 ? true : false" showValue="自体内瘘"></label-box>
138 138
                         &nbsp;
@@ -297,13 +297,6 @@
297 297
                             &nbsp;{{ prescription.dialyzer_perfusion_apparatus ? prescription.dialyzer_perfusion_apparatus : "" }}
298 298
                         </div>
299 299
                         </td>
300
-                        <td width="20"></td>
301
-                        <td width="80">透析机:</td>
302
-                        <td width="80">
303
-                        <div class="under-line">
304
-                            &nbsp;{{ predialysis.machine_type ? predialysis.machine_type : "" }}
305
-                        </div>
306
-                        </td>
307 300
                         <td></td>
308 301
                     </tr>
309 302
                     </tbody>
@@ -526,12 +519,15 @@
526 519
                 <tbody>
527 520
                   <tr>
528 521
                     <!-- <td width="70">其他记录:</td> -->
529
-                    <td width="70">治疗方案:</td>
530
-                    <td width="">
531
-                      <div style="width: 95%;line-height: 25px;text-align: left;margin-left: 2px;text-underline-position: under; text-decoration: underline;">
532
-                        {{ summary.dialysis_summary ? summary.dialysis_summary : "" }}
522
+                    <td width="70" style="text-align:left;">治疗方案:
523
+                      <div style="width: 95%;line-height: 25px;text-align: left;margin-left: 2px;text-underline-position: under; text-decoration: underline;display:inline;">
524
+                        <span>宣教:{{ summary.mission ? summary.mission : "" }}</span>
525
+                        <span>小结:{{ summary.dialysis_summary ? summary.dialysis_summary : "" }}</span>
533 526
                       </div>
534 527
                     </td>
528
+                    <!-- <td width="">
529
+                      
530
+                    </td> -->
535 531
                   </tr>
536 532
                 </tbody>
537 533
               </table>

+ 515 - 0
src/xt_pages/hospitalStation/11.vue View File

@@ -0,0 +1,515 @@
1
+<template>
2
+  <div class="main-contain outpatientChargesManagement">
3
+    <div class="position">
4
+      <bread-crumb :crumbs='crumbs'></bread-crumb>
5
+    </div>
6
+    <div class="app-container" style="display:flex;flex: 1;padding: 20px 20px 0px 20px;">
7
+      <div class="mainLeft">
8
+        <!--<div class="mainCell" style="justify-content: space-between;">-->
9
+        <!--<p>未就诊:<span>1</span>人</p>-->
10
+        <!--<p>已就诊:<span>0</span>人</p>-->
11
+        <!--</div>-->
12
+        <!--<div class="mainCell">-->
13
+        <!--<el-radio-group v-model="radio" @change="changeRadio">-->
14
+        <!--<el-radio :label=1>未就诊</el-radio>-->
15
+        <!--<el-radio :label=2>已就诊</el-radio>-->
16
+        <!--<el-radio :label=3>全部</el-radio>-->
17
+        <!--</el-radio-group>-->
18
+        <!--</div>-->
19
+        <div class="mainCell" style="margin-bottom:10px;">
20
+          <el-input size="small" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
21
+          <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary" @click="searchAction">
22
+            搜索
23
+          </el-button>
24
+        </div>
25
+        <div style="flex:1;overflow-y:auto;">
26
+          <el-table :data="patientTableData" border style="width: 100%;" :row-style="{ color: '#303133' }"
27
+                    :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
28
+                    highlight-current-row ref="tab"
29
+                    @current-change="handleCurrentChange">
30
+            <el-table-column align="center" prop="name" label="患者姓名">
31
+              <template slot-scope="scope">{{ scope.row.patients.name }}</template>
32
+            </el-table-column>
33
+            <el-table-column align="center" prop="name" label="就诊号" width="90">
34
+              <template slot-scope="scope">{{ scope.row.his_patient.number }}</template>
35
+            </el-table-column>
36
+          </el-table>
37
+        </div>
38
+      </div>
39
+      <div class="mainRight">
40
+        <div class="mainCell" style="margin-bottom:10px;flex-direction: row-reverse;">
41
+          <el-button size="small" @click="open(1)" type="primary" style="margin-left:10px;">打印处置单</el-button>
42
+          <el-button size="small" @click="open(2)" type="primary">打印治疗单</el-button>
43
+          <el-button size="small" @click="open(3)" type="primary">打印</el-button>
44
+          <el-button v-loading="loadingone" v-if="hisPatientInfo == null || hisPatientInfo.id == 0 " size="small" @click="open(6)"
45
+                     type="primary">挂号
46
+          </el-button>
47
+          <el-button v-loading="loadingtwo" v-if="hisPatientInfo != null && hisPatientInfo.id > 0 " size="small" @click="open(4)"
48
+                     type="primary">收费
49
+          </el-button>
50
+          <el-button size="small" @click="open(5)" type="primary">退费</el-button>
51
+        </div>
52
+        <div class="mainCenter">
53
+          <div class="centerLeft">
54
+            <div class="tabsBox">
55
+              <!--<el-button type="text" class="addTab" @click="addCharges" icon="el-icon-circle-plus">附加收费</el-button>-->
56
+              <el-tabs class="preTabs" v-model="editableTabsValue" type="card" @tab-click="tabclickEvent">
57
+                <el-tab-pane
58
+                  v-for="(item, index) in prescriptions"
59
+                  :key="index"
60
+                  :label="item.name"
61
+                  :name="item.name"
62
+                >
63
+                </el-tab-pane>
64
+                <div class="RP">Rp</div>
65
+                <prescription-table ref="prescription_tables" :prescription="curPrescriptions"></prescription-table>
66
+              </el-tabs>
67
+
68
+            </div>
69
+            <div class="costBox">
70
+              <span>当前处方总费用:<span style="color:red;">{{ getTotal() }}元</span></span>
71
+              <span>{{ state }}</span>
72
+            </div>
73
+          </div>
74
+          <div class="centerRight">
75
+            <p class="centerRightTitle">人员信息</p>
76
+            <div style="display:flex;justify-content: space-between;line-height:30px;">
77
+              <span style="font-size:14px;">人员编码:</span>
78
+              <span style="font-size:14px;">日期:{{record_date}}</span>
79
+            </div>
80
+            <ul class="basicUl">
81
+              <li style="width:50%;">姓名:{{patientInfo.name}}</li>
82
+              <li style="width:50%;">性别:{{patientInfo.gender == 1 ? '男' : '女' }}</li>
83
+              <li style="width:50%;">年龄:{{patientInfo.age }}</li>
84
+              <li style="width:50%;">身高:{{patientInfo.height}}</li>
85
+              <li style="width:50%;">体重:{{patientInfo.weight}}</li>
86
+              <li style="width:50%;">电话:{{patientInfo.phone}}</li>
87
+              <li style="width:100%;">地址:{{patientInfo.home_address}}</li>
88
+            </ul>
89
+            <p class="centerRightTitle">诊断信息</p>
90
+            <div style="display:flex;justify-content: space-between;line-height:30px;">
91
+              <span style="font-size:14px;">门诊编号:676273816287361</span>
92
+            </div>
93
+            <ul class="basicUl">
94
+              <li style="width:50%;">医生:{{ }}</li>
95
+              <li style="width:50%;">科室:{{ }}</li>
96
+              <li style="width:100%;">费用:{{ }}元</li>
97
+              <li style="width:100%;">判断结果:</li>
98
+              <li style="width:100%;">是否有传染病:</li>
99
+              <li style="width:100%;">血压:</li>
100
+            </ul>
101
+          </div>
102
+        </div>
103
+      </div>
104
+    </div>
105
+    <!--<additionalCharges ref='additionalCharges'></additionalCharges>-->
106
+  </div>
107
+</template>
108
+
109
+
110
+<script>
111
+  import BreadCrumb from '@/xt_pages/components/bread-crumb'
112
+  import noCharge from './components/noCharge'
113
+  import charged from './components/charged'
114
+  import medicalInsuranceRefund from './components/medicalInsuranceRefund'
115
+  import prescriptionTable from './components/prescriptionTable'
116
+  import additionalCharges from './components/additionalCharges'
117
+  import { getPatientInformation, getPatientList } from '@/api/project/project'
118
+  import { getPatientInfo, getSchedulePatientList, register,upload } from '@/api/his/his'
119
+
120
+  const moment = require('moment');
121
+  export default {
122
+    components: {
123
+      BreadCrumb,
124
+      noCharge,
125
+      charged,
126
+      medicalInsuranceRefund,
127
+      prescriptionTable,
128
+      additionalCharges
129
+    },
130
+    data() {
131
+      return {
132
+        crumbs: [
133
+          { path: false, name: '门诊收费' },
134
+          { path: false, name: '门诊收费管理' }
135
+        ],
136
+        curPrescriptions: {},
137
+        prescriptions: [],
138
+        record_date: '',
139
+        tableData: [],
140
+        editableTabsValue: '1',
141
+        loadingone:false,
142
+        editableTabs: [{
143
+          title: '处方1',
144
+          name: '1'
145
+        }],
146
+        tabIndex: 1,
147
+        hisPatientInfo: {},
148
+        loadingtwo:false,
149
+        patientTableData: [{
150
+          name: '杨美英',
151
+          mdtrt_id: '1709946'
152
+        }],
153
+        patientInfo: { id: 0 },
154
+        doctor: {},
155
+        total: 0,
156
+        state: '未收费',
157
+        radio: 1,
158
+        radioStatus: 1,
159
+        search_input: '',
160
+        start_time: moment().locale('zh-cn').format('YYYY-MM-DD')
161
+      }
162
+    },
163
+    created() {
164
+      var nowDate = new Date();
165
+      var nowYear = nowDate.getFullYear();
166
+      var nowMonth = nowDate.getMonth() + 1;
167
+      var nowDay = nowDate.getDate();
168
+      this.record_date =
169
+        nowYear +
170
+        '-' +
171
+        (nowMonth < 10 ? '0' + nowMonth : nowMonth) +
172
+        '-' +
173
+        (nowDay < 10 ? '0' + nowDay : nowDay);
174
+
175
+      //获取患者信息
176
+      this.getPatientList()
177
+    },
178
+    methods: {
179
+      tabclickEvent(val) {
180
+        for (let i = 0; i < this.prescriptions.length; i++) {
181
+          if (this.prescriptions[i].name == val.name) {
182
+            this.curPrescriptions = {};
183
+            var temp = this.deepClone(this.prescriptions[i]);
184
+            this.curPrescriptions = temp;
185
+            console.log(this.curPrescriptions)
186
+          }
187
+        }
188
+      }, deepClone(source) {
189
+        if (!source && typeof source !== 'object') {
190
+          throw new Error('error arguments', 'shallowClone')
191
+        }
192
+        const targetObj = source.constructor === Array ? [] : {};
193
+        Object.keys(source).forEach((keys) => {
194
+          if (source[keys] && typeof source[keys] === 'object') {
195
+            targetObj[keys] = this.deepClone(source[keys])
196
+          } else {
197
+            targetObj[keys] = source[keys]
198
+          }
199
+        });
200
+        return targetObj
201
+      },
202
+      getTotal() {
203
+        var total = 0;
204
+        console.log(this.prescriptions);
205
+        for (let i = 0; i < this.prescriptions.length; i++) {
206
+          if (this.prescriptions[i].advices != null) {
207
+            for (let a = 0; a < this.prescriptions[i].advices.length; a++) {
208
+              total = total + this.prescriptions[i].advices[a].price * this.prescriptions[i].advices[a].prescribing_number
209
+            }
210
+          }
211
+          if (this.prescriptions[i].project != null) {
212
+            for (let b = 0; b < this.prescriptions[i].project.length; b++) {
213
+              total = total + this.prescriptions[i].project[b].price * this.prescriptions[i].project[b].count
214
+            }
215
+          }
216
+        }
217
+        return total
218
+      },
219
+      moreState(tab, event) {
220
+        if (tab == 'more') {
221
+          return false
222
+        }
223
+      },
224
+      open(index) {
225
+        if (index == 1) {
226
+        } else if (index == 2) {
227
+
228
+        } else if (index == 4) {
229
+
230
+          let params = {
231
+            'id': this.patientInfo.id,
232
+            'record_time': this.record_date
233
+          };
234
+          this.loadingtwo = true;
235
+          upload(params).then(response => {
236
+            if (response.data.state == 0) {
237
+              this.$message.error(response.data.msg);
238
+              this.loadingtwo = false;
239
+
240
+              return false
241
+
242
+            } else {
243
+              this.loadingtwo = false
244
+
245
+            }
246
+          });
247
+
248
+          this.state = '已收费';
249
+          this.$message({ message: '收费成功', type: 'success' })
250
+        } else if (index == 5) {
251
+          this.$message({ message: '退费成功', type: 'success' })
252
+        } else if (index == 6) {
253
+
254
+          if (this.patientInfo.id == 0) {
255
+            this.$message.error('请先选择要挂号的病人');
256
+            return
257
+          }
258
+          let params = {
259
+            'id': this.patientInfo.id,
260
+            'record_time': this.record_date
261
+          };
262
+          this.loadingone = true;
263
+          register(params).then(response => {
264
+            if (response.data.state == 0) {
265
+              this.$message.error(response.data.msg);
266
+              this.loadingone = false;
267
+
268
+              return false
269
+
270
+            } else {
271
+              this.loadingone = false;
272
+              var his_info = response.data.data.his_info;
273
+              this.hisPatientInfo = his_info
274
+            }
275
+          })
276
+        }
277
+      },
278
+      addTab(targetName) {
279
+        let newTabName = ++this.tabIndex + '';
280
+        this.editableTabs.push({
281
+          title: '处方' + this.tabIndex,
282
+          name: newTabName
283
+        });
284
+        this.editableTabsValue = newTabName
285
+      },
286
+      removeTab(targetName) {
287
+        let tabs = this.editableTabs;
288
+        let activeName = this.editableTabsValue;
289
+        if (activeName === targetName) {
290
+          tabs.forEach((tab, index) => {
291
+            if (tab.name === targetName) {
292
+              let nextTab = tabs[index + 1] || tabs[index - 1];
293
+              if (nextTab) {
294
+                activeName = nextTab.name
295
+              }
296
+            }
297
+          })
298
+        }
299
+
300
+        this.editableTabsValue = activeName;
301
+        this.editableTabs = tabs.filter(tab => tab.name !== targetName)
302
+      },
303
+      addCharges() {
304
+        this.$refs.additionalCharges.show()
305
+      },
306
+      choosePatient() {
307
+
308
+      },
309
+      changeRadio(id) {
310
+        console.log(id);
311
+        this.radioStatus = id;
312
+        this.getPatientList()
313
+      },
314
+
315
+      //患者列表
316
+      getPatientList() {
317
+        let params = {
318
+          'record_date': this.record_date
319
+        };
320
+        getSchedulePatientList(params).then(response => {
321
+          if (response.data.state == 0) {
322
+            this.$message.error(response.data.msg);
323
+            return false
324
+          } else {
325
+            this.patientTableData = [];
326
+            // let cal_one = 0
327
+            // let cal_two = 0
328
+            for (let i = 0; i < response.data.data.list.length; i++) {
329
+              // if (response.data.data.list[i].prescription == null || response.data.data.list[i].prescription.length == 0) {
330
+              //   // cal_one = cal_one + 1
331
+              // }
332
+              if (response.data.data.list[i].prescription != null && response.data.data.list[i].prescription.length > 0) {
333
+                // cal_two = cal_two + 1
334
+                this.patientTableData.push(response.data.data.list[i])
335
+              }
336
+            }
337
+
338
+            // this.cal_one = cal_one
339
+            // this.cal_two = cal_two
340
+          }
341
+        })
342
+      },
343
+
344
+      unique(arr) {
345
+        const res = new Map();
346
+        return arr.filter((arr) => !res.has(arr.id_card_no) && res.set(arr.id_card_no, 1))
347
+      },
348
+      handleCurrentChange(val) {
349
+        this.getPatientInformation(val.patients.id)
350
+      }, //获取患者的基本信息
351
+      getPatientInformation(id) {
352
+        let params = {
353
+          'record_date': this.record_date,
354
+          'patient_id': id
355
+        };
356
+        getPatientInfo(params).then(response => {
357
+          if (response.data.state == 0) {
358
+            this.$message.error(response.data.msg);
359
+            return false
360
+          } else {
361
+            this.patientInfo = response.data.data.xt_info;
362
+            this.hisPatientInfo = response.data.data.his_info;
363
+            this.prescriptions = [];
364
+            for (let i = 0; i < response.data.data.prescription.length; i++) {
365
+              var prescription = response.data.data.prescription[i];
366
+              let index = i + 1;
367
+              let obj = {
368
+                name: '处方' + index,
369
+                advices: prescription.advices,
370
+                project: prescription.project,
371
+                type: response.data.data.prescription[i].type
372
+              };
373
+              this.prescriptions.push(obj);
374
+              this.curPrescriptions = this.prescriptions[0]
375
+
376
+            }
377
+            // this.$refs.prescriptions.setData(this.prescriptions)
378
+          }
379
+        })
380
+      }
381
+    }
382
+  }
383
+</script>
384
+
385
+<style lang="scss" scoped>
386
+  .app-container {
387
+    height: 100%;
388
+  }
389
+
390
+  .outpatientChargesManagement {
391
+    height: 100%;
392
+    display: flex;
393
+    flex-direction: column;
394
+
395
+  .mainLeft {
396
+    width: 200px;
397
+    height: 100%;
398
+    display: flex;
399
+    flex-direction: column;
400
+
401
+  .el-radio {
402
+    margin-right: 5px;
403
+  }
404
+
405
+  }
406
+  .mainCell {
407
+    height: 36px;
408
+    display: flex;
409
+    align-items: center;
410
+  }
411
+
412
+  .mainRight {
413
+    margin-left: 20px;
414
+    flex: 1;
415
+    height: 100%;
416
+    display: flex;
417
+    flex-direction: column;
418
+    overflow-y: auto;
419
+
420
+  .cellSpan {
421
+    min-width: 80px;
422
+    display: inline-block;
423
+    margin-right: 10px;
424
+  }
425
+
426
+  }
427
+  .tabsBox {
428
+    position: relative;
429
+    height: 90%;
430
+    overflow-y: auto;
431
+    margin-bottom: 60px;
432
+
433
+  .el-tabs__item {
434
+    padding: 0 10px;
435
+  }
436
+
437
+  }
438
+  .addTab {
439
+    position: absolute;
440
+    right: 0;
441
+    top: 6px;
442
+    z-index: 20;
443
+  }
444
+
445
+  .mainCenter {
446
+    display: flex;
447
+    flex: 1;
448
+  }
449
+
450
+  .costBox {
451
+    width: 100%;
452
+    height: 60px;
453
+    background: #fff;
454
+    position: absolute;
455
+    bottom: 0;
456
+    display: flex;
457
+    align-items: center;
458
+    justify-content: space-between;
459
+  }
460
+
461
+  .centerLeft {
462
+    flex: 1;
463
+    display: flex;
464
+    flex-direction: column;
465
+    position: relative;
466
+  }
467
+
468
+  .centerRight {
469
+    width: 300px;
470
+    margin-left: 5px;
471
+    display: flex;
472
+    flex-direction: column;
473
+  }
474
+
475
+  .RP {
476
+    color: #409EFF;
477
+    font-size: 20px;
478
+    margin-bottom: 5px;
479
+  }
480
+
481
+  .centerRightTitle {
482
+    color: #409EFF;
483
+    padding-top: 10px;;
484
+  }
485
+
486
+  .basicUl {
487
+    border-top: 1px solid #e5e5e5;
488
+    border-left: 1px solid #e5e5e5;
489
+    display: flex;
490
+    flex-wrap: wrap;
491
+
492
+  li {
493
+    border-bottom: 1px solid #e5e5e5;
494
+    border-right: 1px solid #e5e5e5;
495
+    width: 100%;
496
+    height: 38px;
497
+    line-height: 38px;
498
+    text-indent: 5px;
499
+    font-size: 14px;
500
+  }
501
+
502
+  }
503
+  }
504
+</style>
505
+
506
+<style lang="scss">
507
+  #tab-more {
508
+
509
+  .el-icon-close {
510
+    display: none;
511
+  }
512
+
513
+  }
514
+</style>
515
+

+ 82 - 0
src/xt_pages/hospitalStation/advancePayment.vue View File

@@ -0,0 +1,82 @@
1
+<template>
2
+    <div class="main-contain outpatientChargesManagement">
3
+        <div class="position">
4
+            <bread-crumb :crumbs='crumbs'></bread-crumb>
5
+        </div>
6
+        <div class="app-container">
7
+            <div style="display: flex;justify-content: space-between;margin-bottom:10px;">
8
+                <div>
9
+                    <el-input size="small" style="width:150px;" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
10
+                    <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
11
+                </div>
12
+                <el-button size="small" type="primary">预交金查询</el-button>
13
+            </div>
14
+            <el-table :data="tableData" border height="500" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
15
+                <el-table-column type="selection" width="55" align="center"></el-table-column>
16
+                <el-table-column align="center" prop="name" label="序号">
17
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
18
+                </el-table-column>
19
+                <el-table-column align="center" prop="name" label="患者姓名">
20
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
21
+                </el-table-column>
22
+                <el-table-column align="center" prop="name" label="证件号码">
23
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
24
+                </el-table-column>
25
+                <el-table-column align="center" prop="name" label="患者类型">
26
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
27
+                </el-table-column>
28
+                <el-table-column align="center" prop="name" label="地址">
29
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
30
+                </el-table-column>
31
+                <el-table-column align="center" prop="name" label="预交金余额(元)">
32
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
33
+                </el-table-column>
34
+                <el-table-column align="center" prop="name" label="已交金额(元)">
35
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
36
+                </el-table-column>
37
+                <el-table-column align="center" prop="name" label="操作" width="300">
38
+                    <template slot-scope="scope">
39
+                        <el-button size="mini" type="primary">交款</el-button>
40
+                        <el-button size="mini" type="danger">删除</el-button>
41
+                        <el-button size="mini" type="primary">结算</el-button>
42
+                    </template>
43
+                </el-table-column>
44
+            </el-table>
45
+        </div>
46
+    </div>
47
+</template>
48
+
49
+
50
+<script>
51
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
52
+export default {
53
+    components:{
54
+        BreadCrumb,
55
+    },
56
+    data(){
57
+        return{
58
+            crumbs: [
59
+                { path: false, name: '门诊收费' },
60
+                { path: false, name: '预交金' }
61
+            ],
62
+            tableData: [{
63
+            date: '2016-05-02',
64
+            name: '王小虎',
65
+            address: '上海市普陀区金沙江路 1518 弄'
66
+            }, {
67
+            date: '2016-05-04',
68
+            name: '王小虎',
69
+            address: '上海市普陀区金沙江路 1517 弄'
70
+            }, {
71
+            date: '2016-05-01',
72
+            name: '王小虎',
73
+            address: '上海市普陀区金沙江路 1519 弄'
74
+            }, {
75
+            date: '2016-05-03',
76
+            name: '王小虎',
77
+            address: '上海市普陀区金沙江路 1516 弄'
78
+            }]
79
+        }
80
+    }
81
+}
82
+</script>

+ 481 - 0
src/xt_pages/hospitalStation/allListPrint.vue View File

@@ -0,0 +1,481 @@
1
+<template>
2
+  <div>
3
+    <template>
4
+      <el-button
5
+        style="position:fixed;right:25px;z-index:999"
6
+        :loading="loading"
7
+        size="small"
8
+        icon="el-icon-printer"
9
+        @click="printThisPage"
10
+        type="primary"
11
+      >打印
12
+      </el-button
13
+      >
14
+    </template>
15
+
16
+    <div class='dialysisPage' style="padding-top:40px;">
17
+      <printOne :list="list" :patient="patient" :order="order" :admin="admin"></printOne>
18
+    </div>
19
+  </div>
20
+</template>
21
+
22
+<script>
23
+  import { getHisOrderDetailCollect } from '@/api/his/his'
24
+  import { uParseTime } from '@/utils/tools'
25
+  import printOne from './allListTemplate/printOne'
26
+
27
+  export default {
28
+    name: 'allListPrint',
29
+    components: {
30
+      printOne
31
+    },
32
+    props: {
33
+      paramsObj: Object
34
+    },
35
+    data() {
36
+      return {
37
+        list: [],
38
+        patient: {},
39
+        order: {},
40
+        admin: {}
41
+      }
42
+    },
43
+
44
+    created() {
45
+      this.getInfo(this.paramsObj.id)
46
+
47
+    },
48
+    methods: {
49
+      getTimes(time) {
50
+        return uParseTime(time, '{y}-{m}-{d} {h}:{i}')
51
+      }, getInfo(order_id) {
52
+        let params = {
53
+          id: order_id
54
+        };
55
+        getHisOrderDetailCollect(params).then(response => {
56
+          if (response.data.state == 0) {
57
+            this.$message.error(response.data.msg);
58
+            return false
59
+          } else {
60
+            this.order = response.data.data.order;
61
+            this.patient = response.data.data.patient;
62
+            this.admin = response.data.data.admin_info;
63
+            var order_info = response.data.data.order_info;
64
+
65
+            //获取所有项目类型进行去重
66
+            let med_chrgitm_types = [];
67
+            for (let i = 0; i < order_info.length; i++) {
68
+              med_chrgitm_types.push(order_info[i].med_chrgitm_type)
69
+            }
70
+            const obj = {};
71
+            med_chrgitm_types = med_chrgitm_types.reduce((cur, next) => {
72
+              obj[next] ? '' : obj[next] = true && cur.push(next);
73
+              return cur
74
+            }, []); // 设置cur默认类型为数组,并且初始值为空的数组
75
+
76
+            let tempOrderInfo = [];
77
+
78
+            for (let i = 0; i < med_chrgitm_types.length; i++) {
79
+              let obj = {
80
+                total: 0,
81
+                details: []
82
+              };
83
+              let tempDetails = [];
84
+              for (let b = 0; b < order_info.length; b++) {
85
+                if (med_chrgitm_types[i] == order_info[b].med_chrgitm_type) {
86
+                  tempDetails.push(order_info[b])
87
+                }
88
+              }
89
+
90
+              obj.details = this.setNewData(tempDetails);
91
+              obj.total = this.getTotal(obj.details);
92
+
93
+              obj.details.push({
94
+                total: obj.total,
95
+                is_total: 1,
96
+              });
97
+              this.list =  this.list.concat(obj.details)
98
+            }
99
+
100
+
101
+
102
+
103
+          }
104
+        })
105
+      }, getTotal:function(items){
106
+        let total = 0;
107
+        for(let i = 0; i < items.length; i++){
108
+          total = Number(total) + Number((parseFloat(items[i].count) * parseFloat(items[i].price)).toFixed(2))
109
+        }
110
+        return total.toFixed(2)
111
+      },setNewData(details) {
112
+        let drug_ids = [];
113
+        let project_ids = [];
114
+
115
+        for (let i = 0; i < details.length; i++) {
116
+          if (details[i].advice && details[i].advice.id > 0 && details[i].advice.prescription && details[i].advice.prescription.type == 1) { //药品
117
+            let obj = {
118
+              id: details[i].advice.drug_id,
119
+              price: details[i].advice.price
120
+            };
121
+            drug_ids.push(obj)
122
+          } else if (details[i].project && details[i].project.id > 0 && details[i].project.prescription && details[i].project.prescription.type == 2) { //项目
123
+            let obj = {
124
+              id: details[i].project.project_id,
125
+              price: details[i].project.price
126
+
127
+            };
128
+            project_ids.push(obj)
129
+
130
+          }
131
+
132
+        }
133
+        //
134
+        // console.log('old ids')
135
+        // console.log(drug_ids)
136
+        // console.log(project_ids)
137
+        // console.log('old ids')
138
+
139
+        let new_drug_ids = this.unique(drug_ids);
140
+        let new_project_ids = this.unique(project_ids);
141
+        let list = [];
142
+
143
+        console.log('ids');
144
+        console.log(new_drug_ids);
145
+        console.log(new_project_ids);
146
+        console.log('ids');
147
+
148
+        if (new_drug_ids.length > 0 && new_project_ids.length == 0) {
149
+          for (let i = 0; i < new_drug_ids.length; i++) {
150
+            let obj = {};
151
+            let count = 0;
152
+            for (let a = 0; a < details.length; a++) {
153
+              if (new_drug_ids[i].id == details[a].advice.drug_id && new_drug_ids[i].price == details[a].advice.price) {
154
+                obj['name'] = details[a].advice.advice_name;
155
+                obj['spec'] = details[a].advice.drug.drug_spec;
156
+                obj['unit'] = details[a].advice.drug.max_unit;
157
+
158
+                obj['med_chrgitm_type'] = this.getType(details[a].med_chrgitm_type);
159
+                obj['price'] = parseFloat(details[a].pric);
160
+                obj['is_total'] = 2;
161
+                count = count + details[a].cnt
162
+              }
163
+            }
164
+            obj['count'] = count;
165
+            list.push(obj)
166
+          }
167
+        }
168
+
169
+        if (new_drug_ids.length == 0 && new_project_ids.length > 0) {
170
+          for (let i = 0; i < new_project_ids.length; i++) {
171
+            let obj = {};
172
+            let count = 0;
173
+            for (let a = 0; a < details.length; a++) {
174
+              if (new_project_ids[i].id == details[a].project.project_id && new_project_ids[i].price == details[a].project.price) {
175
+                obj['name'] = details[a].project.project.project_name;
176
+                obj['spec'] = '1';
177
+                obj['unit'] = details[a].project.project.unit;
178
+                obj['med_chrgitm_type'] = this.getType(details[a].med_chrgitm_type);
179
+                obj['price'] = parseFloat(details[a].pric);
180
+                obj['is_total'] = 2;
181
+
182
+                count = count + details[a].cnt
183
+              }
184
+            }
185
+            obj['count'] = count;
186
+            list.push(obj)
187
+          }
188
+        }
189
+
190
+        return list
191
+
192
+      }, unique(array) {
193
+        // res用来存储结果
194
+        var res = [];
195
+        for (var i = 0, arrayLen = array.length; i < arrayLen; i++) {
196
+          for (var j = 0, resLen = res.length; j < resLen; j++) {
197
+            if (array[i].id === res[j].id && array[i].price === res[j].price) {
198
+              break
199
+            }
200
+          }
201
+          // 如果array[i]是唯一的,那么执行完循环,j等于resLen
202
+          if (j === resLen) {
203
+            res.push(array[i])
204
+          }
205
+        }
206
+        return res
207
+      },
208
+
209
+      getType(med_chrgitm_type) {
210
+        switch (med_chrgitm_type) {
211
+          case '01':
212
+            return '床位费';
213
+            break;
214
+          case '02':
215
+            return '诊察费';
216
+
217
+            break;
218
+          case '03':
219
+            return '检查费';
220
+
221
+            break;
222
+          case '04':
223
+            return '化验费';
224
+            break;
225
+          case '05':
226
+            return '治疗费';
227
+
228
+            break;
229
+          case '06':
230
+            return '手术费';
231
+
232
+            break;
233
+          case '07':
234
+            return '护理费';
235
+
236
+            break;
237
+          case '08':
238
+            return '材料费';
239
+
240
+            break;
241
+          case '09':
242
+            return '西药费';
243
+
244
+            break;
245
+          case '10':
246
+            return '中药饮片费';
247
+
248
+            break;
249
+          case '11':
250
+            return '中成药费';
251
+
252
+            break;
253
+          case '12':
254
+            return '一般诊疗费';
255
+
256
+            break;
257
+          case '13':
258
+            return '挂号费';
259
+
260
+            break;
261
+          case '14':
262
+            return '其他费';
263
+
264
+            break
265
+
266
+        }
267
+
268
+      },
269
+      printThisPage() {
270
+
271
+        const style =
272
+          '@media print {.allListTitle{font-size: 24px;text-align: center;font-weight: bold;margin-bottom: 10px;}.allListInfo{display: flex;font-size: 16px;justify-content: space-between;margin: 10px 0;} .allListTable{width: 100%;text-align: center;border-collapse: collapse;line-height: 40px;font-size: 14px;border-color: #000;text-align:left;}.allListTable tr td {padding: 0 5px;}.tableBottom{font-size: 16px;display: flex;margin-top: 20px;}.tableBottomOne{margin-right: 40px;}}';
273
+        printJS({
274
+          printable: 'allList-print',
275
+          type: 'html',
276
+          style: style,
277
+          scanStyles: false
278
+        })
279
+
280
+        // if (this.org_template_info.template_id == 1) {
281
+        //   printJS({
282
+        //     printable: "dialysis-print-box",
283
+        //     type: "html",
284
+        //     style: style,
285
+        //     scanStyles: false
286
+        //   });
287
+        // }
288
+      }
289
+    }
290
+
291
+  }
292
+</script>
293
+
294
+<style>
295
+  .dialysis-print-order {
296
+    width: 960px;
297
+    margin: 0 auto;
298
+  }
299
+
300
+  .dialysis-print-order .order-yy-name {
301
+    margin: auto;
302
+    text-align: center;
303
+    font-size: 20px;
304
+    letter-spacing: 5px;
305
+  }
306
+
307
+  .dialysis-print-order .order-title {
308
+    margin: auto;
309
+    font-weight: 600;
310
+    text-align: center;
311
+    font-size: 22px;
312
+    padding: 10px;
313
+  }
314
+
315
+  .dialysis-print-order .table-box {
316
+    width: 100%;
317
+    line-height: 23px;
318
+    font-size: 14px;
319
+  }
320
+
321
+  .dialysis-print-order .print-table {
322
+    width: 100%;
323
+    text-align: center;
324
+    border-collapse: collapse;
325
+    line-height: 40px;
326
+    font-size: 14px;
327
+    border-color: #000;
328
+  }
329
+
330
+  .dialysis-print-order .print-table-no {
331
+    width: 100%;
332
+    text-align: center;
333
+    border-collapse: collapse;
334
+    font-size: 14px;
335
+  }
336
+
337
+  .dialysis-print-order .under-line {
338
+    border-bottom: 1px solid #999;
339
+    width: 95%;
340
+    text-align: center;
341
+    margin-left: 2px;
342
+  }
343
+
344
+  .dialysis-print-order .title-box {
345
+    text-align: center;
346
+    font-size: 16px;
347
+  }
348
+
349
+  .dialysis-print-order .radio-lebel-box {
350
+    font-weight: 400;
351
+    cursor: pointer;
352
+  }
353
+
354
+  .dialysis-print-order .radio-no {
355
+    opacity: 0;
356
+    outline: none;
357
+    position: absolute;
358
+    margin: 0;
359
+    width: 0;
360
+    height: 0;
361
+    z-index: -1;
362
+  }
363
+
364
+  .dialysis-print-order .radio-inner {
365
+    white-space: nowrap;
366
+    cursor: pointer;
367
+    outline: none;
368
+    display: inline-block;
369
+    line-height: 1;
370
+    position: relative;
371
+    vertical-align: middle;
372
+  }
373
+
374
+  .dialysis-print-order .radio-fang {
375
+    display: inline-block;
376
+    position: relative;
377
+    border: 1px solid #000;
378
+    box-sizing: border-box;
379
+    width: 14px;
380
+    height: 14px;
381
+    background-color: #fff;
382
+    z-index: 1;
383
+    transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),
384
+    background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46);
385
+  }
386
+
387
+  .dialysis-print-order .is-checked-radio::after {
388
+    content: "√";
389
+    font-size: 15px;
390
+  }
391
+
392
+  .dialysis-print-order .print-table-no tr td {
393
+    padding: 8px 5px;
394
+    line-height: 25px;
395
+  }
396
+
397
+  .dialysis-print-order .print-table tr td {
398
+    padding: 1px 1px;
399
+    /*line-height: 25px;*/
400
+  }
401
+
402
+  .es-img {
403
+    height: 30px;
404
+  }
405
+
406
+  .advice-name {
407
+    text-align: left;
408
+  }
409
+
410
+  .advice-children {
411
+    display: flex;
412
+  }
413
+
414
+  .title-box-pro {
415
+    border: 0 #fff;
416
+    line-height: 25px;
417
+    height: 25px;
418
+    text-align: left;
419
+    padding-left: 10px !important;
420
+  }
421
+
422
+  .title-box-pro-tr {
423
+    border: 0 #fff;
424
+  }
425
+
426
+  .text-align-left {
427
+    text-align: left !important;
428
+    padding-left: 10px !important;
429
+    font-size: 14px !important;
430
+    line-height: 25px;
431
+  }
432
+
433
+  .print-table-tr-new td {
434
+    line-height: 20px !important;
435
+  }
436
+
437
+  .border-top-solid {
438
+    border: solid 1px #000;
439
+  }
440
+
441
+  .print-template-two tr {
442
+    line-height: 30px;
443
+  }
444
+
445
+  .table-box1 {
446
+    border: 1px solid #000;
447
+    width: 100%;
448
+    line-height: 30px;
449
+    font-size: 14px;
450
+    border-collapse: collapse;
451
+  }
452
+
453
+  .table-box1 tr {
454
+    border-bottom: 1px solid #000;
455
+  }
456
+</style>
457
+
458
+<style lang="scss">
459
+
460
+  .newContainer {
461
+
462
+  .dialysisPage::-webkit-scrollbar {
463
+    height: 15px;
464
+  }
465
+
466
+  .el-date-editor {
467
+
468
+  .el-input__inner {
469
+    padding-right: 0px;
470
+  }
471
+
472
+  }
473
+  .el-table td, .el-table th {
474
+    text-align: center;
475
+  }
476
+
477
+  }
478
+  .newContainer::-webkit-scrollbar {
479
+    height: 15px !important;
480
+  }
481
+</style>

+ 174 - 0
src/xt_pages/hospitalStation/allListTemplate/printOne.vue View File

@@ -0,0 +1,174 @@
1
+<template>
2
+    <div id="allList-print" class="allList-print">
3
+        <div v-for='(i,index) in pageArr.length' :key="index">
4
+            <div class="allListTitle">{{$store.getters.xt_user.org.org_name}}费用汇总</div>
5
+            <div class="allListInfo">
6
+            <div>患者姓名:{{patient.name}}</div>
7
+            <div>透析号:{{patient.dialysis_no}}</div>
8
+            <div>性别:{{patient.gender == 1 ? '男': '女'}}</div>
9
+            <div>年龄:{{patient.age}}  岁</div>
10
+            <div>日期:{{getTimes(order.settle_start_time)}} 至 {{getTimes(order.settle_end_time)}}</div>
11
+
12
+            </div>
13
+            <table class="allListTable" border="1">
14
+                <tr>
15
+                    <td style="width:10%">类别</td>
16
+                    <td style="width:50%">项目名称</td>
17
+                    <td style="width:10%">规格</td>
18
+                    <td style="width:10%">单价(元)</td>
19
+                    <td style="width:10%">数量</td>
20
+                    <td style="width:10%">金额(元)</td>
21
+                </tr>
22
+                <template v-for='item in list.slice(index * 13,(index * 13) + pageArr[index])'>
23
+                    <tr v-if="item.is_total == 2">
24
+                        <td style="width:10%">{{item.med_chrgitm_type}}</td>
25
+                        <td style="width:50%">{{item.name}}</td>
26
+                        <td style="width:10%">{{item.spec}}</td>
27
+                        <td style="width:10%">{{(item.price).toFixed(2)}}</td>
28
+                        <td style="width:10%">{{item.count}}{{item.unit}}</td>
29
+                        <td style="width:10%">{{(item.price * item.count).toFixed(2)}}</td>
30
+                    </tr>
31
+                    <tr>
32
+                        <td colspan="6" style="text-align:right;" v-if="item.is_total == 1">合计:{{item.total}}元</td>
33
+                    </tr>
34
+                </template>
35
+            </table>
36
+            <div class="tableBottom">
37
+            <div class="tableBottomOne">制表人:{{admin.user_name}}</div>
38
+            <div class="tableBottomOne">制表日期:{{ getNowTime()}}</div>
39
+            <div class="tableBottomOne">总费用:{{order.medfee_sumamt}}元</div>
40
+            </div>
41
+        </div>
42
+    </div>
43
+</template>
44
+
45
+<script>
46
+  import { uParseTime } from '@/utils/tools'
47
+
48
+  export default {
49
+    props: {
50
+      list: {
51
+        type: Array,
52
+        default: function () {
53
+          return [];
54
+        }
55
+      }, patient: {
56
+        type: Object,
57
+        default: function () {
58
+          return {};
59
+        }
60
+      }, order: {
61
+        type: Object,
62
+        default: function () {
63
+          return {};
64
+        }
65
+      }, admin: {
66
+        type: Object,
67
+        default: function () {
68
+          return {};
69
+        }
70
+      },
71
+    },
72
+    data(){
73
+        return{
74
+            page:1,
75
+            pageArr:[],
76
+        }
77
+    },
78
+    methods:{
79
+      getNowTime: function () {
80
+        let dateTime;
81
+        let yy = new Date().getFullYear();
82
+        let mm = new Date().getMonth() + 1;
83
+        let dd = new Date().getDate();
84
+        let hh = new Date().getHours();
85
+        let mf = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes()
86
+          :
87
+          new Date().getMinutes();
88
+        let ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds()
89
+          :
90
+          new Date().getSeconds();
91
+        dateTime = yy + '-' + mm + '-' + dd + ' ' + hh + ':' + mf + ':' + ss;
92
+        return dateTime
93
+      },
94
+      getTimes(time) {
95
+        return uParseTime(time, '{y}-{m}-{d}')
96
+      },getTotal:function(items){
97
+        let total = 0;
98
+        for(let i = 0; i < items.length; i++){
99
+          total = total + (items[i].count * items[i].price).toFixed(2)
100
+        }
101
+        return total
102
+
103
+      },
104
+      getPage(){
105
+        if(this.list.length <= 13){
106
+            this.page = 1;
107
+            this.pageArr.push(this.list.length)
108
+        }else if(this.list.length > 13){
109
+            this.page = parseInt(this.list.length / 13);
110
+            let num = this.list.length % 13;
111
+            for (var i=0;i<this.page;i++){
112
+                this.pageArr.push(13)
113
+            }
114
+            if(num != 0){
115
+                this.pageArr.push(num)
116
+            }
117
+        }
118
+      }
119
+
120
+    },
121
+    watch:{
122
+        list: {
123
+            handler(newVal) {
124
+                this.getPage()
125
+            },
126
+            deep: true
127
+        }
128
+    }
129
+  }
130
+
131
+
132
+</script>
133
+
134
+<style lang="scss" scoped>
135
+.allList-print{
136
+    -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 60px rgba(0, 0, 0, 0.06) inset;
137
+    -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
138
+    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
139
+    margin-bottom: 20px;
140
+    padding:20px 10px;
141
+}
142
+.allListTitle{
143
+    font-size: 24px;
144
+    text-align: center;
145
+    font-weight: bold;
146
+    margin-bottom: 10px;
147
+}
148
+.allListInfo{
149
+    display: flex;
150
+    font-size: 16px;
151
+    justify-content: space-between;
152
+    margin: 10px 0;
153
+}
154
+.allListTable{
155
+    width: 100%;
156
+    text-align: center;
157
+    border-collapse: collapse;
158
+    line-height: 40px;
159
+    font-size: 14px;
160
+    border-color: #000;
161
+    text-align: left;
162
+}
163
+.allListTable tr td {
164
+    padding: 0 5px;
165
+}
166
+.tableBottom{
167
+    font-size: 16px;
168
+    display: flex;
169
+    margin-top: 20px;
170
+}
171
+.tableBottomOne{
172
+    margin-right: 40px;
173
+}
174
+</style>

+ 208 - 0
src/xt_pages/hospitalStation/components/ChargePrescriptionTable.vue View File

@@ -0,0 +1,208 @@
1
+<template>
2
+  <div class="prescriptionTable">
3
+    <el-table v-if="prescription.type == 1" :data="prescription.advices" border style="width: 99%;"
4
+              :row-style="{ color: '#303133' }"
5
+              :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
6
+      <el-table-column align="center" type="index" width="40" label="序号"></el-table-column>
7
+      <el-table-column align="center" prop="name" label="名称">
8
+        <template slot-scope="scope"><span :title='scope.row.drug_name'>{{ scope.row.drug_name }}</span></template>
9
+      </el-table-column>
10
+
11
+      <el-table-column align="center" prop="name" width="90" label="单次用量">
12
+        <template slot-scope="scope">
13
+          <!--<el-input v-model="scope.row.single_dose" readonly style="width:65%;"></el-input>-->
14
+          <div>{{scope.row.single_dose}}&nbsp;&nbsp;{{scope.row.single_dose_unit}}</div>
15
+        </template>
16
+      </el-table-column>
17
+      <el-table-column align="center" prop="name" width="100" label="用法">
18
+        <template slot-scope="scope">
19
+          <!--<el-input v-model="scope.row.delivery_way" readonly></el-input>-->
20
+          <div> {{scope.row.delivery_way}}</div>
21
+
22
+        </template>
23
+      </el-table-column>
24
+      <el-table-column align="center" prop="name" width="100" label="频率">
25
+        <template slot-scope="scope">
26
+          <div> {{scope.row.execution_frequency}}</div>
27
+
28
+          <!--<el-input v-model="scope.row.execution_frequency" readonly></el-input>-->
29
+        </template>
30
+      </el-table-column>
31
+
32
+      <el-table-column align="center" prop="day" width="50" label="天数">
33
+        <template slot-scope="scope">{{scope.row.day}}天</template>
34
+      </el-table-column>
35
+
36
+      <el-table-column align="center" prop="name" width="100" label="总量">
37
+        <template slot-scope="scope">
38
+          <!--<el-input v-model="scope.row.prescribing_number" style="width:60%" readonly placeholder=""></el-input>-->
39
+          <div>{{scope.row.prescribing_number}}&nbsp;&nbsp;{{scope.row.prescribing_number_unit}}</div>
40
+        </template>
41
+      </el-table-column>
42
+      <el-table-column align="center" prop="name" width="60" label="单价">
43
+        <template slot-scope="scope">
44
+          <div> {{scope.row.retail_price}}元</div>
45
+
46
+          <!--<el-input v-model="scope.row.retail_price" placeholder="" readonly></el-input>-->
47
+        </template>
48
+      </el-table-column>
49
+      <el-table-column align="center" prop="name" width="50" label="备注">
50
+        <template slot-scope="scope">
51
+          <!--<el-input v-model="scope.row.remark" :title="scope.row.remark" placeholder="" readonly></el-input>-->
52
+          <div> {{scope.row.remark}}</div>
53
+        </template>
54
+      </el-table-column>
55
+    </el-table>
56
+    <el-table v-if="prescription.type == 2" :data="prescription.project" border style="width: 99%;"
57
+              :row-style="{ color: '#303133' }"
58
+              :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
59
+      <el-table-column align="center" type="index" width="40" label="序号"></el-table-column>
60
+      <el-table-column align="center" prop="project_name" label="名称">
61
+        <template slot-scope="scope">{{ scope.row.project_name }}</template>
62
+      </el-table-column>
63
+      <el-table-column align="center" prop="statistical_classification" width="100" label="组">
64
+        <template slot-scope="scope">{{getGroup(scope.row.statistical_classification)}}</template>
65
+      </el-table-column>
66
+      <el-table-column align="center" prop="single_dose" width="80" label="单次用量">
67
+        <template slot-scope="scope">{{scope.row.single_dose}}{{scope.row.unit}}</template>
68
+
69
+      </el-table-column>
70
+      <el-table-column align="center" prop="delivery_way" width="80" label="用法">
71
+        <template slot-scope="scope">
72
+          <!--<el-input v-model="scope.row.delivery_way" placeholder="" readonly></el-input>-->
73
+          {{scope.row.delivery_way}}
74
+
75
+        </template>
76
+      </el-table-column>
77
+      <el-table-column align="center" prop="execution_frequency" width="80" label="频率">
78
+        <template slot-scope="scope">
79
+          <!--<el-input v-model="scope.row.execution_frequency" placeholder="" readonly></el-input>-->
80
+          {{scope.row.execution_frequency}}
81
+
82
+        </template>
83
+      </el-table-column>
84
+      <el-table-column align="center" prop="number_days" width="50" label="天数">
85
+        <template slot-scope="scope">
86
+          <!--<el-input v-model="scope.row.number_days" placeholder="" readonly></el-input>-->
87
+          {{scope.row.number_days}}天
88
+
89
+        </template>
90
+
91
+      </el-table-column>
92
+      <el-table-column align="center" prop="total" width="50" label="总量">
93
+        <template slot-scope="scope">
94
+          <div style="display:flex;">
95
+            <!--<el-input v-model="scope.row.total" placeholder="" readonly></el-input>-->
96
+            {{scope.row.total}}
97
+
98
+            <div>{{scope.row.unit}}</div>
99
+
100
+          </div>
101
+        </template>
102
+      </el-table-column>
103
+      <el-table-column align="center" prop="name" width="50" label="单价">
104
+        <template slot-scope="scope">
105
+          <!--<el-input v-model="scope.row.price" placeholder="" readonly></el-input>-->
106
+          {{scope.row.price}}元
107
+
108
+        </template>
109
+      </el-table-column>
110
+      <el-table-column align="center" prop="name" width="50" label="备注">
111
+        <template slot-scope="scope">
112
+          <!--<el-input v-model="scope.row.remark" readonly></el-input>-->
113
+          {{scope.row.remark}}
114
+
115
+        </template>
116
+      </el-table-column>
117
+    </el-table>
118
+
119
+    <div class="additionalBox">
120
+      <div class="additionalOne" v-for="(item,index) in prescription.addition" :key="index">
121
+        <span :title="item.item_name">{{item.item_name}}</span>
122
+        <el-input v-model="item.price" placeholder="" style="width:50px;" readonly></el-input>
123
+        共
124
+        <el-input v-model="item.count" placeholder="" style="width:50px;" readonly></el-input>
125
+        次
126
+        <!--<i class="el-icon-delete deleteIcon" @click="delAddition(index,item)"></i>-->
127
+      </div>
128
+    </div>
129
+  </div>
130
+</template>
131
+
132
+<script>
133
+  import { getInitData } from '@/api/his/his'
134
+  import { getDictionaryDataConfig} from "@/utils/data";
135
+
136
+  export default {
137
+    props: {
138
+      prescription: Object
139
+    },
140
+    data() {
141
+      return {
142
+        drugways: [],
143
+        efs: []
144
+      }
145
+    }, mounted() {
146
+      getInitData().then(response => {
147
+        if (response.data.state == 0) {
148
+          this.$message.error(response.data.msg);
149
+          return false
150
+        } else {
151
+          this.drugways = response.data.data.drugways;
152
+          this.efs = response.data.data.efs
153
+        }
154
+      })
155
+    }, methods:  {
156
+
157
+
158
+      getGroup(id){
159
+        var name = "";
160
+        var statistics_category =  getDictionaryDataConfig('system','statistics_category');
161
+        console.log("2235",statistics_category);
162
+        for(let i=0;i<statistics_category.length;i++){
163
+          if(id == statistics_category[i].id){
164
+            name = statistics_category[i].name
165
+          }
166
+        }
167
+        return name
168
+      },
169
+
170
+
171
+    }
172
+  }
173
+</script>
174
+
175
+<style lang="scss">
176
+  .prescriptionTable{
177
+  .additionalBox{
178
+    margin-top: 20px;
179
+    display: flex;
180
+    flex-wrap: wrap;
181
+  .additionalOne{
182
+    margin-right:20px;
183
+    margin-bottom:10px;
184
+    display: flex;
185
+    align-items: center;
186
+  >span{
187
+    white-space: nowrap;
188
+    overflow: hidden;
189
+    text-overflow: ellipsis;
190
+    width:80px;
191
+    display: inline-block;
192
+    font-size: 14px;
193
+  }
194
+  }
195
+  .deleteIcon{
196
+    color:red;
197
+    margin-left:5px;
198
+  }
199
+  }
200
+  .el-table th .cell, .el-table td .cell{
201
+    padding: 0 2px;
202
+    white-space: pre-line;
203
+  }
204
+  .el-icon-delete{
205
+    color:red;
206
+  }
207
+  }
208
+</style>

+ 69 - 0
src/xt_pages/hospitalStation/components/additionalCharges.vue View File

@@ -0,0 +1,69 @@
1
+<template>
2
+    <el-dialog
3
+        title="附加收费"
4
+        width="300px"
5
+        :visible.sync="visible"
6
+        :before-close="_close"
7
+    >
8
+        <el-table :data="addtions_charge" border style="width: 100%;" height="300"
9
+         :row-style="{ color: '#303133' }"
10
+         :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
11
+          highlight-current-row
12
+          >
13
+            <el-table-column align="center" prop="name" label="名称" width="100">
14
+                <template slot-scope="scope">{{ scope.row.item_name }}</template>
15
+            </el-table-column>
16
+            <el-table-column align="center" prop="name" label="金额(元)">
17
+                <template slot-scope="scope">
18
+            {{ scope.row.price }}
19
+                </template>
20
+            </el-table-column>
21
+        </el-table>
22
+        <div slot="footer" class="dialog-footer">
23
+            <el-button @click="hide">取 消</el-button>
24
+        </div>
25
+    </el-dialog>
26
+</template>
27
+
28
+<script>
29
+import { saveCharges } from "@/api/project/project"
30
+export default {
31
+  props: {
32
+    addtions_charge: Array
33
+
34
+  },
35
+    data(){
36
+        return{
37
+            visible:false,
38
+            form:{
39
+                name:''
40
+            },
41
+            tableData:[
42
+
43
+            ],
44
+            patient_id:0,
45
+            chargeTable:[]
46
+        }
47
+    },
48
+    methods:{
49
+        _close: function(done) {
50
+            done()
51
+        },
52
+        clear: function() {
53
+            this.form.id = 0;
54
+            this.form.name = "";
55
+            this.form.intro = "";
56
+        },
57
+        show() {
58
+           this.visible = true
59
+        },
60
+        hide() {
61
+           this.visible = false
62
+        },
63
+
64
+
65
+    },
66
+
67
+}
68
+</script>
69
+

+ 135 - 0
src/xt_pages/hospitalStation/components/advice.vue View File

@@ -0,0 +1,135 @@
1
+<template>
2
+    <el-dialog
3
+        title="新增医嘱"
4
+        width="1000px"
5
+        :visible.sync="visible"
6
+        :before-close="_close"
7
+    >
8
+        <div>
9
+            <el-form :model="form" :rules="rules" class="adviceForm" ref="form" label-width="100px" style="display: flex;flex-wrap: wrap;justify-content: space-between;">
10
+                <el-form-item class="width50" label="开嘱医生 : " prop="name">
11
+                    张三
12
+                </el-form-item>
13
+                <el-form-item class="width50" label="开嘱时间 : " prop="name">
14
+                    张三
15
+                </el-form-item>
16
+                <el-form-item label="医嘱内容: " prop="name" style="width:100%;">
17
+                    <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="textarea"></el-input>
18
+                </el-form-item>
19
+                <el-form-item class="width50" label="药品规格 : " prop="name">
20
+                    <el-input v-model="form.name" placeholder="" style="width:180px;"></el-input>
21
+                    <el-select v-model="value" style="width:180px;margin-left:9px;" placeholder="请选择">
22
+                        <el-option
23
+                        v-for="item in options"
24
+                        :key="item.value"
25
+                        :label="item.label"
26
+                        :value="item.value">
27
+                        </el-option>
28
+                    </el-select>
29
+                </el-form-item>
30
+                <el-form-item class="width50" label="总量 : " prop="name">
31
+                    <el-input v-model="form.name" placeholder="" style="width:180px;"></el-input>
32
+                    <el-select v-model="value" style="width:180px;margin-left:9px;" placeholder="请选择">
33
+                        <el-option
34
+                        v-for="item in options"
35
+                        :key="item.value"
36
+                        :label="item.label"
37
+                        :value="item.value">
38
+                        </el-option>
39
+                    </el-select>
40
+                </el-form-item>
41
+                <el-form-item class="width50" label="每次量 : " prop="name">
42
+                    <el-input v-model="form.name" placeholder="" style="width:180px;"></el-input>
43
+                    <el-select v-model="value" style="width:180px;margin-left:9px;" placeholder="请选择">
44
+                        <el-option
45
+                        v-for="item in options"
46
+                        :key="item.value"
47
+                        :label="item.label"
48
+                        :value="item.value">
49
+                        </el-option>
50
+                    </el-select>
51
+                </el-form-item>
52
+                <el-form-item class="width50" label="用法 : " prop="name">
53
+                    <el-select v-model="value" style="width:100%;" placeholder="请选择">
54
+                        <el-option
55
+                        v-for="item in options"
56
+                        :key="item.value"
57
+                        :label="item.label"
58
+                        :value="item.value">
59
+                        </el-option>
60
+                    </el-select>
61
+                </el-form-item>
62
+                <el-form-item class="width50" label="执行频率 : " prop="name">
63
+                    <el-select v-model="value" style="width:100%;" placeholder="请选择">
64
+                        <el-option
65
+                        v-for="item in options"
66
+                        :key="item.value"
67
+                        :label="item.label"
68
+                        :value="item.value">
69
+                        </el-option>
70
+                    </el-select>
71
+                </el-form-item>
72
+                <el-form-item class="width50" label="天数 : " prop="name">
73
+                    <el-input v-model="form.name" placeholder=""></el-input>
74
+                </el-form-item>
75
+                <el-form-item label="限制说明 : " prop="name" style="width:100%;">
76
+                    <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="textarea"></el-input>
77
+                </el-form-item>
78
+            </el-form>
79
+        </div>
80
+        <div slot="footer" class="dialog-footer">
81
+            <el-button @click="hide">取 消</el-button>
82
+            <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
83
+        </div>
84
+    </el-dialog>         
85
+</template>
86
+
87
+<script>
88
+export default {
89
+    data(){
90
+        return{
91
+            visible:false,
92
+            form:{
93
+                name:''
94
+            },
95
+        }
96
+    },
97
+    methods:{
98
+        _close: function(done) {
99
+            // this.clear()
100
+            done()
101
+        },
102
+        clear: function() {
103
+            this.form.id = 0;
104
+            this.form.name = "";
105
+            this.form.intro = "";
106
+        },
107
+        show() {
108
+            // this.clear()
109
+            this.visible = true
110
+        },
111
+        hide() {
112
+            // this.clear()
113
+            this.visible = false
114
+        },
115
+    }
116
+}
117
+</script>
118
+
119
+<style lang="scss" scoped>
120
+.adviceForm{
121
+    .width33{
122
+        width:33%;
123
+    }
124
+    .width50{
125
+        width:50%;
126
+    }
127
+    .width100{
128
+        width:100%;
129
+    }
130
+    .el-radio{
131
+        margin-right:2px;
132
+    }
133
+}
134
+</style>
135
+

+ 359 - 0
src/xt_pages/hospitalStation/components/callPrescription.vue View File

@@ -0,0 +1,359 @@
1
+<template>
2
+  <el-dialog
3
+    :title="name"
4
+    :visible.sync="isLastOrNextVisible"
5
+    @close="hide"
6
+    width="1010px"
7
+    class="callPrescription"
8
+    :modal-append-to-body="false"
9
+  >
10
+    <el-date-picker
11
+      v-model="start_time"
12
+      prefix-icon="el-icon-date"
13
+      @change="changeTime"
14
+      :editable="false"
15
+      style="width: 150px;"
16
+      type="date"
17
+      placeholder="选择日期时间"
18
+      align="right"
19
+      format="yyyy-MM-dd"
20
+      value-format="yyyy-MM-dd"
21
+    ></el-date-picker>
22
+    <span class>-</span>
23
+    <el-date-picker
24
+      v-model="end_time"
25
+      prefix-icon="el-icon-date"
26
+      @change="changeEndTime"
27
+      :editable="false"
28
+      style="width: 150px;"
29
+      type="date"
30
+      placeholder="选择日期时间"
31
+      align="right"
32
+      format="yyyy-MM-dd"
33
+      value-format="yyyy-MM-dd"
34
+    ></el-date-picker>
35
+
36
+
37
+    <div v-for="(item,index) in allPrescription" :key="index">
38
+      <div class="quote" v-if="item.prescriptions.length > 0">引用 {{getTime(item.record_date, '{y}年{m}月{d}日')}} 的处方</div>
39
+      <el-checkbox-group v-model="item.check_group">
40
+        <div v-for="(subItem,index2) in item.prescriptions" :key="index2">
41
+          <el-checkbox style="margin:10px 0;" :label="subItem.id">{{'处方' + (index2+ 1)}}</el-checkbox>
42
+          <el-table v-if="subItem.type  == 1" :data="subItem.doctor_advice" border style="width: 99%;"
43
+                    :row-style="{ color: '#303133' }"
44
+                    :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
45
+            <el-table-column align="center" type="index" width="60" label="序号"></el-table-column>
46
+            <el-table-column align="center" prop="drug_name"  width="160" label="名称">
47
+              <template slot-scope="scope">
48
+                <span>{{ scope.row.advice_name }}</span>
49
+              </template>
50
+            </el-table-column>
51
+
52
+            <el-table-column align="center" prop="single_dose" width="90" label="单次用量">
53
+              <template slot-scope="scope">
54
+                <div>{{scope.row.single_dose}}{{scope.row.single_dose_unit}}</div>
55
+              </template>
56
+            </el-table-column>
57
+            <el-table-column align="center" prop="delivery_way" width="100" label="用法">
58
+              <template slot-scope="scope">
59
+                {{scope.row.delivery_way}}
60
+              </template>
61
+            </el-table-column>
62
+            <el-table-column align="center" prop="execution_frequency" width="100" label="频率">
63
+              <template slot-scope="scope">
64
+                {{scope.row.execution_frequency}}
65
+              </template>
66
+            </el-table-column>
67
+
68
+            <el-table-column align="center" prop="day" width="60" label="天数">
69
+              <template slot-scope="scope">
70
+                {{scope.row.day}}
71
+              </template>
72
+            </el-table-column>
73
+
74
+            <el-table-column align="center" prop="prescribing_number" width="100" label="总量">
75
+              <template slot-scope="scope">
76
+                <div>{{scope.row.prescribing_number}} {{scope.row.prescribing_number_unit}}</div>
77
+              </template>
78
+            </el-table-column>
79
+            <el-table-column align="center" prop="retail_price" width="80" label="单价">
80
+              <template slot-scope="scope">
81
+                <div>{{scope.row.price}}元</div>
82
+              </template>
83
+            </el-table-column>
84
+            <el-table-column align="center" prop="remark" label="备注">
85
+              <template slot-scope="scope">
86
+                <div>{{scope.row.remark}}</div>
87
+              </template>
88
+            </el-table-column>
89
+          </el-table>
90
+          <el-table v-if="subItem.type == 2" :data="subItem.project" border style="width: 99%;"
91
+                    :row-style="{ color: '#303133' }"
92
+                    :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
93
+            <el-table-column align="center" type="index" width="60" label="序号"></el-table-column>
94
+            <el-table-column align="center" prop="project_name" width="160" label="名称">
95
+              <template slot-scope="scope">
96
+                <span>{{ scope.row.project.project_name }}</span>
97
+              </template>
98
+            </el-table-column>
99
+            <el-table-column align="center" prop="statistical_classification" width="100" label="组">
100
+              <template slot-scope="scope">{{getGroup(scope.row.statistical_classification)}}</template>
101
+            </el-table-column>
102
+            <el-table-column align="center" prop="single_dose" width="90" label="单次用量">
103
+              <template slot-scope="scope">
104
+                <!--<el-input v-model="scope.row.single_dose" placeholder=""></el-input>-->
105
+                <span>{{ scope.row.single_dose }}</span>
106
+
107
+              </template>
108
+            </el-table-column>
109
+            <el-table-column align="center" prop="delivery_way" width="100" label="用法">
110
+              <template slot-scope="scope">
111
+                <!--<el-input v-model="scope.row.delivery_way" placeholder=""></el-input>-->
112
+                <span>{{ scope.row.delivery_way }}</span>
113
+
114
+              </template>
115
+            </el-table-column>
116
+            <el-table-column align="center" prop="execution_frequency" width="100" label="频率">
117
+              <template slot-scope="scope">
118
+                <!--<el-input v-model="scope.row.execution_frequency" placeholder=""></el-input>-->
119
+                <span>{{ scope.row.execution_frequency }}</span>
120
+
121
+              </template>
122
+            </el-table-column>
123
+            <el-table-column align="center" prop="number_days" width="70" label="天数">
124
+              <template slot-scope="scope">
125
+                <!--<el-input v-model="scope.row.number_days" placeholder=""></el-input>-->
126
+                <span>{{ scope.row.number_days }}</span>
127
+
128
+              </template>
129
+            </el-table-column>
130
+            <el-table-column align="center" prop="total" width="70" label="总量">
131
+              <template slot-scope="scope">
132
+                <div>{{ scope.row.count }}{{scope.row.unit}}</div>
133
+              </template>
134
+            </el-table-column>
135
+            <el-table-column align="center" prop="name" width="60" label="单价">
136
+              <template slot-scope="scope">
137
+                <!--<el-input v-model="scope.row.price" placeholder="" readonly></el-input>-->
138
+                <span>{{ scope.row.price }}</span>
139
+
140
+              </template>
141
+            </el-table-column>
142
+            <el-table-column align="center" prop="name" label="备注">
143
+              <template slot-scope="scope">
144
+                <!--<el-input v-model="scope.row.remark" :title="scope.row.remark"></el-input>-->
145
+                <span>{{ scope.row.remark }}</span>
146
+
147
+              </template>
148
+            </el-table-column>
149
+          </el-table>
150
+        </div>
151
+      </el-checkbox-group>
152
+
153
+    </div>
154
+
155
+
156
+    <div slot="footer" class="dialog-footer">
157
+      <el-button @click="isLastOrNextVisible = false">取 消</el-button>
158
+      <el-button type="primary" @click="save">保存</el-button>
159
+    </div>
160
+  </el-dialog>
161
+
162
+
163
+</template>
164
+
165
+<script>
166
+  import { uParseTime } from '@/utils/tools'
167
+  import { getDictionaryDataConfig} from "@/utils/data";
168
+
169
+  import {
170
+    getCallHisPrescription
171
+  } from '@/api/his/his'
172
+  export default {
173
+    name: "callPrescription",
174
+    data() {
175
+      return {
176
+        start_time:"",
177
+        end_time:"",
178
+        srcPrescriptions:[],
179
+        name:"",
180
+        request_record_date:'',
181
+        patient_id:0,
182
+        allPrescription: [],
183
+        isLastOrNextVisible: false,
184
+
185
+      }
186
+    }, methods: {
187
+      changeTime(){
188
+        let params={
189
+          patient_id:this.patient_id,
190
+          start_time: this.start_time,
191
+          end_time:this.end_time,
192
+          p_type:1,
193
+
194
+        };
195
+        this.GetCallHisPrescription(params)
196
+      },changeEndTime(){
197
+        let params={
198
+          patient_id:this.patient_id,
199
+          start_time: this.start_time,
200
+          end_time:this.end_time,
201
+          p_type:1,
202
+
203
+        };
204
+        this.GetCallHisPrescription(params)
205
+      },
206
+      GetCallHisPrescription(params){
207
+        getCallHisPrescription(params).then(response => {
208
+          if (response.data.state == 1) {
209
+            this.allPrescription = response.data.data.prescriptions;
210
+            for (let i = 0; i < this.allPrescription.length; i++){
211
+              this.allPrescription[i].check_group = []
212
+            }
213
+            this.request_record_date = uParseTime(response.data.data.prescriptions[0].record_date, '{y}-{m}-{d}')
214
+          } else {
215
+            this.$message.error(response.data.msg)
216
+
217
+          }
218
+        })
219
+      },
220
+      save() {
221
+        let replace_one = [];
222
+        let replace_two = [];
223
+
224
+        let checkGroup = [];
225
+        let allPrescriptions = [];
226
+        let targetPrescriptions = [];
227
+        let prescriptions = [];
228
+        for (let i = 0; i < this.allPrescription.length; i++) {
229
+          for (let a = 0; a < this.allPrescription[i].check_group.length; a++) {
230
+            checkGroup.push(this.allPrescription[i].check_group[a])
231
+          }
232
+          for (let a = 0; a < this.allPrescription[i].prescriptions.length; a++) {
233
+            allPrescriptions.push(this.allPrescription[i].prescriptions[a])
234
+          }
235
+        }
236
+        for (let i = 0; i < allPrescriptions.length; i++){
237
+          for (let a = 0; a < checkGroup.length; a++){
238
+            if(allPrescriptions[i].id == checkGroup[a]){
239
+              targetPrescriptions.push(allPrescriptions[i])
240
+            }
241
+          }
242
+        }
243
+
244
+        if (targetPrescriptions.length > 0) {
245
+          for (let i = 0; i < targetPrescriptions.length; i++) {
246
+            var prescription = targetPrescriptions[i];
247
+            let tempAdvice = [];
248
+            let tempProject = [];
249
+            let tempAddition = [];
250
+            for (let b = 0; b < prescription.doctor_advice.length; b++) {
251
+              let obj = {
252
+                advice_id: 0,
253
+                drug_name: prescription.doctor_advice[b].advice_name,
254
+                single_dose: prescription.doctor_advice[b].single_dose,
255
+                delivery_way: prescription.doctor_advice[b].delivery_way,
256
+                execution_frequency: prescription.doctor_advice[b].execution_frequency,
257
+                retail_price: prescription.doctor_advice[b].price.toString(),
258
+                remark: prescription.doctor_advice[b].remark,
259
+                day:prescription.doctor_advice[b].day,
260
+                prescribing_number:prescription.doctor_advice[b].prescribing_number.toString(),
261
+                single_dose_unit:prescription.doctor_advice[b].single_dose_unit,
262
+                prescribing_number_unit:prescription.doctor_advice[b].prescribing_number_unit,
263
+                medical_insurance_number:prescription.doctor_advice[b].med_list_codg,
264
+                id:prescription.doctor_advice[b].drug_id
265
+              };
266
+              tempAdvice.push(obj)
267
+
268
+            }
269
+
270
+
271
+            for (let b = 0; b < prescription.project.length; b++) {
272
+              let obj = {
273
+                id: 0,
274
+                project_id: prescription.project[b].project_id,
275
+                project_name: prescription.project[b].project.project_name,
276
+                statistical_classification: prescription.project[b].project.statistical_classification,
277
+                single_dose: prescription.project[b].single_dose,
278
+                delivery_way: prescription.project[b].delivery_way,
279
+                execution_frequency: prescription.project[b].execution_frequency,
280
+                number_days: prescription.project[b].day,
281
+                total:prescription.project[b].count,
282
+                price:prescription.project[b].price,
283
+                remark:prescription.project[b].remark,
284
+                medical_code:prescription.project[b].project.medical_code,
285
+              };
286
+              tempProject.push(obj)
287
+            }
288
+            let obj = {
289
+              id: 0,
290
+              advices: tempAdvice,
291
+              project: tempProject,
292
+              addition:tempAddition,
293
+              type:prescription.type,
294
+              order_status:0,
295
+            };
296
+            prescriptions.push(obj)
297
+          }
298
+        }
299
+
300
+        if(this.srcPrescriptions.length == 1){
301
+          if(this.srcPrescriptions[0].advices.length == 0 && this.srcPrescriptions[0].project.length == 0){
302
+            this.srcPrescriptions = [];
303
+            this.srcPrescriptions = prescriptions;
304
+            this.$emit('call', this.srcPrescriptions)
305
+          }else{
306
+
307
+            this.srcPrescriptions =  this.srcPrescriptions.concat(prescriptions);
308
+            this.$emit('call', this.srcPrescriptions)
309
+          }
310
+        }else{
311
+          this.srcPrescriptions =  this.srcPrescriptions.concat(prescriptions);
312
+          this.$emit('call', this.srcPrescriptions)
313
+        }
314
+      },show(name,id,end_time, start_time,srcPrescriptions,prescriptions){
315
+        this.srcPrescriptions = srcPrescriptions;
316
+        this.start_time  = start_time;
317
+        this.end_time = end_time;
318
+        this.patient_id = id;
319
+        this.name = '处方调用' + '('+name +')';
320
+        this.allPrescription = prescriptions;
321
+        for (let i = 0; i < this.allPrescription.length; i++){
322
+          this.allPrescription[i].check_group = []
323
+        }
324
+        this.isLastOrNextVisible = true
325
+      },close(){
326
+        this.isLastOrNextVisible = false
327
+      },hide(){
328
+        this.$emit('callCancel')
329
+
330
+      },getTime(time, template){
331
+        return uParseTime(time,template)
332
+
333
+      }, getGroup(id){
334
+        var name = "";
335
+        var statistics_category =  getDictionaryDataConfig('system','statistics_category');
336
+        for(let i=0;i<statistics_category.length;i++){
337
+          if(id == statistics_category[i].id){
338
+            name = statistics_category[i].name
339
+          }
340
+        }
341
+        return name
342
+      },   getDictionaryDataConfig(module, filed_name) {
343
+        return getDictionaryDataConfig(module, filed_name)
344
+      },
345
+    }
346
+  }
347
+</script>
348
+
349
+<style lang="scss">
350
+.callPrescription{
351
+  .el-dialog__body{
352
+    padding:0px 20px 30px;
353
+  }
354
+  .quote{
355
+    margin-top: 10px;
356
+    font-size: 14px;
357
+  }
358
+}
359
+</style>

+ 257 - 0
src/xt_pages/hospitalStation/components/chargeDialog.vue View File

@@ -0,0 +1,257 @@
1
+<template>
2
+  <el-dialog width="854px" title="收费单" class="chargeDialog" :visible.sync="visibility" :close-on-click-modal="isClose"
3
+             :close-on-press-escape="isClose">
4
+
5
+    <el-form :model="form"  ref="formValue" label-width="100px">
6
+
7
+      <el-form-item label="日期:" style="width:100%;">
8
+        <div>{{record_date}}</div>
9
+      </el-form-item>
10
+
11
+      <el-form-item label="总计:" prop="name" :validate-event="is_Name" style="width:33%;">
12
+        <el-input type="number" v-model="form.total" :disabled="true"></el-input>
13
+      </el-form-item>
14
+      <el-form-item label="医保:" prop="name" :validate-event="is_Name" style="width:33%;">
15
+        <el-input type="number" v-model="form.medical_insurance_price" :disabled="true"></el-input>
16
+      </el-form-item>
17
+
18
+
19
+      <el-form-item label="自费:" prop="age" :validate-event="is_Name" style="width:33%;">
20
+        <el-input type="number" v-model="form.private_price" :disabled="true"></el-input>
21
+      </el-form-item>
22
+
23
+
24
+      <el-form-item label="支付方式:" style="width:100%;">
25
+        <!-- <el-select v-model="form.pay_way" placeholder="请选择">
26
+          <el-option
27
+            v-for="(item,index) in payWays"
28
+            :key="index"
29
+            :label="item.label"
30
+            :value="item.value">
31
+          </el-option>
32
+        </el-select> -->
33
+        <el-radio-group v-model="form.pay_way">
34
+          <el-radio :label="index" v-for="(item,index) in payWays" :key="index">{{ item.label }}</el-radio>
35
+        </el-radio-group>
36
+      </el-form-item>
37
+
38
+
39
+      <el-form-item label="付款金额:" prop="id_card" :validate-event="is_Name">
40
+        <el-input type="number" v-model="form.pay_price" :disabled="true"></el-input>
41
+      </el-form-item>
42
+
43
+
44
+      <el-form-item label="付款卡号:" prop="id_card" :validate-event="is_Name">
45
+        <el-input v-model="form.pay_card_no"></el-input>
46
+      </el-form-item>
47
+
48
+      <el-form-item class="specialFormItem" label="折扣金额:">
49
+        <div style="display:flex;">
50
+          <el-input v-model="form.discount_price" :disabled="form.preferential_price != 0" @change="changeDiscountPrice"></el-input>
51
+        </div>
52
+      </el-form-item>
53
+      <el-form-item class="specialFormItem" label="优惠金额:">
54
+        <div style="display:flex;">
55
+          <el-input v-model="form.preferential_price" :disabled="form.discount_price != 0" @change="changePreferentialPrice"></el-input>
56
+        </div>
57
+      </el-form-item>
58
+      <el-form-item label="实收金额:">
59
+        <div style="display:flex;">
60
+          <el-input v-model="form.reality_price" @change="realityPrice"></el-input>
61
+        </div>
62
+      </el-form-item>
63
+      <el-form-item label="找回金额:">
64
+        <div style="display:flex;">
65
+          <el-input v-model.number="form.found_price"></el-input>
66
+        </div>
67
+      </el-form-item>
68
+
69
+      <el-form-item label="发票编码:">
70
+        <div style="display:flex;">
71
+          <el-input v-model.number="form.fapiao_code"></el-input>
72
+        </div>
73
+      </el-form-item>
74
+
75
+
76
+      <el-form-item label="发票号码:">
77
+        <div style="display:flex;">
78
+          <el-input v-model.number="form.fapiao_number"></el-input>
79
+        </div>
80
+      </el-form-item>
81
+
82
+    </el-form>
83
+
84
+    <span slot="footer" class="dialog-footer">
85
+    <el-button v-loading="loadingtwo" @click="cancel('formValue')">取 消</el-button>
86
+    <el-button v-loading="loadingtwo" type="primary" @click="confirm('formValue')">确 定</el-button>
87
+  </span>
88
+  </el-dialog>
89
+
90
+</template>
91
+
92
+<script>
93
+  import { uParseTime } from '@/utils/tools'
94
+
95
+  export default {
96
+    name: 'chargeDialog',
97
+
98
+    data() {
99
+
100
+      return {
101
+        record_date:'',
102
+        form: {
103
+          medical_insurance_price:0,
104
+          private_price:'',
105
+          pay_way:'',
106
+          pay_price:'',
107
+          pay_card_no:'',
108
+          discount_price:'',
109
+          preferential_price:'',
110
+          reality_price:'',
111
+          found_price:'',
112
+          total:0,
113
+          fapiao_code:"",
114
+          fapiao_number:""
115
+
116
+
117
+        },
118
+        payWays: [
119
+          {value: 1, label: '现金'},
120
+          {value: 2, label: '银行卡'},
121
+          {value: 3, label: '微信'},
122
+          {value: 4, label: '支付宝'},
123
+        ],
124
+        total:"",
125
+
126
+        visibility: false,
127
+        labelPosition: 'right',
128
+        isClose: false,
129
+
130
+        resetForm: {
131
+          medical_insurance_price:'',
132
+          private_price:'',
133
+          pay_way:'',
134
+          pay_price:'',
135
+          pay_card_no:'',
136
+          discount_price:'',
137
+          preferential_price:'',
138
+          reality_price:'',
139
+          found_price:'',
140
+          fapiao_code:"",
141
+          fapiao_number:""
142
+        },
143
+
144
+      }
145
+    },
146
+    props: {
147
+
148
+      titles: {
149
+        type: String,
150
+        default: ''
151
+      },
152
+      formValue: {
153
+        type: Object
154
+      },
155
+      type: {
156
+        type: Number,
157
+        default: 1
158
+
159
+      },
160
+      isCreated: {
161
+        type: Number,
162
+        default: 1
163
+
164
+      }
165
+    },
166
+    methods: {
167
+      show: function (total) {
168
+        this.total = total;
169
+        this.form.private_price = total;
170
+        this.form.pay_price = total;
171
+        this.form.total = total + this.form.medical_insurance_price;
172
+        this.form.discount_price = 0.0;
173
+        this.form.preferential_price = 0.0;
174
+
175
+        this.form.fapiao_code ="";
176
+        this.form.fapiao_number = "";
177
+
178
+
179
+
180
+        this.visibility = true
181
+
182
+      }, hide: function () {
183
+        this.form = Object.assign({}, this.resetForm);
184
+        this.loadingtwo = false;
185
+        this.visibility = false
186
+      }, cancel: function (formName) {
187
+        this.$emit('cancel', this.getValue());
188
+        this.$refs['formValue'].resetFields()
189
+      },
190
+      confirm: function (formName) {
191
+        this.$refs['formValue'].validate((valid) => {
192
+          if (valid) {
193
+            let value = {};
194
+            value = this.getValue();
195
+            this.$emit('confirm', value);
196
+            this.loadingtwo = true
197
+          }
198
+        })
199
+      },
200
+      getValue: function () {
201
+        let form = {};
202
+        form = this.form;
203
+        return form
204
+      },
205
+      realityPrice(val){
206
+        if(val < (this.form.total - this.form.discount_price - this.form.preferential_price)){
207
+          this.$message.error('实收金额不能小于收费金额');
208
+          return
209
+        }
210
+        this.form.found_price = parseInt(val) - parseInt(this.form.total) + parseInt(this.form.discount_price) + parseInt(this.form.preferential_price)
211
+      },
212
+      changeDiscountPrice(val){
213
+        if(val > this.form.total){
214
+          this.$message.error('折扣金额不能超过费用总额');
215
+          return
216
+        }
217
+        this.form.reality_price = parseInt(this.form.total) - parseInt(val) - parseInt(this.form.preferential_price)
218
+      },
219
+      changePreferentialPrice(val){
220
+        if(val > this.form.total){
221
+          this.$message.error('优惠金额不能超过费用总额');
222
+          return
223
+        }
224
+        this.form.reality_price = parseInt(this.form.total) - parseInt(val) - parseInt(this.form.discount_price)
225
+      }
226
+    },mounted() {
227
+      var nowDate = new Date();
228
+      var nowYear = nowDate.getFullYear();
229
+      var nowMonth = nowDate.getMonth() + 1;
230
+      var nowDay = nowDate.getDate();
231
+
232
+      var nowHours = nowDate.getHours();
233
+      var nowMin = nowDate.getMinutes();
234
+      var nowSecond = nowDate.getSeconds();
235
+
236
+      this.record_date =
237
+        nowYear +
238
+        '-' +
239
+        (nowMonth < 10 ? '0' + nowMonth : nowMonth) +
240
+        '-' +
241
+        (nowDay < 10 ? '0' + nowDay : nowDay)+" "+(nowHours < 10 ? '0' + nowHours : nowHours)+":"+(nowMin < 10 ? '0' + nowMin : nowMin)
242
+    }
243
+
244
+  }
245
+</script>
246
+
247
+<style lang="scss" scoped>
248
+.chargeDialog{
249
+  .el-form{
250
+    display: flex;
251
+    flex-wrap: wrap;
252
+  }
253
+  .el-form-item{
254
+    width:50%;
255
+  }
256
+}
257
+</style>

+ 208 - 0
src/xt_pages/hospitalStation/components/chargeMonthPrescriptionTable.vue View File

@@ -0,0 +1,208 @@
1
+<template>
2
+  <div class="prescriptionTable">
3
+    <el-table v-if="prescription.type == 1" :data="prescription.advices" border style="width: 99%;"
4
+              :row-style="{ color: '#303133' }"
5
+              :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
6
+      <el-table-column align="center" type="index" width="40" label="序号"></el-table-column>
7
+      <el-table-column align="center" prop="name" label="名称">
8
+        <template slot-scope="scope"><span :title='scope.row.drug_name'>{{ scope.row.drug_name }}</span></template>
9
+      </el-table-column>
10
+
11
+      <el-table-column align="center" prop="name" width="90" label="单次用量">
12
+        <template slot-scope="scope">
13
+          <!--<el-input v-model="scope.row.single_dose" readonly style="width:65%;"></el-input>-->
14
+          <div>{{scope.row.single_dose}}&nbsp;&nbsp;{{scope.row.single_dose_unit}}</div>
15
+        </template>
16
+      </el-table-column>
17
+      <el-table-column align="center" prop="name" width="100" label="用法">
18
+        <template slot-scope="scope">
19
+          <!--<el-input v-model="scope.row.delivery_way" readonly></el-input>-->
20
+          <div> {{scope.row.delivery_way}}</div>
21
+
22
+        </template>
23
+      </el-table-column>
24
+      <el-table-column align="center" prop="name" width="100" label="频率">
25
+        <template slot-scope="scope">
26
+          <div> {{scope.row.execution_frequency}}</div>
27
+
28
+          <!--<el-input v-model="scope.row.execution_frequency" readonly></el-input>-->
29
+        </template>
30
+      </el-table-column>
31
+
32
+      <el-table-column align="center" prop="day" width="50" label="天数">
33
+        <template slot-scope="scope">{{scope.row.day}}天</template>
34
+      </el-table-column>
35
+
36
+      <el-table-column align="center" prop="name" width="100" label="总量">
37
+        <template slot-scope="scope">
38
+          <!--<el-input v-model="scope.row.prescribing_number" style="width:60%" readonly placeholder=""></el-input>-->
39
+          <div>{{scope.row.prescribing_number}}&nbsp;&nbsp;{{scope.row.prescribing_number_unit}}</div>
40
+        </template>
41
+      </el-table-column>
42
+      <el-table-column align="center" prop="name" width="60" label="单价">
43
+        <template slot-scope="scope">
44
+          <div> {{scope.row.retail_price}}元</div>
45
+
46
+          <!--<el-input v-model="scope.row.retail_price" placeholder="" readonly></el-input>-->
47
+        </template>
48
+      </el-table-column>
49
+      <el-table-column align="center" prop="name" width="50" label="备注">
50
+        <template slot-scope="scope">
51
+          <!--<el-input v-model="scope.row.remark" :title="scope.row.remark" placeholder="" readonly></el-input>-->
52
+          <div> {{scope.row.remark}}</div>
53
+        </template>
54
+      </el-table-column>
55
+    </el-table>
56
+    <el-table v-if="prescription.type == 2" :data="prescription.project" border style="width: 99%;"
57
+              :row-style="{ color: '#303133' }"
58
+              :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
59
+      <el-table-column align="center" type="index" width="40" label="序号"></el-table-column>
60
+      <el-table-column align="center" prop="project_name" label="名称">
61
+        <template slot-scope="scope">{{ scope.row.project_name }}</template>
62
+      </el-table-column>
63
+      <el-table-column align="center" prop="statistical_classification" width="100" label="组">
64
+        <template slot-scope="scope">{{getGroup(scope.row.statistical_classification)}}</template>
65
+      </el-table-column>
66
+      <el-table-column align="center" prop="single_dose" width="80" label="单次用量">
67
+        <template slot-scope="scope">{{scope.row.single_dose}}{{scope.row.unit}}</template>
68
+
69
+      </el-table-column>
70
+      <el-table-column align="center" prop="delivery_way" width="80" label="用法">
71
+        <template slot-scope="scope">
72
+          <!--<el-input v-model="scope.row.delivery_way" placeholder="" readonly></el-input>-->
73
+          {{scope.row.delivery_way}}
74
+
75
+        </template>
76
+      </el-table-column>
77
+      <el-table-column align="center" prop="execution_frequency" width="80" label="频率">
78
+        <template slot-scope="scope">
79
+          <!--<el-input v-model="scope.row.execution_frequency" placeholder="" readonly></el-input>-->
80
+          {{scope.row.execution_frequency}}
81
+
82
+        </template>
83
+      </el-table-column>
84
+      <el-table-column align="center" prop="number_days" width="50" label="天数">
85
+        <template slot-scope="scope">
86
+          <!--<el-input v-model="scope.row.number_days" placeholder="" readonly></el-input>-->
87
+          {{scope.row.number_days}}天
88
+
89
+        </template>
90
+
91
+      </el-table-column>
92
+      <el-table-column align="center" prop="total" width="50" label="总量">
93
+        <template slot-scope="scope">
94
+          <div style="display:flex;">
95
+            <!--<el-input v-model="scope.row.total" placeholder="" readonly></el-input>-->
96
+            {{scope.row.total}}
97
+
98
+            <div>{{scope.row.unit}}</div>
99
+
100
+          </div>
101
+        </template>
102
+      </el-table-column>
103
+      <el-table-column align="center" prop="name" width="50" label="单价">
104
+        <template slot-scope="scope">
105
+          <!--<el-input v-model="scope.row.price" placeholder="" readonly></el-input>-->
106
+          {{scope.row.price}}元
107
+
108
+        </template>
109
+      </el-table-column>
110
+      <el-table-column align="center" prop="name" width="50" label="备注">
111
+        <template slot-scope="scope">
112
+          <!--<el-input v-model="scope.row.remark" readonly></el-input>-->
113
+          {{scope.row.remark}}
114
+
115
+        </template>
116
+      </el-table-column>
117
+    </el-table>
118
+
119
+    <div class="additionalBox">
120
+      <div class="additionalOne" v-for="(item,index) in prescription.addition" :key="index">
121
+        <span :title="item.item_name">{{item.item_name}}</span>
122
+        <el-input v-model="item.price" placeholder="" style="width:50px;" readonly></el-input>
123
+        共
124
+        <el-input v-model="item.count" placeholder="" style="width:50px;" readonly></el-input>
125
+        次
126
+        <!--<i class="el-icon-delete deleteIcon" @click="delAddition(index,item)"></i>-->
127
+      </div>
128
+    </div>
129
+  </div>
130
+</template>
131
+
132
+<script>
133
+  import { getInitData } from '@/api/his/his'
134
+  import { getDictionaryDataConfig} from "@/utils/data";
135
+
136
+  export default {
137
+    props: {
138
+      prescription: Object
139
+    },
140
+    data() {
141
+      return {
142
+        drugways: [],
143
+        efs: []
144
+      }
145
+    }, mounted() {
146
+      getInitData().then(response => {
147
+        if (response.data.state == 0) {
148
+          this.$message.error(response.data.msg);
149
+          return false
150
+        } else {
151
+          this.drugways = response.data.data.drugways;
152
+          this.efs = response.data.data.efs
153
+        }
154
+      })
155
+    }, methods:  {
156
+
157
+
158
+      getGroup(id){
159
+        var name = "";
160
+        var statistics_category =  getDictionaryDataConfig('system','statistics_category');
161
+        console.log("2235",statistics_category);
162
+        for(let i=0;i<statistics_category.length;i++){
163
+          if(id == statistics_category[i].id){
164
+            name = statistics_category[i].name
165
+          }
166
+        }
167
+        return name
168
+      },
169
+
170
+
171
+    }
172
+  }
173
+</script>
174
+
175
+<style lang="scss">
176
+  .prescriptionTable{
177
+  .additionalBox{
178
+    margin-top: 20px;
179
+    display: flex;
180
+    flex-wrap: wrap;
181
+  .additionalOne{
182
+    margin-right:20px;
183
+    margin-bottom:10px;
184
+    display: flex;
185
+    align-items: center;
186
+  >span{
187
+    white-space: nowrap;
188
+    overflow: hidden;
189
+    text-overflow: ellipsis;
190
+    width:80px;
191
+    display: inline-block;
192
+    font-size: 14px;
193
+  }
194
+  }
195
+  .deleteIcon{
196
+    color:red;
197
+    margin-left:5px;
198
+  }
199
+  }
200
+  .el-table th .cell, .el-table td .cell{
201
+    padding: 0 2px;
202
+    white-space: pre-line;
203
+  }
204
+  .el-icon-delete{
205
+    color:red;
206
+  }
207
+  }
208
+</style>

+ 166 - 0
src/xt_pages/hospitalStation/components/charged.vue View File

@@ -0,0 +1,166 @@
1
+<template>
2
+    <div style="display:flex;">
3
+        <div class="noChargeLeft">
4
+            <div class="mainCell" style="margin-bottom:10px;">
5
+                <el-input size="small" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
6
+                <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
7
+            </div>
8
+            <el-table :data="tableData" border height="500" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
9
+                <el-table-column align="center" prop="name" label="处方号" width="100">
10
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
11
+                </el-table-column>
12
+                <el-table-column align="center" prop="name" label="姓名" width="99">
13
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
14
+                </el-table-column>
15
+            </el-table>
16
+        </div>
17
+        <div style="flex:1;overflow-x: hidden;">
18
+            <div class="noChargeRight">
19
+                <div class="chargeInfo">
20
+                    <p>姓名:<span></span></p>
21
+                    <p>性别:<span></span></p>
22
+                    <p>年龄:<span></span></p>
23
+                    <p>证件号:<span></span></p>
24
+                    <p>挂号类型:<span></span></p>
25
+                    <p>上一个发票号:<span></span></p>
26
+                    <p>下一个发票号:<span></span></p>
27
+                </div>
28
+                <div class="chargeBox">
29
+                    <p>医疗费用总额:<span></span></p>
30
+                    <p>基金支付金额:<span></span></p>
31
+                    <p>个人账户支付金额:<span></span></p>
32
+                    <p>个人支付金额:<span></span></p>
33
+                    <p>个人账号金额:<span></span></p>
34
+                </div>
35
+                <p class='chargeTitle'>药品信息</p>
36
+                <el-table :data="tableData" border height="200" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
37
+                    <el-table-column align="center" prop="name" label="名称">
38
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
39
+                    </el-table-column>
40
+                    <el-table-column align="center" prop="name" label="单位">
41
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
42
+                    </el-table-column>
43
+                    <el-table-column align="center" prop="name" label="单价(元)">
44
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
45
+                    </el-table-column>
46
+                    <el-table-column align="center" prop="name" label="数量">
47
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
48
+                    </el-table-column>
49
+                    <el-table-column align="center" prop="name" label="总价">
50
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
51
+                    </el-table-column>
52
+                    <el-table-column align="center" prop="name" label="自付比例">
53
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
54
+                    </el-table-column>
55
+                </el-table>
56
+                <p class='chargeTitle'>项目信息</p>
57
+                <el-table :data="tableData" border height="200" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
58
+                    <el-table-column align="center" prop="name" label="名称">
59
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
60
+                    </el-table-column>
61
+                    <el-table-column align="center" prop="name" label="科室">
62
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
63
+                    </el-table-column>
64
+                    <el-table-column align="center" prop="name" label="单价(元)">
65
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
66
+                    </el-table-column>
67
+                    <el-table-column align="center" prop="name" label="数量">
68
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
69
+                    </el-table-column>
70
+                    <el-table-column align="center" prop="name" label="总价">
71
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
72
+                    </el-table-column>
73
+                    <el-table-column align="center" prop="name" label="自付比例">
74
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
75
+                    </el-table-column>
76
+                </el-table>
77
+                <div class='chargeBtn'>
78
+                    <p>总金额:0元</p>
79
+                    <div>
80
+                        <el-button>收费清单打印</el-button>
81
+                        <el-button type="primary">处方查询</el-button>
82
+                        <el-button type="danger">退费</el-button>
83
+                    </div>
84
+                </div>
85
+            </div>
86
+        </div>
87
+    </div>
88
+</template>
89
+
90
+<script>
91
+export default {
92
+    data(){
93
+        return{
94
+            tableData: [{
95
+            date: '2016-05-02',
96
+            name: '王小虎',
97
+            address: '上海市普陀区金沙江路 1518 弄'
98
+            }, {
99
+            date: '2016-05-04',
100
+            name: '王小虎',
101
+            address: '上海市普陀区金沙江路 1517 弄'
102
+            }, {
103
+            date: '2016-05-01',
104
+            name: '王小虎',
105
+            address: '上海市普陀区金沙江路 1519 弄'
106
+            }, {
107
+            date: '2016-05-03',
108
+            name: '王小虎',
109
+            address: '上海市普陀区金沙江路 1516 弄'
110
+            }]
111
+        }
112
+    }
113
+}
114
+</script>
115
+
116
+
117
+<style lang="scss" scoped>
118
+.noChargeLeft{
119
+    width:200px;
120
+    .mainCell{
121
+        display: flex;
122
+    }
123
+}
124
+.noChargeRight{
125
+    margin-left:20px;
126
+    // flex: 1;
127
+    .chargeInfo{
128
+        display: flex;
129
+        justify-content: space-between;
130
+        align-items: center;
131
+        height: 32px;
132
+        margin-bottom: 10px;
133
+        >p{
134
+            display: flex;
135
+        }
136
+        >p>span{
137
+            display: inline-block;
138
+            min-width: 50px;
139
+        }
140
+    }
141
+    .chargeBox{
142
+        height:42px;
143
+        border: 1px solid #EBEEF5;
144
+        display: flex;
145
+        justify-content: space-between;
146
+        background-color: rgb(245, 247, 250);
147
+        color: rgb(96, 98, 102);
148
+        align-items: center;
149
+        padding: 0 20px;
150
+        >p>span{
151
+            display: inline-block;
152
+            min-width: 50px;
153
+        }
154
+    }
155
+    .chargeTitle{
156
+        line-height: 32px;
157
+        height: 32px;
158
+    }
159
+    .chargeBtn{
160
+        display: flex;
161
+        justify-content: space-between;
162
+        align-items: center;
163
+        margin-top: 20px;
164
+    }
165
+}
166
+</style>

+ 425 - 0
src/xt_pages/hospitalStation/components/dayPrescriptionTable.vue View File

@@ -0,0 +1,425 @@
1
+<template>
2
+  <div class="prescriptionTable">
3
+    <el-table v-if="activeType  == 1" :data="prescription.advices" border style="width: 99%;" :row-style="{ color: '#303133' }"
4
+              :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
5
+      <el-table-column align="center" type="index" width="40" label="序号"></el-table-column>
6
+      <el-table-column align="center" prop="drug_name" label="名称">
7
+        <template slot-scope="scope"><span :title="scope.row.drug_name">{{ scope.row.drug_name }}</span></template>
8
+      </el-table-column>
9
+
10
+      <el-table-column align="center" prop="single_dose" width="90" label="单次用量">
11
+        <template slot-scope="scope">
12
+          <div style="display:flex;align-items:center;">
13
+            <el-input v-model="scope.row.single_dose" style="width:65%;"></el-input>
14
+            <div>{{scope.row.single_dose_unit}}</div>
15
+          </div>
16
+        </template>
17
+      </el-table-column>
18
+      <el-table-column align="center" prop="delivery_way" width="100" label="用法">
19
+        <template slot-scope="scope">
20
+          <el-select v-model="scope.row.delivery_way" placeholder="请选择">
21
+            <el-option
22
+              v-for="(item,index) in drugways"
23
+              :key="index"
24
+              :label="item.name"
25
+              :value="item.name">
26
+            </el-option>
27
+          </el-select>
28
+        </template>
29
+      </el-table-column>
30
+      <el-table-column align="center" prop="execution_frequency" width="100" label="频率">
31
+        <template slot-scope="scope">
32
+          <el-select v-model="scope.row.execution_frequency" placehold er="请选择">
33
+            <el-option
34
+              v-for="item,index in efs"
35
+              :key="index"
36
+              :label="item.name"
37
+              :value="item.name">
38
+            </el-option>
39
+          </el-select>
40
+        </template>
41
+      </el-table-column>
42
+
43
+
44
+      <el-table-column align="center" prop="day" width="50" label="天数">
45
+        <template slot-scope="scope">
46
+          <el-input v-model="scope.row.day" placeholder=""></el-input>
47
+          <div>{{'天'}}</div>
48
+        </template>
49
+      </el-table-column>
50
+
51
+      <el-table-column align="center" prop="prescribing_number" width="80" label="总量">
52
+        <template slot-scope="scope">
53
+          <div style="display:flex;align-items:center;">
54
+            <el-input v-model="scope.row.prescribing_number" style="width:60%" placeholder=""></el-input>
55
+            <div> {{scope.row.prescribing_number_unit}}</div>
56
+          </div>
57
+        </template>
58
+      </el-table-column>
59
+      <el-table-column align="center" prop="retail_price" width="60" label="单价">
60
+        <template slot-scope="scope">
61
+          <el-input v-model="scope.row.retail_price" placeholder="" readonly></el-input>
62
+          <div>{{'元'}}</div>
63
+
64
+        </template>
65
+      </el-table-column>
66
+      <el-table-column align="center" prop="remark" width="50" label="备注">
67
+        <template slot-scope="scope">
68
+          <el-input v-model="scope.row.remark" :title="scope.row.remark" placeholder=""></el-input>
69
+        </template>
70
+      </el-table-column>
71
+      <el-table-column align="center" width="40" prop="name" label="操作">
72
+        <template slot-scope="scope">
73
+          <i class="el-icon-delete" @click="deleteDrug(scope.$index, scope.row)"></i>
74
+        </template>
75
+      </el-table-column>
76
+    </el-table>
77
+
78
+    <el-table v-if="activeType == 2" :data="prescription.project" border style="width: 99%;" :row-style="{ color: '#303133' }"
79
+              :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
80
+      <el-table-column align="center" type="index" width="40" label="序号"></el-table-column>
81
+      <el-table-column align="center" prop="project_name" label="名称">
82
+        <template slot-scope="scope"><span :title="scope.row.project_name">{{ scope.row.project_name }}</span></template>
83
+      </el-table-column>
84
+      <el-table-column align="center" prop="statistical_classification" width="100" label="组">
85
+        <template slot-scope="scope">{{getGroup(scope.row.statistical_classification)}}</template>
86
+      </el-table-column>
87
+      <el-table-column align="center" prop="single_dose" width="80" label="单次用量">
88
+        <template slot-scope="scope">
89
+          <el-input v-model="scope.row.single_dose" placeholder=""></el-input>
90
+          <div>{{scope.row.unit}}</div>
91
+
92
+        </template>
93
+      </el-table-column>
94
+      <el-table-column align="center" prop="delivery_way" width="80" label="用法">
95
+        <template slot-scope="scope">
96
+          <el-autocomplete
97
+            style="width:100%;"
98
+            class="inline-input"
99
+            v-model="scope.row.delivery_way"
100
+            :fetch-suggestions="querySearch2"
101
+            placeholder="请输入内容"
102
+          ></el-autocomplete>
103
+        </template>
104
+      </el-table-column>
105
+      <el-table-column align="center" prop="execution_frequency" width="80" label="频率">
106
+        <template slot-scope="scope">
107
+          <el-input v-model="scope.row.execution_frequency" placeholder=""></el-input>
108
+        </template>
109
+      </el-table-column>
110
+      <el-table-column align="center" prop="number_days" width="50" label="天数">
111
+        <template slot-scope="scope">
112
+          <el-input v-model="scope.row.number_days" placeholder=""></el-input>
113
+          <div>{{'天'}}</div>
114
+        </template>
115
+      </el-table-column>
116
+      <el-table-column align="center" prop="total" width="70" label="总量">
117
+        <template slot-scope="scope">
118
+          <div style="display:flex;align-items:center;">
119
+            <el-input v-model="scope.row.total" style="width:60%" placeholder=""></el-input>
120
+            <div>{{scope.row.unit}}</div>
121
+
122
+          </div>
123
+        </template>
124
+      </el-table-column>
125
+      <el-table-column align="center" prop="name" width="50" label="单价">
126
+        <template slot-scope="scope">
127
+          <el-input v-model="scope.row.price" placeholder="" readonly></el-input>
128
+          <div>{{'元'}}</div>
129
+
130
+        </template>
131
+      </el-table-column>
132
+      <el-table-column align="center" prop="name" width="50" label="备注">
133
+        <template slot-scope="scope">
134
+          <el-input v-model="scope.row.remark" :title="scope.row.remark"></el-input>
135
+        </template>
136
+      </el-table-column>
137
+      <el-table-column align="center" width="40" prop="name" label="操作">
138
+        <template slot-scope="scope">
139
+          <i class="el-icon-delete" @click="deleteProject(scope.row,scope.$index)"></i>
140
+        </template>
141
+      </el-table-column>
142
+    </el-table>
143
+
144
+    <div class="additionalBox">
145
+      <div class="additionalOne" v-for="(item,index) in prescription.addition" :key="index">
146
+        <span :title="item.item_name">{{item.item_name}}</span>
147
+        <el-input v-model="item.price" placeholder="" style="width:50px;"></el-input>
148
+        共
149
+        <el-input v-model="item.count" placeholder="" style="width:50px;"></el-input>
150
+        次
151
+        <i class="el-icon-delete deleteIcon" @click="delAddition(index,item)"></i>
152
+      </div>
153
+    </div>
154
+  </div>
155
+</template>
156
+
157
+<script>
158
+  import { getDictionaryDataConfig} from "@/utils/data";
159
+  import { getInitData,delHisAdvice,delHisProject,delHisAddition } from '@/api/his/his'
160
+
161
+  export default {
162
+    props: {
163
+      preDrugs: Array,
164
+      activeType: Number,
165
+      addtions_charge:Array,
166
+      prescription:{
167
+        type:Object,
168
+        default: function () {
169
+          return {
170
+            name:"",
171
+            advices:[],
172
+            project:[],
173
+            drugways:[],
174
+            efs:[],
175
+          };
176
+        }
177
+      },
178
+    },
179
+    data() {
180
+      return {
181
+        advices:[],
182
+        tableData: [],
183
+        newoptions: [{
184
+          value: '1',
185
+          label: '1'
186
+        }, {
187
+          value: '2',
188
+          label: '2'
189
+        }, {
190
+          value: '3',
191
+          label: '3'
192
+        }, {
193
+          value: '4',
194
+          label: '4'
195
+        }, {
196
+          value: '5',
197
+          label: '5'
198
+        }],
199
+        value: '1',
200
+        input: 1,
201
+      }
202
+    },
203
+    methods:{
204
+      createFilter(queryString) {
205
+        return (restaurant) => {
206
+          return (restaurant.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0)
207
+        }
208
+      },
209
+      querySearch2(queryString, cb) {
210
+        var restaurants = this.getDictionaryDataConfig("system","project_use");
211
+        restaurants.map(item => {
212
+          item.value = item.name
213
+        });
214
+        var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
215
+        // 调用 callback 返回建议列表的数据
216
+        cb(results)
217
+      },
218
+      delAddition(index, addition){
219
+        if(this.prescription.order_status == 2){
220
+          this.$message.error('该处方已经结算,无法删除');
221
+          return
222
+        }
223
+        this.$confirm("附加费删除后不可恢复,是否确认删除", "删除", {
224
+          confirmButtonText: "确 定",
225
+          cancelButtonText: "取 消",
226
+          type: "warning"
227
+        }).then(() => {
228
+          this.$nextTick(function(){
229
+            if(addition.id == 0){
230
+              this.prescription.addition.splice(index, 1)
231
+            }else{
232
+              let params = {
233
+                'id': addition.id,
234
+              };
235
+              delHisAddition(params).then(response => {
236
+                if (response.data.state == 0) {
237
+                  this.$message.error(response.data.msg);
238
+                  return false
239
+                } else {
240
+                  var temp2 = this.deepClone(this.prescription.addition);
241
+                  temp2.splice(index, 1);
242
+                  this.prescription.addition = temp2;
243
+                  this.$message.success(response.data.data.msg)
244
+                }
245
+              })
246
+            }
247
+          });
248
+
249
+        })
250
+          .catch(() => {});
251
+
252
+      },
253
+      getInitData(){
254
+        getInitData().then(response => {
255
+          if (response.data.state == 0) {
256
+            this.$message.error(response.data.msg);
257
+            return false
258
+          } else {
259
+            this.drugways = response.data.data.drugways;
260
+            this.efs = response.data.data.efs
261
+          }
262
+        })
263
+
264
+      },deleteDrug:function(index, row){
265
+        if(this.prescription.order_status == 2){
266
+          this.$message.error('该处方已经结算,无法删除');
267
+          return
268
+        }
269
+        this.$confirm("药品删除后不可恢复,是否确认删除", "删除", {
270
+          confirmButtonText: "确 定",
271
+          cancelButtonText: "取 消",
272
+          type: "warning"
273
+        }).then(() => {
274
+          this.$nextTick(function(){
275
+            if(row.advice_id == 0){
276
+              this.prescription.advices.splice(index, 1)
277
+            }else{
278
+              let params = {
279
+                'id': row.advice_id,
280
+              };
281
+              delHisAdvice(params).then(response => {
282
+                if (response.data.state == 0) {
283
+                  this.$message.error(response.data.msg);
284
+                  return false
285
+                } else {
286
+                  var temp2 = this.deepClone(this.prescription.advices);
287
+                  temp2.splice(index, 1);
288
+                  this.prescription.advices = temp2;
289
+                  this.$message.success(response.data.data.msg)
290
+                }
291
+              })
292
+
293
+
294
+            }
295
+
296
+          });
297
+
298
+
299
+        })
300
+          .catch(() => {});
301
+
302
+
303
+
304
+
305
+
306
+      },deepClone(source) {
307
+        if (!source && typeof source !== 'object') {
308
+          throw new Error('error arguments', 'shallowClone')
309
+        }
310
+        const targetObj = source.constructor === Array ? [] : {};
311
+        Object.keys(source).forEach((keys) => {
312
+          if (source[keys] && typeof source[keys] === 'object') {
313
+            targetObj[keys] = this.deepClone(source[keys])
314
+          } else {
315
+            targetObj[keys] = source[keys]
316
+          }
317
+        });
318
+        return targetObj
319
+      },
320
+
321
+      setNewData:function(data){
322
+        this.prescription = data
323
+
324
+        // this.prescription.advices = data.advices
325
+      },
326
+      getDictionaryDataConfig(module, filed_name) {
327
+        return getDictionaryDataConfig(module, filed_name)
328
+      },
329
+      getGroup(id){
330
+        var name = "";
331
+        var statistics_category =  getDictionaryDataConfig('system','statistics_category');
332
+        console.log("2235",statistics_category);
333
+        for(let i=0;i<statistics_category.length;i++){
334
+          if(id == statistics_category[i].id){
335
+            name = statistics_category[i].name
336
+          }
337
+        }
338
+        return name
339
+      },
340
+      deleteProject(row,i){
341
+        if(this.prescription.order_status == 2){
342
+          this.$message.error('该处方已经结算,无法删除');
343
+          return
344
+        }
345
+        this.$confirm("项目删除后不可恢复,是否确认删除", "删除", {
346
+          confirmButtonText: "确 定",
347
+          cancelButtonText: "取 消",
348
+          type: "warning"
349
+        }).then(() => {
350
+          if(row.id == 0){
351
+            this.prescription.project.splice(i, 1)
352
+
353
+          }else{
354
+            let params = {
355
+              'id': row.id,
356
+            };
357
+            delHisProject(params).then(response => {
358
+              if (response.data.state == 0) {
359
+                this.$message.error(response.data.msg);
360
+                return false
361
+              } else {
362
+                for (let i = 0; i < this.prescription.project.length; i++){
363
+                  if(this.prescription.project[i].id == row.id){
364
+                    this.prescription.project.splice(i, 1)
365
+                  }
366
+                }
367
+                this.$message.success(response.data.data.msg)
368
+              }
369
+            })
370
+          }
371
+        })
372
+          .catch(() => {});
373
+
374
+      },
375
+    },mounted(){
376
+      this.getInitData()
377
+    },
378
+  }
379
+</script>
380
+
381
+<style lang="scss">
382
+  .prescriptionTable {
383
+
384
+  .el-input__inner {
385
+    padding: 0 5px;
386
+  }
387
+
388
+  .additionalBox {
389
+    margin-top: 20px;
390
+    display: flex;
391
+    flex-wrap: wrap;
392
+
393
+  .additionalOne {
394
+    margin-right: 20px;
395
+    margin-bottom: 10px;
396
+    display: flex;
397
+    align-items: center;
398
+
399
+  > span {
400
+    white-space: nowrap;
401
+    overflow: hidden;
402
+    text-overflow: ellipsis;
403
+    width: 80px;
404
+    display: inline-block;
405
+    font-size: 14px;
406
+  }
407
+
408
+  .deleteIcon {
409
+    color: red;
410
+    margin-left: 5px;
411
+  }
412
+
413
+  }
414
+  .el-table th .cell, .el-table td .cell {
415
+    padding: 0 2px;
416
+    white-space: pre-line;
417
+  }
418
+
419
+  .el-icon-delete {
420
+    color: red;
421
+  }
422
+
423
+  }
424
+  }
425
+</style>

File diff suppressed because it is too large
+ 2873 - 0
src/xt_pages/hospitalStation/components/deskPrescription.vue


+ 657 - 0
src/xt_pages/hospitalStation/components/deskRecord.vue View File

@@ -0,0 +1,657 @@
1
+<template>
2
+  <div class="deskRecord" style="margin-top:56px;">
3
+    <!-- <div style="overflow:hidden;border-top:1px solid #e5e5e5;margin-top:5px;">
4
+      <div class="mainCell" style="margin-bottom:10px;float:right">
5
+        <el-button size="small" @click="open(1)" type="primary" style="margin-left:10px;">保存</el-button>
6
+        <el-button size="small" @click="open(2)" type="primary">打印</el-button>
7
+        <el-button size="small" @click="open(3)" type="primary">病历调用</el-button>
8
+        <el-button size="small" @click="open(4)" type="primary">存模板</el-button>
9
+      </div>
10
+    </div> -->
11
+    <div class="mainTitle">基本信息:</div>
12
+    <el-form class="basicForm" :model="patientInfo" ref="form" label-width="120px">
13
+      <el-form-item label="姓名:" prop="name">
14
+        <el-input v-model="patientInfo.name" placeholder="" :disabled="true"></el-input>
15
+      </el-form-item>
16
+      <el-form-item label="性别: " prop="name">
17
+        <el-input v-model="patientInfo.gender" placeholder="" :disabled="true"></el-input>
18
+      </el-form-item>
19
+      <el-form-item label="年龄: " prop="name">
20
+        <el-input v-model="patientInfo.age" placeholder="" :disabled="true"></el-input>
21
+      </el-form-item>
22
+      <el-form-item label="证件号:" prop="name">
23
+        <el-input v-model="patientInfo.id_card_no" placeholder="" :disabled="true"></el-input>
24
+      </el-form-item>
25
+      <el-form-item label="出生日期: " prop="name">
26
+        <el-date-picker
27
+          style="width:100%;"
28
+          v-model="patientInfo.birth"
29
+          type="date"
30
+          :disabled="true"
31
+          placeholder="选择日期">
32
+        </el-date-picker>
33
+      </el-form-item>
34
+      <el-form-item label="联系电话: " prop="name">
35
+        <el-input v-model="patientInfo.phone" placeholder="" :disabled="true"></el-input>
36
+      </el-form-item>
37
+      <el-form-item label="医保类型: " prop="name">
38
+        <el-select v-model="delivery_way" style="width:100%;" placeholder="请选择">
39
+         <el-option
40
+            v-for="item in wayOptions"
41
+           :key="item.id"
42
+           :label="item.name"
43
+           :value="item.id"
44
+          />
45
+        </el-select>
46
+      </el-form-item>
47
+      <el-form-item label="医保证号: " prop="name">
48
+        <el-input v-model="patientInfo.health_care_no" placeholder="" :disabled="true"></el-input>
49
+      </el-form-item>
50
+      <el-form-item label="家庭住址: " prop="name">
51
+        <el-input v-model="patientInfo.home_address" placeholder="" :disabled="true"></el-input>
52
+      </el-form-item>
53
+      <el-form-item label="过敏史: " prop="name">
54
+        <el-input v-model="allergic_history" placeholder=""></el-input>
55
+      </el-form-item>
56
+    </el-form>
57
+    <div class="mainTitle">体格信息:</div>
58
+    <el-form class="physiqueForm" :model="case_history" ref="form" label-width="80px">
59
+      <el-form-item label="体温:" prop="temperature">
60
+        <el-input v-model="case_history.temperature" placeholder=""></el-input>
61
+        <span>℃</span>
62
+      </el-form-item>
63
+      <el-form-item label="脉搏: " prop="pulse">
64
+        <el-input v-model="case_history.pulse" placeholder=""></el-input>
65
+        (次/分)
66
+      </el-form-item>
67
+      <el-form-item label="呼吸: " prop="breathing">
68
+        <el-input v-model="case_history.breathing" placeholder=""></el-input>
69
+        (次/分)
70
+      </el-form-item>
71
+      <el-form-item label="血压:" prop="name">
72
+        <el-input v-model="case_history.sbp" placeholder=""></el-input>
73
+        /
74
+        <el-input v-model="case_history.dbp" placeholder=""></el-input>
75
+        mmHg
76
+      </el-form-item>
77
+    </el-form>
78
+    <div class="mainTitle">病历信息:</div>
79
+    <el-form class="recordForm" :model="case_history" ref="form" label-width="80px">
80
+     <el-form-item label="疾病类型: " prop="name" style="width:49%;">
81
+        <el-select v-model="case_history.sick" style="width:100%;" placeholder="请选择">
82
+          <el-option
83
+            v-for="(item,index) in sick"
84
+            :key="index"
85
+            :label="item.class_name"
86
+            :value="item.id">
87
+          </el-option>
88
+        </el-select>
89
+      </el-form-item>
90
+      <el-form-item label="诊断: " prop="name" style="width:49%;">
91
+        <el-select style="width:100%;" v-model="case_history.diagnose" placeholder="">
92
+          <el-option
93
+            v-for="(item,index) in diagnoses"
94
+            :key="index"
95
+            :label="item.class_name"
96
+            :value="item.id">
97
+          </el-option>
98
+        </el-select>
99
+      </el-form-item>
100
+
101
+      <el-form-item label="发病日期: " prop="name" style="width:49%;">
102
+        <el-date-picker
103
+          style="width:100%;"
104
+          v-model="start_time"
105
+          type="date"
106
+          placeholder="选择日期"
107
+           :picker-options="pickerOptions0">
108
+        </el-date-picker>
109
+      </el-form-item>
110
+      <el-form-item label="" prop="name" style="width:49%;">
111
+        <el-checkbox v-model="case_history.is_infect">是否传染</el-checkbox>
112
+      </el-form-item>
113
+      <el-form-item label="主诉:" style="width:49%;">
114
+        <el-select @change="changeMainTemplate" v-model="value" style="width:100%;margin-bottom:10px;">
115
+            <el-option
116
+              v-for="(item, index) in tabledata"
117
+              :label="item.title"
118
+              :value="item.content"
119
+              :key="index"
120
+            ></el-option>
121
+        </el-select>
122
+        <el-input
123
+          type="textarea"
124
+          :rows="2"
125
+          placeholder="请输入内容"
126
+          v-model="case_history.chief_conplaint">
127
+        </el-input>
128
+      </el-form-item>
129
+      <el-form-item label="现病史:" style="width:49%;">
130
+        <el-select @change="changeMainTemplateOne" v-model="valueOne" style="width:100%;margin-bottom:10px;">
131
+          <el-option
132
+            v-for="(item, index) in tabledataOne"
133
+            :label="item.title"
134
+            :value="item.content"
135
+            :key="index"
136
+          ></el-option>
137
+        </el-select>
138
+        <el-input
139
+          type="textarea"
140
+          :rows="2"
141
+          placeholder="请输入内容"
142
+          v-model="case_history.history_of_present_illness">
143
+        </el-input>
144
+      </el-form-item>
145
+      <el-form-item label="既往史:" style="width:49%;">
146
+        <el-select @change="changeMainTemplateTwo" v-model="valueTwo" style="width:100%;margin-bottom:10px;">
147
+          <el-option
148
+            v-for="(item, index) in tabledataTwo"
149
+            :label="item.title"
150
+            :value="item.content"
151
+            :key="index"
152
+          ></el-option>
153
+        </el-select>
154
+        <el-input
155
+          type="textarea"
156
+          :rows="2"
157
+          placeholder="请输入内容"
158
+          v-model="case_history.past_history">
159
+        </el-input>
160
+      </el-form-item>
161
+      <el-form-item label="个人史:" style="width:49%;">
162
+        <el-select @change="changeMainTemplateThree" v-model="valueThree" style="width:100%;margin-bottom:10px;">
163
+          <el-option
164
+            v-for="(item, index) in tabledataThree"
165
+            :label="item.title"
166
+            :value="item.content"
167
+            :key="index"
168
+          ></el-option>
169
+        </el-select>
170
+        <el-input
171
+          type="textarea"
172
+          :rows="2"
173
+          placeholder="请输入内容"
174
+          v-model="case_history.personal_history">
175
+        </el-input>
176
+      </el-form-item>
177
+      <el-form-item  label="家族史:" style="width:49%;">
178
+        <el-select @change="changeMainTemplateFour" v-model="valueFour" style="width:100%;margin-bottom:10px;">
179
+          <el-option
180
+            v-for="(item, index) in tabledataFour"
181
+            :label="item.title"
182
+            :value="item.content"
183
+            :key="index"
184
+          ></el-option>
185
+        </el-select>
186
+        <el-input
187
+          type="textarea"
188
+          :rows="2"
189
+          placeholder="请输入内容"
190
+          v-model="case_history.family_history">
191
+        </el-input>
192
+      </el-form-item>
193
+      <el-form-item label="诊断信息:" style="width:49%;">
194
+        <el-select @change="changeMainTemplateFive" v-model="valueFive" style="width:100%;margin-bottom:10px;">
195
+          <el-option
196
+            v-for="(item, index) in tabledataFive"
197
+            :label="item.title"
198
+            :value="item.content"
199
+            :key="index"
200
+          ></el-option>
201
+        </el-select>
202
+        <el-input
203
+          type="textarea"
204
+          :rows="2"
205
+          placeholder="请输入内容"
206
+          v-model="case_history.diagnostic">
207
+        </el-input>
208
+      </el-form-item>
209
+
210
+      <el-form-item label="医嘱:" style="width:49%;">
211
+        <el-select @change="changeMainTemplateSix" v-model="valueSix" style="width:100%;margin-bottom:10px;">
212
+          <el-option
213
+            v-for="(item, index) in tabledataSix"
214
+            :label="item.title"
215
+            :value="item.content"
216
+            :key="index"
217
+          ></el-option>
218
+        </el-select>
219
+        <el-input
220
+          type="textarea"
221
+          :rows="2"
222
+          placeholder="请输入内容"
223
+          v-model="case_history.doctor_advice">
224
+        </el-input>
225
+      </el-form-item>
226
+
227
+      <el-form-item label ="备注"  prop="name" style="width:49%;">
228
+        <el-input
229
+          type="textarea"
230
+          :rows="2"
231
+          placeholder="请输入内容"
232
+          v-model="case_history.remark">
233
+        </el-input>
234
+      </el-form-item>
235
+    </el-form>
236
+
237
+  </div>
238
+</template>
239
+
240
+<script>
241
+  const moment = require('moment');
242
+  import medicalRecord from './medicalRecord'
243
+  import saveRecordTemplate from './saveRecordTemplate'
244
+  import { getDictionaryDataConfig } from "@/utils/data";
245
+  import {  createCaseHistory,getInitData } from '@/api/his/his'
246
+  import { getDataConfig } from "@/utils/data";
247
+  import { getTemplateDetail,getMedicalTemplateList } from "@/api/project/project"
248
+  export default {
249
+    props: {
250
+      case_history: Object,
251
+      patientInfo: Object,
252
+      hisPatientInfo: Object,
253
+      record_date:String,
254
+      detalid:Number,
255
+    },
256
+    components: {
257
+      medicalRecord,
258
+      saveRecordTemplate
259
+    },
260
+    data() {
261
+      return {
262
+        id:0,
263
+        delivery_way:"",
264
+        // case_history:{
265
+        //   sick_type:'',
266
+        //   symptom:"",
267
+        //   sick_date:"",
268
+        //   is_infect:"",
269
+        //   chief_conplaint:"",
270
+        //   history_of_present_illness:"",
271
+        //   past_history:"",
272
+        //   diagnostic:"",
273
+        //   personal_history:"",
274
+        //   family_history:"",
275
+
276
+        // },
277
+          pickerOptions0: {
278
+          disabledDate(time) {
279
+            return time.getTime() < Date.now() - 8.64e7;
280
+          }
281
+        },
282
+        formValue:{
283
+          temperature:"",
284
+          blood_sugar:"",
285
+          pulse:"",
286
+          sbp:"",
287
+          dbp:"",
288
+          height:"",
289
+          blood_fat:"",
290
+        },
291
+        form: {
292
+          name: ''
293
+        },
294
+        wayOptions:[],
295
+        start_time:moment(new Date()).add('year',0).format("YYYY-MM-DD"),
296
+        doctor_advice:"",
297
+        remark:"",
298
+        tabledata:[],
299
+        tabledataOne:[],
300
+        tabledataTwo:[],
301
+        tabledataThree:[],
302
+        tabledataFour:[],
303
+        tabledataFive:[],
304
+        tabledataSix:[],
305
+        tabledataSeven:[],
306
+        value:'',
307
+        valueOne:'',
308
+        valueTwo:'',
309
+        valueThree:'',
310
+        valueFour:'',
311
+        valueFive:'',
312
+        valueSix:'',
313
+        valueSeven:'',
314
+        diagnoses:[],
315
+        sick:[],
316
+        allergic_history:"",
317
+        form:{
318
+          id:0,
319
+        },
320
+        watchSign:0
321
+      }
322
+    },
323
+    methods: {
324
+      getDictionaryDataConfig(module, filed_name) {
325
+        return getDictionaryDataConfig(module, filed_name)
326
+
327
+      },
328
+      // setData(case_history,patientInfo,hisPatientInfo){
329
+      //   this.form.name = patientInfo.name
330
+
331
+
332
+
333
+      // },
334
+      createCaseHistory(id) {
335
+          if(this.patientInfo.id == undefined){
336
+            this.$message.error("请先选择病人");
337
+            return
338
+          }
339
+          if(this.case_history.is_infect == true){
340
+            this.case_history.is_infect = 1
341
+          }
342
+          if(this.case_history.is_infect == false){
343
+             this.case_history.is_infect = 2
344
+          }
345
+          let params = {
346
+            "his_patient_id":this.hisPatientInfo.id,
347
+            "delivery_way":this.delivery_way?"":0,
348
+            "patient_id":id ? id : this.patientInfo.id,
349
+            "temperature":this.case_history.temperature,
350
+            "blood_sugar":this.case_history.blood_sugar,
351
+            "pulse":this.case_history.pulse,
352
+            "sbp":this.case_history.sbp,
353
+            "dbp":this.case_history.dbp,
354
+            "blood_fat":this.case_history.blood_fat,
355
+            "height":this.case_history.height,
356
+            "sick_type":this.case_history.sick_type,
357
+            "symptom":this.case_history.symptom,
358
+            "sick_date":this.start_time,
359
+            "is_infect":this.case_history.is_infect,
360
+            "chief_conplaint":this.case_history.chief_conplaint,
361
+            "history_of_present_illness":this.case_history.history_of_present_illness,
362
+            "past_history":this.case_history.past_history,
363
+            "personal_history":this.case_history.personal_history,
364
+            "family_history":this.case_history.family_history,
365
+            "record_date":this.record_date,
366
+            "diagnostic":this.case_history.diagnostic,
367
+            "breathing":this.case_history.breathing,
368
+            "doctor_advice":this.case_history.doctor_advice,
369
+            "remark":this.case_history.remark,
370
+            "sick":this.case_history.sick,
371
+            "diagnose":this.case_history.diagnose,
372
+            "allergic_history":this.allergic_history,
373
+            "id":this.form.id,
374
+          };
375
+          console.log("prams222",params);
376
+          createCaseHistory(params).then(response => {
377
+            if (response.data.state == 0) {
378
+              this.$message.error("患者病历已存在");
379
+              this.watchSign = 0;
380
+              return false
381
+            } else {
382
+              var caseHistory = response.data.data.caseHistory;
383
+              console.log("caseHistory",caseHistory);
384
+              this.$message.success("保存成功");
385
+              this.doctor_advice = "";
386
+              this.remark = "";
387
+              this.watchSign = 0
388
+            }
389
+          })
390
+
391
+
392
+      },
393
+
394
+
395
+      getTemplateDetail(id){
396
+
397
+          getTemplateDetail(id).then(response=>{
398
+              if(response.data.state == 1){
399
+                var templatedetail =  response.data.data.templateDetail;
400
+                console.log("templatedetail",templatedetail);
401
+
402
+                this.case_history.chief_conplaint =  templatedetail.chief_conplaint;
403
+                this.case_history.history_of_present_illness =  templatedetail.history_of_present_illness;
404
+                this.case_history.past_history =  templatedetail.past_history;
405
+                this.case_history.personal_history =    templatedetail.personal_history;
406
+                this.case_history.family_history = templatedetail.family_history;
407
+                this.case_history.diagnostic = templatedetail.diagnostic;
408
+                this.case_history.doctor_advice = templatedetail.doctor_advice;
409
+                this.case_history.remark = templatedetail.remark;
410
+                this.case_history.sick = templatedetail.sick;
411
+                this.case_history.diagnose = templatedetail.diagnose
412
+
413
+              }
414
+          })
415
+        },
416
+
417
+        getlist(){
418
+           getMedicalTemplateList().then(response=>{
419
+           if(response.data.state == 1){
420
+             var list =  response.data.data.list;
421
+             console.log("list",list);
422
+             this.tabledata = list;
423
+             this.tabledataOne =  response.data.data.listOne;
424
+             this.tabledataTwo = response.data.data.listTwo;
425
+             this.tabledataThree = response.data.data.listThree;
426
+             this.tabledataFour =  response.data.data.listFour;
427
+             this.tabledataFive = response.data.data.listFive;
428
+             this.tabledataSix = response.data.data.listSix;
429
+             this.tabledataSeven =  response.data.data.listSeven
430
+           }
431
+        })
432
+       },
433
+
434
+       changeMainTemplate(values){
435
+         if(this.case_history.chief_conplaint == ''){
436
+           this.case_history.chief_conplaint = values
437
+         } else {
438
+          if (this.case_history.chief_conplaint.indexOf(values) == -1) {
439
+            if (this.case_history.chief_conplaint.charAt(this.case_history.chief_conplaint.length - 1).indexOf('。') == -1) {
440
+              this.case_history.chief_conplaint = this.case_history.chief_conplaint + ',' + values
441
+            } else {
442
+              this.case_history.chief_conplaint = this.case_history.chief_conplaint + values
443
+            }
444
+          }
445
+        }
446
+       },
447
+       changeMainTemplateOne(values){
448
+          if(this.case_history.history_of_present_illness == ''){
449
+           this.case_history.history_of_present_illness = values
450
+         } else {
451
+          if (this.case_history.history_of_present_illness.indexOf(values) == -1) {
452
+            if (this.case_history.history_of_present_illness.charAt(this.case_history.history_of_present_illness.length - 1).indexOf('。') == -1) {
453
+              this.case_history.history_of_present_illness = this.case_history.history_of_present_illness + ',' + values
454
+            } else {
455
+              this.case_history.history_of_present_illness = this.case_history.history_of_present_illness + values
456
+            }
457
+          }
458
+        }
459
+      },
460
+      changeMainTemplateTwo(values){
461
+         if(this.case_history.past_history == ''){
462
+           this.case_history.past_history = values
463
+         } else {
464
+          if (this.case_history.past_history.indexOf(values) == -1) {
465
+            if (this.case_history.past_history.charAt(this.case_history.past_history.length - 1).indexOf('。') == -1) {
466
+              this.case_history.past_history = this.case_history.past_history + ',' + values
467
+            } else {
468
+              this.case_history.past_history = this.case_history.past_history + values
469
+            }
470
+          }
471
+        }
472
+      },
473
+      changeMainTemplateThree(values){
474
+         if(this.case_history.personal_history == ''){
475
+           this.case_history.personal_history = values
476
+         } else {
477
+          if (this.case_history.personal_history.indexOf(values) == -1) {
478
+            if (this.case_history.personal_history.charAt(this.case_history.personal_history.length - 1).indexOf('。') == -1) {
479
+              this.case_history.personal_history = this.case_history.personal_history + ',' + values
480
+            } else {
481
+              this.case_history.personal_history = this.case_history.personal_history + values
482
+            }
483
+          }
484
+        }
485
+      },
486
+      changeMainTemplateFour(values){
487
+          if(this.case_history.family_history == ''){
488
+           this.case_history.family_history = values
489
+         } else {
490
+          if (this.case_history.family_history.indexOf(values) == -1) {
491
+            if (this.case_history.family_history.charAt(this.case_history.family_history.length - 1).indexOf('。') == -1) {
492
+              this.case_history.family_history = this.case_history.family_history + ',' + values
493
+            } else {
494
+              this.case_history.family_history = this.case_history.family_history + values
495
+            }
496
+          }
497
+        }
498
+      },
499
+
500
+      changeMainTemplateFive(values){
501
+          if(this.case_history.diagnostic == ''){
502
+           this.case_history.diagnostic = values
503
+         } else {
504
+          if (this.case_history.diagnostic.indexOf(values) == -1) {
505
+            if (this.case_history.diagnostic.charAt(this.case_history.diagnostic.length - 1).indexOf('。') == -1) {
506
+              this.case_history.diagnostic = this.case_history.diagnostic + ',' + values
507
+            } else {
508
+              this.case_history.diagnostic = this.case_history.diagnostic + values
509
+            }
510
+          }
511
+        }
512
+      },
513
+      changeMainTemplateSix(values){
514
+          if(this.case_history.doctor_advice == ''){
515
+           this.case_history.doctor_advice = values
516
+         } else {
517
+          if (this.case_history.doctor_advice.indexOf(values) == -1) {
518
+            if (this.case_history.doctor_advice.charAt(this.case_history.doctor_advice.length - 1).indexOf('。') == -1) {
519
+              this.case_history.doctor_advice = this.case_history.doctor_advice + ',' + values
520
+            } else {
521
+              this.case_history.doctor_advice = this.case_history.doctor_advice + values
522
+            }
523
+          }
524
+        }
525
+      },
526
+      getInitData() {
527
+        getInitData().then(response => {
528
+          if (response.data.state == 0) {
529
+            this.$message.error(response.data.msg);
530
+            return false
531
+          } else {
532
+            this.sick = response.data.data.sick;
533
+            this.diagnoses = response.data.data.diagnose
534
+
535
+          }
536
+        })
537
+
538
+      },
539
+    },
540
+    created(){
541
+       this.getlist();
542
+       this.getInitData();
543
+       this.wayOptions = getDataConfig("patient", "reimbursement_ways");
544
+       console.log("232322323",this);
545
+       if(this.patientInfo.gender = 1){
546
+         this.patientInfo.gender = '男'
547
+       }else if(this.patientInfo.gender = 2){
548
+          this.patientInfo.gender = '女'
549
+        }
550
+
551
+    },
552
+    watch:{
553
+      detalid:function(val){
554
+        this.getTemplateDetail(val)
555
+      },
556
+      'patientInfo.gender':{
557
+        handler(newName, oldName){
558
+          console.log('newName',newName);
559
+          if(newName == 1){
560
+            this.patientInfo.gender = '男'
561
+          }else if(newName == 2){
562
+            this.patientInfo.gender = '女'
563
+          }
564
+        },
565
+        immediate: true,
566
+        deep: true
567
+      },
568
+      case_history:{
569
+        handler(val){
570
+          console.log("南京人明",this.case_history);
571
+          if(this.case_history.breathing == 0){
572
+            this.case_history.breathing = ""
573
+          }
574
+          if(this.case_history.sick == 0){
575
+            this.case_history.sick = ""
576
+          }
577
+          if(this.case_history.diagnose == 0){
578
+            this.case_history.diagnose = ""
579
+          }
580
+          this.form.id = this.case_history.id;
581
+          this.allergic_history = this.case_history.allergic_history;
582
+          this.watchSign++
583
+        },
584
+        deep:true
585
+      },
586
+      allergic_history:function(){
587
+        this.watchSign++
588
+      }
589
+    }
590
+  }
591
+</script>
592
+
593
+
594
+<style lang="scss" scoped>
595
+  .mainTitle {
596
+    font-size: 18px;
597
+    font-weight: bold;
598
+    margin-bottom: 10px;
599
+    color:#409EFF;
600
+  }
601
+
602
+  .backColor {
603
+    background: #f6f8f9;
604
+    height: 5px;
605
+    margin-bottom: 5px;
606
+  }
607
+
608
+  .deskRecord {
609
+
610
+  .basicForm {
611
+    display: flex;
612
+    flex-wrap: wrap;
613
+
614
+  .el-form-item {
615
+    width: 32%;
616
+    margin-right: 1%;
617
+  }
618
+
619
+  }
620
+  .physiqueForm {
621
+    display: flex;
622
+    flex-wrap: wrap;
623
+
624
+  .el-form-item {
625
+    width: 24%;
626
+    margin-right: 1%;
627
+  }
628
+
629
+  }
630
+  .recordForm {
631
+    display: flex;
632
+    flex-wrap: wrap;
633
+
634
+  .el-form-item {
635
+    width: 24%;
636
+    margin-right: 1%;
637
+  }
638
+
639
+  }
640
+
641
+  }
642
+</style>
643
+
644
+<style lang="scss">
645
+  .physiqueForm {
646
+
647
+  .el-form-item__content {
648
+    display: flex;
649
+  }
650
+
651
+  .el-input {
652
+    width: 80px;
653
+    margin-right: 5px;
654
+  }
655
+
656
+  }
657
+</style>

+ 387 - 0
src/xt_pages/hospitalStation/components/inquiriesDetail.vue View File

@@ -0,0 +1,387 @@
1
+<template>
2
+<div>
3
+  <el-dialog
4
+    title="详情"
5
+    width="1000px"
6
+    :visible.sync="visible"
7
+    :before-close="_close"
8
+    class="detailDialog"
9
+  >
10
+    <div style="position: absolute;right:20px;z-index:99">
11
+      <el-button v-if="activeName == 'first'" @click="open(1)" type="primary">打印</el-button>
12
+      <el-button v-if="activeName == 'second'" @click="open(2)" type="primary">打印</el-button>
13
+    </div>
14
+    <el-tabs v-model="activeName">
15
+
16
+      <el-tab-pane label="处方详情" name="first">
17
+        <el-tabs class="preTabs" v-model="editableTabsValue" type="card" @tab-click="tabclickEvent">
18
+          <el-tab-pane
19
+            v-for="(item, index) in prescriptions"
20
+            :key="index"
21
+            :label="item.name"
22
+            :name="item.name"
23
+          >
24
+          </el-tab-pane>
25
+
26
+          <div class="RP">
27
+            Rp
28
+          </div>
29
+          <new-prescription-table ref="prescription_tables" :prescription="curPrescriptions"></new-prescription-table>
30
+        </el-tabs>
31
+
32
+      </el-tab-pane>
33
+      <el-tab-pane label="病历详情" name="second">
34
+        <div class="commonCell">
35
+          <p style="color:#409EFF;">基本信息</p>
36
+          <div class="detailMain">
37
+            <span style="width:270px;">处方号:{{order.prescription_number}}</span>
38
+            <span style="width:180px;">姓名:{{order.patient.name}}</span>
39
+            <span style="width:240px;">证件号:{{order.patient.id_card_no}}</span>
40
+            <span style="width:180px;">联系电话:{{order.patient.phone}}</span>
41
+            <span style="width:270px;">医生:{{order.doctor}}</span>
42
+            <span style="width:180px;">科室:{{getDepartMent(order.departments)}}</span>
43
+            <span style="width:240px;">创建时间: {{getTimes(order.ctime,"{y}-{m}-{d} {h}:{i}")}}</span>
44
+            <!-- <span style="width:180px;">疾病名称:{{case_history.diagnostic}}</span>
45
+            <span style="width:180px;">症状:{{case_history.diagnostic}}</span> -->
46
+
47
+
48
+          </div>
49
+        </div>
50
+        <div class="commonCell">
51
+          <p style="color:#409EFF;">体格信息</p>
52
+          <div class="detailMain">
53
+            <span style="width:140px;">体温:{{case_history.temperature}}℃</span>
54
+            <span style="width:140px;">呼吸:{{case_history.breathing}} 次/分</span>
55
+
56
+            <span style="width:140px;">脉搏:{{case_history.pulse}} 次/分</span>
57
+            <span style="width:200px;">血压:{{case_history.sbp}}~{{case_history.dbp}} mmHg</span>
58
+          </div>
59
+        </div>
60
+        <div class="commonCell">
61
+          <p style="color:#409EFF;">病历信息</p>
62
+          <div class="detailMain">
63
+            <span style="width:260px;" v-if="case_history.is_infect== 1">是否传染:是</span>
64
+            <span style="width:260px;" v-if="case_history.is_infect != 1">是否传染:否</span>
65
+            <span style="width:180px;">发病日期:{{getTimes(case_history.sick_date,"{y}-{m}-{d}")}}</span>
66
+          </div>
67
+        </div>
68
+        <div class="commonCell">
69
+          <p>主诉</p>
70
+          <div>{{case_history.chief_conplaint}}</div>
71
+        </div>
72
+        <div class="commonCell">
73
+          <p>现病史</p>
74
+          <div>{{case_history.history_of_present_illness}}</div>
75
+        </div>
76
+        <div class="commonCell">
77
+          <p>门诊诊断</p>
78
+          <div>{{case_history.diagnostic}}</div>
79
+        </div>
80
+        <div class="commonCell">
81
+          <p>门诊医嘱</p>
82
+          <div>{{case_history.doctor_advice}}</div>
83
+        </div>
84
+        <div class="commonCell">
85
+          <p>过敏史</p>
86
+          <div>{{case_history.past_history}}</div>
87
+        </div>
88
+        <div class="commonCell">
89
+          <p>既往史</p>
90
+          <div>{{case_history.past_history}}</div>
91
+        </div>
92
+        <div class="commonCell">
93
+          <p>个人史</p>
94
+          <div>{{case_history.personal_history}}</div>
95
+        </div>
96
+        <div class="commonCell">
97
+          <p>家族史</p>
98
+          <div>{{case_history.family_history}}</div>
99
+        </div>
100
+      </el-tab-pane>
101
+    </el-tabs>
102
+    <div slot="footer" class="dialog-footer">
103
+      <el-button @click="hide">取 消</el-button>
104
+      <!--<el-button type="primary" :loading="submitLoading" @click="hide">确定</el-button>-->
105
+    </div>
106
+    <el-dialog
107
+      class="centerDialog detailDialog"
108
+      width="600px"
109
+      title="打印"
110
+      :visible.sync="innerVisible"
111
+      append-to-body>
112
+
113
+      <print v-if="activeName == 'first'" :paramsObj='paramsObj'></print>
114
+      <recordPrint v-if="activeName == 'second'" :patientid="patientid"></recordPrint>
115
+    </el-dialog>
116
+  </el-dialog>
117
+</div>
118
+</template>
119
+
120
+
121
+
122
+<script>
123
+  import { getDictionaryDataConfig} from "@/utils/data";
124
+  import { getHisPrescriptionInfo } from '@/api/his/his'
125
+  import NewPrescriptionTable from './newPrescriptionTable'
126
+  import { uParseTime } from '@/utils/tools'
127
+  import { getAllDoctorList } from "@/api/project/project"
128
+  import moment from 'moment';
129
+  import print from '../print'
130
+  import recordPrint from '../recordPrint'
131
+
132
+  export default {
133
+    components: { NewPrescriptionTable,print,recordPrint },
134
+    data() {
135
+      return {
136
+        visible: false,
137
+        activeName: 'first',
138
+        curPrescriptions: {},
139
+        prescriptions: [],
140
+        record_date: '',
141
+        editableTabsValue: '处方1',
142
+        loadingone: false,
143
+        editableTabs: [{
144
+          title: '处方1',
145
+          name: '1'
146
+        }],
147
+        tabIndex: 1,
148
+        hisPatientInfo: {},
149
+        loadingtwo: false,
150
+        patientTableData: [{
151
+          name: '杨美英',
152
+          mdtrt_id: '1709946'
153
+        }],
154
+        patientInfo: { id: 0 },
155
+        doctor: {},
156
+        total: 0,
157
+        state: '未收费',
158
+        radio: 1,
159
+        radioStatus: 1,
160
+        search_input: '',
161
+        case_history:{},
162
+        order:{},
163
+        doctorList:[],
164
+        departmentList:[],
165
+        innerVisible:false,
166
+        paramsObj:{},
167
+        patientid:''
168
+      }
169
+    },
170
+    methods: {
171
+      open(index){
172
+        if(index == 1){
173
+           var arr= [];
174
+           for(let i=0;i<this.prescriptions.length;i++){
175
+              arr.push(this.prescriptions[i].id)
176
+           }
177
+           var prescription_id = arr[0];
178
+           var record_date = this.format(this.order.record_date);
179
+           var ids = arr.toString();
180
+
181
+           let obj = {
182
+             record:record_date,
183
+             prescription_id:prescription_id,
184
+             ids:ids,
185
+             patient_id:this.patientInfo.id
186
+           };
187
+           this.paramsObj = obj;
188
+           this.innerVisible = true
189
+          //  this.$router.push("/outpatientDoctorStation/print?record="+record_date+"&prescription_id="+prescription_id+"&ids="+ids+"&patient_id="+this.patientInfo.id)
190
+
191
+        }else if(index == 2){
192
+          var record_date = this.format(this.case_history.sick_date);
193
+          this.patientid = this.patientInfo.id;
194
+          this.innerVisible = true
195
+          // this.$router.push("/outpatientDoctorStation/recordPrint?record="+record_date+"&patient_id="+this.case_history.patient_id)
196
+        }
197
+      },
198
+      getTimes(time,temp) {
199
+        return uParseTime(time, temp);
200
+      },
201
+      tabclickEvent(val) {
202
+        for (let i = 0; i < this.prescriptions.length; i++) {
203
+          if (this.prescriptions[i].name == val.name) {
204
+            this.curPrescriptions = {};
205
+            var temp = this.deepClone(this.prescriptions[i]);
206
+            this.curPrescriptions = temp
207
+          }
208
+        }
209
+      },
210
+      deepClone(source) {
211
+        if (!source && typeof source !== 'object') {
212
+          throw new Error('error arguments', 'shallowClone')
213
+        }
214
+        const targetObj = source.constructor === Array ? [] : {};
215
+        Object.keys(source).forEach((keys) => {
216
+          if (source[keys] && typeof source[keys] === 'object') {
217
+            targetObj[keys] = this.deepClone(source[keys])
218
+          } else {
219
+            targetObj[keys] = source[keys]
220
+          }
221
+        });
222
+        return targetObj
223
+      },
224
+
225
+      moreState(tab, event) {
226
+        if (tab == 'more') {
227
+          return false
228
+        }
229
+      },
230
+
231
+      _close: function(done) {
232
+        // this.clear()
233
+        done()
234
+      },
235
+      clear: function() {
236
+        this.form.id = 0;
237
+        this.form.name = '';
238
+        this.form.intro = ''
239
+      },
240
+      show(id) {
241
+        let params={
242
+          id:id,
243
+        };
244
+        getHisPrescriptionInfo(params).then(response => {
245
+          if (response.data.state == 0) {
246
+            this.$message.error(response.data.msg);
247
+            return false
248
+          } else {
249
+            this.patientInfo = response.data.data.order.patient;
250
+            console.log("患者信息",this.patientInfo);
251
+            this.hisPatientInfo = response.data.data.order.his_patient;
252
+            this.case_history = response.data.data.order.case_history;
253
+            console.log("历史详情",this.case_history);
254
+            this.order = response.data.data.order;
255
+            console.log('this.order',this.order);
256
+
257
+
258
+            this.prescriptions = [];
259
+            for (let i = 0; i < response.data.data.prescription.length; i++) {
260
+              var prescription = response.data.data.prescription[i];
261
+              let tempAdvice = [];
262
+              let tempProject = [];
263
+              for (let b = 0; b < prescription.advices.length; b++) {
264
+                let obj = {
265
+                  advice_id: prescription.advices[b].id,
266
+                  drug_name: prescription.advices[b].advice_name,
267
+                  single_dose: prescription.advices[b].single_dose,
268
+                  delivery_way: prescription.advices[b].delivery_way,
269
+                  execution_frequency: prescription.advices[b].execution_frequency,
270
+                  retail_price: prescription.advices[b].price.toString(),
271
+                  remark: prescription.advices[b].remark,
272
+                  day: prescription.advices[b].day,
273
+                  prescribing_number: prescription.advices[b].prescribing_number.toString(),
274
+                  single_dose_unit: prescription.advices[b].single_dose_unit,
275
+                  prescribing_number_unit: prescription.advices[b].prescribing_number_unit,
276
+                  medical_insurance_number: prescription.advices[b].med_list_codg
277
+
278
+                };
279
+                tempAdvice.push(obj)
280
+              }
281
+
282
+              for (let b = 0; b < prescription.project.length; b++) {
283
+                let obj = {
284
+                  id: prescription.project[b].id,
285
+                  project_id: prescription.project[b].project.id,
286
+                  project_name: prescription.project[b].project.project_name,
287
+                  statistical_classification: prescription.project[b].project.statistical_classification,
288
+                  single_dose: prescription.project[b].single_dose,
289
+                  delivery_way: prescription.project[b].delivery_way,
290
+                  execution_frequency: prescription.project[b].execution_frequency,
291
+                  number_days: prescription.project[b].day,
292
+                  total: prescription.project[b].count.toString(),
293
+                  price: prescription.project[b].price,
294
+                  remark: prescription.project[b].remark,
295
+                  medical_code: prescription.project[b].project.medical_code,
296
+                  unit:prescription.project[b].project.unit,
297
+                };
298
+                tempProject.push(obj)
299
+              }
300
+              let index = i + 1;
301
+              let obj = {
302
+                id: prescription.id,
303
+                name: '处方' + index,
304
+                advices: tempAdvice,
305
+                project: tempProject,
306
+                type: response.data.data.prescription[i].type
307
+              };
308
+              this.prescriptions.push(obj);
309
+              console.log(this.prescriptions);
310
+
311
+              this.curPrescriptions = this.prescriptions[0]
312
+            }
313
+          }
314
+        });
315
+        // this.clear()
316
+        this.visible = true
317
+
318
+
319
+
320
+      },
321
+      hide() {
322
+        // this.clear()
323
+        this.visible = false
324
+      },
325
+     getAllDoctorList(){
326
+      getAllDoctorList().then(response=>{
327
+        if(response.data.state == 1){
328
+            var doctor =  response.data.data.doctor;
329
+            this.doctorList = doctor;
330
+             var department = response.data.data.department;
331
+             console.log("department",department);
332
+             this.departmentList = department
333
+            }
334
+         })
335
+      },
336
+      getDepartMent(id){
337
+         var name = "";
338
+         for(let i=0;i<this.departmentList.length;i++){
339
+           if(id == this.departmentList[i].id){
340
+              name = this.departmentList[i].name
341
+           }
342
+         }
343
+         return name
344
+      },
345
+
346
+      format(time){
347
+        moment.locale();
348
+        var times = time*1000;
349
+        times = moment(times).format('YYYY-MM-DD');
350
+        return times
351
+      }
352
+    },
353
+    created(){
354
+      this.getAllDoctorList()
355
+    }
356
+  }
357
+</script>
358
+
359
+<style lang="scss">
360
+  .detailDialog {
361
+
362
+  .el-dialog__body {
363
+    padding: 0 20px 30px;
364
+    position: relative;
365
+  }
366
+
367
+  .detailMain {
368
+    flex: 1;
369
+  span {
370
+    display: inline-block;
371
+  }
372
+
373
+  }
374
+  .commonCell {
375
+    display: flex;
376
+    line-height: 40px;
377
+
378
+  > p {
379
+    font-weight: bold;
380
+    color: #000;
381
+    width: 80px;
382
+  }
383
+
384
+  }
385
+  }
386
+</style>
387
+

+ 106 - 0
src/xt_pages/hospitalStation/components/inspection.vue View File

@@ -0,0 +1,106 @@
1
+<template>
2
+    <el-dialog
3
+        title="选择模板"
4
+        width="1000px"
5
+        :visible.sync="visible"
6
+        :before-close="_close"
7
+    >
8
+        <div class="inspectionTitle">
9
+            <p>姓名:<span>张三</span></p>
10
+            <p>证件号:<span>张三</span></p>
11
+            <p>性别:<span>张三</span></p>
12
+            <p>类型:<span>张三</span></p>
13
+            <p>金额:<span>张三</span></p>
14
+        </div>
15
+        <div style="margin:10px 0;">
16
+           <el-input v-model="name" placeholder="" style="width:150px;"></el-input> 
17
+        </div>
18
+        <div style="display:flex;">
19
+            <div style="width: 151px;">
20
+                <el-table :data="tableData" border height="300" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
21
+                    <el-table-column align="center" prop="name" label="模板名称" width="150">
22
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
23
+                    </el-table-column>
24
+                </el-table> 
25
+            </div>
26
+            <el-table :data="tableData" border height="300" style="flex:1;margin-left:20px;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
27
+                <el-table-column type="selection" width="55" align="center"></el-table-column>
28
+                <el-table-column align="center" prop="name" label="项目名称">
29
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
30
+                </el-table-column>
31
+                <el-table-column align="center" prop="name" label="数量">
32
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
33
+                </el-table-column>
34
+                <el-table-column align="center" prop="name" label="单位">
35
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
36
+                </el-table-column>
37
+                <el-table-column align="center" prop="name" label="金额">
38
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
39
+                </el-table-column>
40
+            </el-table> 
41
+        </div>
42
+        <div slot="footer" class="dialog-footer">
43
+            <el-button @click="hide">取 消</el-button>
44
+            <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
45
+        </div>
46
+    </el-dialog>         
47
+</template>
48
+
49
+<script>
50
+export default {
51
+    data(){
52
+        return{
53
+            visible:false,
54
+            tableData: [{
55
+            date: '2016-05-02',
56
+            name: '王小虎',
57
+            address: '上海市普陀区金沙江路 1518 弄'
58
+            }, {
59
+            date: '2016-05-04',
60
+            name: '王小虎',
61
+            address: '上海市普陀区金沙江路 1517 弄'
62
+            }, {
63
+            date: '2016-05-01',
64
+            name: '王小虎',
65
+            address: '上海市普陀区金沙江路 1519 弄'
66
+            }, {
67
+            date: '2016-05-03',
68
+            name: '王小虎',
69
+            address: '上海市普陀区金沙江路 1516 弄'
70
+            }]
71
+        }
72
+    },
73
+    methods:{
74
+        _close: function(done) {
75
+            // this.clear()
76
+            done()
77
+        },
78
+        clear: function() {
79
+            this.form.id = 0;
80
+            this.form.name = "";
81
+            this.form.intro = "";
82
+        },
83
+        show() {
84
+            // this.clear()
85
+            this.visible = true
86
+        },
87
+        hide() {
88
+            // this.clear()
89
+            this.visible = false
90
+        },
91
+    }
92
+}
93
+</script>
94
+
95
+<style lang="scss" scoped>
96
+.inspectionTitle{
97
+    display:flex;
98
+    justify-content: space-between;
99
+    span{
100
+        min-width:80px;
101
+        display:inline-block;
102
+        
103
+    }
104
+}
105
+</style>
106
+

+ 165 - 0
src/xt_pages/hospitalStation/components/medicalInsuranceRefund.vue View File

@@ -0,0 +1,165 @@
1
+<template>
2
+    <div style="display:flex;">
3
+        <div class="noChargeLeft">
4
+            <div class="mainCell" style="margin-bottom:10px;">
5
+                <el-input size="small" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
6
+                <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
7
+            </div>
8
+            <el-table :data="tableData" border height="500" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
9
+                <el-table-column align="center" prop="name" label="处方号" width="100">
10
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
11
+                </el-table-column>
12
+                <el-table-column align="center" prop="name" label="姓名" width="99">
13
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
14
+                </el-table-column>
15
+            </el-table>
16
+        </div>
17
+        <div style="flex:1;overflow-x: hidden;">
18
+            <div class="noChargeRight">
19
+                <div class="chargeInfo">
20
+                    <p>姓名:<span></span></p>
21
+                    <p>性别:<span></span></p>
22
+                    <p>年龄:<span></span></p>
23
+                    <p>证件号:<span></span></p>
24
+                    <p>挂号类型:<span></span></p>
25
+                    <p>上一个发票号:<span></span></p>
26
+                    <p>下一个发票号:<span></span></p>
27
+                </div>
28
+                <div class="chargeBox">
29
+                    <p>医疗费用总额:<span></span></p>
30
+                    <p>基金支付金额:<span></span></p>
31
+                    <p>个人账户支付金额:<span></span></p>
32
+                    <p>个人支付金额:<span></span></p>
33
+                    <p>个人账号金额:<span></span></p>
34
+                </div>
35
+                <p class='chargeTitle'>药品信息</p>
36
+                <el-table :data="tableData" border height="200" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
37
+                    <el-table-column align="center" prop="name" label="名称">
38
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
39
+                    </el-table-column>
40
+                    <el-table-column align="center" prop="name" label="单位">
41
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
42
+                    </el-table-column>
43
+                    <el-table-column align="center" prop="name" label="单价(元)">
44
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
45
+                    </el-table-column>
46
+                    <el-table-column align="center" prop="name" label="数量">
47
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
48
+                    </el-table-column>
49
+                    <el-table-column align="center" prop="name" label="总价">
50
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
51
+                    </el-table-column>
52
+                    <el-table-column align="center" prop="name" label="自付比例">
53
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
54
+                    </el-table-column>
55
+                </el-table>
56
+                <p class='chargeTitle'>项目信息</p>
57
+                <el-table :data="tableData" border height="200" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
58
+                    <el-table-column align="center" prop="name" label="名称">
59
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
60
+                    </el-table-column>
61
+                    <el-table-column align="center" prop="name" label="科室">
62
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
63
+                    </el-table-column>
64
+                    <el-table-column align="center" prop="name" label="单价(元)">
65
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
66
+                    </el-table-column>
67
+                    <el-table-column align="center" prop="name" label="数量">
68
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
69
+                    </el-table-column>
70
+                    <el-table-column align="center" prop="name" label="总价">
71
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
72
+                    </el-table-column>
73
+                    <el-table-column align="center" prop="name" label="自付比例">
74
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
75
+                    </el-table-column>
76
+                </el-table>
77
+                <div class='chargeBtn'>
78
+                    <p>总金额:0元</p>
79
+                    <div>
80
+                        <el-button type="primary">处方查询</el-button>
81
+                        <el-button type="danger">退单</el-button>
82
+                    </div>
83
+                </div>
84
+            </div>
85
+        </div>
86
+    </div>
87
+</template>
88
+
89
+<script>
90
+export default {
91
+    data(){
92
+        return{
93
+            tableData: [{
94
+            date: '2016-05-02',
95
+            name: '王小虎',
96
+            address: '上海市普陀区金沙江路 1518 弄'
97
+            }, {
98
+            date: '2016-05-04',
99
+            name: '王小虎',
100
+            address: '上海市普陀区金沙江路 1517 弄'
101
+            }, {
102
+            date: '2016-05-01',
103
+            name: '王小虎',
104
+            address: '上海市普陀区金沙江路 1519 弄'
105
+            }, {
106
+            date: '2016-05-03',
107
+            name: '王小虎',
108
+            address: '上海市普陀区金沙江路 1516 弄'
109
+            }]
110
+        }
111
+    }
112
+}
113
+</script>
114
+
115
+
116
+<style lang="scss" scoped>
117
+.noChargeLeft{
118
+    width:200px;
119
+    .mainCell{
120
+        display: flex;
121
+    }
122
+}
123
+.noChargeRight{
124
+    margin-left:20px;
125
+    // flex: 1;
126
+    .chargeInfo{
127
+        display: flex;
128
+        justify-content: space-between;
129
+        align-items: center;
130
+        height: 32px;
131
+        margin-bottom: 10px;
132
+        >p{
133
+            display: flex;
134
+        }
135
+        >p>span{
136
+            display: inline-block;
137
+            min-width: 50px;
138
+        }
139
+    }
140
+    .chargeBox{
141
+        height:42px;
142
+        border: 1px solid #EBEEF5;
143
+        display: flex;
144
+        justify-content: space-between;
145
+        background-color: rgb(245, 247, 250);
146
+        color: rgb(96, 98, 102);
147
+        align-items: center;
148
+        padding: 0 20px;
149
+        >p>span{
150
+            display: inline-block;
151
+            min-width: 50px;
152
+        }
153
+    }
154
+    .chargeTitle{
155
+        line-height: 32px;
156
+        height: 32px;
157
+    }
158
+    .chargeBtn{
159
+        display: flex;
160
+        justify-content: space-between;
161
+        align-items: center;
162
+        margin-top: 20px;
163
+    }
164
+}
165
+</style>

+ 169 - 0
src/xt_pages/hospitalStation/components/medicalRecord.vue View File

@@ -0,0 +1,169 @@
1
+<template>
2
+    <el-dialog
3
+        title="病历调用"
4
+        width="1000px"
5
+        :visible.sync="visible"
6
+        :before-close="_close"
7
+        class="recordDialog"
8
+    >
9
+        <div>
10
+            <el-tabs v-model="activeName">
11
+                <el-tab-pane label="病历模板" name="first">
12
+                    <div style="display:flex;align-items: center;margin-bottom:10px;">
13
+                        <el-input size="small"  v-model.trim="search_input" class="filter-item" style="width:140px;"/>
14
+                        <el-button size="small" style="margin:0 10px;" class="filter-item" type="primary"  @click="searchAction">搜索</el-button>
15
+                        <span>日期:</span>
16
+                        <el-date-picker
17
+                        size="small"
18
+                        style="width:140px;margin:0 10px;"
19
+                        v-model="start_time"
20
+                        type="date"
21
+                        placeholder="选择日期"
22
+                        @change="changeStarTime">
23
+                        </el-date-picker>
24
+                        <el-date-picker
25
+                        style="width:140px;"
26
+                        size="small"
27
+                        v-model="end_time"
28
+                        type="date"
29
+                        placeholder="选择日期"
30
+                        @change="changeEndTime">
31
+                        </el-date-picker>
32
+                    </div>
33
+                    <el-table :data="tempalateData" border height="300" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
34
+                        <el-table-column align="center" type="index" width="60" label="序号"></el-table-column>
35
+                        <el-table-column align="center" prop="name" width="60" label="病历编号">
36
+                            <template slot-scope="scope">{{ scope.row.id }}</template>
37
+                        </el-table-column>
38
+                        <el-table-column align="center" prop="name" label="名称">
39
+                            <template slot-scope="scope">{{ scope.row.template_name }}</template>
40
+                        </el-table-column>
41
+                        <el-table-column align="center" prop="name" label="创建人">
42
+                            <template slot-scope="scope">{{ scope.row.user_name }}</template>
43
+                        </el-table-column>
44
+                        <el-table-column align="center" prop="name" label="创建日期">
45
+                            <template slot-scope="scope">{{getTimes(scope.row.record_date) }}</template>
46
+                        </el-table-column>
47
+                        <el-table-column align="center" prop="name" label="模板说明">
48
+                            <template slot-scope="scope">{{ scope.row.template_remark }}</template>
49
+                        </el-table-column>
50
+                        <el-table-column align="center" prop="name" label="操作" width='200'>
51
+                            <template slot-scope="scope">
52
+                                <el-button type="primary" size="mini" @click="totemplateDetailTwo(scope.row.id)">调用</el-button>
53
+                                <el-button type="primary" size="mini" @click="totemplateDetail(scope.row.id)">详情</el-button>
54
+                            </template>
55
+                        </el-table-column>
56
+                    </el-table>
57
+                </el-tab-pane>
58
+            </el-tabs>
59
+        </div>
60
+        <record-history-detail ref="recordHistoryDetail"></record-history-detail>
61
+        <record-template-detail ref="recordTemplateDetail"></record-template-detail>
62
+        <div slot="footer" class="dialog-footer">
63
+            <el-button @click="hide">取 消</el-button>
64
+            <el-button type="primary"  @click="submitAction()">保 存</el-button>
65
+        </div>
66
+    </el-dialog>
67
+</template>
68
+
69
+<script>
70
+import recordHistoryDetail from './recordHistoryDetail'
71
+import recordTemplateDetail from './recordTemplateDetail'
72
+import { getHistoryTemplate } from "@/api/project/project"
73
+import { uParseTime } from '@/utils/tools'
74
+export default {
75
+    components:{
76
+        recordHistoryDetail,
77
+        recordTemplateDetail
78
+    },
79
+    data(){
80
+        return{
81
+            visible:false,
82
+            activeName:'first',
83
+            form:{
84
+                name:''
85
+            },
86
+            tableData: [],
87
+            tempalateData:[],
88
+            value1:"",
89
+            search_input:"",
90
+            start_time:"",
91
+            end_time:"",
92
+            mode_status:0,
93
+        }
94
+    },
95
+    methods:{
96
+        _close: function(done) {
97
+            // this.clear()
98
+            done()
99
+        },
100
+        clear: function() {
101
+            this.form.id = 0;
102
+            this.form.name = "";
103
+            this.form.intro = "";
104
+        },
105
+        show(id) {
106
+            this.mode_status = id;
107
+            this.getlist();
108
+            this.visible = true
109
+        },
110
+        hide() {
111
+            // this.clear()
112
+            this.visible = false
113
+        },
114
+        toHistoryDetail(){
115
+            this.$refs.recordHistoryDetail.show()
116
+        },
117
+        totemplateDetail(id){
118
+            this.$refs.recordTemplateDetail.show(id)
119
+        },
120
+        totemplateDetailTwo(id){
121
+         this.$emit('func',id);
122
+         this.visible = false
123
+        },
124
+        //获取历史数据历史模板
125
+        getlist(){
126
+
127
+            const params = {
128
+               keyword:this.search_input,
129
+               start_time:this.start_time,
130
+               end_time:this.end_time
131
+            };
132
+
133
+          getHistoryTemplate(params).then(response=>{
134
+            if(response.data.state == 1){
135
+              var template =  response.data.data.template;
136
+              console.log("templagte",template);
137
+              this.tempalateData = template
138
+            }
139
+          })
140
+        },
141
+        searchAction(){
142
+          this.getlist()
143
+        },
144
+        changeStarTime(){
145
+           this.getlist()
146
+        },
147
+        changeEndTime(){
148
+          this.getlist()
149
+        },
150
+        getTimes(time) {
151
+        return uParseTime(time, "{y}-{m}-{d} {h}:{i}:{s}");
152
+      },
153
+    },
154
+    created(){
155
+       this.getlist()
156
+    },
157
+
158
+
159
+}
160
+</script>
161
+
162
+<style lang="scss">
163
+.recordDialog{
164
+    .el-dialog__body{
165
+        padding-top:0;
166
+    }
167
+}
168
+</style>
169
+

+ 297 - 0
src/xt_pages/hospitalStation/components/monthPrescriptionTable.vue View File

@@ -0,0 +1,297 @@
1
+<template>
2
+  <div class="prescriptionTable">
3
+    <el-table v-if="activeType  == 1" :data="prescription.advices" border style="width: 99%;" :row-style="{ color: '#303133' }"
4
+              :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
5
+      <el-table-column align="center" type="index" width="40" label="序号"></el-table-column>
6
+      <el-table-column align="center" prop="drug_name" label="名称">
7
+        <template slot-scope="scope"><span :title="scope.row.drug_name">{{ scope.row.drug_name }}</span></template>
8
+      </el-table-column>
9
+      <el-table-column align="center" prop="single_dose" width="90" label="单次用量">
10
+        <template slot-scope="scope">
11
+          <div style="display:flex;align-items:center;">
12
+            <el-input v-model="scope.row.single_dose" style="width:65%;"></el-input>
13
+            <div>{{scope.row.single_dose_unit}}</div>
14
+          </div>
15
+        </template>
16
+      </el-table-column>
17
+      <el-table-column align="center" prop="delivery_way" width="100" label="用法">
18
+        <template slot-scope="scope">
19
+          <el-select v-model="scope.row.delivery_way" placeholder="请选择">
20
+            <el-option
21
+              readonly
22
+              v-for="(item,index) in drugways"
23
+              :key="index"
24
+              :label="item.name"
25
+              :value="item.name">
26
+            </el-option>
27
+          </el-select>
28
+        </template>
29
+      </el-table-column>
30
+      <el-table-column align="center" prop="execution_frequency" width="100" label="频率">
31
+        <template slot-scope="scope">
32
+          <el-select v-model="scope.row.execution_frequency" placehold er="请选择">
33
+            <el-option
34
+              readonly
35
+              v-for="item,index in efs"
36
+              :key="index"
37
+              :label="item.name"
38
+              :value="item.name">
39
+            </el-option>
40
+          </el-select>
41
+        </template>
42
+      </el-table-column>
43
+
44
+
45
+      <el-table-column align="center" prop="day" width="50" label="天数">
46
+        <template slot-scope="scope">
47
+          <el-input v-model="scope.row.day" placeholder="" readonly></el-input>
48
+          <div>{{'天'}}</div>
49
+        </template>
50
+      </el-table-column>
51
+
52
+      <el-table-column align="center" prop="prescribing_number" width="80" label="总量">
53
+        <template slot-scope="scope">
54
+          <div style="display:flex;align-items:center;">
55
+            <el-input v-model="scope.row.prescribing_number" style="width:60%" placeholder="" readonly></el-input>
56
+            <div> {{scope.row.prescribing_number_unit}}</div>
57
+          </div>
58
+        </template>
59
+      </el-table-column>
60
+      <el-table-column align="center" prop="retail_price" width="60" label="单价">
61
+        <template slot-scope="scope">
62
+          <el-input v-model="scope.row.retail_price" placeholder="" readonly></el-input>
63
+          <div>{{'元'}}</div>
64
+        </template>
65
+      </el-table-column>
66
+      <el-table-column align="center" prop="remark" width="50" label="备注">
67
+        <template slot-scope="scope">
68
+          <el-input v-model="scope.row.remark" :title="scope.row.remark" placeholder="" readonly></el-input>
69
+        </template>
70
+      </el-table-column>
71
+    </el-table>
72
+
73
+    <el-table v-if="activeType == 2" :data="prescription.project" border style="width: 99%;" :row-style="{ color: '#303133' }"
74
+              :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
75
+      <el-table-column align="center" type="index" width="40" label="序号"></el-table-column>
76
+      <el-table-column align="center" prop="project_name" label="名称">
77
+        <template slot-scope="scope"><span :title="scope.row.project_name">{{ scope.row.project_name }}</span></template>
78
+      </el-table-column>
79
+      <el-table-column align="center" prop="statistical_classification" width="100" label="组">
80
+        <template slot-scope="scope">{{getGroup(scope.row.statistical_classification)}}</template>
81
+      </el-table-column>
82
+      <el-table-column align="center" prop="single_dose" width="80" label="单次用量">
83
+        <template slot-scope="scope">
84
+          <el-input v-model="scope.row.single_dose" placeholder="" readonly></el-input>
85
+          <div>{{scope.row.unit}}</div>
86
+
87
+        </template>
88
+      </el-table-column>
89
+      <el-table-column align="center" prop="delivery_way" width="80" label="用法">
90
+        <template slot-scope="scope">
91
+          <el-autocomplete
92
+            readonly
93
+            style="width:100%;"
94
+            class="inline-input"
95
+            v-model="scope.row.delivery_way"
96
+            :fetch-suggestions="querySearch2"
97
+            placeholder="请输入内容"
98
+          ></el-autocomplete>
99
+        </template>
100
+      </el-table-column>
101
+      <el-table-column align="center" prop="execution_frequency" width="80" label="频率">
102
+        <template slot-scope="scope">
103
+          <el-input v-model="scope.row.execution_frequency" placeholder="" readonly></el-input>
104
+        </template>
105
+      </el-table-column>
106
+      <el-table-column align="center" prop="number_days" width="50" label="天数">
107
+        <template slot-scope="scope">
108
+          <el-input v-model="scope.row.number_days" placeholder="" readonly></el-input>
109
+          <div>{{'天'}}</div>
110
+        </template>
111
+      </el-table-column>
112
+      <el-table-column align="center" prop="total" width="70" label="总量">
113
+        <template slot-scope="scope">
114
+          <div style="display:flex;align-items:center;">
115
+            <el-input v-model="scope.row.total" style="width:60%" placeholder="" readonly></el-input>
116
+            <div>{{scope.row.unit}}</div>
117
+          </div>
118
+        </template>
119
+      </el-table-column>
120
+      <el-table-column align="center" prop="name" width="50" label="单价">
121
+        <template slot-scope="scope">
122
+          <el-input v-model="scope.row.price" placeholder="" readonly></el-input>
123
+          <div>{{'元'}}</div>
124
+        </template>
125
+      </el-table-column>
126
+      <el-table-column align="center" prop="name" width="50" label="备注">
127
+        <template slot-scope="scope">
128
+          <el-input v-model="scope.row.remark" :title="scope.row.remark" readonly></el-input>
129
+        </template>
130
+      </el-table-column>
131
+    </el-table>
132
+    <div class="additionalBox">
133
+      <div class="additionalOne" v-for="(item,index) in prescription.addition" :key="index">
134
+        <span :title="item.item_name">{{item.item_name}}</span>
135
+        <el-input v-model="item.price" placeholder="" style="width:50px;"></el-input>
136
+        共
137
+        <el-input v-model="item.count" placeholder="" style="width:50px;"></el-input>
138
+        次
139
+        <i class="el-icon-delete deleteIcon" @click="delAddition(index,item)"></i>
140
+      </div>
141
+    </div>
142
+  </div>
143
+</template>
144
+
145
+<script>
146
+  import { getDictionaryDataConfig} from "@/utils/data";
147
+  import { getInitData,delHisAdvice,delHisProject,delHisAddition } from '@/api/his/his'
148
+
149
+  export default {
150
+    props: {
151
+      preDrugs: Array,
152
+      activeType: Number,
153
+      addtions_charge:Array,
154
+      prescription:{
155
+        type:Object,
156
+        default: function () {
157
+          return {
158
+            name:"",
159
+            advices:[],
160
+            project:[],
161
+            drugways:[],
162
+            efs:[],
163
+          };
164
+        }
165
+      },
166
+    },
167
+    data() {
168
+      return {
169
+        advices:[],
170
+        tableData: [],
171
+        newoptions: [{
172
+          value: '1',
173
+          label: '1'
174
+        }, {
175
+          value: '2',
176
+          label: '2'
177
+        }, {
178
+          value: '3',
179
+          label: '3'
180
+        }, {
181
+          value: '4',
182
+          label: '4'
183
+        }, {
184
+          value: '5',
185
+          label: '5'
186
+        }],
187
+        value: '1',
188
+        input: 1,
189
+      }
190
+    },
191
+    methods:{
192
+      createFilter(queryString) {
193
+        return (restaurant) => {
194
+          return (restaurant.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0)
195
+        }
196
+      },
197
+      querySearch2(queryString, cb) {
198
+        var restaurants = this.getDictionaryDataConfig("system","project_use");
199
+        restaurants.map(item => {
200
+          item.value = item.name
201
+        });
202
+        var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
203
+        // 调用 callback 返回建议列表的数据
204
+        cb(results)
205
+      },
206
+      getInitData(){
207
+        getInitData().then(response => {
208
+          if (response.data.state == 0) {
209
+            this.$message.error(response.data.msg);
210
+            return false
211
+          } else {
212
+            this.drugways = response.data.data.drugways;
213
+            this.efs = response.data.data.efs
214
+          }
215
+        })
216
+      },
217
+      deepClone(source) {
218
+        if (!source && typeof source !== 'object') {
219
+          throw new Error('error arguments', 'shallowClone')
220
+        }
221
+        const targetObj = source.constructor === Array ? [] : {};
222
+        Object.keys(source).forEach((keys) => {
223
+          if (source[keys] && typeof source[keys] === 'object') {
224
+            targetObj[keys] = this.deepClone(source[keys])
225
+          } else {
226
+            targetObj[keys] = source[keys]
227
+          }
228
+        });
229
+        return targetObj
230
+      },
231
+      setNewData:function(data){
232
+        this.prescription = data
233
+      },
234
+      getDictionaryDataConfig(module, filed_name) {
235
+        return getDictionaryDataConfig(module, filed_name)
236
+      },
237
+      getGroup(id){
238
+        var name = "";
239
+        var statistics_category =  getDictionaryDataConfig('system','statistics_category');
240
+        for(let i=0;i<statistics_category.length;i++){
241
+          if(id == statistics_category[i].id){
242
+            name = statistics_category[i].name
243
+          }
244
+        }
245
+        return name
246
+      },
247
+    },mounted(){
248
+      this.getInitData()
249
+    },
250
+  }
251
+</script>
252
+
253
+<style lang="scss">
254
+  .prescriptionTable {
255
+
256
+  .el-input__inner {
257
+    padding: 0 5px;
258
+  }
259
+
260
+  .additionalBox {
261
+    margin-top: 20px;
262
+    display: flex;
263
+    flex-wrap: wrap;
264
+
265
+  .additionalOne {
266
+    margin-right: 20px;
267
+    margin-bottom: 10px;
268
+    display: flex;
269
+    align-items: center;
270
+
271
+  > span {
272
+    white-space: nowrap;
273
+    overflow: hidden;
274
+    text-overflow: ellipsis;
275
+    width: 80px;
276
+    display: inline-block;
277
+    font-size: 14px;
278
+  }
279
+
280
+  .deleteIcon {
281
+    color: red;
282
+    margin-left: 5px;
283
+  }
284
+
285
+  }
286
+  .el-table th .cell, .el-table td .cell {
287
+    padding: 0 2px;
288
+    white-space: pre-line;
289
+  }
290
+
291
+  .el-icon-delete {
292
+    color: red;
293
+  }
294
+
295
+  }
296
+  }
297
+</style>

+ 201 - 0
src/xt_pages/hospitalStation/components/newPrescriptionTable.vue View File

@@ -0,0 +1,201 @@
1
+<template>
2
+  <div class="prescriptionTable">
3
+    <el-table v-if="prescription.type == 1" :data="prescription.advices" border style="width: 100%;"
4
+              :row-style="{ color: '#303133' }"
5
+              :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
6
+      <el-table-column align="center" type="index" width="40" label="序号"></el-table-column>
7
+      <el-table-column align="center" prop="name" label="名称">
8
+        <template slot-scope="scope">{{ scope.row.drug_name }}</template>
9
+      </el-table-column>
10
+
11
+      <el-table-column align="center" prop="name" width="100" label="单次用量">
12
+        <template slot-scope="scope">
13
+          <div>{{ scope.row.single_dose }} &nbsp;&nbsp; {{scope.row.single_dose_unit}}</div>
14
+        </template>
15
+      </el-table-column>
16
+      <el-table-column align="center" prop="name" width="90" label="用法">
17
+        <template slot-scope="scope">
18
+          <!--<el-input v-model="scope.row.delivery_way" readonly></el-input>-->
19
+          <div> {{scope.row.delivery_way}}</div>
20
+
21
+
22
+        </template>
23
+      </el-table-column>
24
+      <el-table-column align="center" prop="name" width="90" label="频率">
25
+        <template slot-scope="scope">
26
+          <!--<el-input v-model="scope.row.execution_frequency" readonly></el-input>-->
27
+          <div> {{scope.row.execution_frequency}}</div>
28
+
29
+        </template>
30
+      </el-table-column>
31
+      <el-table-column align="center" prop="day" width="50" label="天数">
32
+        <template slot-scope="scope">
33
+          <div>{{ scope.row.day }}天</div>
34
+        </template>
35
+      </el-table-column>
36
+
37
+      <el-table-column align="center" prop="name" width="100" label="总量">
38
+        <template slot-scope="scope">
39
+          <div>{{scope.row.prescribing_number}} {{scope.row.prescribing_number_unit}}</div>
40
+        </template>
41
+      </el-table-column>
42
+      <el-table-column align="center" prop="name" width="80" label="单价">
43
+        <template slot-scope="scope">
44
+          <div> {{scope.row.retail_price}}元</div>
45
+
46
+          <!--<el-input v-model="scope.row.retail_price" placeholder="" readonly></el-input>-->
47
+        </template>
48
+      </el-table-column>
49
+      <el-table-column align="center" prop="name" width="80" label="备注">
50
+        <template slot-scope="scope">
51
+          <!--<el-input v-model="scope.row.remark" style="width:50%" placeholder="" readonly></el-input>-->
52
+          <div> {{scope.row.remark}}</div>
53
+
54
+        </template>
55
+      </el-table-column>
56
+    </el-table>
57
+    <el-table v-if="prescription.type == 2" :data="prescription.project" border style="width: 99%;"
58
+              :row-style="{ color: '#303133' }"
59
+              :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
60
+
61
+      <el-table-column align="center" prop="project_name" label="名称">
62
+        <template slot-scope="scope">{{ scope.row.project_name }}</template>
63
+      </el-table-column>
64
+      <el-table-column align="center" prop="statistical_classification" width="100" label="组">
65
+        <template slot-scope="scope">
66
+          <div>{{getGroup(scope.row.statistical_classification)}}</div>
67
+        </template>
68
+      </el-table-column>
69
+      <el-table-column align="center" prop="single_dose" width="100" label="单次用量">
70
+        <template slot-scope="scope">
71
+          <!--<el-input v-model="scope.row.single_dose" placeholder="" readonly></el-input>-->
72
+          <div> {{scope.row.single_dose}}{{scope.row.unit}}</div>
73
+
74
+        </template>
75
+      </el-table-column>
76
+      <el-table-column align="center" prop="delivery_way" width="130" label="用法">
77
+        <template slot-scope="scope">
78
+          <!--<el-input v-model="scope.row.delivery_way" placeholder="" readonly></el-input>-->
79
+          <div> {{scope.row.delivery_way}}</div>
80
+
81
+        </template>
82
+      </el-table-column>
83
+      <el-table-column align="center" prop="execution_frequency" width="100" label="频率">
84
+        <template slot-scope="scope">
85
+          <!--<el-input v-model="scope.row.execution_frequency" placeholder="" readonly></el-input>-->
86
+          <div> {{scope.row.execution_frequency}}</div>
87
+
88
+        </template>
89
+      </el-table-column>
90
+      <el-table-column align="center" prop="number_days" width="100" label="天数">
91
+        <template slot-scope="scope">
92
+          <!--<el-input v-model="scope.row.number_days" placeholder="" readonly></el-input>-->
93
+          <div> {{scope.row.number_days}}天</div>
94
+
95
+        </template>
96
+      </el-table-column>
97
+      <el-table-column align="center" prop="total" width="80" label="总量">
98
+        <template slot-scope="scope">
99
+            <div> {{scope.row.total}}{{scope.row.unit}}</div>
100
+        </template>
101
+      </el-table-column>
102
+      <el-table-column align="center" prop="name" width="70" label="单价">
103
+        <template slot-scope="scope">
104
+          <!--<el-input v-model="scope.row.price" placeholder="" readonly></el-input>-->
105
+          <div> {{scope.row.price}}元</div>
106
+
107
+        </template>
108
+      </el-table-column>
109
+      <el-table-column align="center" prop="name" width="120" label="备注">
110
+        <template slot-scope="scope">
111
+          <!--<el-input v-model="scope.row.remark" readonly></el-input>-->
112
+          <div> {{scope.row.remark}}</div>
113
+
114
+        </template>
115
+      </el-table-column>
116
+    </el-table>
117
+  </div>
118
+
119
+
120
+
121
+
122
+
123
+</template>
124
+
125
+<script>
126
+  import { getInitData } from '@/api/his/his'
127
+  import { getDictionaryDataConfig} from "@/utils/data";
128
+
129
+  export default {
130
+    props: {
131
+      prescription: Object
132
+    },
133
+    data() {
134
+      return {
135
+        drugways: [],
136
+        efs: []
137
+      }
138
+    }, mounted() {
139
+      getInitData().then(response => {
140
+        if (response.data.state == 0) {
141
+          this.$message.error(response.data.msg);
142
+          return false
143
+        } else {
144
+          this.drugways = response.data.data.drugways;
145
+          this.efs = response.data.data.efs
146
+        }
147
+      })
148
+    }, methods:  {
149
+
150
+
151
+      getGroup(id){
152
+        var name = "";
153
+        var statistics_category =  getDictionaryDataConfig('system','statistics_category');
154
+        console.log("2235",statistics_category);
155
+        for(let i=0;i<statistics_category.length;i++){
156
+          if(id == statistics_category[i].id){
157
+            name = statistics_category[i].name
158
+          }
159
+        }
160
+        return name
161
+      },
162
+
163
+
164
+    }
165
+  }
166
+</script>
167
+
168
+<style lang="scss">
169
+  .prescriptionTable{
170
+  .additionalBox{
171
+    margin-top: 20px;
172
+    display: flex;
173
+    flex-wrap: wrap;
174
+  .additionalOne{
175
+    margin-right:20px;
176
+    margin-bottom:10px;
177
+    display: flex;
178
+    align-items: center;
179
+  >span{
180
+    white-space: nowrap;
181
+    overflow: hidden;
182
+    text-overflow: ellipsis;
183
+    width:60px;
184
+    display: inline-block;
185
+    font-size: 14px;
186
+  }
187
+  }
188
+  .deleteIcon{
189
+    color:red;
190
+    margin-left:5px;
191
+  }
192
+  }
193
+  .el-table th .cell, .el-table td .cell{
194
+    padding: 0 2px;
195
+    white-space: pre-line;
196
+  }
197
+  .el-icon-delete{
198
+    color:red;
199
+  }
200
+  }
201
+</style>

+ 417 - 0
src/xt_pages/hospitalStation/components/nextOrLastPrescription.vue View File

@@ -0,0 +1,417 @@
1
+<template>
2
+  <el-dialog
3
+    :title="name"
4
+    :visible.sync="isLastOrNextVisible"
5
+    @close="hide"
6
+    width="1010px"
7
+    :modal-append-to-body="false"
8
+    class="isLastOrNext"
9
+  >
10
+    <div class="txsj" style="text-align:center;">
11
+      <el-button
12
+        round
13
+
14
+        @click="openLast(3)"
15
+      >上一方
16
+      </el-button>
17
+
18
+      <el-button
19
+        round
20
+        @click="openNext(4)"
21
+      >下一方
22
+      </el-button>
23
+    </div>
24
+
25
+    <div v-for="(item,index) in allPrescription" :key="index">
26
+      <div class="quote">引用 {{getTime(item.record_date, '{y}年{m}月{d}日')}} 的处方</div>
27
+      <el-checkbox-group v-model="item.check_group">
28
+        <div v-for="(subItem,index2) in item.prescriptions" :key="index2">
29
+          <el-checkbox style="margin:10px 0;" :label="subItem.id">{{'处方' + (index2+ 1)}}</el-checkbox>
30
+          <el-table v-if="subItem.type  == 1" :data="subItem.doctor_advice" border style="width: 99%;"
31
+                    :row-style="{ color: '#303133' }"
32
+                    :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
33
+            <el-table-column align="center" type="index" width="60" label="序号"></el-table-column>
34
+            <el-table-column align="center" prop="drug_name"  width="160" label="名称">
35
+              <template slot-scope="scope">
36
+                <span>{{ scope.row.advice_name }}</span>
37
+              </template>
38
+            </el-table-column>
39
+
40
+            <el-table-column align="center" prop="single_dose" width="90" label="单次用量">
41
+              <template slot-scope="scope">
42
+                  <div>{{scope.row.single_dose}}{{scope.row.single_dose_unit}}</div>
43
+              </template>
44
+            </el-table-column>
45
+            <el-table-column align="center" prop="delivery_way" width="100" label="用法">
46
+              <template slot-scope="scope">
47
+                {{scope.row.delivery_way}}
48
+              </template>
49
+            </el-table-column>
50
+            <el-table-column align="center" prop="execution_frequency" width="100" label="频率">
51
+              <template slot-scope="scope">
52
+                {{scope.row.execution_frequency}}
53
+              </template>
54
+            </el-table-column>
55
+
56
+            <el-table-column align="center" prop="day" width="60" label="天数">
57
+              <template slot-scope="scope">
58
+                {{scope.row.day}}
59
+              </template>
60
+            </el-table-column>
61
+
62
+            <el-table-column align="center" prop="prescribing_number" width="100" label="总量">
63
+              <template slot-scope="scope">
64
+                <div>{{scope.row.prescribing_number}} {{scope.row.prescribing_number_unit}}</div>
65
+              </template>
66
+            </el-table-column>
67
+            <el-table-column align="center" prop="retail_price" width="80" label="单价">
68
+              <template slot-scope="scope">
69
+                <div>{{scope.row.retail_price}}</div>
70
+              </template>
71
+            </el-table-column>
72
+            <el-table-column align="center" prop="remark" label="备注">
73
+              <template slot-scope="scope">
74
+                <div>{{scope.row.remark}}</div>
75
+              </template>
76
+            </el-table-column>
77
+          </el-table>
78
+          <el-table v-if="subItem.type == 2" :data="subItem.project" border style="width: 99%;"
79
+                    :row-style="{ color: '#303133' }"
80
+                    :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
81
+            <el-table-column align="center" type="index" width="60" label="序号"></el-table-column>
82
+            <el-table-column align="center" prop="project_name" width="160" label="名称">
83
+              <template slot-scope="scope">
84
+                <span>{{ scope.row.project.project_name }}</span>
85
+              </template>
86
+            </el-table-column>
87
+            <el-table-column align="center" prop="statistical_classification" width="100" label="组">
88
+              <template slot-scope="scope">{{getGroup(scope.row.statistical_classification)}}</template>
89
+            </el-table-column>
90
+            <el-table-column align="center" prop="single_dose" width="90" label="单次用量">
91
+              <template slot-scope="scope">
92
+                <!--<el-input v-model="scope.row.single_dose" placeholder=""></el-input>-->
93
+                <span>{{ scope.row.single_dose }}</span>
94
+
95
+              </template>
96
+            </el-table-column>
97
+            <el-table-column align="center" prop="delivery_way" width="100" label="用法">
98
+              <template slot-scope="scope">
99
+                <!--<el-input v-model="scope.row.delivery_way" placeholder=""></el-input>-->
100
+                <span>{{ scope.row.delivery_way }}</span>
101
+
102
+              </template>
103
+            </el-table-column>
104
+            <el-table-column align="center" prop="execution_frequency" width="100" label="频率">
105
+              <template slot-scope="scope">
106
+                <!--<el-input v-model="scope.row.execution_frequency" placeholder=""></el-input>-->
107
+                <span>{{ scope.row.execution_frequency }}</span>
108
+
109
+              </template>
110
+            </el-table-column>
111
+            <el-table-column align="center" prop="number_days" width="70" label="天数">
112
+              <template slot-scope="scope">
113
+                <!--<el-input v-model="scope.row.number_days" placeholder=""></el-input>-->
114
+                <span>{{ scope.row.number_days }}</span>
115
+
116
+              </template>
117
+            </el-table-column>
118
+            <el-table-column align="center" prop="total" width="70" label="总量">
119
+              <template slot-scope="scope">
120
+                  <div>{{ scope.row.total }}{{scope.row.unit}}</div>
121
+              </template>
122
+            </el-table-column>
123
+            <el-table-column align="center" prop="name" width="60" label="单价">
124
+              <template slot-scope="scope">
125
+                <!--<el-input v-model="scope.row.price" placeholder="" readonly></el-input>-->
126
+                <span>{{ scope.row.price }}</span>
127
+
128
+              </template>
129
+            </el-table-column>
130
+            <el-table-column align="center" prop="name" label="备注">
131
+              <template slot-scope="scope">
132
+                <!--<el-input v-model="scope.row.remark" :title="scope.row.remark"></el-input>-->
133
+                <span>{{ scope.row.remark }}</span>
134
+
135
+              </template>
136
+            </el-table-column>
137
+          </el-table>
138
+        </div>
139
+      </el-checkbox-group>
140
+
141
+    </div>
142
+
143
+
144
+    <div slot="footer" class="dialog-footer">
145
+      <el-button @click="isLastOrNextVisible = false">取 消</el-button>
146
+      <el-button type="primary" @click="save">保存</el-button>
147
+    </div>
148
+  </el-dialog>
149
+
150
+
151
+</template>
152
+
153
+<script>
154
+  import { uParseTime } from '@/utils/tools'
155
+  import { getDictionaryDataConfig} from "@/utils/data";
156
+
157
+  import {
158
+    getNextOrLastHisPrescription
159
+  } from '@/api/his/his'
160
+  export default {
161
+    name: "nextOrLastPrescription",
162
+    data() {
163
+      return {
164
+        srcPrescriptions:[],
165
+        name:"",
166
+        request_record_date:'',
167
+        patient_id:0,
168
+         allPrescription: [
169
+          {
170
+            check_group: [],
171
+            prescriptions: [
172
+              {
173
+                id: 5,
174
+
175
+                type: 1,
176
+                doctor_advice: [],
177
+                project: [],
178
+              },
179
+              {
180
+                id: 8,
181
+                type: 1,
182
+                doctor_advice: [],
183
+                project: [],
184
+              },
185
+              {
186
+                id: 6,
187
+
188
+                type: 2,
189
+                doctor_advice: [],
190
+                project: [],
191
+              },
192
+              {
193
+                id: 7,
194
+                type: 2,
195
+                doctor_advice: [],
196
+                project: [],
197
+              },
198
+            ],
199
+          }, {
200
+            check_group: [],
201
+            prescriptions: [
202
+              {
203
+                id: 1,
204
+                type: 2,
205
+                doctor_advice: [],
206
+                project: [],
207
+              },
208
+              {
209
+
210
+                id: 2,
211
+                type: 2,
212
+                doctor_advice: [],
213
+                project: [],
214
+              },
215
+              {
216
+                id: 3,
217
+
218
+                type: 1,
219
+                doctor_advice: [],
220
+                project: [],
221
+              },
222
+              {
223
+                id: 4,
224
+
225
+                type: 1,
226
+                doctor_advice: [],
227
+                project: [],
228
+              },
229
+            ],
230
+          }
231
+        ],
232
+
233
+        isLastOrNextVisible: false,
234
+
235
+      }
236
+    }, methods: {
237
+      openLast(val) {
238
+       if (val == 3) {
239
+          let params = {
240
+            patient_id: this.patient_id,
241
+            record_time: this.request_record_date,
242
+            type: 1
243
+          };
244
+
245
+          this.GetNextOrLastHisPrescription(params)
246
+
247
+        }
248
+      },
249
+      openNext(val) {
250
+        if (val == 4) {
251
+          let params = {
252
+            patient_id: this.patient_id,
253
+            record_time: this.request_record_date,
254
+            type: 2
255
+          };
256
+          this.GetNextOrLastHisPrescription(params)
257
+        }
258
+      },
259
+      GetNextOrLastHisPrescription(params){
260
+        getNextOrLastHisPrescription(params).then(response => {
261
+          if (response.data.state == 1) {
262
+            this.allPrescription = response.data.data.prescriptions;
263
+            for (let i = 0; i < this.allPrescription.length; i++){
264
+              this.allPrescription[i].check_group = []
265
+            }
266
+            this.request_record_date = uParseTime(response.data.data.prescriptions[0].record_date, '{y}-{m}-{d}')
267
+          } else {
268
+            this.$message.error(response.data.msg)
269
+
270
+          }
271
+        })
272
+      },
273
+      save() {
274
+        let replace_one = [];
275
+        let replace_two = [];
276
+
277
+        let checkGroup = [];
278
+        let allPrescriptions = [];
279
+        let targetPrescriptions = [];
280
+        let prescriptions = [];
281
+        for (let i = 0; i < this.allPrescription.length; i++) {
282
+          for (let a = 0; a < this.allPrescription[i].check_group.length; a++) {
283
+            checkGroup.push(this.allPrescription[i].check_group[a])
284
+          }
285
+          for (let a = 0; a < this.allPrescription[i].prescriptions.length; a++) {
286
+            allPrescriptions.push(this.allPrescription[i].prescriptions[a])
287
+          }
288
+        }
289
+        for (let i = 0; i < allPrescriptions.length; i++){
290
+          for (let a = 0; a < checkGroup.length; a++){
291
+            if(allPrescriptions[i].id == checkGroup[a]){
292
+              targetPrescriptions.push(allPrescriptions[i])
293
+            }
294
+          }
295
+        }
296
+
297
+        if (targetPrescriptions.length > 0) {
298
+          for (let i = 0; i < targetPrescriptions.length; i++) {
299
+            var prescription = targetPrescriptions[i];
300
+            let tempAdvice = [];
301
+            let tempProject = [];
302
+            let tempAddition = [];
303
+            for (let b = 0; b < prescription.doctor_advice.length; b++) {
304
+              let obj = {
305
+                advice_id: 0,
306
+                drug_name: prescription.doctor_advice[b].advice_name,
307
+                single_dose: prescription.doctor_advice[b].single_dose,
308
+                delivery_way: prescription.doctor_advice[b].delivery_way,
309
+                execution_frequency: prescription.doctor_advice[b].execution_frequency,
310
+                retail_price: prescription.doctor_advice[b].price.toString(),
311
+                remark: prescription.doctor_advice[b].remark,
312
+                day:prescription.doctor_advice[b].day,
313
+                prescribing_number:prescription.doctor_advice[b].prescribing_number.toString(),
314
+                single_dose_unit:prescription.doctor_advice[b].single_dose_unit,
315
+                prescribing_number_unit:prescription.doctor_advice[b].prescribing_number_unit,
316
+                medical_insurance_number:prescription.doctor_advice[b].med_list_codg,
317
+                id:prescription.doctor_advice[b].drug_id
318
+              };
319
+              tempAdvice.push(obj)
320
+
321
+            }
322
+
323
+
324
+            for (let b = 0; b < prescription.project.length; b++) {
325
+              let obj = {
326
+                id: 0,
327
+                project_id: prescription.project[b].project_id,
328
+                project_name: prescription.project[b].project.project_name,
329
+                statistical_classification: prescription.project[b].project.statistical_classification,
330
+                single_dose: prescription.project[b].single_dose,
331
+                delivery_way: prescription.project[b].delivery_way,
332
+                execution_frequency: prescription.project[b].execution_frequency,
333
+                number_days: prescription.project[b].day,
334
+                total:prescription.project[b].count.toString(),
335
+                price:prescription.project[b].price,
336
+                remark:prescription.project[b].remark,
337
+                medical_code:prescription.project[b].project.medical_code,
338
+              };
339
+              tempProject.push(obj)
340
+            }
341
+            let obj = {
342
+              id: 0,
343
+              advices: tempAdvice,
344
+              project: tempProject,
345
+              addition:tempAddition,
346
+              order_status:0,
347
+              // type: type,
348
+            };
349
+            prescriptions.push(obj)
350
+          }
351
+        }
352
+
353
+        console.log(this.srcPrescriptions);
354
+
355
+        if(this.srcPrescriptions.length == 1){
356
+          if(this.srcPrescriptions[0].advices.length == 0 && this.srcPrescriptions[0].project.length == 0){
357
+            this.srcPrescriptions = [];
358
+            this.srcPrescriptions = prescriptions;
359
+            this.$emit('save', this.srcPrescriptions)
360
+          }else{
361
+
362
+            this.srcPrescriptions =  this.srcPrescriptions.concat(prescriptions);
363
+            this.$emit('save', this.srcPrescriptions)
364
+          }
365
+        }else{
366
+          this.srcPrescriptions =  this.srcPrescriptions.concat(prescriptions);
367
+          this.$emit('save', this.srcPrescriptions)
368
+        }
369
+
370
+
371
+
372
+      },show(prescriptions,name,id,srcPrescriptions){
373
+        this.srcPrescriptions = srcPrescriptions;
374
+        this.patient_id = id;
375
+        this.request_record_date = uParseTime(prescriptions[0].record_date, '{y}-{m}-{d}');
376
+        this.name = name;
377
+        this.allPrescription = prescriptions;
378
+        for (let i = 0; i < this.allPrescription.length; i++){
379
+          this.allPrescription[i].check_group = []
380
+        }
381
+        console.log(this.allPrescription);
382
+        this.isLastOrNextVisible = true
383
+      },close(){
384
+        this.isLastOrNextVisible = false
385
+      },hide(){
386
+        this.$emit('cancel')
387
+
388
+      },getTime(time, template){
389
+        return uParseTime(time,template)
390
+
391
+      }, getGroup(id){
392
+        var name = "";
393
+        var statistics_category =  getDictionaryDataConfig('system','statistics_category');
394
+        for(let i=0;i<statistics_category.length;i++){
395
+          if(id == statistics_category[i].id){
396
+            name = statistics_category[i].name
397
+          }
398
+        }
399
+        return name
400
+      },   getDictionaryDataConfig(module, filed_name) {
401
+        return getDictionaryDataConfig(module, filed_name)
402
+      },
403
+    }
404
+  }
405
+</script>
406
+
407
+<style lang="scss">
408
+.isLastOrNext{
409
+  .el-dialog__body{
410
+    padding:0px 20px 30px;
411
+  }
412
+  .quote{
413
+    margin-top: 10px;
414
+    font-size: 14px;
415
+  }
416
+}
417
+</style>

+ 165 - 0
src/xt_pages/hospitalStation/components/noCharge.vue View File

@@ -0,0 +1,165 @@
1
+<template>
2
+    <div style="display:flex;">
3
+        <div class="noChargeLeft">
4
+            <div class="mainCell" style="margin-bottom:10px;">
5
+                <el-input size="small" @keyup.enter.native='searchAction' v-model.trim="search_input" class="filter-item"/>
6
+                <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary" @click="searchAction">搜索</el-button>
7
+            </div>
8
+            <el-table :data="tableData" border height="500" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
9
+                <el-table-column align="center" prop="name" label="处方号" width="100">
10
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
11
+                </el-table-column>
12
+                <el-table-column align="center" prop="name" label="姓名" width="99">
13
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
14
+                </el-table-column>
15
+            </el-table>
16
+        </div>
17
+        <div style="flex:1;overflow-x: hidden;">
18
+            <div class="noChargeRight">
19
+                <div class="chargeInfo">
20
+                    <p>姓名:<span></span></p>
21
+                    <p>性别:<span></span></p>
22
+                    <p>年龄:<span></span></p>
23
+                    <p>证件号:<span></span></p>
24
+                    <p>挂号类型:<span></span></p>
25
+                    <p>上一个发票号:<span></span></p>
26
+                    <p>下一个发票号:<span></span></p>
27
+                </div>
28
+                <div class="chargeBox">
29
+                    <p>医疗费用总额:<span></span></p>
30
+                    <p>基金支付金额:<span></span></p>
31
+                    <p>个人账户支付金额:<span></span></p>
32
+                    <p>个人支付金额:<span></span></p>
33
+                    <p>个人账号金额:<span></span></p>
34
+                </div>
35
+                <p class='chargeTitle'>药品信息</p>
36
+                <el-table :data="tableData" border height="200" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
37
+                    <el-table-column align="center" prop="name" label="名称">
38
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
39
+                    </el-table-column>
40
+                    <el-table-column align="center" prop="name" label="单位">
41
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
42
+                    </el-table-column>
43
+                    <el-table-column align="center" prop="name" label="单价(元)">
44
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
45
+                    </el-table-column>
46
+                    <el-table-column align="center" prop="name" label="数量">
47
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
48
+                    </el-table-column>
49
+                    <el-table-column align="center" prop="name" label="总价">
50
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
51
+                    </el-table-column>
52
+                    <el-table-column align="center" prop="name" label="自付比例">
53
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
54
+                    </el-table-column>
55
+                </el-table>
56
+                <p class='chargeTitle'>项目信息</p>
57
+                <el-table :data="tableData" border height="200" style="width: 100%;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
58
+                    <el-table-column align="center" prop="name" label="名称">
59
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
60
+                    </el-table-column>
61
+                    <el-table-column align="center" prop="name" label="科室">
62
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
63
+                    </el-table-column>
64
+                    <el-table-column align="center" prop="name" label="单价(元)">
65
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
66
+                    </el-table-column>
67
+                    <el-table-column align="center" prop="name" label="数量">
68
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
69
+                    </el-table-column>
70
+                    <el-table-column align="center" prop="name" label="总价">
71
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
72
+                    </el-table-column>
73
+                    <el-table-column align="center" prop="name" label="自付比例">
74
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
75
+                    </el-table-column>
76
+                </el-table>
77
+                <div class='chargeBtn'>
78
+                    <p>总金额:0元</p>
79
+                    <div>
80
+                        <el-button>预结算</el-button>
81
+                        <el-button type="primary">结算保存</el-button>
82
+                    </div>
83
+                </div>
84
+            </div>
85
+        </div>
86
+    </div>
87
+</template>
88
+
89
+<script>
90
+export default {
91
+    data(){
92
+        return{
93
+            tableData: [{
94
+            date: '2016-05-02',
95
+            name: '王小虎',
96
+            address: '上海市普陀区金沙江路 1518 弄'
97
+            }, {
98
+            date: '2016-05-04',
99
+            name: '王小虎',
100
+            address: '上海市普陀区金沙江路 1517 弄'
101
+            }, {
102
+            date: '2016-05-01',
103
+            name: '王小虎',
104
+            address: '上海市普陀区金沙江路 1519 弄'
105
+            }, {
106
+            date: '2016-05-03',
107
+            name: '王小虎',
108
+            address: '上海市普陀区金沙江路 1516 弄'
109
+            }]
110
+        }
111
+    }
112
+}
113
+</script>
114
+
115
+
116
+<style lang="scss" scoped>
117
+.noChargeLeft{
118
+    width:200px;
119
+    .mainCell{
120
+        display: flex;
121
+    }
122
+}
123
+.noChargeRight{
124
+    margin-left:20px;
125
+    // flex: 1;
126
+    .chargeInfo{
127
+        display: flex;
128
+        justify-content: space-between;
129
+        align-items: center;
130
+        height: 32px;
131
+        margin-bottom: 10px;
132
+        >p{
133
+            display: flex;
134
+        }
135
+        >p>span{
136
+            display: inline-block;
137
+            min-width: 50px;
138
+        }
139
+    }
140
+    .chargeBox{
141
+        height:42px;
142
+        border: 1px solid #EBEEF5;
143
+        display: flex;
144
+        justify-content: space-between;
145
+        background-color: rgb(245, 247, 250);
146
+        color: rgb(96, 98, 102);
147
+        align-items: center;
148
+        padding: 0 20px;
149
+        >p>span{
150
+            display: inline-block;
151
+            min-width: 50px;
152
+        }
153
+    }
154
+    .chargeTitle{
155
+        line-height: 32px;
156
+        height: 32px;
157
+    }
158
+    .chargeBtn{
159
+        display: flex;
160
+        justify-content: space-between;
161
+        align-items: center;
162
+        margin-top: 20px;
163
+    }
164
+}
165
+</style>

+ 151 - 0
src/xt_pages/hospitalStation/components/prescription.vue View File

@@ -0,0 +1,151 @@
1
+<template>
2
+    <el-dialog
3
+        title="开处方"
4
+        width="1000px"
5
+        :visible.sync="visible"
6
+        :before-close="_close"
7
+    >
8
+        <div>
9
+            <el-form :model="form" :rules="rules" ref="form" class="perscriptionForm" label-width="140px" style="display: flex;flex-wrap: wrap;justify-content: space-between;">
10
+                <el-form-item label="透析模式:" prop="name">
11
+                    <el-input v-model="form.name" placeholder=""></el-input>
12
+                </el-form-item>
13
+                <el-form-item label="透析时长(h): " prop="name">
14
+                    <el-input v-model="form.name" placeholder=""></el-input>
15
+                </el-form-item>
16
+                <el-form-item label="透析时长(min): " prop="name">
17
+                    <el-input v-model="form.name" placeholder=""></el-input>
18
+                </el-form-item>
19
+                <el-form-item label="血流量(ml/min): " prop="name">
20
+                    <el-input v-model="form.name" placeholder=""></el-input>
21
+                </el-form-item>
22
+                <el-form-item label="预充量(L): " prop="name">
23
+                    <el-input v-model="form.name" placeholder=""></el-input>
24
+                </el-form-item>
25
+                <el-form-item label="目标超滤量(L): " prop="name">
26
+                    <el-input v-model="form.name" placeholder=""></el-input>
27
+                </el-form-item>
28
+                <el-form-item label="透析液配方: " prop="name">
29
+                    <el-select v-model="value" style="width:160px;" placeholder="请选择">
30
+                        <el-option
31
+                        v-for="item in options"
32
+                        :key="item.value"
33
+                        :label="item.label"
34
+                        :value="item.value">
35
+                        </el-option>
36
+                    </el-select>
37
+                </el-form-item>
38
+                <el-form-item label="抗凝剂: " prop="name">
39
+                    <el-select v-model="value" style="width:160px;" placeholder="请选择">
40
+                        <el-option
41
+                        v-for="item in options"
42
+                        :key="item.value"
43
+                        :label="item.label"
44
+                        :value="item.value">
45
+                        </el-option>
46
+                    </el-select>
47
+                </el-form-item>
48
+                <el-form-item label="首剂(mg): " prop="name">
49
+                    <el-input v-model="form.name" placeholder=""></el-input>
50
+                </el-form-item>
51
+                <el-form-item label="维持(mg/h): " prop="name">
52
+                    <el-input v-model="form.name" placeholder=""></el-input>
53
+                </el-form-item>
54
+                <el-form-item label="总量(mg): " prop="name">
55
+                    <el-input v-model="form.name" placeholder=""></el-input>
56
+                </el-form-item>
57
+                <el-form-item label="置换量(L): " prop="name">
58
+                    <el-input v-model="form.name" placeholder=""></el-input>
59
+                </el-form-item>
60
+                <el-form-item label="钾(mmol/L): " prop="name">
61
+                    <el-input v-model="form.name" placeholder=""></el-input>
62
+                </el-form-item>
63
+                <el-form-item label="钠(mmol/L): " prop="name">
64
+                    <el-input v-model="form.name" placeholder=""></el-input>
65
+                </el-form-item>
66
+                <el-form-item label="钙(mmol/L): " prop="name">
67
+                    <el-input v-model="form.name" placeholder=""></el-input>
68
+                </el-form-item>
69
+                <el-form-item label="碳酸氢盐(mmol/L): " prop="name">
70
+                    <el-input v-model="form.name" placeholder=""></el-input>
71
+                </el-form-item>
72
+                <el-form-item label="透析液流量(ml/min): " prop="name">
73
+                    <el-input v-model="form.name" placeholder=""></el-input>
74
+                </el-form-item>
75
+                <el-form-item label="透析液温度(℃): " prop="name">
76
+                    <el-input v-model="form.name" placeholder=""></el-input>
77
+                </el-form-item>
78
+                <el-form-item label="透析器/灌流器: " prop="name">
79
+                    <el-input v-model="form.name" placeholder=""></el-input>
80
+                </el-form-item>
81
+                <el-form-item label="体液过多症状: " prop="name">
82
+                    <el-input v-model="form.name" placeholder=""></el-input>
83
+                </el-form-item>
84
+                <el-form-item label="体液过多其他症状: " prop="name">
85
+                    <el-input v-model="form.name" placeholder=""></el-input>
86
+                </el-form-item>
87
+                <el-form-item label="透析前使用特殊药品: " prop="name">
88
+                    <el-input v-model="form.name" placeholder=""></el-input>
89
+                </el-form-item>
90
+                <el-form-item label="透析前使用其他特殊药品: " prop="name">
91
+                    <el-input v-model="form.name" placeholder=""></el-input>
92
+                </el-form-item>
93
+                <el-form-item label="置换液: " prop="name">
94
+                    <el-input v-model="form.name" placeholder=""></el-input>
95
+                </el-form-item>
96
+                <el-form-item label="限制说明 : " style="width:100%;" prop="name">
97
+                    <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="textarea"></el-input>
98
+                </el-form-item>
99
+            </el-form>
100
+        </div>
101
+        <div slot="footer" class="dialog-footer">
102
+            <el-button @click="hide">取 消</el-button>
103
+            <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
104
+            <el-button type="primary">设为长期处方</el-button>
105
+        </div>
106
+    </el-dialog>         
107
+</template>
108
+
109
+<script>
110
+export default {
111
+    data(){
112
+        return{
113
+            visible:false,
114
+            form:{
115
+                name:''
116
+            },
117
+        }
118
+    },
119
+    methods:{
120
+        _close: function(done) {
121
+            // this.clear()
122
+            done()
123
+        },
124
+        clear: function() {
125
+            this.form.id = 0;
126
+            this.form.name = "";
127
+            this.form.intro = "";
128
+        },
129
+        show() {
130
+            // this.clear()
131
+            this.visible = true
132
+        },
133
+        hide() {
134
+            // this.clear()
135
+            this.visible = false
136
+        },
137
+    }
138
+}
139
+</script>
140
+
141
+<style lang="scss" scoped>
142
+.perscriptionForm{
143
+    .el-form-item{
144
+        width:33%;
145
+    }
146
+    .el-input{
147
+        width:160px;
148
+    }
149
+}
150
+</style>
151
+

+ 464 - 0
src/xt_pages/hospitalStation/components/prescriptionTable.vue View File

@@ -0,0 +1,464 @@
1
+<template>
2
+  <div class="prescriptionTable">
3
+    <el-table v-if="activeType  == 1" :data="prescription.advices" border style="width: 99%;" :row-style="{ color: '#303133' }"
4
+              :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
5
+      <el-table-column align="center" type="index" width="40" label="序号"></el-table-column>
6
+      <el-table-column align="center" prop="drug_name" label="名称">
7
+        <template slot-scope="scope"><span :title="scope.row.drug_name">{{ scope.row.drug_name }}</span></template>
8
+      </el-table-column>
9
+
10
+      <el-table-column align="center" prop="single_dose" width="90" label="单次用量">
11
+        <template slot-scope="scope">
12
+          <div style="display:flex;align-items:center;">
13
+            <el-input v-model="scope.row.single_dose" @input="getSingleDose(scope)" style="width:65%;"></el-input>
14
+            <div>{{scope.row.single_dose_unit}}</div>
15
+          </div>
16
+        </template>
17
+      </el-table-column>
18
+      <el-table-column align="center" prop="delivery_way" width="100" label="用法">
19
+        <template slot-scope="scope">
20
+          <el-select v-model="scope.row.delivery_way" placeholder="请选择">
21
+            <el-option
22
+              v-for="(item,index) in drugways"
23
+              :key="index"
24
+              :label="item.name"
25
+              :value="item.name">
26
+            </el-option>
27
+          </el-select>
28
+        </template>
29
+      </el-table-column>
30
+      <el-table-column align="center" prop="execution_frequency" width="100" label="频率">
31
+        <template slot-scope="scope">
32
+          <el-select v-model="scope.row.execution_frequency" placehold er="请选择">
33
+            <el-option
34
+              v-for="item,index in efs"
35
+              :key="index"
36
+              :label="item.name"
37
+              :value="item.name">
38
+            </el-option>
39
+          </el-select>
40
+        </template>
41
+      </el-table-column>
42
+
43
+
44
+      <el-table-column align="center" prop="day" width="50" label="天数">
45
+        <template slot-scope="scope">
46
+          <el-input v-model="scope.row.day" @input="getDay(scope)" placeholder=""></el-input>
47
+          <div>{{'天'}}</div>
48
+
49
+        </template>
50
+      </el-table-column>
51
+
52
+      <el-table-column align="center" prop="prescribing_number" width="80" label="总量">
53
+        <template slot-scope="scope">
54
+          <div style="display:flex;align-items:center;">
55
+            <el-input v-model="scope.row.prescribing_number" style="width:60%" placeholder=""></el-input>
56
+            <div> {{scope.row.prescribing_number_unit}}</div>
57
+          </div>
58
+        </template>
59
+      </el-table-column>
60
+      <el-table-column align="center" prop="retail_price" width="60" label="单价">
61
+        <template slot-scope="scope">
62
+          <el-input v-model="scope.row.retail_price" placeholder="" readonly></el-input>
63
+          <div>{{'元'}}</div>
64
+
65
+        </template>
66
+      </el-table-column>
67
+      <el-table-column align="center" prop="remark" width="50" label="备注">
68
+        <template slot-scope="scope">
69
+          <el-input v-model="scope.row.remark" :title="scope.row.remark" placeholder=""></el-input>
70
+        </template>
71
+      </el-table-column>
72
+      <el-table-column align="center" width="40" prop="name" label="操作">
73
+        <template slot-scope="scope">
74
+          <i class="el-icon-delete" @click="deleteDrug(scope.$index, scope.row)"></i>
75
+        </template>
76
+      </el-table-column>
77
+    </el-table>
78
+
79
+    <el-table v-if="activeType == 2" :data="prescription.project" border style="width: 99%;" :row-style="{ color: '#303133' }"
80
+              :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
81
+       <el-table-column align="center" type="index" width="40" label="序号"></el-table-column>
82
+      <el-table-column align="center" prop="project_name" label="名称">
83
+        <template slot-scope="scope"><span :title="scope.row.project_name">{{ scope.row.project_name }}</span></template>
84
+      </el-table-column>
85
+      <el-table-column align="center" prop="statistical_classification" width="100" label="组">
86
+        <template slot-scope="scope">{{getGroup(scope.row.statistical_classification)}}</template>
87
+      </el-table-column>
88
+      <el-table-column align="center" prop="single_dose" width="80" label="单次用量">
89
+        <template slot-scope="scope">
90
+          <el-input v-model="scope.row.single_dose" @input="getProjectSingleDose(scope)" placeholder=""></el-input>
91
+          <div>{{scope.row.unit}}</div>
92
+
93
+        </template>
94
+      </el-table-column>
95
+      <el-table-column align="center" prop="delivery_way" width="80" label="用法">
96
+        <template slot-scope="scope">
97
+          <el-autocomplete
98
+            style="width:100%;"
99
+            class="inline-input"
100
+            v-model="scope.row.delivery_way"
101
+            :fetch-suggestions="querySearch2"
102
+            placeholder="请输入内容"
103
+          ></el-autocomplete>
104
+        </template>
105
+      </el-table-column>
106
+      <el-table-column align="center" prop="execution_frequency" width="80" label="频率">
107
+        <template slot-scope="scope">
108
+          <el-input v-model="scope.row.execution_frequency" placeholder=""></el-input>
109
+        </template>
110
+      </el-table-column>
111
+      <el-table-column align="center" prop="number_days" width="50" label="天数">
112
+        <template slot-scope="scope">
113
+          <el-input v-model="scope.row.number_days" @input="getProjectDay(scope)" placeholder=""></el-input>
114
+          <div>{{'天'}}</div>
115
+        </template>
116
+      </el-table-column>
117
+      <el-table-column align="center" prop="total" width="70" label="总量">
118
+        <template slot-scope="scope">
119
+          <div style="display:flex;align-items:center;">
120
+            <el-input v-model="scope.row.total" style="width:60%" placeholder=""></el-input>
121
+            <div>{{scope.row.unit}}</div>
122
+
123
+          </div>
124
+        </template>
125
+      </el-table-column>
126
+      <el-table-column align="center" prop="name" width="50" label="单价">
127
+        <template slot-scope="scope">
128
+          <el-input v-model="scope.row.price" placeholder="" readonly></el-input>
129
+          <div>{{'元'}}</div>
130
+
131
+        </template>
132
+      </el-table-column>
133
+      <el-table-column align="center" prop="name" width="50" label="备注">
134
+        <template slot-scope="scope">
135
+           <el-input v-model="scope.row.remark" :title="scope.row.remark"></el-input>
136
+        </template>
137
+      </el-table-column>
138
+      <el-table-column align="center" width="40" prop="name" label="操作">
139
+        <template slot-scope="scope">
140
+          <i class="el-icon-delete" @click="deleteProject(scope.row,scope.$index)"></i>
141
+        </template>
142
+      </el-table-column>
143
+    </el-table>
144
+
145
+    <div class="additionalBox">
146
+      <div class="additionalOne" v-for="(item,index) in prescription.addition" :key="index">
147
+        <span :title="item.item_name">{{item.item_name}}</span>
148
+        <el-input v-model="item.price" placeholder="" style="width:50px;"></el-input>
149
+        共
150
+        <el-input v-model="item.count" placeholder="" style="width:50px;"></el-input>
151
+        次
152
+        <i class="el-icon-delete deleteIcon" @click="delAddition(index,item)"></i>
153
+      </div>
154
+    </div>
155
+
156
+
157
+
158
+  </div>
159
+</template>
160
+
161
+<script>
162
+  import { getDictionaryDataConfig} from "@/utils/data";
163
+  import { getInitData,delHisAdvice,delHisProject,delHisAddition } from '@/api/his/his'
164
+
165
+  export default {
166
+    props: {
167
+      preDrugs: Array,
168
+      activeType: Number,
169
+      addtions_charge:Array,
170
+      prescription:{
171
+        type:Object,
172
+        default: function () {
173
+          return {
174
+            name:"",
175
+            advices:[],
176
+            project:[],
177
+            drugways:[],
178
+            efs:[],
179
+          };
180
+        }
181
+      },
182
+    },
183
+    data() {
184
+      return {
185
+        advices:[],
186
+        tableData: [],
187
+        newoptions: [{
188
+          value: '1',
189
+          label: '1'
190
+        }, {
191
+          value: '2',
192
+          label: '2'
193
+        }, {
194
+          value: '3',
195
+          label: '3'
196
+        }, {
197
+          value: '4',
198
+          label: '4'
199
+        }, {
200
+          value: '5',
201
+          label: '5'
202
+        }],
203
+        value: '1',
204
+        input: 1,
205
+      }
206
+    },
207
+
208
+   methods:{
209
+     createFilter(queryString) {
210
+       return (restaurant) => {
211
+         return (restaurant.name.toLowerCase().indexOf(queryString.toLowerCase()) === 0)
212
+       }
213
+     },
214
+     querySearch2(queryString, cb) {
215
+       var restaurants = this.getDictionaryDataConfig("system","project_use");
216
+       restaurants.map(item => {
217
+         item.value = item.name
218
+       });
219
+       var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
220
+       // 调用 callback 返回建议列表的数据
221
+       cb(results)
222
+     },
223
+     delAddition(index, addition){
224
+       if(this.prescription.order_status == 2){
225
+         this.$message.error('该处方已经结算,无法删除');
226
+         return
227
+       }
228
+       this.$confirm("附加费删除后不可恢复,是否确认删除", "删除", {
229
+         confirmButtonText: "确 定",
230
+         cancelButtonText: "取 消",
231
+         type: "warning"
232
+       }).then(() => {
233
+         this.$nextTick(function(){
234
+           if(addition.id == 0){
235
+             this.prescription.addition.splice(index, 1)
236
+           }else{
237
+             let params = {
238
+               'id': addition.id,
239
+             };
240
+             delHisAddition(params).then(response => {
241
+               if (response.data.state == 0) {
242
+                 this.$message.error(response.data.msg);
243
+                 return false
244
+               } else {
245
+                 var temp2 = this.deepClone(this.prescription.addition);
246
+                 temp2.splice(index, 1);
247
+                 this.prescription.addition = temp2;
248
+                 this.$message.success(response.data.data.msg)
249
+               }
250
+             })
251
+           }
252
+         });
253
+
254
+       })
255
+         .catch(() => {});
256
+
257
+     },
258
+      getInitData(){
259
+        getInitData().then(response => {
260
+          if (response.data.state == 0) {
261
+            this.$message.error(response.data.msg);
262
+            return false
263
+          } else {
264
+            this.drugways = response.data.data.drugways;
265
+            this.efs = response.data.data.efs
266
+          }
267
+        })
268
+
269
+      },deleteDrug:function(index, row){
270
+       if(this.prescription.order_status == 2){
271
+         this.$message.error('该处方已经结算,无法删除');
272
+         return
273
+       }
274
+       this.$confirm("药品删除后不可恢复,是否确认删除", "删除", {
275
+         confirmButtonText: "确 定",
276
+         cancelButtonText: "取 消",
277
+         type: "warning"
278
+       }).then(() => {
279
+         this.$nextTick(function(){
280
+           if(row.advice_id == 0){
281
+             this.prescription.advices.splice(index, 1)
282
+           }else{
283
+             let params = {
284
+               'id': row.advice_id,
285
+             };
286
+             delHisAdvice(params).then(response => {
287
+               if (response.data.state == 0) {
288
+                 this.$message.error(response.data.msg);
289
+                 return false
290
+               } else {
291
+                 var temp2 = this.deepClone(this.prescription.advices);
292
+                 temp2.splice(index, 1);
293
+                 this.prescription.advices = temp2;
294
+                 this.$message.success(response.data.data.msg)
295
+               }
296
+             })
297
+
298
+
299
+           }
300
+
301
+         });
302
+
303
+
304
+       })
305
+         .catch(() => {});
306
+
307
+
308
+
309
+
310
+
311
+      },deepClone(source) {
312
+       if (!source && typeof source !== 'object') {
313
+         throw new Error('error arguments', 'shallowClone')
314
+       }
315
+       const targetObj = source.constructor === Array ? [] : {};
316
+       Object.keys(source).forEach((keys) => {
317
+         if (source[keys] && typeof source[keys] === 'object') {
318
+           targetObj[keys] = this.deepClone(source[keys])
319
+         } else {
320
+           targetObj[keys] = source[keys]
321
+         }
322
+       });
323
+       return targetObj
324
+     },
325
+
326
+      setNewData:function(data){
327
+        this.prescription = data
328
+
329
+        // this.prescription.advices = data.advices
330
+      },
331
+      getDictionaryDataConfig(module, filed_name) {
332
+        return getDictionaryDataConfig(module, filed_name)
333
+      },
334
+      getGroup(id){
335
+         var name = "";
336
+          var statistics_category =  getDictionaryDataConfig('system','statistics_category');
337
+          console.log("2235",statistics_category);
338
+          for(let i=0;i<statistics_category.length;i++){
339
+             if(id == statistics_category[i].id){
340
+                 name = statistics_category[i].name
341
+             }
342
+          }
343
+         return name
344
+      },
345
+      deleteProject(row,i){
346
+        if(this.prescription.order_status == 2){
347
+          this.$message.error('该处方已经结算,无法删除');
348
+          return
349
+        }
350
+        this.$confirm("项目删除后不可恢复,是否确认删除", "删除", {
351
+          confirmButtonText: "确 定",
352
+          cancelButtonText: "取 消",
353
+          type: "warning"
354
+        }).then(() => {
355
+          if(row.id == 0){
356
+            this.prescription.project.splice(i, 1)
357
+
358
+          }else{
359
+            let params = {
360
+              'id': row.id,
361
+            };
362
+            delHisProject(params).then(response => {
363
+              if (response.data.state == 0) {
364
+                this.$message.error(response.data.msg);
365
+                return false
366
+              } else {
367
+                for (let i = 0; i < this.prescription.project.length; i++){
368
+                  if(this.prescription.project[i].id == row.id){
369
+                    this.prescription.project.splice(i, 1)
370
+                  }
371
+                }
372
+                this.$message.success(response.data.data.msg)
373
+              }
374
+            })
375
+          }
376
+        })
377
+          .catch(() => {});
378
+
379
+      },
380
+      getSingleDose(scope){
381
+        this.prescription.advices[scope.$index].prescribing_number = scope.row.single_dose * scope.row.day
382
+      },
383
+      getDay(scope){
384
+        this.prescription.advices[scope.$index].prescribing_number = scope.row.single_dose * scope.row.day
385
+      },
386
+      getProjectSingleDose(scope){
387
+        this.prescription.project[scope.$index].total = scope.row.single_dose * scope.row.number_days
388
+      },
389
+      getProjectDay(scope){
390
+        this.prescription.project[scope.$index].total = scope.row.single_dose * scope.row.number_days
391
+      }
392
+    },mounted(){
393
+      this.getInitData()
394
+
395
+    },
396
+    watch:{
397
+      // "prescription.advices":{
398
+      //   handler(newVal,oldVal){
399
+      //     newVal.map(item => {
400
+      //       item.prescribing_number = item.single_dose * item.day
401
+      //       if(item.single_dose != oldVal[index].single_dose || item.number_days != oldVal[index].number_days){
402
+      //         item.total = item.single_dose * item.number_days
403
+      //       }
404
+
405
+
406
+      //     })
407
+      //   },
408
+      //   deep:true
409
+      // },
410
+      // "prescription.project":{
411
+      //   handler(newVal,oldVal){
412
+      //     newVal.map((item,index) => {
413
+      //       if(item.single_dose != oldVal[index].single_dose || item.number_days != oldVal[index].number_days){
414
+      //         item.total = item.single_dose * item.number_days
415
+      //       }
416
+
417
+      //     })
418
+      //   },
419
+      //   deep:true
420
+      // }
421
+    }
422
+
423
+  }
424
+</script>
425
+
426
+<style lang="scss">
427
+  .prescriptionTable {
428
+    .el-input__inner{
429
+      padding: 0 5px;
430
+    }
431
+    .additionalBox{
432
+      margin-top: 20px;
433
+      display: flex;
434
+      flex-wrap: wrap;
435
+      .additionalOne{
436
+        margin-right:20px;
437
+        margin-bottom:10px;
438
+        display: flex;
439
+        align-items: center;
440
+        >span{
441
+          white-space: nowrap;
442
+          overflow: hidden;
443
+          text-overflow: ellipsis;
444
+          width:80px;
445
+          display: inline-block;
446
+          font-size: 14px;
447
+        }
448
+      }
449
+      .deleteIcon{
450
+        color:red;
451
+        margin-left:5px;
452
+      }
453
+    }
454
+    .el-table th .cell, .el-table td .cell {
455
+      padding: 0 2px;
456
+      white-space: pre-line;
457
+    }
458
+
459
+    .el-icon-delete {
460
+      color: red;
461
+    }
462
+
463
+  }
464
+</style>

+ 105 - 0
src/xt_pages/hospitalStation/components/recordHistoryDetail.vue View File

@@ -0,0 +1,105 @@
1
+<template>
2
+    <el-dialog
3
+        title="病历历史详情"
4
+        width="1000px"
5
+        :visible.sync="visible"
6
+        :before-close="_close"
7
+        class="recordDialog"
8
+        append-to-body
9
+    >
10
+        <div class="detailMain">
11
+            <span style="width:240px;">病历编号:11111111111111111</span>
12
+            <span style="width:240px;">医生:</span>
13
+            <span style="width:240px;">创建日期:11111111111111111</span>
14
+        </div>
15
+        <div class="detailMain">
16
+            <span style="width:240px;">关系联系人:无</span>
17
+            <span style="width:240px;">关系联系方式:无</span>
18
+        </div>
19
+        <p>体格检查</p>
20
+        <div class="detailMain">
21
+            <span style="margin: 0 0 0 40px;width:140px;">体温:℃</span>
22
+            <span style="width:140px;">呼吸:0 次/分</span>
23
+            <span style="width:140px;">脉搏:0 次/分</span>
24
+            <span style="width:200px;">血压:0。00~0.00 mmHg</span>
25
+        </div>
26
+        <div class="detailMain">
27
+            <span style="margin: 0 0 0 40px;width:140px;">血糖:0 mmol/L</span>
28
+            <span style="width:140px;">血脂:0 mmol/L</span>
29
+            <span style="width:140px;">身高:0 cm</span>
30
+            <span style="width:200px;">体重:0 kg</span>
31
+        </div>
32
+        <div class="detailMain">
33
+            <span style="width:220px;">疾病名称:无</span>
34
+            <span style="width:220px;">症状:无</span>
35
+            <span style="width:220px;">发病日期:</span>
36
+            <span style="width:220px;">是否传染:否</span>
37
+        </div>
38
+        <div class="detailMain">
39
+            <span>主诉:</span>
40
+        </div>
41
+        <div class="detailMain">
42
+            <span>现病史:</span>
43
+        </div>
44
+        <div class="detailMain">
45
+            <span>诊断信息:</span>
46
+        </div>
47
+        <div class="detailMain">
48
+            <span>医嘱:</span>
49
+        </div>
50
+        <div class="detailMain">
51
+            <span>过敏史:</span>
52
+        </div>
53
+        <div slot="footer" class="dialog-footer">
54
+            <el-button @click="hide">取 消</el-button>
55
+            <el-button type="primary"  @click="submitAction()">保 存</el-button>
56
+        </div>
57
+    </el-dialog>         
58
+</template>
59
+
60
+<script>
61
+export default {
62
+    data(){
63
+        return{
64
+            visible:false,
65
+            form:{
66
+                name:''
67
+            },
68
+        }
69
+    },
70
+    methods:{
71
+        _close: function(done) {
72
+            // this.clear()
73
+            done()
74
+        },
75
+        clear: function() {
76
+            this.form.id = 0;
77
+            this.form.name = "";
78
+            this.form.intro = "";
79
+        },
80
+        show() {
81
+            // this.clear()
82
+            this.visible = true
83
+        },
84
+        hide() {
85
+            // this.clear()
86
+            this.visible = false
87
+        },
88
+    }
89
+}
90
+</script>
91
+
92
+<style lang="scss">
93
+.recordDialog{
94
+    .el-dialog__body{
95
+        padding-top:0;
96
+    }
97
+}
98
+.detailMain{
99
+    padding:5px;
100
+    span{
101
+        display: inline-block;
102
+    }
103
+}
104
+</style>
105
+

+ 378 - 0
src/xt_pages/hospitalStation/components/recordTemplateDetail.vue View File

@@ -0,0 +1,378 @@
1
+<template>
2
+    <el-dialog
3
+      title="病历模板详情"
4
+      width="1000px"
5
+      :visible.sync="visible"
6
+      :before-close="_close"
7
+      class="recordDialog"
8
+      append-to-body
9
+    >
10
+        <el-form class="recordForm" :model="form" ref="form" label-width="80px">
11
+          <el-form-item label="模板名称: " prop="name" style="width:100%;">
12
+            <el-input v-model="form.template_name" placeholder=""></el-input>
13
+          </el-form-item>
14
+          <el-form-item label="模板说明: " prop="name" style="width:100%;">
15
+            <el-input v-model="form.template_remark" placeholder=""></el-input>
16
+          </el-form-item>
17
+          <el-form-item label="主诉:" class="width50">
18
+            <el-select @change="changeMainTemplate" v-model="value" style="width:100%;margin-bottom:10px;">
19
+              <el-option
20
+                v-for="(item, index) in tabledata"
21
+                :label="item.title"
22
+                :value="item.content"
23
+                :key="index"
24
+              ></el-option>
25
+            </el-select>
26
+            <el-input
27
+              type="textarea"
28
+              :rows="2"
29
+              placeholder="请输入内容"
30
+              v-model="form.chief_conplaint">
31
+            </el-input>
32
+          </el-form-item>
33
+          <el-form-item label="现病史:" class="width50">
34
+            <el-select @change="changeMainTemplateOne" v-model="valueOne" style="width:100%;margin-bottom:10px;">
35
+              <el-option
36
+                v-for="(item, index) in tabledataOne"
37
+                :label="item.title"
38
+                :value="item.content"
39
+                :key="index"
40
+              ></el-option>
41
+            </el-select>
42
+            <el-input
43
+              type="textarea"
44
+              :rows="2"
45
+              placeholder="请输入内容"
46
+              v-model="form.history_of_present_illness">
47
+            </el-input>
48
+          </el-form-item>
49
+          <el-form-item label="既往史:" class="width50">
50
+            <el-select @change="changeMainTemplateTwo" v-model="valueTwo" style="width:100%;margin-bottom:10px;">
51
+              <el-option
52
+                v-for="(item, index) in tabledataTwo"
53
+                :label="item.title"
54
+                :value="item.content"
55
+                :key="index"
56
+              ></el-option>
57
+            </el-select>
58
+            <el-input
59
+              type="textarea"
60
+              :rows="2"
61
+              placeholder="请输入内容"
62
+              v-model="form.past_history">
63
+            </el-input>
64
+          </el-form-item>
65
+          <el-form-item label="个人史:" class="width50">
66
+            <el-select @change="changeMainTemplateThree" v-model="valueThree" style="width:100%;margin-bottom:10px;">
67
+              <el-option
68
+                v-for="(item, index) in tabledataThree"
69
+                :label="item.title"
70
+                :value="item.content"
71
+                :key="index"
72
+              ></el-option>
73
+            </el-select>
74
+            <el-input
75
+              type="textarea"
76
+              :rows="2"
77
+              placeholder="请输入内容"
78
+              v-model="form.personal_history">
79
+            </el-input>
80
+          </el-form-item>
81
+          <el-form-item  label="家族史:" class="width50">
82
+            <el-select @change="changeMainTemplateFour" v-model="valueFour" style="width:100%;margin-bottom:10px;">
83
+              <el-option
84
+                v-for="(item, index) in tabledataFour"
85
+                :label="item.title"
86
+                :value="item.content"
87
+                :key="index"
88
+              ></el-option>
89
+            </el-select>
90
+            <el-input
91
+            type="textarea"
92
+            :rows="2"
93
+            placeholder="请输入内容"
94
+            v-model="form.family_history">
95
+            </el-input>
96
+          </el-form-item>
97
+          <el-form-item label="诊断信息:" class="width50">
98
+            <el-select @change="changeMainTemplateFive" v-model="valueFive" style="width:100%;margin-bottom:10px;">
99
+              <el-option
100
+                v-for="(item, index) in tabledataFive"
101
+                :label="item.title"
102
+                :value="item.content"
103
+                :key="index"
104
+              ></el-option>
105
+            </el-select>
106
+            <el-input
107
+              type="textarea"
108
+              :rows="2"
109
+              placeholder="请输入内容"
110
+              v-model="form.diagnostic">
111
+            </el-input>
112
+          </el-form-item>
113
+          <el-form-item label="医嘱:" class="width50">
114
+            <el-select @change="changeMainTemplateSix" v-model="valueSix" style="width:100%;margin-bottom:10px;">
115
+              <el-option
116
+                v-for="(item, index) in tabledataSix"
117
+                :label="item.title"
118
+                :value="item.content"
119
+                :key="index"
120
+              ></el-option>
121
+            </el-select>
122
+            <el-input
123
+              type="textarea"
124
+              :rows="2"
125
+              placeholder="请输入内容"
126
+              v-model="form.doctor_advice">
127
+            </el-input>
128
+          </el-form-item>
129
+
130
+          <el-form-item label ="备注"  prop="name" class="width50">
131
+            <el-input
132
+              type="textarea"
133
+              :rows="2"
134
+              placeholder="请输入内容"
135
+              v-model="form.remark">
136
+            </el-input>
137
+          </el-form-item>
138
+        </el-form>
139
+        <div slot="footer" class="dialog-footer">
140
+            <el-button @click="hide">取 消</el-button>
141
+            <el-button type="primary"  @click="submitAction()">保 存</el-button>
142
+        </div>
143
+    </el-dialog>
144
+</template>
145
+
146
+<script>
147
+import { getTemplateDetail,updateRecordTemplate,getMedicalTemplateList } from "@/api/project/project"
148
+export default {
149
+    data(){
150
+        return{
151
+            visible:false,
152
+            form:{
153
+              id:0,
154
+              template_name:'',
155
+              template_remark:"",
156
+              chief_conplaint:"",
157
+              history_of_present_illness:"",
158
+              past_history:"",
159
+              personal_history:"",
160
+              family_history:"",
161
+              diagnostic:"",
162
+              remark:'',
163
+              doctor_advice:'',
164
+
165
+            },
166
+            textarea:"",
167
+            templatedetail:{},
168
+            tabledata:[],
169
+            tabledataOne:[],
170
+            tabledataTwo:[],
171
+            tabledataThree:[],
172
+            tabledataFour:[],
173
+            tabledataFive:[],
174
+            tabledataSix:[],
175
+            tabledataSeven:[],
176
+            value:'',
177
+            valueOne:'',
178
+            valueTwo:'',
179
+            valueThree:'',
180
+            valueFour:'',
181
+            valueFive:'',
182
+            valueSix:'',
183
+            valueSeven:''
184
+        }
185
+    },
186
+    methods:{
187
+        _close: function(done) {
188
+            // this.clear()
189
+            done()
190
+        },
191
+        clear: function() {
192
+            this.form.id = 0;
193
+            this.form.name = "";
194
+            this.form.intro = "";
195
+        },
196
+        show(id) {
197
+          this.getTemplateDetail(id);
198
+          this.visible = true
199
+
200
+        },
201
+        hide() {
202
+            // this.clear()
203
+            this.visible = false
204
+        },
205
+        getTemplateDetail(id){
206
+          getTemplateDetail(id).then(response=>{
207
+              if(response.data.state == 1){
208
+                var templatedetail =  response.data.data.templateDetail;
209
+                console.log("templatedetail",templatedetail);
210
+                this.form.id = templatedetail.id;
211
+                this.form.template_name =   templatedetail.template_name;
212
+                this.form.template_remark = templatedetail.template_remark;
213
+                this.form.chief_conplaint =  templatedetail.chief_conplaint;
214
+                this.form.history_of_present_illness =  templatedetail.history_of_present_illness;
215
+                this.form.past_history =  templatedetail.past_history;
216
+                this.form.personal_history =    templatedetail.personal_history;
217
+                this.form.family_history = templatedetail.family_history;
218
+                this.form.diagnostic = templatedetail.diagnostic;
219
+                this.form.doctor_advice = templatedetail.doctor_advice;
220
+                this.form.remark = templatedetail.remark
221
+              }
222
+          })
223
+        },
224
+        submitAction(){
225
+          var params = {
226
+            id:this.form.id,
227
+            template_name:this.form.template_name,
228
+            template_remark:this.form.template_remark,
229
+            chief_conplaint:this.form.chief_conplaint,
230
+            history_of_present_illness:this.form.history_of_present_illness,
231
+            past_history:this.form.past_history,
232
+            personal_history:this.form.personal_history,
233
+            family_history:this.form.family_history,
234
+            diagnostic:this.form.diagnostic,
235
+            doctor_advice:this.form.doctor_advice,
236
+            remark:this.form.remark
237
+          };
238
+          updateRecordTemplate(params).then(response=>{
239
+             if(response.data.state == 1){
240
+                var template =  response.data.data.templateDetail;
241
+                this.$message.success("保存成功");
242
+                this.visible = false
243
+                // this.$parents.getlist()
244
+             }
245
+          })
246
+        },
247
+
248
+         getlist(){
249
+           getMedicalTemplateList().then(response=>{
250
+           if(response.data.state == 1){
251
+             var list =  response.data.data.list;
252
+             console.log("list",list);
253
+             this.tabledata = list;
254
+             this.tabledataOne =  response.data.data.listOne;
255
+             this.tabledataTwo = response.data.data.listTwo;
256
+             this.tabledataThree = response.data.data.listThree;
257
+             this.tabledataFour =  response.data.data.listFour;
258
+             this.tabledataFive = response.data.data.listFive;
259
+             this.tabledataSix = response.data.data.listSix;
260
+             this.tabledataSeven =  response.data.data.listSeven
261
+           }
262
+        })
263
+       },
264
+
265
+       changeMainTemplate(values){
266
+         if(this.case_history.chief_conplaint == ''){
267
+           this.case_history.chief_conplaint = values
268
+         } else {
269
+          if (this.case_history.chief_conplaint.indexOf(values) == -1) {
270
+            if (this.case_history.chief_conplaint.charAt(this.case_history.chief_conplaint.length - 1).indexOf('。') == -1) {
271
+              this.case_history.chief_conplaint = this.case_history.chief_conplaint + ',' + values
272
+            } else {
273
+              this.case_history.chief_conplaint = this.case_history.chief_conplaint + values
274
+            }
275
+          }
276
+        }
277
+       },
278
+       changeMainTemplateOne(values){
279
+          if(this.case_history.history_of_present_illness == ''){
280
+           this.case_history.history_of_present_illness = values
281
+         } else {
282
+          if (this.case_history.history_of_present_illness.indexOf(values) == -1) {
283
+            if (this.case_history.history_of_present_illness.charAt(this.case_history.history_of_present_illness.length - 1).indexOf('。') == -1) {
284
+              this.case_history.history_of_present_illness = this.case_history.history_of_present_illness + ',' + values
285
+            } else {
286
+              this.case_history.history_of_present_illness = this.case_history.history_of_present_illness + values
287
+            }
288
+          }
289
+        }
290
+      },
291
+      changeMainTemplateTwo(values){
292
+         if(this.case_history.past_history == ''){
293
+           this.case_history.past_history = values
294
+         } else {
295
+          if (this.case_history.past_history.indexOf(values) == -1) {
296
+            if (this.case_history.past_history.charAt(this.case_history.past_history.length - 1).indexOf('。') == -1) {
297
+              this.case_history.past_history = this.case_history.past_history + ',' + values
298
+            } else {
299
+              this.case_history.past_history = this.case_history.past_history + values
300
+            }
301
+          }
302
+        }
303
+      },
304
+      changeMainTemplateThree(values){
305
+         if(this.case_history.personal_history == ''){
306
+           this.case_history.personal_history = values
307
+         } else {
308
+          if (this.case_history.personal_history.indexOf(values) == -1) {
309
+            if (this.case_history.personal_history.charAt(this.case_history.personal_history.length - 1).indexOf('。') == -1) {
310
+              this.case_history.personal_history = this.case_history.personal_history + ',' + values
311
+            } else {
312
+              this.case_history.personal_history = this.case_history.personal_history + values
313
+            }
314
+          }
315
+        }
316
+      },
317
+      changeMainTemplateFour(values){
318
+          if(this.case_history.family_history == ''){
319
+           this.case_history.family_history = values
320
+         } else {
321
+          if (this.case_history.family_history.indexOf(values) == -1) {
322
+            if (this.case_history.family_history.charAt(this.case_history.family_history.length - 1).indexOf('。') == -1) {
323
+              this.case_history.family_history = this.case_history.family_history + ',' + values
324
+            } else {
325
+              this.case_history.family_history = this.case_history.family_history + values
326
+            }
327
+          }
328
+        }
329
+      },
330
+
331
+      changeMainTemplateFive(values){
332
+          if(this.case_history.diagnostic == ''){
333
+           this.case_history.diagnostic = values
334
+         } else {
335
+          if (this.case_history.diagnostic.indexOf(values) == -1) {
336
+            if (this.case_history.diagnostic.charAt(this.case_history.diagnostic.length - 1).indexOf('。') == -1) {
337
+              this.case_history.diagnostic = this.case_history.diagnostic + ',' + values
338
+            } else {
339
+              this.case_history.diagnostic = this.case_history.diagnostic + values
340
+            }
341
+          }
342
+        }
343
+      },
344
+      changeMainTemplateSix(values){
345
+          if(this.case_history.doctor_advice == ''){
346
+           this.case_history.doctor_advice = values
347
+         } else {
348
+          if (this.case_history.doctor_advice.indexOf(values) == -1) {
349
+            if (this.case_history.doctor_advice.charAt(this.case_history.doctor_advice.length - 1).indexOf('。') == -1) {
350
+              this.case_history.doctor_advice = this.case_history.doctor_advice + ',' + values
351
+            } else {
352
+              this.case_history.doctor_advice = this.case_history.doctor_advice + values
353
+            }
354
+          }
355
+        }
356
+      },
357
+    },
358
+
359
+    created(){
360
+       this.getlist()
361
+    }
362
+}
363
+</script>
364
+
365
+<style lang="scss" scoped>
366
+.recordForm{
367
+  display: flex;
368
+  flex-wrap: wrap;
369
+  .el-form-item{
370
+    width:24%;
371
+    margin-right: 1%;
372
+  }
373
+  .width50{
374
+    width: 49%;
375
+  }
376
+}
377
+</style>
378
+

+ 562 - 0
src/xt_pages/hospitalStation/components/registerDialog.vue View File

@@ -0,0 +1,562 @@
1
+<template>
2
+  <el-dialog width="854px" class="registerDialog" :title="titles" :visible.sync="visibility"
3
+             :close-on-click-modal="isClose"
4
+             :close-on-press-escape="isClose">
5
+
6
+    <el-form :model="form" :rules="rules" ref="formValue" label-width="100px">
7
+      <el-form-item label="患者姓名:" prop="name" :validate-event="is_Name">
8
+        <el-autocomplete
9
+          class="checkSearch"
10
+          popper-class="my-autocomplete"
11
+          v-model="form.name"
12
+          :fetch-suggestions="querySearchAsync"
13
+          :trigger-on-focus="false"
14
+          placeholder="请输入病人名字"
15
+          @select="handleSelect"
16
+          style="width:160px;"
17
+        >
18
+          <i class="el-icon-search el-input__icon" slot="suffix"></i>
19
+          <template slot-scope="{ item }">
20
+            <div class="name">{{ item.name }}</div>
21
+          </template>
22
+        </el-autocomplete>
23
+      </el-form-item>
24
+
25
+      <el-form-item label="性别:" prop="gender" :validate-event="is_Name">
26
+        <el-select v-model="form.gender" placeholder="请选择" style="width:100%;">
27
+          <el-option
28
+            v-for="item in sex"
29
+            :key="item.value"
30
+            :label="item.label"
31
+            :value="item.value">
32
+          </el-option>
33
+        </el-select>
34
+
35
+
36
+      </el-form-item>
37
+
38
+      <el-form-item label="年龄:" prop="age" :validate-event="is_Name">
39
+        <el-input v-model="form.age"></el-input>
40
+      </el-form-item>
41
+
42
+
43
+      <el-form-item label="出生日期:" prop="birthday" :validate-event="is_Name">
44
+        <el-date-picker v-model="form.birthday" type="date" format="yyyy-MM-dd"
45
+                        value-format="yyyy-MM-dd" placeholder="选择日期" style="width:100%;"></el-date-picker>
46
+      </el-form-item>
47
+
48
+      <el-form-item label="手机号码:" prop="phone">
49
+        <el-input v-model="form.phone"></el-input>
50
+      </el-form-item>
51
+
52
+
53
+      <el-form-item label="医疗类别:">
54
+        <el-select v-model="form.medical_care" placeholder="请选择" style="width:100%;">
55
+          <el-option
56
+            v-for="(item,index) in medical_care"
57
+            :key="index"
58
+            :label="item.label"
59
+            :value="item.value">
60
+          </el-option>
61
+        </el-select>
62
+      </el-form-item>
63
+
64
+
65
+      <el-form-item label="证件类型:" prop="certificates" :validate-event="is_Name">
66
+        <el-select v-model="form.certificates" placeholder="请选择" style="width:100%;">
67
+          <el-option
68
+            v-for="item in certificates"
69
+            :key="item.value"
70
+            :label="item.label"
71
+            :value="item.value">
72
+          </el-option>
73
+        </el-select>
74
+      </el-form-item>
75
+
76
+      <el-form-item label="证件号码:" prop="id_card" :validate-event="is_Name">
77
+        <el-input v-model="form.id_card"></el-input>
78
+      </el-form-item>
79
+
80
+      <el-form-item label="处方类型:" prop="p_type" :validate-event="is_Name">
81
+        <el-select style="margin-right:5px;width:100px;" v-model="form.p_type" placeholder=""
82
+                   >
83
+          <el-option
84
+            v-for="(item,index) in registers"
85
+            :key="index"
86
+            :label="item.label"
87
+            :value="item.value">
88
+          </el-option>
89
+        </el-select>
90
+      </el-form-item>
91
+      <el-form-item label="大病类别:" prop="sick_type" :validate-event="is_Name">
92
+        <el-select style="margin-right:5px;width:100px;" v-model="form.sick_type" placeholder="">
93
+          <el-option
94
+            v-for="(item,index) in sick"
95
+            :key="index"
96
+            :label="item.class_name"
97
+            :value="item.id">
98
+          </el-option>
99
+        </el-select>
100
+      </el-form-item>
101
+
102
+      <el-form-item label="诊断:" prop="diagnosis" :validate-event="is_Name">
103
+        <el-select style="margin-right:5px;width:100px;" v-model="form.diagnosis" placeholder="">
104
+          <el-option
105
+            v-for="(item,index) in diagnoses"
106
+            :key="index"
107
+            :label="item.class_name"
108
+            :value="item.id">
109
+          </el-option>
110
+        </el-select>
111
+      </el-form-item>
112
+
113
+
114
+      <el-form-item label="结算类型:">
115
+        <el-select v-model="form.settlement_value" placeholder="请选择" style="width:100%;">
116
+          <el-option
117
+            v-for="item in settlement"
118
+            :key="item.value"
119
+            :label="item.label"
120
+            :value="item.value">
121
+          </el-option>
122
+        </el-select>
123
+      </el-form-item>
124
+
125
+
126
+      <el-form-item label="社保类型:">
127
+        <el-select v-model="form.social_type" placeholder="请选择" style="width:100%;">
128
+          <el-option
129
+            v-for="item in medicalCare"
130
+            :key="item.value"
131
+            :label="item.label"
132
+            :value="item.value">
133
+          </el-option>
134
+        </el-select>
135
+      </el-form-item>
136
+
137
+
138
+      <el-form-item label="读卡类型:" prop="id_card_type" :validate-event="is_Name">
139
+        <el-select v-model="form.id_card_type" placeholder="请选择">
140
+          <el-option
141
+            v-for="item in IDCardTypes"
142
+            :key="item.value"
143
+            :label="item.label"
144
+            :value="item.value">
145
+          </el-option>
146
+        </el-select>
147
+      </el-form-item>
148
+
149
+
150
+      <el-form-item class="specialFormItem" label="医保卡号:">
151
+        <div style="display:flex;">
152
+          <el-input v-model="form.medical_insurance_card"></el-input>
153
+          <el-button style="margin-left:10px;" type="primary" @click="reading">读卡</el-button>
154
+
155
+        </div>
156
+      </el-form-item>
157
+
158
+      <el-form-item label="挂号类型:" prop="register" :validate-event="is_Name">
159
+        <el-select v-model="form.register" placeholder="请选择" style="width:100%;">
160
+          <el-option
161
+            v-for="item in register"
162
+            :key="item.value"
163
+            :label="item.label"
164
+            :value="item.value">
165
+          </el-option>
166
+        </el-select>
167
+      </el-form-item>
168
+      <el-form-item label="挂号费:">
169
+        <el-input  v-model="form.registration_fee"></el-input>
170
+      </el-form-item>
171
+      <el-form-item label="诊疗费:">
172
+        <el-input v-model="form.medical_expenses"></el-input>
173
+      </el-form-item>
174
+    </el-form>
175
+
176
+    <span slot="footer" class="dialog-footer">
177
+    <el-button @click="cancel('formValue')">取 消</el-button>
178
+    <el-button type="primary" @click="confirm('formValue')">挂 号</el-button>
179
+  </span>
180
+  </el-dialog>
181
+
182
+</template>
183
+
184
+<script>
185
+  import {uParseTime,jsGetAge} from "@/utils/tools";
186
+  import axios from 'axios'
187
+  import {PostSearch} from '@/api/patient'
188
+
189
+  import {getDictionaryDataConfig} from '@/utils/data'
190
+
191
+  export default {
192
+
193
+    name: 'registerDialog',
194
+
195
+    data() {
196
+
197
+      return {
198
+        registers: [
199
+          {value: 11, label: "普通门诊"},
200
+          {value: 12, label: '门诊挂号'},
201
+          {value: 13, label: "急诊"},
202
+          {value: 14, label: "门诊特殊病"},
203
+          {value: 15, label: "门诊统筹"},
204
+          {value: 16, label: "门诊慢性病"},
205
+          {value: 21, label: "普通住院"},
206
+        ],
207
+        medical_care:[
208
+          {value: 11, label: "普通门诊"},
209
+          {value: 12, label: '家庭通道'},
210
+          {value: 13, label: "门诊大病"},
211
+          {value: 14, label: "重疾特药"},
212
+          {value: 15, label: "门诊慢病"},
213
+          {value: 16, label: "门诊特检"},
214
+          {value: 17, label: "健康体检"},
215
+          {value: 18, label: "预防接种"},
216
+          {value: 19, label: "门诊输血"},
217
+          {value: 91, label: "新冠肺炎门诊"},
218
+        ],
219
+
220
+
221
+
222
+
223
+        form: {
224
+          id: '',
225
+          settlement_value: '',
226
+          medical_insurance_card: '',
227
+          name: '',
228
+          gender: '',
229
+          certificates: 1,
230
+          p_type:'',
231
+          sick_type:'',
232
+          diagnosis:'',
233
+          medical_care: '',
234
+          birthday: '',
235
+          age: '',
236
+          id_card: '',
237
+          register: '',
238
+          doctor: '',
239
+          id_card_type: 1,
240
+          department: '',
241
+          registration_fee: '',
242
+          medical_expenses: '',
243
+          cost: '',
244
+          phone: '',
245
+          social_type: '',
246
+        }, IDCardTypes: [{
247
+          value: 1,
248
+          label: '社保卡'
249
+        }, {
250
+          value: 2,
251
+          label: "身份证"
252
+        }, {
253
+          value: 3,
254
+          label: "电子凭证"
255
+        },],
256
+        settlement: [
257
+          {value: 1, label: '医保'},
258
+          {value: 2, label: '自费'},
259
+          {value: 3, label: '公费'},
260
+          {value: 4, label: '农保'},
261
+          {value: 5, label: '会员'},
262
+          {value: 6, label: '职工'},
263
+          {value: 7, label: '合同'}
264
+        ],
265
+        sex: [{
266
+          value: 1,
267
+          label: '男'
268
+        }, {
269
+          value: 2,
270
+          label: '女'
271
+        }],
272
+        certificates: [{
273
+          value: 1,
274
+          label: '内地身份证'
275
+        }, {
276
+          value: 2,
277
+          label: "社保卡"
278
+        }, {
279
+          value: 3,
280
+          label: "护照"
281
+        }, {
282
+          value: 4,
283
+          label: "军官证"
284
+        }, {
285
+          value: 5,
286
+          label: "台胞证"
287
+        }, {
288
+          value: 6,
289
+          label: "港澳地区身份证"
290
+        }],
291
+        medicalCare: [{
292
+          value: 1,
293
+          label: '职工基本医疗保险'
294
+        }, {
295
+          value: 2,
296
+          label: "公务员医疗补助"
297
+        }, {
298
+          value: 3,
299
+          label: "大额医疗费用补助"
300
+        }, {
301
+          value: 4,
302
+          label: "离休人员医疗"
303
+        }, {
304
+          value: 5,
305
+          label: "城乡居民基本医疗保险"
306
+        }, {
307
+          value: 6,
308
+          label: "城乡居民大病医疗保险"
309
+        }, {
310
+            value: 7,
311
+            label: "生育保险"
312
+          }],
313
+        register: [{
314
+          value: 1,
315
+          label: '普通'
316
+        }, {
317
+          value: 2,
318
+          label: "主治"
319
+        }, {
320
+          value: 3,
321
+          label: "主任"
322
+        }, {
323
+          value: 4,
324
+          label: "免收诊金"
325
+        }, {
326
+          value: 5,
327
+          label: "专家"
328
+        }],
329
+        rules: {
330
+          name: [{required: true, message: "患者姓名不能为空", trigger: 'blur'}],
331
+          gender: [{required: true, message: "患者性别不能为空", trigger: 'blur'}],
332
+          id_card: [{required: true, message: '证件号码不能为空', trigger: 'blur'}],
333
+          register: [{required: true, message: '请选择挂号类型', trigger: 'blur'}],
334
+          doctor: [{required: true, message: '请选择医生', trigger: 'blur'}],
335
+          department: [{required: true, message: '请填写科室', trigger: 'blur'}],
336
+          age: [{required: true, message: "患者年龄不能为空", trigger: 'blur'}],
337
+          birthday: [{required: true, message: "患者出生日期不能为空", trigger: 'blur'}],
338
+          certificates: [{required: true, message: "证件类型不能为空", trigger: 'change'}],
339
+          id_card_type: [{required: true, message: "读卡类型不能为空", trigger: 'change'}],
340
+          p_type: [{required: true, message: "处方类型不能为空", trigger: 'change'}],
341
+          sick_type: [{required: true, message: "大病类别不能为空", trigger: 'change'}],
342
+          diagnosis: [{required: true, message: "诊断不能为空", trigger: 'change'}],
343
+        },
344
+        visibility: false,
345
+        labelPosition: 'right',
346
+        isClose: false,
347
+        resetForm: {
348
+          settlement_value: '',
349
+          medical_insurance_card: '',
350
+          name: '',
351
+          gender: '',
352
+          certificates: '',
353
+          id_card_type: '',
354
+          medical_care: '',
355
+          birthday: '',
356
+          age: '',
357
+          id_card: '',
358
+          register: '',
359
+          doctor: '',
360
+          department: '',
361
+          registration_fee: '',
362
+          medical_expenses: '',
363
+          cost: '',
364
+          phone: '',
365
+          social_type: '',
366
+        },
367
+
368
+      }
369
+    },
370
+    props: {
371
+
372
+      titles: {
373
+        type: String,
374
+        default: ''
375
+      },
376
+      formValue: {
377
+        type: Object
378
+      },
379
+      type: {
380
+        type: Number,
381
+        default: 1
382
+
383
+      },
384
+      isCreated: {
385
+        type: Number,
386
+        default: 1
387
+
388
+      },
389
+      sick: Array,
390
+      diagnoses: Array,
391
+    },
392
+    methods: {
393
+      handleSelect(val) {
394
+        this.form.id = val.id;
395
+        this.form.name = val.name;
396
+        this.form.gender = val.gender;
397
+        this.form.birthday = uParseTime(val.birthday, '{y}-{m}-{d}');
398
+        this.form.phone = val.phone;
399
+        this.form.id_card = val.id_card_no;
400
+        var thisLen =  this.form.id_card.length;
401
+        var birth = "";
402
+        if (thisLen == 15) {
403
+          birth = "19" + this.form.id_card.substr(6, 6);
404
+        } else {
405
+          birth = this.form.id_card.substr(6, 8);
406
+        }
407
+        var births =
408
+                birth.substr(0, 4) +
409
+                "-" +
410
+                birth.substr(4, 2) +
411
+                "-" +
412
+                birth.substr(6, 2);
413
+        this.form.age = jsGetAge(births, "-");
414
+      },
415
+      querySearchAsync(keyword, cb) {
416
+        let key = '';
417
+        if (keyword != undefined) {
418
+          key = keyword
419
+        }
420
+        let searchArray = [];
421
+        PostSearch(key).then(response => {
422
+          if (response.data.state == 1) {
423
+            searchArray = response.data.data.patient;
424
+            cb(searchArray)
425
+          } else {
426
+            cb([])
427
+          }
428
+        })
429
+      },
430
+      reading(medicalInsuranceCard) {
431
+        var that = this;
432
+        if (this.form.id_card_type.length == 0 || this.form.id_card_type == 0) {
433
+          this.$message.error("请先选择读卡类型");
434
+          return
435
+        }
436
+        let params = {
437
+          'id_card_type': this.form.id_card_type,
438
+          'admin_user_id':this.$store.getters.xt_user.user.id,
439
+
440
+        };
441
+        axios.get('http://127.0.0.1:9532/api/sscard', {
442
+          params: params
443
+        })
444
+          .then(function (response) {
445
+            if (response.data.state == 0) {
446
+              that.$message.error(response.data.msg);
447
+              return false
448
+            } else {
449
+              var patient = response.data.data.patient;
450
+
451
+              if (that.form.id_card_type == 1) {
452
+                this.form.id = patient.id;
453
+                that.form.name = patient.name;
454
+                that.form.sex = patient.gender;
455
+                that.form.age = patient.age;
456
+                that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}');
457
+                that.form.phone = patient.phone;
458
+                that.form.idCard = patient.id_card_no;
459
+                that.form.medicalInsuranceCard = response.data.data.number
460
+
461
+              } else if (that.form.id_card_type == 2) {
462
+                this.form.id = patient.id;
463
+                that.form.name = patient.name;
464
+                that.form.sex = patient.gender;
465
+                that.form.age = patient.age;
466
+                that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}');
467
+                that.form.phone = patient.phone;
468
+                that.form.idCard = patient.id_card_no
469
+              }
470
+              that.$message({message: '读卡成功', type: 'success'})
471
+            }
472
+          })
473
+          .catch(function (error) {
474
+
475
+          });
476
+
477
+
478
+      },
479
+      getDictionaryDataConfig(module, filed_name) {
480
+        return getDictionaryDataConfig(module, filed_name)
481
+      },
482
+    show: function() {
483
+        this.visibility = true;
484
+        // this.form = Object.assign({}, this.resetForm)
485
+        this.form.id = 0;
486
+        this.form.settlement_value = '';
487
+        this.form.medical_insurance_card = '';
488
+        this.form.name = '';
489
+        this.form.gender = '';
490
+        this.form.medical_care = '';
491
+        this.form.birthda = '';
492
+        this.form.age = '';
493
+        this.form.id_card = '';
494
+        this.form.register = '';
495
+        this.form.doctor = '';
496
+        this.form.department = '';
497
+        this.form.registration_fee = '';
498
+        this.form.medical_expenses = '';
499
+        this.form.cost = '';
500
+        this.form.phone = '';
501
+        this.form.social_type = '';
502
+
503
+        this.form.p_type = 14;
504
+        this.form.sick_type = this.sick[0].id;
505
+        this.form.diagnosis = this.diagnoses[0].id;
506
+        this.form.id_card_type = 2;
507
+        this.form.certificates = 1
508
+
509
+        // this.form.name = patientInfo.name
510
+        // this.form.gender = patientInfo.gender
511
+        // this.form.age = patientInfo.age
512
+        // this.form.birthday = patientInfo.birthday
513
+        // this.form.phone = patientInfo.phone
514
+        // this.form.birthday = patientInfo.birthday
515
+        // this.form.id_card = patientInfo.id_card_no
516
+        // this.form.social_type = patientInfo.health_care_type
517
+        // if( this.form.social_type == 0){
518
+        //   this.form.social_type = ""
519
+        // }
520
+
521
+      },
522
+
523
+      hide: function () {
524
+        this.visibility = false;
525
+        this.$refs['formValue'].resetFields()
526
+      }, cancel: function (formName) {
527
+        this.$emit('cancel', this.getValue());
528
+        this.$refs['formValue'].resetFields()
529
+      },
530
+      confirm: function (formName) {
531
+        this.$refs['formValue'].validate((valid) => {
532
+          if (valid) {
533
+            let value = {};
534
+            value = this.getValue();
535
+            this.$emit('confirm', value)
536
+          }
537
+        })
538
+      },
539
+      getValue: function () {
540
+        let form = {};
541
+        form = this.form;
542
+        return form
543
+      }
544
+    }
545
+
546
+  }
547
+</script>
548
+
549
+<style lang="scss" scoped>
550
+  .registerDialog {
551
+
552
+  .el-form {
553
+    display: flex;
554
+    flex-wrap: wrap;
555
+  }
556
+
557
+  .el-form-item {
558
+    width: 50%;
559
+  }
560
+
561
+  }
562
+</style>

+ 537 - 0
src/xt_pages/hospitalStation/components/registerDialog9504.vue View File

@@ -0,0 +1,537 @@
1
+<template>
2
+    <el-dialog width="854px" class="registerDialog" :title="titles" :visible.sync="visibility"
3
+               :close-on-click-modal="isClose"
4
+               :close-on-press-escape="isClose">
5
+
6
+        <el-form :model="form" :rules="rules" ref="formValue" label-width="100px">
7
+            <el-form-item label="患者姓名:" prop="name" >
8
+                <el-autocomplete
9
+                        class="checkSearch"
10
+                        popper-class="my-autocomplete"
11
+                        v-model="form.name"
12
+                        :fetch-suggestions="querySearchAsync"
13
+                        :trigger-on-focus="false"
14
+                        placeholder="请输入病人名字"
15
+                        @select="handleSelect"
16
+                        style="width:160px;"
17
+                >
18
+                    <i class="el-icon-search el-input__icon" slot="suffix"></i>
19
+                    <template slot-scope="{ item }">
20
+                        <div class="name">{{ item.name }}</div>
21
+                    </template>
22
+                </el-autocomplete>
23
+            </el-form-item>
24
+
25
+            <el-form-item label="性别:" prop="gender" >
26
+                <el-select v-model="form.gender" placeholder="请选择" style="width:100%;">
27
+                    <el-option
28
+                            v-for="item in sex"
29
+                            :key="item.value"
30
+                            :label="item.label"
31
+                            :value="item.value">
32
+                    </el-option>
33
+                </el-select>
34
+
35
+
36
+            </el-form-item>
37
+
38
+            <el-form-item label="年龄:" prop="age" >
39
+                <el-input v-model="form.age"></el-input>
40
+            </el-form-item>
41
+
42
+
43
+            <el-form-item label="出生日期:" prop="birthday" >
44
+                <el-date-picker v-model="form.birthday" type="date" format="yyyy-MM-dd"
45
+                                value-format="yyyy-MM-dd" placeholder="选择日期" style="width:100%;"></el-date-picker>
46
+            </el-form-item>
47
+
48
+            <el-form-item label="手机号码:" prop="phone">
49
+                <el-input v-model="form.phone"></el-input>
50
+            </el-form-item>
51
+
52
+
53
+            <el-form-item label="医疗类别:" prop="medical_care">
54
+                <el-select v-model="form.medical_care"  placeholder="请选择" style="width:100%;">
55
+                    <el-option
56
+                            v-for="(item,index) in medical_care"
57
+                            :key="index"
58
+                            :label="item.label"
59
+                            :value="item.value">
60
+                    </el-option>
61
+                </el-select>
62
+            </el-form-item>
63
+
64
+
65
+            <el-form-item label="证件类型:" prop="certificates" >
66
+                <el-select v-model="form.certificates" placeholder="请选择" style="width:100%;">
67
+                    <el-option
68
+                            v-for="item in certificates"
69
+                            :key="item.value"
70
+                            :label="item.label"
71
+                            :value="item.value">
72
+                    </el-option>
73
+                </el-select>
74
+            </el-form-item>
75
+
76
+            <el-form-item label="证件号码:" prop="id_card">
77
+                <el-input v-model="form.id_card"></el-input>
78
+            </el-form-item>
79
+
80
+
81
+
82
+
83
+            <el-form-item label="结算类型:">
84
+                <el-select v-model="form.settlement_value" placeholder="请选择" style="width:100%;">
85
+                    <el-option
86
+                            v-for="item in settlement"
87
+                            :key="item.value"
88
+                            :label="item.label"
89
+                            :value="item.value">
90
+                    </el-option>
91
+                </el-select>
92
+            </el-form-item>
93
+
94
+
95
+            <el-form-item label="社保类型:">
96
+                <el-select v-model="form.social_type" placeholder="请选择" style="width:100%;">
97
+                    <el-option
98
+                            v-for="item in medicalCare"
99
+                            :key="item.value"
100
+                            :label="item.label"
101
+                            :value="item.value">
102
+                    </el-option>
103
+                </el-select>
104
+            </el-form-item>
105
+
106
+
107
+            <el-form-item label="读卡类型:" prop="id_card_type">
108
+                <el-select v-model="form.id_card_type" placeholder="请选择">
109
+                    <el-option
110
+                            v-for="item in IDCardTypes"
111
+                            :key="item.value"
112
+                            :label="item.label"
113
+                            :value="item.value">
114
+                    </el-option>
115
+                </el-select>
116
+            </el-form-item>
117
+
118
+
119
+            <el-form-item class="specialFormItem" label="医保卡号:">
120
+                <div style="display:flex;">
121
+                    <el-input v-model="form.medical_insurance_card"></el-input>
122
+                    <el-button style="margin-left:10px;" type="primary" @click="reading" v-loading="read_loading">读卡</el-button>
123
+
124
+                </div>
125
+            </el-form-item>
126
+
127
+            <el-form-item label="挂号类型:" prop="register" >
128
+                <el-select v-model="form.register" placeholder="请选择" style="width:100%;" @change="changeRegister">
129
+                    <el-option
130
+                            v-for="item in register"
131
+                            :key="item.value"
132
+                            :label="item.label"
133
+                            :value="item.value">
134
+                    </el-option>
135
+                </el-select>
136
+            </el-form-item>
137
+            <el-form-item label="挂号费:">
138
+                <el-input readonly v-model="form.registration_fee"></el-input>
139
+            </el-form-item>
140
+            <el-form-item label="诊疗费:">
141
+                <el-input readonly v-model="form.medical_expenses"></el-input>
142
+            </el-form-item>
143
+
144
+            <el-form-item label="医生:" prop="doctor" >
145
+                <el-select v-model="form.doctor" placeholder="请选择" @change="changeDoctor">
146
+                    <el-option
147
+                            v-for="(item,index) in doctors"
148
+                            :key="index"
149
+                            :label="item.user_name"
150
+                            :value="item.admin_user_id">
151
+                    </el-option>
152
+                </el-select>
153
+            </el-form-item>
154
+
155
+            <el-form-item label="科室:" prop="department" >
156
+                <el-select v-model="form.department" placeholder="请选择">
157
+                    <el-option
158
+                            v-for="(item,index) in departments"
159
+                            :key="index"
160
+                            :label="item.name"
161
+                            :value="item.id">
162
+                    </el-option>
163
+                </el-select>
164
+            </el-form-item>
165
+        </el-form>
166
+
167
+        <span slot="footer" class="dialog-footer">
168
+    <el-button @click="cancel('formValue')">取 消</el-button>
169
+    <el-button type="primary" @click="confirm('formValue')">挂 号</el-button>
170
+  </span>
171
+    </el-dialog>
172
+
173
+</template>
174
+
175
+<script>
176
+  import {uParseTime} from "@/utils/tools";
177
+  import axios from 'axios'
178
+  import {PostSearch} from '@/api/patient'
179
+  import {getDictionaryDataConfig} from '@/utils/data'
180
+  export default {
181
+    name: 'registerDialog9504',
182
+
183
+    data() {
184
+
185
+      return {
186
+        read_loading:false,
187
+        registers: [
188
+          {value: 11, label: "普通门诊"},
189
+          {value: 12, label: '门诊挂号'},
190
+          {value: 13, label: "急诊"},
191
+          {value: 14, label: "门诊特殊病"},
192
+          {value: 15, label: "门诊统筹"},
193
+          {value: 16, label: "门诊慢性病"},
194
+          {value: 21, label: "普通住院"},
195
+        ],
196
+        medical_care:[
197
+          {value: 11, label: "普通门诊"},
198
+          {value: 12, label: '家庭通道'},
199
+          {value: 13, label: "门诊大病"},
200
+          {value: 14, label: "重疾特药"},
201
+          {value: 15, label: "门诊慢病"},
202
+          {value: 16, label: "门诊特检"},
203
+          {value: 17, label: "健康体检"},
204
+          {value: 18, label: "预防接种"},
205
+          {value: 19, label: "门诊输血"},
206
+          {value: 91, label: "新冠肺炎门诊"},
207
+        ],
208
+
209
+
210
+        form: {
211
+          id: '',
212
+          settlement_value: '',
213
+          medical_insurance_card: '',
214
+          name: '',
215
+          gender: '',
216
+          certificates: '',
217
+          p_type:'',
218
+          sick_type:'',
219
+          diagnosis:'',
220
+          medical_care: '',
221
+          birthday: '',
222
+          age: '',
223
+          id_card: '',
224
+          register: '',
225
+          doctor: '',
226
+          id_card_type: '',
227
+          department: '',
228
+          registration_fee: '',
229
+          medical_expenses: '',
230
+          cost: '',
231
+          phone: '',
232
+          social_type: '',
233
+        }, IDCardTypes: [{
234
+          value: 1,
235
+          label: '社保卡'
236
+        }],
237
+        settlement: [
238
+          {value: 1, label: '医保'},
239
+          {value: 2, label: '自费'},
240
+          {value: 3, label: '公费'},
241
+          {value: 4, label: '农保'},
242
+          {value: 5, label: '会员'},
243
+          {value: 6, label: '职工'},
244
+          {value: 7, label: '合同'}
245
+        ],
246
+        sex: [{
247
+          value: 1,
248
+          label: '男'
249
+        }, {
250
+          value: 2,
251
+          label: '女'
252
+        }],
253
+        certificates: [{
254
+          value: 1,
255
+          label: '内地身份证'
256
+        }, {
257
+          value: 2,
258
+          label: "社保卡"
259
+        }, {
260
+          value: 3,
261
+          label: "护照"
262
+        }, {
263
+          value: 4,
264
+          label: "军官证"
265
+        }, {
266
+          value: 5,
267
+          label: "台胞证"
268
+        }, {
269
+          value: 6,
270
+          label: "港澳地区身份证"
271
+        }],
272
+        medicalCare: [{
273
+          value: 1,
274
+          label: '职工基本医疗保险'
275
+        }, {
276
+          value: 2,
277
+          label: "公务员医疗补助"
278
+        }, {
279
+          value: 3,
280
+          label: "大额医疗费用补助"
281
+        }, {
282
+          value: 4,
283
+          label: "离休人员医疗"
284
+        }, {
285
+          value: 5,
286
+          label: "城乡居民基本医疗保险"
287
+        }, {
288
+          value: 6,
289
+          label: "城乡居民大病医疗保险"
290
+        }, {
291
+          value: 7,
292
+          label: "生育保险"
293
+        }],
294
+        register: [{
295
+          value: 1,
296
+          label: '普通'
297
+        }, {
298
+          value: 2,
299
+          label: "主治"
300
+        }, {
301
+          value: 3,
302
+          label: "主任"
303
+        }, {
304
+          value: 4,
305
+          label: "免收诊金"
306
+        }, {
307
+          value: 5,
308
+          label: "专家"
309
+        }],
310
+        rules: {
311
+          name: [{required: true, message: "患者姓名不能为空", trigger: 'blur'}],
312
+          gender: [{required: true, message: "患者性别不能为空", trigger: 'blur'}],
313
+          id_card: [{required: true, message: '证件号码不能为空', trigger: 'blur'}],
314
+          register: [{required: true, message: '请选择挂号类型', trigger: 'blur'}],
315
+          doctor: [{required: true, message: '请选择医生', trigger: 'blur'}],
316
+          department: [{required: true, message: '请填写科室', trigger: 'blur'}],
317
+          age: [{required: true, message: "患者年龄不能为空", trigger: 'blur'}],
318
+          birthday: [{required: true, message: "患者出生日期不能为空", trigger: 'blur'}],
319
+          certificates: [{required: true, message: "证件类型不能为空", trigger: 'change'}],
320
+          id_card_type: [{required: true, message: "读卡类型不能为空", trigger: 'change'}],
321
+          medical_care: [{required: true, message: "医疗类别不能为空", trigger: 'change'}],
322
+
323
+        },
324
+        visibility: false,
325
+        labelPosition: 'right',
326
+        isClose: false,
327
+        resetForm: {
328
+          settlement_value: '',
329
+          medical_insurance_card: '',
330
+          name: '',
331
+          gender: '',
332
+          certificates: '',
333
+          id_card_type: '',
334
+          medical_care: '',
335
+          birthday: '',
336
+          age: '',
337
+          id_card: '',
338
+          register: '',
339
+          doctor: '',
340
+          department: '',
341
+          registration_fee: '',
342
+          medical_expenses: '',
343
+          cost: '',
344
+          phone: '',
345
+          social_type: '',
346
+        },
347
+
348
+      }
349
+    },
350
+    props: {
351
+      departments:{
352
+        type: Array,
353
+      },
354
+      doctors:{
355
+        type: Array,
356
+      },
357
+      titles: {
358
+        type: String,
359
+        default: ''
360
+      },
361
+      formValue: {
362
+        type: Object
363
+      },
364
+      type: {
365
+        type: Number,
366
+        default: 1
367
+
368
+      },
369
+      isCreated: {
370
+        type: Number,
371
+        default: 1
372
+
373
+      },
374
+      sick: Array,
375
+      diagnoses: Array,
376
+    },
377
+    methods: {
378
+      changeDoctor() {
379
+        for (let i = 0; i < this.doctors.length; i++) {
380
+          if (this.doctors[i].admin_user_id == this.form.doctor) {
381
+            console.log(this.doctors[i].department_id);
382
+            this.form.department = this.doctors[i].department_id;
383
+            if(this.form.department == 0){
384
+
385
+              this.form.department = ""
386
+            }
387
+          }
388
+        }
389
+      },
390
+      changeRegister(value){
391
+        if (value != 4){
392
+          this.form.registration_fee = 10;
393
+          this.form.medical_expenses = 0
394
+        }else{
395
+          this.form.registration_fee = 0;
396
+          this.form.medical_expenses = 0
397
+        }
398
+      },
399
+      handleSelect(val) {
400
+        this.form.id = val.id;
401
+        this.form.name = val.name;
402
+        this.form.gender = val.gender;
403
+        this.form.age = val.age;
404
+        this.form.birthday = uParseTime(val.birthday, '{y}-{m}-{d}');
405
+        this.form.phone = val.phone;
406
+        this.form.id_card = val.id_card_no
407
+      },
408
+      querySearchAsync(keyword, cb) {
409
+        let key = '';
410
+        if (keyword != undefined) {
411
+          key = keyword
412
+        }
413
+        let searchArray = [];
414
+        PostSearch(key).then(response => {
415
+          if (response.data.state == 1) {
416
+            searchArray = response.data.data.patient;
417
+            cb(searchArray)
418
+          } else {
419
+            cb([])
420
+          }
421
+        })
422
+      },
423
+      reading() {
424
+
425
+        var that = this;
426
+        if (this.form.id_card_type.length == 0 || this.form.id_card_type == 0) {
427
+          this.$message.error("请先选择读卡类型");
428
+          return
429
+        }
430
+        let params = {
431
+          'id_card_type': this.form.id_card_type,
432
+          'admin_user_id':this.$store.getters.xt_user.user.id,
433
+
434
+        };
435
+        this.read_loading = true;
436
+        axios.get('http://127.0.0.1:9532/sz/api/readcard', {
437
+          params: params
438
+        })
439
+          .then(function (response) {
440
+            if (response.data.state == 0) {
441
+              that.read_loading = false;
442
+
443
+              that.$message.error(response.data.msg);
444
+              return false
445
+            } else {
446
+              that.read_loading = false;
447
+              var patient = response.data.data.patient;
448
+              if (that.form.id_card_type == 1) {
449
+                that.form.id = patient.id;
450
+                that.form.name = patient.name;
451
+                that.form.gender = patient.gender;
452
+                that.form.age = patient.age;
453
+                that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}');
454
+                that.form.phone = patient.phone;
455
+                that.form.id_card = patient.id_card_no;
456
+                that.form.medical_insurance_card = response.data.data.health_card_no
457
+              } else if (that.form.id_card_type == 2) {
458
+                this.form.id = patient.id;
459
+                that.form.name = patient.name;
460
+                that.form.gender = patient.gender;
461
+                that.form.age = patient.age;
462
+                that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}');
463
+                that.form.phone = patient.phone;
464
+                that.form.id_card = patient.id_card_no
465
+              }
466
+              that.$message({message: '读卡成功', type: 'success'})
467
+
468
+            }
469
+          })
470
+          .catch(function (error) {
471
+
472
+          });
473
+
474
+
475
+      },
476
+      getDictionaryDataConfig(module, filed_name) {
477
+        return getDictionaryDataConfig(module, filed_name)
478
+      },
479
+      show: function () {
480
+        this.form = Object.assign({}, this.resetForm);
481
+        // this.form.name = patientInfo.name
482
+        // this.form.gender = patientInfo.gender
483
+        // this.form.age = patientInfo.age
484
+        // this.form.birthday = patientInfo.birthday
485
+        // this.form.phone = patientInfo.phone
486
+        // this.form.birthday = patientInfo.birthday
487
+        // this.form.id_card = patientInfo.id_card_no
488
+        // this.form.social_type = patientInfo.health_care_type
489
+        this.form.id_card_type = 1;
490
+        this.form.certificates = 1;
491
+
492
+        // if( this.form.social_type == 0){
493
+        //   this.form.social_type = ""
494
+        //
495
+        // }
496
+        this.visibility = true
497
+
498
+      }, hide: function () {
499
+        this.visibility = false;
500
+        this.$refs['formValue'].resetFields()
501
+      }, cancel: function (formName) {
502
+        this.$emit('cancel', this.getValue());
503
+        this.$refs['formValue'].resetFields()
504
+      },
505
+      confirm: function (formName) {
506
+        this.$refs['formValue'].validate((valid) => {
507
+          if (valid) {
508
+            let value = {};
509
+            value = this.getValue();
510
+            this.$emit('confirm', value)
511
+          }
512
+        })
513
+      },
514
+      getValue: function () {
515
+        let form = {};
516
+        form = this.form;
517
+        return form
518
+      }
519
+    }
520
+
521
+  }
522
+</script>
523
+
524
+<style lang="scss" scoped>
525
+    .registerDialog {
526
+
527
+    .el-form {
528
+        display: flex;
529
+        flex-wrap: wrap;
530
+    }
531
+
532
+    .el-form-item {
533
+        width: 50%;
534
+    }
535
+
536
+    }
537
+</style>

+ 136 - 0
src/xt_pages/hospitalStation/components/saveRecordTemplate.vue View File

@@ -0,0 +1,136 @@
1
+<template>
2
+    <el-dialog
3
+        title="保存病历模板"
4
+        width="600px"
5
+        :visible.sync="visible"
6
+        :before-close="_close"
7
+        class="recordDialog"
8
+    >
9
+        <el-form class="recordForm" :model="form"  ref="form" label-width="80px">
10
+            <el-form-item label="模板名称: " prop="name" style="width:100%;">
11
+                <el-input v-model="template_name" placeholder=""></el-input>
12
+            </el-form-item>
13
+            <el-form-item label="模板说明:" prop="name" style="width:100%;">
14
+                <el-input
15
+                type="textarea"
16
+                :rows="2"
17
+                placeholder="请输入内容"
18
+                v-model="template_remark">
19
+                </el-input>
20
+            </el-form-item>
21
+            <el-form-item label="创建人:" prop="name" style="width:49%;">
22
+                <span>{{user_name}}</span>
23
+            </el-form-item>
24
+            <el-form-item label="创建时间:" prop="name" style="width:49%;">
25
+                {{start_time}}
26
+            </el-form-item>
27
+        </el-form>
28
+        <div slot="footer" class="dialog-footer">
29
+            <el-button @click="hide">取 消</el-button>
30
+            <el-button type="primary"  @click="submitAction()">保 存</el-button>
31
+        </div>
32
+    </el-dialog>
33
+</template>
34
+
35
+<script>
36
+const moment = require('moment');
37
+import { SaveHisPatientCaseHistoryTemplate } from "@/api/project/project"
38
+export default {
39
+    data(){
40
+        return{
41
+            visible:false,
42
+            form:{
43
+                name:''
44
+            },
45
+            mode_type:"1",
46
+            textarea:"",
47
+            chief_conplain:"",
48
+            past_history:"",
49
+            history_of_present_illness:"",
50
+            personal_history:"",
51
+            family_history:"",
52
+            diagnostic:"",
53
+            mode_type:"",
54
+            start_time:"",
55
+            user_name:"",
56
+            template_name:"",
57
+            template_remark:"",
58
+            mode_status:0,
59
+            doctor_advice:'',
60
+            remark:''
61
+        }
62
+     },
63
+
64
+    methods:{
65
+        _close: function(done) {
66
+            // this.clear()
67
+            done()
68
+        },
69
+        clear: function() {
70
+            this.form.id = 0;
71
+            this.form.name = "";
72
+            this.form.intro = "";
73
+        },
74
+        show(obj) {
75
+         console.log("obj",obj);
76
+         this.chief_conplain= obj.chief_conplaint;
77
+         this.past_history = obj.past_history;
78
+         this.history_of_present_illness = obj.history_of_present_illness;
79
+         this.personal_history = obj.personal_history;
80
+         this.family_history = obj.family_history;
81
+         this.diagnostic = obj.diagnostic;
82
+         this.doctor_advice = obj.doctor_advice;
83
+         this.remark = obj.remark;
84
+         this.visible = true
85
+        },
86
+        hide() {
87
+            // this.clear()
88
+            this.visible = false
89
+        },
90
+
91
+        submitAction(){
92
+          var params = {
93
+             template_name:this.template_name,
94
+             template_remark:this.template_remark,
95
+             user_name:this.user_name,
96
+             record_date:this.start_time,
97
+             chief_conplain:this.chief_conplain,
98
+             past_history:this.past_history,
99
+             history_of_present_illness:this.history_of_present_illness,
100
+             personal_history:this.personal_history,
101
+             family_history:this.family_history,
102
+             diagnostic:this.diagnostic,
103
+             doctor_advice:this.doctor_advice,
104
+             remark:this.remark
105
+            };
106
+         console.log("params",params);
107
+
108
+          SaveHisPatientCaseHistoryTemplate(params).then(response=>{
109
+              if(response.data.state == 1){
110
+                 this.mode_status = 1;
111
+                 this.$message.success("保存成功");
112
+                 this.visible = false
113
+
114
+              }
115
+          })
116
+        }
117
+    },
118
+    created(){
119
+      this.start_time = moment().format("YYYY-MM-DD HH:mm:ss");
120
+      this.user_name = this.$store.getters.xt_user.user.user_name
121
+
122
+    }
123
+}
124
+</script>
125
+
126
+<style lang="scss" scoped>
127
+.recordForm{
128
+    display: flex;
129
+    flex-wrap: wrap;
130
+    .el-form-item{
131
+        width:24%;
132
+        margin-right: 1%;
133
+    }
134
+}
135
+</style>
136
+

+ 89 - 0
src/xt_pages/hospitalStation/components/saveTemplate.vue View File

@@ -0,0 +1,89 @@
1
+<template>
2
+    <el-dialog
3
+        title="模板信息"
4
+        width="600px"
5
+        :visible.sync="visible"
6
+        :before-close="_close"
7
+    >
8
+        <div>
9
+            <el-form :model="form"  class="adviceForm" ref="form" label-width="100px" style="display: flex;flex-wrap: wrap;justify-content: space-between;">
10
+                <el-form-item label="创建人 : " style="width: 100%;margin-bottom:0;">
11
+                    医生
12
+                </el-form-item>
13
+                <el-form-item label="处方类型 : " style="width: 100%;margin-bottom:0;">
14
+                    药品模板
15
+                </el-form-item>
16
+                <el-form-item label="模板类型 : " style="width: 100%;margin-bottom:0;">
17
+                    <el-radio v-model="radio" label="1">临时</el-radio>
18
+                    <el-radio v-model="radio" label="2">长期</el-radio>
19
+                </el-form-item>
20
+                <el-form-item label="科室 : " style="width: 100%;">
21
+                    <el-select v-model="value" style="width:100%;" placeholder="请选择">
22
+                        <el-option
23
+                        v-for="item in options"
24
+                        :key="item.value"
25
+                        :label="item.label"
26
+                        :value="item.value">
27
+                        </el-option>
28
+                    </el-select>
29
+                </el-form-item>
30
+                <el-form-item label="模板名称 : " style="width: 100%;">
31
+                    <el-input v-model="form.name" placeholder=""></el-input>
32
+                </el-form-item>
33
+                <el-form-item label="模板说明 : " style="width: 100%;">
34
+                    <el-input v-model="form.name" placeholder=""></el-input>
35
+                </el-form-item>
36
+                <el-form-item label="诊断信息 : " style="width: 100%;">
37
+                    <el-input v-model="form.name" placeholder=""></el-input>
38
+                </el-form-item>
39
+                <el-form-item label="医嘱说明 : " style="width: 100%;">
40
+                    <el-input v-model="form.name" placeholder=""></el-input>
41
+                </el-form-item>
42
+                <el-form-item label="备注说明 : " style="width: 100%;">
43
+                    <el-input v-model="form.name" placeholder=""></el-input>
44
+                </el-form-item>
45
+            </el-form>
46
+        </div>
47
+        <div slot="footer" class="dialog-footer">
48
+            <el-button @click="hide">取 消</el-button>
49
+            <el-button type="primary" @click="submitAction()">保 存</el-button>
50
+        </div>
51
+    </el-dialog>         
52
+</template>
53
+
54
+<script>
55
+export default {
56
+    data(){
57
+        return{
58
+            visible:false,
59
+            form:{
60
+                name:''
61
+            },
62
+            radio:"1",
63
+            options:[],
64
+            value:''
65
+        }
66
+    },
67
+    methods:{
68
+        _close: function(done) {
69
+            // this.clear()
70
+            done()
71
+        },
72
+        clear: function() {
73
+            this.form.id = 0;
74
+            this.form.name = "";
75
+            this.form.intro = "";
76
+        },
77
+        show() {
78
+            // this.clear()
79
+            this.visible = true
80
+        },
81
+        hide() {
82
+            // this.clear()
83
+            this.visible = false
84
+        },
85
+    }
86
+}
87
+</script>
88
+
89
+

+ 96 - 0
src/xt_pages/hospitalStation/components/selectTemplate.vue View File

@@ -0,0 +1,96 @@
1
+<template>
2
+    <el-dialog
3
+        title="选择模板"
4
+        width="1000px"
5
+        :visible.sync="visible"
6
+        :before-close="_close"
7
+    >
8
+        <div style="display:flex;">
9
+            <div style="width: 201px;">
10
+                <el-table :data="tableData" border height="300" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
11
+                    <el-table-column align="center" prop="name" label="处方类型" width="100">
12
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
13
+                    </el-table-column>
14
+                    <el-table-column align="center" prop="name" label="模板名称" width="100">
15
+                        <template slot-scope="scope">{{ scope.row.date }}</template>
16
+                    </el-table-column>
17
+                </el-table> 
18
+            </div>
19
+            <el-table :data="tableData" border height="300" style="flex:1;margin-left:20px;" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
20
+                <el-table-column type="selection" width="55" align="center"></el-table-column>
21
+                <el-table-column align="center" prop="name" label="药品名称">
22
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
23
+                </el-table-column>
24
+                <el-table-column align="center" prop="name" label="药品规格">
25
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
26
+                </el-table-column>
27
+                <el-table-column align="center" prop="name" label="单次用量">
28
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
29
+                </el-table-column>
30
+                <el-table-column align="center" prop="name" label="用法">
31
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
32
+                </el-table-column>
33
+                <el-table-column align="center" prop="name" label="频率">
34
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
35
+                </el-table-column>
36
+                <el-table-column align="center" prop="name" label="天数">
37
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
38
+                </el-table-column>
39
+                <el-table-column align="center" prop="name" label="总量">
40
+                    <template slot-scope="scope">{{ scope.row.date }}</template>
41
+                </el-table-column>
42
+            </el-table> 
43
+        </div>
44
+        <div slot="footer" class="dialog-footer">
45
+            <el-button @click="hide">取 消</el-button>
46
+            <el-button type="primary"  @click="submitAction()">保 存</el-button>
47
+        </div>
48
+    </el-dialog>         
49
+</template>
50
+
51
+<script>
52
+export default {
53
+    data(){
54
+        return{
55
+            visible:false,
56
+            tableData: [{
57
+            date: '2016-05-02',
58
+            name: '王小虎',
59
+            address: '上海市普陀区金沙江路 1518 弄'
60
+            }, {
61
+            date: '2016-05-04',
62
+            name: '王小虎',
63
+            address: '上海市普陀区金沙江路 1517 弄'
64
+            }, {
65
+            date: '2016-05-01',
66
+            name: '王小虎',
67
+            address: '上海市普陀区金沙江路 1519 弄'
68
+            }, {
69
+            date: '2016-05-03',
70
+            name: '王小虎',
71
+            address: '上海市普陀区金沙江路 1516 弄'
72
+            }]
73
+        }
74
+    },
75
+    methods:{
76
+        _close: function(done) {
77
+            // this.clear()
78
+            done()
79
+        },
80
+        clear: function() {
81
+            this.form.id = 0;
82
+            this.form.name = "";
83
+            this.form.intro = "";
84
+        },
85
+        show() {
86
+            // this.clear()
87
+            this.visible = true
88
+        },
89
+        hide() {
90
+            // this.clear()
91
+            this.visible = false
92
+        },
93
+    }
94
+}
95
+</script>
96
+

+ 97 - 0
src/xt_pages/hospitalStation/components/templateDetail.vue View File

@@ -0,0 +1,97 @@
1
+<template>
2
+    <el-dialog
3
+        title="详情"
4
+        width="1000px"
5
+        :visible.sync="visible"
6
+        :before-close="_close"
7
+    >
8
+        <el-table :data="tableData" border height="350" :row-style="{ color: '#303133' }" :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
9
+            <el-table-column align="center" prop="name" label="类型">
10
+                <template slot-scope="scope">{{ scope.row.date }}</template>
11
+            </el-table-column>
12
+            <el-table-column align="center" prop="name" label="医嘱名称">
13
+                <template slot-scope="scope">{{ scope.row.date }}</template>
14
+            </el-table-column>
15
+            <el-table-column align="center" prop="name" label="组">
16
+                <template slot-scope="scope">{{ scope.row.date }}</template>
17
+            </el-table-column>
18
+            <el-table-column align="center" prop="name" label="每次量">
19
+                <template slot-scope="scope">{{ scope.row.date }}</template>
20
+            </el-table-column>
21
+            <el-table-column align="center" prop="name" label="单位/容量">
22
+                <template slot-scope="scope">{{ scope.row.date }}</template>
23
+            </el-table-column>
24
+            <el-table-column align="center" prop="name" label="用法">
25
+                <template slot-scope="scope">{{ scope.row.date }}</template>
26
+            </el-table-column>
27
+            <el-table-column align="center" prop="name" label="频率">
28
+                <template slot-scope="scope">{{ scope.row.date }}</template>
29
+            </el-table-column>
30
+            <el-table-column align="center" prop="name" label="天数">
31
+                <template slot-scope="scope">{{ scope.row.date }}</template>
32
+            </el-table-column>
33
+            <el-table-column align="center" prop="name" label="总量">
34
+                <template slot-scope="scope">{{ scope.row.date }}</template>
35
+            </el-table-column>
36
+            <el-table-column align="center" prop="name" label="限制说明">
37
+                <template slot-scope="scope">{{ scope.row.date }}</template>
38
+            </el-table-column>
39
+            <el-table-column align="center" prop="name" label="组套名称">
40
+                <template slot-scope="scope">{{ scope.row.date }}</template>
41
+            </el-table-column>
42
+        </el-table> 
43
+        <div slot="footer" class="dialog-footer">
44
+            <el-button @click="hide">取 消</el-button>
45
+            <el-button type="primary" :loading="submitLoading" @click="submitAction()">保 存</el-button>
46
+        </div>
47
+    </el-dialog>         
48
+</template>
49
+
50
+<script>
51
+export default {
52
+    data(){
53
+        return{
54
+            visible:false,
55
+            tableData: [{
56
+            date: '2016-05-02',
57
+            name: '王小虎',
58
+            address: '上海市普陀区金沙江路 1518 弄'
59
+            }, {
60
+            date: '2016-05-04',
61
+            name: '王小虎',
62
+            address: '上海市普陀区金沙江路 1517 弄'
63
+            }, {
64
+            date: '2016-05-01',
65
+            name: '王小虎',
66
+            address: '上海市普陀区金沙江路 1519 弄'
67
+            }, {
68
+            date: '2016-05-03',
69
+            name: '王小虎',
70
+            address: '上海市普陀区金沙江路 1516 弄'
71
+            }],
72
+            activeName:'first'
73
+        }
74
+    },
75
+    methods:{
76
+        _close: function(done) {
77
+            // this.clear()
78
+            done()
79
+        },
80
+        clear: function() {
81
+            this.form.id = 0;
82
+            this.form.name = "";
83
+            this.form.intro = "";
84
+        },
85
+        show() {
86
+            // this.clear()
87
+            this.visible = true
88
+        },
89
+        hide() {
90
+            // this.clear()
91
+            this.visible = false
92
+        },
93
+    }
94
+}
95
+</script>
96
+
97
+

+ 625 - 0
src/xt_pages/hospitalStation/costComparison.vue View File

@@ -0,0 +1,625 @@
1
+<template>
2
+    <div class="main-contain incomeStatistics">
3
+        <div class="position">
4
+            <bread-crumb :crumbs='crumbs'></bread-crumb>
5
+        </div>
6
+        <div class="app-container">
7
+            <div style="display: flex;justify-content: space-between;margin-bottom:10px;">
8
+                <div>
9
+                    <el-input size="small" style="width:130px;" v-model="keywords"
10
+                              class="filter-item"/>
11
+                    <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary"
12
+                               @click="searchAction">
13
+                        搜索
14
+                    </el-button>
15
+                    <el-date-picker v-model="query_start_time" prefix-icon="el-icon-date"
16
+                                    @change="handleStartTimeChange" :editable="false" :clearable="false"
17
+                                    style="width: 130px;" type="date" placeholder="选择开始日期"
18
+                                    format="yyyy-MM-dd"
19
+                                    value-format="yyyy-MM-dd"
20
+                                    align="right"></el-date-picker>
21
+                    -
22
+
23
+                    <el-date-picker v-model="query_end_time" prefix-icon="el-icon-date"
24
+                                    @change="handleEndTimeChange" :editable="false" :clearable="false"
25
+                                    style="width: 130px;margin-right:10px;" type="date" placeholder="选择结束日期"
26
+                                    format="yyyy-MM-dd"
27
+                                    value-format="yyyy-MM-dd"
28
+                                    align="right"></el-date-picker>
29
+
30
+
31
+                    <label class="title">险种<span class="name"></span> : </label>
32
+                    <el-select v-model="query_insutype" style="width:140px;margin-right:10px;" placeholder="请选择"
33
+                               @change="changeInsutype">
34
+                        <el-option
35
+                                v-for="item in insutypes"
36
+                                :key="item.value"
37
+                                :label="item.label"
38
+                                :value="item.value">
39
+                        </el-option>
40
+                    </el-select>
41
+
42
+
43
+                    <label class="title">清算类别<span class="name"></span> : </label>
44
+                    <el-select v-model="query_clr_type" style="width:100px;margin-right:10px;" placeholder="请选择"
45
+                               @change="changeClrType">
46
+                        <el-option
47
+                                v-for="item in clrOptions"
48
+                                :key="item.value"
49
+                                :label="item.label"
50
+                                :value="item.value">
51
+                        </el-option>
52
+                    </el-select>
53
+
54
+                </div>
55
+
56
+            </div>
57
+            <div style="float: right;margin-bottom: 10px">
58
+                <el-button size="small" type="primary" @click="dialogFormVisible = true">医保对账</el-button>
59
+                <el-button size="small" type="primary" @click="getFormData">下载对账报表</el-button>
60
+            </div>
61
+
62
+
63
+            <el-table :data="tableData" border style="width: 100%;" :row-style="{ color: '#303133' }"
64
+                      :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
65
+                      highlight-current-row
66
+                      @select="selectCostInfo"
67
+                      @selection-change="changeCostInfoTableData"
68
+                      @select-all="changeAllCostInfoTableData"
69
+                      row-key="row_key"
70
+                      ref="multipleTable"
71
+            >
72
+                <el-table-column
73
+                        align="center"
74
+                        type="selection"
75
+                        width="55"
76
+                ></el-table-column>
77
+                <el-table-column
78
+                        prop="date"
79
+                        label="序号"
80
+                        width="60"
81
+                        align="center"
82
+                        type="index"
83
+                >
84
+                </el-table-column>
85
+                <el-table-column align="center" prop="name" label="对账结果">
86
+                    <template slot-scope="scope">{{'平'}}</template>
87
+                </el-table-column>
88
+                <el-table-column align="center" prop="name" label="操作机构">
89
+                    <!--<template slot-scope="scope">{{// this.$store.getters.xt_user.org.org_name}}</template>-->
90
+                </el-table-column>
91
+                <el-table-column align="center" prop="name" label="对账申请人">
92
+                    <template slot-scope="scope">{{getName(scope.row.creator)}}</template>
93
+                </el-table-column>
94
+                <el-table-column align="center" prop="name" label="开始时间">
95
+                    <template slot-scope="scope">{{getTimes(scope.row.start_time)}}</template>
96
+                </el-table-column>
97
+                <el-table-column align="center" prop="name" label="结束时间">
98
+                    <template slot-scope="scope">{{getTimes(scope.row.end_time)}}</template>
99
+                </el-table-column>
100
+                <el-table-column align="center" prop="name" label="险种类型">
101
+                    <template slot-scope="scope">
102
+                        <div v-if="scope.row.insutype == '310'">职工基本医疗保险</div>
103
+                        <div v-if="scope.row.insutype == '320'">公务员医疗补助</div>
104
+                        <div v-if="scope.row.insutype == '330'">大额医疗费用补助</div>
105
+                        <div v-if="scope.row.insutype == '340'">离休人员医疗保障</div>
106
+                        <div v-if="scope.row.insutype == '390'">城乡居民基本医疗保险</div>
107
+                        <div v-if="scope.row.insutype == '392'">城乡居民大病医疗保险</div>
108
+                        <div v-if="scope.row.insutype == '510'">生育保险</div>
109
+                    </template>
110
+                </el-table-column>
111
+                <el-table-column align="center" prop="name" label="对账类型">
112
+                    <template slot-scope="scope">
113
+                        <div v-if="scope.row.check_type == 1">总账</div>
114
+                        <div v-if="scope.row.check_type == 2">明细</div>
115
+                    </template>
116
+                </el-table-column>
117
+                <el-table-column align="center" prop="name" label="清算经办机构">
118
+                    <template slot-scope="scope">{{getName(scope.row.creator)}}</template>
119
+                </el-table-column>
120
+                <el-table-column align="center" prop="name" label="定点医药机构医疗费总额(元)">
121
+                    <template slot-scope="scope">{{scope.row.setl_optins}}</template>
122
+                </el-table-column>
123
+                <el-table-column align="center" prop="name" label="医保中心医疗费总额(元)">
124
+                    <template slot-scope="scope">{{scope.row.cost_total}}</template>
125
+                </el-table-column>
126
+                <el-table-column align="center" prop="name" label="定点医药机构基金总额(元)">
127
+                    <template slot-scope="scope">{{scope.row.cost_total}}</template>
128
+                </el-table-column>
129
+                <el-table-column align="center" prop="name" label="医保中心基金总额(元)">
130
+                    <template slot-scope="scope">{{scope.row.func_total}}</template>
131
+                </el-table-column>
132
+                <el-table-column align="center" prop="name" label="定点医药机构个人账号总额(元)">
133
+                    <template slot-scope="scope">{{scope.row.func_total}}</template>
134
+                </el-table-column>
135
+                <el-table-column align="center" prop="name" label="医保中心个人账号总额(元)">
136
+                    <template slot-scope="scope">{{scope.row.psn_pay}}</template>
137
+                </el-table-column>
138
+                <el-table-column align="center" prop="name" label="定点医药机构结算笔数">
139
+                    <template slot-scope="scope">{{scope.row.psn_pay}}</template>
140
+                </el-table-column>
141
+                <el-table-column align="center" prop="name" label="医保中心结算笔数">
142
+                    <template slot-scope="scope">{{scope.row.num}}</template>
143
+                </el-table-column>
144
+
145
+            </el-table>
146
+            <el-pagination
147
+                    @size-change="handleSizeChange"
148
+                    @current-change="handleCurrentChange"
149
+                    :page-sizes="[10, 50, 100]"
150
+                    :page-size="10"
151
+                    background
152
+                    style="margin-top:20px;float: right"
153
+                    layout="total, sizes, prev, pager, next, jumper"
154
+                    :total="total"
155
+            >
156
+            </el-pagination>
157
+            <el-dialog title="医保对账" :visible.sync="dialogFormVisible">
158
+                <el-form :model="form" label-width="100px">
159
+                    <el-form-item label="时间" label-width="100px">
160
+                        <el-date-picker v-model="start_time" prefix-icon="el-icon-date"
161
+                                        @change="handleStartTimeChange" :editable="false" :clearable="false"
162
+                                        style="width: 200px;" type="date" placeholder="选择开始日期"
163
+                                        format="yyyy-MM-dd"
164
+                                        value-format="yyyy-MM-dd"
165
+                                        align="right"></el-date-picker>
166
+                        -
167
+
168
+                        <el-date-picker v-model="end_time" prefix-icon="el-icon-date"
169
+                                        @change="handleEndTimeChange" :editable="false" :clearable="false"
170
+                                        style="width: 200px;margin-right:10px;" type="date" placeholder="选择结束日期"
171
+                                        format="yyyy-MM-dd"
172
+                                        value-format="yyyy-MM-dd"
173
+                                        align="right"></el-date-picker>
174
+                    </el-form-item>
175
+                    <el-form-item label="险种类型" :label-width="formLabelWidth">
176
+                        <el-select v-model="insutype" placeholder="请选择" style="width: 200px;">
177
+                            <el-option
178
+                                    v-for="item in insutypes"
179
+                                    :key="item.value"
180
+                                    :label="item.label"
181
+                                    :value="item.value">
182
+                            </el-option>
183
+                        </el-select>
184
+                    </el-form-item>
185
+                    <el-form-item label="对账类型" :label-width="formLabelWidth">
186
+                        <el-select v-model="check_type" placeholder="请选择" style="width: 200px;">
187
+                            <el-option
188
+                                    v-for="item in options"
189
+                                    :key="item.value"
190
+                                    :label="item.label"
191
+                                    :value="item.value">
192
+                            </el-option>
193
+                        </el-select>
194
+                    </el-form-item>
195
+                </el-form>
196
+                <div slot="footer" class="dialog-footer">
197
+                    <el-button @click="dialogFormVisible = false">取 消</el-button>
198
+                    <el-button type="primary" @click="confirm">确 定</el-button>
199
+                </div>
200
+            </el-dialog>
201
+        </div>
202
+
203
+
204
+    </div>
205
+</template>
206
+
207
+
208
+<script>
209
+  import BreadCrumb from '@/xt_pages/components/bread-crumb'
210
+  import {
211
+    getCheckAccountFormData,
212
+    getDoctorList,
213
+    getExportConsumeDetailList,
214
+    getHisOrderList,
215
+    getList
216
+  } from '@/api/his/his'
217
+  import { uParseTime } from '@/utils/tools'
218
+  import { fetchAllAdminUsers } from '@/api/doctor'
219
+  import axios from 'axios'
220
+
221
+  export default {
222
+    components: {
223
+      BreadCrumb
224
+    },
225
+    data() {
226
+      return {
227
+        form: {},
228
+        crumbs: [
229
+          { path: false, name: '门诊收费' },
230
+          { path: false, name: '医保费用对照' }
231
+        ],
232
+        tableData: [],
233
+        limit: 10,
234
+        page: 1,
235
+        dialogFormVisible: false,
236
+        total: 0,
237
+        adminUserOptions: [],
238
+        start_time: '',
239
+        end_time: '',
240
+        insutype: '',
241
+        check_type: '',
242
+        keywords: '',
243
+        query_start_time: '',
244
+        query_end_time: '',
245
+        selection:[],
246
+        query_insutype: '',
247
+        query_clr_type: '',
248
+        fromData: [],
249
+        options: [
250
+          {
251
+            value: 1,
252
+            label: '总账'
253
+          }, {
254
+            value: 2,
255
+            label: '明细'
256
+          }
257
+        ],
258
+        clrOptions: [
259
+          {
260
+            value: '11',
261
+            label: '门诊'
262
+          }, {
263
+            value: '21',
264
+            label: '住院'
265
+          }, {
266
+            value: '41',
267
+            label: '药店购药'
268
+          }, {
269
+            value: '99',
270
+            label: '其他'
271
+          }
272
+        ],
273
+        insutypes: [
274
+          {
275
+            value: '310',
276
+            label: '职工基本医疗保险'
277
+          }, {
278
+            value: '320',
279
+            label: '公务员医疗补助'
280
+          }, {
281
+            value: '330',
282
+            label: '大额医疗费用补助'
283
+          }, {
284
+            value: '340',
285
+            label: '离休人员医疗保障'
286
+          },
287
+          {
288
+            value: '390',
289
+            label: '城乡居民基本医疗保险'
290
+          }, {
291
+            value: '392',
292
+            label: '城乡居民大病医疗保险'
293
+          }, {
294
+            value: '510',
295
+            label: '生育保险'
296
+          }
297
+
298
+          // 1617724800
299
+
300
+        ]
301
+
302
+      }
303
+    },
304
+    methods: {
305
+      changeInsutype() {
306
+        let params = {
307
+          'page': 1,
308
+          'limit': 10,
309
+          'keywords': this.keywords,
310
+          'insutype': this.query_insutype,
311
+          'clr_type': "11",
312
+          'start_time': this.query_start_time,
313
+          'end_time': this.query_end_time,
314
+        };
315
+        this.tableData = [];
316
+        getList(params).then(response => {
317
+          if (response.data.state == 0) {
318
+            this.$message.error(response.data.msg);
319
+            return false
320
+          } else {
321
+            this.tableData = response.data.data.list;
322
+            this.total = response.data.data.total
323
+          }
324
+        })
325
+
326
+      }, changeClrType(val) {
327
+        if (val != "11"){
328
+          this.tableData = [];
329
+          this.total = 0
330
+        }else{
331
+          let params = {
332
+            'page': 1,
333
+            'limit': 10,
334
+            'keywords': this.keywords,
335
+            'insutype': this.query_insutype,
336
+            'clr_type': "11",
337
+            'start_time': this.query_start_time,
338
+            'end_time': this.query_end_time,
339
+          };
340
+          this.tableData = [];
341
+          getList(params).then(response => {
342
+            if (response.data.state == 0) {
343
+              this.$message.error(response.data.msg);
344
+              return false
345
+            } else {
346
+              this.tableData = response.data.data.list;
347
+              this.total = response.data.data.total
348
+            }
349
+          })
350
+        }
351
+      },
352
+      handleStartTimeChange() {
353
+
354
+        let params = {
355
+          'page': 1,
356
+          'limit': 10,
357
+          'keywords': this.keywords,
358
+          'insutype': "",
359
+          'clr_type': "11",
360
+          'start_time': this.query_start_time,
361
+          'end_time': this.query_end_time,
362
+        };
363
+        this.tableData = [];
364
+        getList(params).then(response => {
365
+          if (response.data.state == 0) {
366
+            this.$message.error(response.data.msg);
367
+            return false
368
+          } else {
369
+            this.tableData = response.data.data.list;
370
+            this.total = response.data.data.total
371
+          }
372
+        })
373
+
374
+      }, handleEndTimeChange() {
375
+
376
+        let params = {
377
+          'page': 1,
378
+          'limit': 10,
379
+          'keywords': this.keywords,
380
+          'insutype': "",
381
+          'clr_type': "11",
382
+          'start_time': this.query_start_time,
383
+          'end_time': this.query_end_time,
384
+        };
385
+        this.tableData = [];
386
+        getList(params).then(response => {
387
+          if (response.data.state == 0) {
388
+            this.$message.error(response.data.msg);
389
+            return false
390
+          } else {
391
+            this.tableData = response.data.data.list;
392
+            this.total = response.data.data.total
393
+          }
394
+        })
395
+
396
+      },
397
+
398
+      searchAction() {
399
+        let params = {
400
+          'page': 1,
401
+          'limit': 10,
402
+          'keywords': this.keywords,
403
+          'insutype': "",
404
+          'clr_type': "11",
405
+          'start_time': "",
406
+          'end_time': "",
407
+        };
408
+        this.tableData = [];
409
+        getList(params).then(response => {
410
+          if (response.data.state == 0) {
411
+            this.$message.error(response.data.msg);
412
+            return false
413
+          } else {
414
+            this.tableData = response.data.data.list;
415
+            this.total = response.data.data.total
416
+          }
417
+        })
418
+
419
+      },
420
+      selectCostInfo(selection, row) {
421
+        this.selection = selection
422
+
423
+      }, changeCostInfoTableData(val) {
424
+        this.selection = val
425
+      }, changeAllCostInfoTableData(selection) {
426
+        this.selection = selection
427
+
428
+
429
+      }, confirm() {
430
+        if (this.check_type == 1) {
431
+          let params = {
432
+            start_time: this.start_time,
433
+            end_time: this.end_time,
434
+            insutype: this.insutype,
435
+            clr_type: '11'
436
+          };
437
+          var that = this;
438
+          if (this.$store.getters.xt_user.org_id == 4 || this.$store.getters.xt_user.org_id == 9919 || this.$store.getters.xt_user.org_id == 10106 || this.$store.getters.xt_user.org_id == 9990 ) {
439
+            axios.get('http://127.0.0.1:9532/api/checkaccount/get', {
440
+              params: params
441
+            })
442
+              .then(function(response) {
443
+                if (response.data.state == 0) {
444
+                  that.$message.error(response.data.msg);
445
+                  return false
446
+                } else {
447
+                  var result_desc = '';
448
+
449
+                  if (response.data.data.stmt_rslt == 0) {
450
+                    result_desc = '对账平'
451
+                  } else if (response.data.data.stmt_rslt == 1) {
452
+                    result_desc = '中心多' + '\n' + response.data.data.stmt_rslt_dscr
453
+
454
+                  } else if (response.data.data.stmt_rslt == 2) {
455
+                    result_desc = '机构多' + '\n' + response.data.data.stmt_rslt_dscr
456
+                  }
457
+
458
+                  that.$alert(result_desc, '对账结果', {
459
+                    confirmButtonText: '确定',
460
+                    callback: action => {
461
+                      this.dialogFormVisible = false
462
+                    }
463
+                  });
464
+
465
+                  that.page = 1;
466
+                  that.limit = 10;
467
+                  that.keywords = '';
468
+                  that.query_start_time = '';
469
+                  that.query_end_time = '';
470
+                  that.query_insutype = '';
471
+                  that.query_clr_type = '';
472
+                  that.getList()
473
+                }
474
+              })
475
+              .catch(function(error) {
476
+
477
+              })
478
+
479
+          }
480
+
481
+        } else {
482
+          let params = {
483
+            start_time: this.start_time,
484
+            end_time: this.end_time
485
+          };
486
+          var that = this;
487
+          axios.get('http://127.0.0.1:9532/api/checkdetailaccount/get', {
488
+            params: params
489
+          })
490
+            .then(function(response) {
491
+              if (response.data.state == 0) {
492
+                that.$message.error(response.data.msg);
493
+                return false
494
+              } else {
495
+                this.page = 1;
496
+                this.limit = 10;
497
+                this.keywords = '';
498
+                this.getList()
499
+              }
500
+            })
501
+            .catch(function(error) {
502
+
503
+            })
504
+        }
505
+      },
506
+      getInsutype(type) {
507
+
508
+      },
509
+      fetchAllAdminUsers() {
510
+        fetchAllAdminUsers().then(response => {
511
+          if (response.data.state == 1) {
512
+            this.adminUserOptions = response.data.data.users
513
+
514
+          }
515
+        })
516
+      },
517
+      getName(admin_user_id) {
518
+        for (let i = 0; i < this.adminUserOptions.length; i++) {
519
+          if (this.adminUserOptions[i].id == admin_user_id) {
520
+            return this.adminUserOptions[i].name
521
+          }
522
+        }
523
+
524
+      },
525
+      getTimes(time) {
526
+        return uParseTime(time, '{y}-{m}-{d}')
527
+      },
528
+      getList() {
529
+        let params = {
530
+          'page': this.page,
531
+          'limit': this.limit,
532
+          'keywords': this.keywords,
533
+          'insutype': this.query_insutype,
534
+          'clr_type': this.query_clr_type,
535
+          'start_time': this.query_start_time,
536
+          'end_time': this.query_end_time
537
+        };
538
+        this.tableData = [];
539
+        getList(params).then(response => {
540
+          if (response.data.state == 0) {
541
+            this.$message.error(response.data.msg);
542
+            return false
543
+          } else {
544
+            this.tableData = response.data.data.list;
545
+            this.total = response.data.data.total
546
+          }
547
+        })
548
+
549
+      },
550
+      handleSizeChange(limit) {
551
+        this.limit = limit;
552
+        this.getList()
553
+      },
554
+      handleCurrentChange(page) {
555
+        this.page = page;
556
+        this.getList()
557
+
558
+      }, getFormData() {
559
+        if (this.selection.length == 0) {
560
+          this.$message.error('请选择要下载的对账记录');
561
+          return
562
+        }
563
+
564
+        let params = {
565
+          'start_time': this.getTimes(this.selection[0].start_time),
566
+          'end_time': this.getTimes(this.selection[0].end_time),
567
+          'insutype': this.selection[0].insutype
568
+        };
569
+        getCheckAccountFormData(params).then(response => {
570
+          if (response.data.state == 0) {
571
+            this.$message.error(response.data.msg);
572
+            return false
573
+          } else {
574
+            this.fromData = response.data.data.list;
575
+            var list = [];
576
+
577
+            for (let i = 0; i < this.fromData.length; i++) {
578
+              let obj = {
579
+                '结算金额': this.fromData[i].medfee_sumamt,
580
+                '姓名': this.fromData[i].psn_name,
581
+                '身份证': this.fromData[i].id_card_no,
582
+                '个人编号': this.fromData[i].psn_no,
583
+                '门诊流水号': this.fromData[i].mdtrt_id,
584
+                '挂号日期': this.getTimes(this.fromData[i].settle_accounts_date),
585
+                '起付线': this.fromData[i].act_pay_dedc,
586
+                '统筹基金': this.fromData[i].fund_pay_sumamt,
587
+                '个人支付': this.fromData[i].psn_cash_pay,
588
+                '个账支付': this.fromData[i].acct_pay,
589
+                '现金支付': this.fromData[i].cash_pay,
590
+                '总费用': this.fromData[i].sumamt,
591
+                '冲销标志': '已结算'
592
+              };
593
+              list.push(obj)
594
+            }
595
+            var insutype_name = '';
596
+            if (this.query_insutype == '310') {
597
+              insutype_name = '职工基本医疗保险'
598
+            } else if (this.query_insutype == '390') {
599
+              insutype_name = '城乡居民基本医疗保险'
600
+            }
601
+
602
+            import('@/vendor/Export2Excel').then(excel => {
603
+              const tHeader = ['结算金额', '姓名', '身份证', '个人编号', '门诊流水号', '挂号日期', '起付线', '统筹基金', '个人支付', '个账支付', '现金支付', '总费用', '冲销标志'];
604
+              const filterVal = ['结算金额', '姓名', '身份证', '个人编号', '门诊流水号', '挂号日期', '起付线', '统筹基金', '个人支付', '个账支付', '现金支付', '总费用', '冲销标志'];
605
+              const data = this.formatJson(filterVal, list);
606
+              excel.export_json_to_excel({
607
+                header: tHeader,
608
+                data,
609
+                filename:this.getTimes(this.selection[0].start_time)+ '~' + this.getTimes(this.selection[0].end_time)+ insutype_name + '对账报表'
610
+              })
611
+            })
612
+          }
613
+        })
614
+
615
+      }, formatJson(filterVal, jsonData) {
616
+        return jsonData.map(v => filterVal.map(j => v[j]))
617
+      }
618
+    },
619
+    created() {
620
+      this.getList();
621
+      this.fetchAllAdminUsers()
622
+
623
+    }
624
+  }
625
+</script>

File diff suppressed because it is too large
+ 2287 - 0
src/xt_pages/hospitalStation/doctorDesk.vue


+ 329 - 0
src/xt_pages/hospitalStation/incomeStatistics.vue View File

@@ -0,0 +1,329 @@
1
+<template>
2
+  <div class="main-contain incomeStatistics">
3
+    <div class="position">
4
+      <bread-crumb :crumbs='crumbs'></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <div style="display: flex;justify-content: space-between;margin-bottom:10px;">
8
+        <div>
9
+          <el-input size="small" style="width:150px;"  v-model="keywords"
10
+                    class="filter-item"/>
11
+          <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary" @click="searchAction">
12
+            搜索
13
+          </el-button>
14
+          <el-select size="small" v-model="admin_user_id" placeholder="请选择" style="width:150px;margin-left:10px;" @change="changeDoctor">
15
+            <el-option
16
+              label="全部"
17
+              value="0">
18
+            </el-option>
19
+            <el-option
20
+              v-for="(item,index) in type"
21
+              :key="index"
22
+              :label="item.user_name"
23
+              :value="item.admin_user_id">
24
+            </el-option>
25
+          </el-select>
26
+          <el-date-picker size="small" v-model="start_time" prefix-icon="el-icon-date"
27
+                          @change="handleStartTimeChange" :editable="false" :clearable="false"
28
+                          style="width: 196px;margin-right:10px;" type="date" placeholder="选择开始日期"
29
+                          format="yyyy-MM-dd"
30
+                          value-format="yyyy-MM-dd"
31
+                          align="right"></el-date-picker>
32
+
33
+          <el-date-picker size="small" v-model="end_time" prefix-icon="el-icon-date"
34
+                          @change="handleEndTimeChange" :editable="false" :clearable="false"
35
+                          style="width: 196px;margin-right:10px;" type="date" placeholder="选择结束日期"
36
+                          format="yyyy-MM-dd"
37
+                          value-format="yyyy-MM-dd"
38
+                          align="right"></el-date-picker>
39
+          <!--<el-radio v-model="radio" label="1">明细</el-radio>-->
40
+          <!--<el-radio v-model="radio" label="2">汇总</el-radio>-->
41
+        </div>
42
+        <el-button size="small" type="primary" @click="export_detail">报表下载</el-button>
43
+      </div>
44
+      <el-table :data="tableData" border style="width: 100%;" :row-style="{ color: '#303133' }"
45
+                :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}" highlight-current-row>
46
+        <el-table-column
47
+          prop="date"
48
+          label="序号"
49
+          width="60"
50
+          align="center"
51
+          type="index"
52
+        >
53
+        </el-table-column>
54
+        <el-table-column align="center" prop="name" label="收费日期">
55
+          <template slot-scope="scope">{{ scope.row.selt_time }}</template>
56
+        </el-table-column>
57
+
58
+
59
+        <el-table-column align="center" prop="name" label="患者名字">
60
+          <template slot-scope="scope">{{ scope.row.psn_name }}</template>
61
+        </el-table-column>
62
+        <!--<el-table-column align="center" prop="name" label="患者类型">-->
63
+          <!--<template slot-scope="scope"></template>-->
64
+        <!--</el-table-column>-->
65
+        <el-table-column align="center" prop="name" label="总金额">
66
+          <template slot-scope="scope">{{scope.row.medfee_sumamt}}</template>
67
+        </el-table-column>
68
+
69
+        <el-table-column align="center" prop="name" label="总金额">
70
+          <template slot-scope="scope">{{scope.row.medfee_sumamt}}</template>
71
+        </el-table-column>
72
+
73
+
74
+
75
+        <el-table-column align="center" prop="name" label="实收金额">
76
+          <template slot-scope="scope">{{scope.row.reality_price}}</template>
77
+        </el-table-column>
78
+        <el-table-column align="center" prop="name" label="科室">
79
+          <template slot-scope="scope">{{scope.row.p_info.department.name}}</template>
80
+        </el-table-column>
81
+        <el-table-column align="center" prop="name" label="收费日期">
82
+          <template slot-scope="scope">  {{getTimes(scope.row.settle_accounts_date)}}</template>
83
+        </el-table-column>
84
+        <el-table-column align="center" prop="name" label="收费员">
85
+          <template slot-scope="scope">{{ scope.row.p_info.doctor }}</template>
86
+        </el-table-column>
87
+        <el-table-column align="center" prop="name" label="状态">
88
+          <template slot-scope="scope">
89
+            <div v-if="scope.row.order_status == 1">待结算</div>
90
+            <div v-if="scope.row.order_status == 2">已结算</div>
91
+            <div v-if="scope.row.order_status == 3">已退费</div>
92
+          </template>
93
+        </el-table-column>
94
+        <el-table-column align="center" prop="name" label="操作">
95
+          <template slot-scope="scope">
96
+            <el-button size="mini" type="primary" @click="toDetail(scope.row)">详情</el-button>
97
+          </template>
98
+        </el-table-column>
99
+      </el-table>
100
+      <el-pagination
101
+        @size-change="handleSizeChange"
102
+        @current-change="handleCurrentChange"
103
+        :page-sizes="[10, 50, 100]"
104
+        :page-size="10"
105
+        background
106
+        style="margin-top:20px;float: right"
107
+        layout="total, sizes, prev, pager, next, jumper"
108
+        :total="total"
109
+
110
+      >
111
+      </el-pagination>
112
+    </div>
113
+
114
+
115
+  </div>
116
+</template>
117
+
118
+
119
+<script>
120
+  import BreadCrumb from '@/xt_pages/components/bread-crumb'
121
+  import { getHisOrderList,getDoctorList,getExportConsumeDetailList } from '@/api/his/his'
122
+  import { uParseTime } from '@/utils/tools'
123
+
124
+  export default {
125
+    components: {
126
+      BreadCrumb
127
+    },
128
+    data() {
129
+      return {
130
+        crumbs: [
131
+          { path: false, name: '门诊收费' },
132
+          { path: false, name: '项目消费明细汇总' }
133
+        ],
134
+        tableData: [],
135
+        limit:10,
136
+        page:1,
137
+        keywords:"",
138
+        start_time:"",
139
+        end_time:"",
140
+        total:"",
141
+        doctors:[],
142
+        admin_user_id:"",
143
+
144
+      }
145
+    },
146
+    methods: {
147
+      export_detail(){
148
+        let params= {
149
+          start_time:this.start_time,
150
+          end_time: this.end_time,
151
+        };
152
+        getExportConsumeDetailList(params).then(response => {
153
+          if (response.data.state == 0) {
154
+            this.$message.error(response.data.msg);
155
+            return false
156
+          } else {
157
+
158
+            let list = [];
159
+            for (let i =0; i < response.data.data.order.length; i++){
160
+            let order =   response.data.data.order[i];
161
+              let number = "";
162
+              let name = "";
163
+              let department = "";
164
+              let doctor_name = "";
165
+              let balance_accounts = "";
166
+
167
+              let order_status = "";
168
+
169
+
170
+
171
+              if(order.his_patient != null && order.his_patient.number.length > 0){
172
+                number = order.his_patient.number
173
+
174
+              }
175
+
176
+              if(order.his_patient != null ){
177
+                if(order.his_patient.balance_accounts_type == 1){
178
+                  balance_accounts = "自费"
179
+                }
180
+
181
+                if(order.his_patient.balance_accounts_type == 2){
182
+                  balance_accounts = "医保"
183
+                }
184
+              }
185
+
186
+              if(order.patient != null && order.patient.name.length > 0){
187
+                name = order.patient.name
188
+
189
+              }
190
+
191
+              if(order.p_info != null && order.p_info.department != null && order.p_info.department.name.length > 0){
192
+                department = order.p_info.department.name
193
+
194
+              }
195
+
196
+              if(order.p_info != null && order.p_info.doctor.length > 0){
197
+                doctor_name = order.p_info.doctor
198
+              }
199
+
200
+              if(order.order_status == 1){
201
+                order_status = "待结算"
202
+              }
203
+
204
+              if(order.order_status == 2){
205
+                order_status = "已结算"
206
+              }
207
+
208
+              if(order.order_status == 3){
209
+                order_status = "已退费"
210
+              }
211
+
212
+
213
+              let obj = {
214
+                "就诊号":number,
215
+                "患者姓名":name,
216
+                "应收金额":order.medfee_sumamt,
217
+                "实收金额":order.medfee_sumamt,
218
+                "科室":department,
219
+                "医生姓名":doctor_name,
220
+                "收费类别":balance_accounts,
221
+                "收费者姓名":doctor_name,
222
+                "总金额":order.medfee_sumamt,
223
+                "现金支付":"",
224
+                "账户支付":"",
225
+                "支付宝支付":"",
226
+                "微信支付":"",
227
+                "其他支付":"",
228
+                "收费日期":"",
229
+                "收费状态":order_status,
230
+                "退费日期":"",
231
+              };
232
+              list.push(obj)
233
+            }
234
+            import('@/vendor/Export2Excel').then(excel => {
235
+              const tHeader = ['就诊号', '患者姓名', '应收金额', '实收金额', '科室',"医生姓名","收费类别","收费者姓名","总金额","现金支付","账户支付","支付宝支付","微信支付","其他支付","收费日期","收费状态","退费日期"];
236
+              const filterVal = ['就诊号', '患者姓名', '应收金额', '实收金额', '科室',"医生姓名","收费类别","收费者姓名","总金额","现金支付","账户支付","支付宝支付","微信支付","其他支付","收费日期","收费状态","退费日期"];
237
+              const data = this.formatJson(filterVal, list);
238
+              excel.export_json_to_excel({
239
+                header: tHeader,
240
+                data,
241
+                filename: "消费明细"
242
+              })
243
+            })
244
+
245
+          }
246
+        })
247
+
248
+      },  formatJson(filterVal, jsonData) {
249
+        return jsonData.map(v => filterVal.map(j => v[j]))
250
+      },
251
+      changeDoctor(){
252
+        this.page = 1;
253
+        this.keywords="";
254
+        this.getHisOrderList()
255
+      },
256
+      handleSizeChange(limit){
257
+        this.limit = limit;
258
+        this.getHisOrderList()
259
+
260
+      },handleCurrentChange(page){
261
+        this.page = page;
262
+        this.getHisOrderList()
263
+
264
+
265
+      },
266
+      handleStartTimeChange(){
267
+        this.page = 1;
268
+        this.keywords="";
269
+        this.getHisOrderList()
270
+      },handleEndTimeChange(){
271
+        this.page = 1;
272
+        this.keywords="";
273
+        this.getHisOrderList()
274
+      },
275
+      searchAction(){
276
+        this.page = 1;
277
+        this.getHisOrderList()
278
+
279
+
280
+      },
281
+      getTimes(time) {
282
+        return uParseTime(time, "{y}-{m}-{d}");
283
+      },
284
+      toDetail(row) {
285
+        this.$router.push('/outpatientCharges/summaryDetail?patient_id='+row.patient.id+"&number="+row.number)
286
+      }, getTime(value, temp) {
287
+        if (value != undefined) {
288
+          return uParseTime(value, temp)
289
+        }
290
+        return ''
291
+      },getHisOrderList(){
292
+        let params= {
293
+          page : this.page,
294
+          limit: this.limit,
295
+          keywords:this.keywords,
296
+          start_time:this.start_time,
297
+          end_time: this.end_time,
298
+          type: this.admin_user_id
299
+        };
300
+        getHisOrderList(params).then(response => {
301
+          if (response.data.state == 0) {
302
+            this.$message.error(response.data.msg);
303
+            return false
304
+          } else {
305
+            this.tableData = response.data.data.order;
306
+            this.total = response.data.data.total
307
+          }
308
+        })
309
+
310
+      },getDoctorList(){
311
+        getDoctorList().then(response => {
312
+          if (response.data.state == 0) {
313
+            this.$message.error(response.data.msg);
314
+            return false
315
+          } else {
316
+            this.doctors = response.data.data.doctors
317
+          }
318
+        })
319
+
320
+
321
+      }
322
+    }, created() {
323
+     this.getDoctorList();
324
+     this.getHisOrderList()
325
+
326
+
327
+    }
328
+  }
329
+</script>

+ 694 - 0
src/xt_pages/hospitalStation/index.vue View File

@@ -0,0 +1,694 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs='crumbs'></bread-crumb>
5
+    </div>
6
+
7
+    <div class="app-container">
8
+      <div class="nameTitle">患者基本信息:</div>
9
+      <div class="formMain">
10
+        <el-form class="basicForm" :model="form" :rules="rules" ref="form" label-width="100px">
11
+
12
+
13
+          <el-form-item label="患者姓名:" prop="name" :validate-event="is_Name">
14
+            <el-autocomplete
15
+              class="checkSearch"
16
+              popper-class="my-autocomplete"
17
+              v-model="form.name"
18
+              :fetch-suggestions="querySearchAsync"
19
+              :trigger-on-focus="false"
20
+              placeholder="请输入病人名字"
21
+              @select="handleSelect"
22
+              style="width:160px;"
23
+            >
24
+              <i class="el-icon-search el-input__icon" slot="suffix"></i>
25
+              <template slot-scope="{ item }">
26
+                <div class="name">{{ item.name }}</div>
27
+              </template>
28
+            </el-autocomplete>
29
+          </el-form-item>
30
+
31
+
32
+          <el-form-item label="手机号码:" prop="phone">
33
+            <el-input v-model="form.phone"></el-input>
34
+          </el-form-item>
35
+
36
+
37
+          <el-form-item label="证件类型:" prop="certificates" :validate-event="is_Name">
38
+            <el-select v-model="form.certificates" placeholder="请选择">
39
+              <el-option
40
+                v-for="item in certificates"
41
+                :key="item.value"
42
+                :label="item.label"
43
+                :value="item.value">
44
+              </el-option>
45
+            </el-select>
46
+          </el-form-item>
47
+
48
+          <el-form-item label="证件号码:" prop="id_card_no" :validate-event="is_Name">
49
+            <el-input v-model="form.id_card_no"></el-input>
50
+          </el-form-item>
51
+
52
+
53
+          <el-form-item label="读卡类型:" prop="id_card_type" :validate-event="is_Name">
54
+            <el-select v-model="form.id_card_type" placeholder="请选择">
55
+              <el-option
56
+                v-for="item in IDCardTypes"
57
+                :key="item.value"
58
+                :label="item.label"
59
+                :value="item.value">
60
+              </el-option>
61
+            </el-select>
62
+          </el-form-item>
63
+
64
+          <!--<el-form-item class="specialFormItem" label="医保卡号:">-->
65
+          <!--<div style="display:flex;">-->
66
+          <!--<el-input v-model="form.medicalInsuranceCard"></el-input>-->
67
+          <!--<el-button style="margin-left:10px;" type="primary" @click="reading">读卡</el-button>-->
68
+          <!--</div>-->
69
+          <!--</el-form-item>-->
70
+
71
+        </el-form>
72
+      </div>
73
+      <div class="nameTitle">患者住院信息:</div>
74
+      <div class="formMain">
75
+        <el-form class="basicForm" :model="form" :rules="rules" ref="form" label-width="100px">
76
+
77
+          <el-form-item label="疾病类型:" prop="sick_type" :validate-event="is_Name">
78
+            <el-select v-model="form.sick_type" placeholder="">
79
+              <el-option
80
+                v-for="(item,index) in sick"
81
+                :key="index"
82
+                :label="item.class_name"
83
+                :value="item.id">
84
+              </el-option>
85
+            </el-select>
86
+          </el-form-item>
87
+
88
+          <el-form-item label="诊断:" prop="diagnosis" :validate-event="is_Name">
89
+            <el-select v-model="form.diagnosis" placeholder="">
90
+              <el-option
91
+                v-for="(item,index) in diagnoses"
92
+                :key="index"
93
+                :label="item.class_name"
94
+                :value="item.id">
95
+              </el-option>
96
+            </el-select>
97
+          </el-form-item>
98
+
99
+          <el-form-item label="医疗类别:" prop="med_type" :validate-event="is_Name">
100
+            <el-select v-model="form.med_type" placeholder=""
101
+            >
102
+              <el-option
103
+                v-for="(item,index) in registers"
104
+                :key="index"
105
+                :label="item.label"
106
+                :value="item.value">
107
+              </el-option>
108
+            </el-select>
109
+          </el-form-item>
110
+
111
+
112
+          <el-form-item label="主治医生:" prop="doctor" :validate-event="is_Name">
113
+            <el-select v-model="form.doctor" placeholder="请选择" @change="changeDoctor">
114
+              <el-option
115
+                v-for="item in doctorList"
116
+                :key="item.admin_user_id"
117
+                :label="item.user_name"
118
+                :value="item.admin_user_id">
119
+              </el-option>
120
+            </el-select>
121
+          </el-form-item>
122
+          <el-form-item label="入院科室:" prop="department" :validate-event="is_Name">
123
+            <el-select v-model="form.department" placeholder="请选择">
124
+              <el-option
125
+                v-for="item in departmentList"
126
+                :key="item.id"
127
+                :label="item.name"
128
+                :value="item.id">
129
+              </el-option>
130
+            </el-select>
131
+          </el-form-item>
132
+
133
+
134
+          <el-form-item label="入院时间:" prop="start_time" :validate-event="is_Name">
135
+            <el-date-picker v-model="form.start_time" type="datetime" format="yyyy-MM-dd HH:mm:ss"
136
+                            value-format="yyyy-MM-dd HH:mm:ss"
137
+                            placeholder="请选择入院时间">
138
+            </el-date-picker>
139
+
140
+          </el-form-item>
141
+
142
+        </el-form>
143
+        <el-button style="float:right" @click="saveHisPatient('form')" v-loading="loadingone" type="primary">登记
144
+        </el-button>
145
+      </div>
146
+
147
+    </div>
148
+  </div>
149
+</template>
150
+
151
+<script>
152
+  import {PostSearch} from '@/api/patient'
153
+  import BreadCrumb from '@/xt_pages/components/bread-crumb'
154
+  import {basename} from 'path'
155
+  import {
156
+    getAllDoctorList,
157
+    getPatientDetail,
158
+    getTodaySchedulePatient,
159
+    getUnRegisterHisPatientList,
160
+    saveHisPatient
161
+  } from '@/api/project/project'
162
+  import {getDictionaryDataConfig} from '@/utils/data'
163
+  import {jsGetAge, uParseTime} from '@/utils/tools'
164
+  import {getInitData} from '@/api/his/his'
165
+  import axios from 'axios'
166
+
167
+  const moment = require('moment');
168
+  export default {
169
+    components: {
170
+      BreadCrumb
171
+    },
172
+    data() {
173
+      return {
174
+        record_date:"",
175
+        loadingone: false,
176
+        read_loading: false,
177
+        registers: [
178
+          {value: 11, label: '普通门诊'},
179
+          {value: 12, label: '门诊挂号'},
180
+          {value: 13, label: '急诊'},
181
+          {value: 14, label: '门诊特殊病'},
182
+          {value: 15, label: '门诊统筹'},
183
+          {value: 16, label: '门诊慢性病'},
184
+          {value: 21, label: '普通住院'}
185
+
186
+        ],
187
+        sick: [],
188
+        diagnoses: [],
189
+        crumbs: [
190
+          {path: false, name: '住院工作站'},
191
+          {path: false, name: '住院登记'}
192
+        ],
193
+        form: {
194
+          start_time: '',
195
+          id: 0,
196
+          sick_type: '',
197
+          diagnosis: '',
198
+          medicalInsuranceCard: '',
199
+          name: '',
200
+          certificates: 1,
201
+          id_card_no: '',
202
+          doctor: '',
203
+          department: '',
204
+          phone: '',
205
+          id_card_type: 2,
206
+          med_type: '',
207
+
208
+        },
209
+
210
+
211
+        certificates: [{
212
+          value: 1,
213
+          label: '内地身份证'
214
+        }, {
215
+          value: 2,
216
+          label: '社保卡'
217
+        }, {
218
+          value: 3,
219
+          label: '护照'
220
+        }, {
221
+          value: 4,
222
+          label: '军官证'
223
+        }, {
224
+          value: 5,
225
+          label: '台胞证'
226
+        }, {
227
+          value: 6,
228
+          label: '港澳地区身份证'
229
+        }],
230
+
231
+        IDCardTypes: [{
232
+          value: 1,
233
+          label: '社保卡'
234
+        }, {
235
+          value: 2,
236
+          label: '身份证'
237
+        }, {
238
+          value: 3,
239
+          label: '电子凭证'
240
+        }],
241
+        rules: {
242
+          name: [{required: true, message: '患者姓名不能为空', trigger: 'blur'}],
243
+          id_card_no: [{required: true, message: '证件号码不能为空', trigger: 'blur'}],
244
+          doctor: [{required: true, message: '请选择医生', trigger: 'blur'}],
245
+          department: [{required: true, message: '请填写科室', trigger: 'blur'}],
246
+          certificates: [{required: true, message: '证件类型不能为空', trigger: 'change'}],
247
+          id_card_type: [{required: true, message: '读卡类型不能为空', trigger: 'change'}],
248
+          med_type: [{required: true, message: '医疗类别不能为空', trigger: 'change'}],
249
+          sick_type: [{required: true, message: '大病类别不能为空', trigger: 'change'}],
250
+          diagnosis: [{required: true, message: '诊断不能为空', trigger: 'change'}],
251
+          start_time: [{required: true, message: '入院时间不能为空', trigger: 'change'}]
252
+
253
+        },
254
+        doctorList: [],
255
+        departmentList: [],
256
+        check: 0,
257
+        show: false,
258
+        is_Name: false,
259
+        patient: [],
260
+        scialType: []
261
+      }
262
+    },
263
+
264
+    methods: {
265
+
266
+      handleSelect(val) {
267
+        this.form.id = val.id;
268
+        this.form.name = val.name;
269
+        this.form.sex = val.gender;
270
+        this.form.age = val.age;
271
+        this.form.birthday = uParseTime(val.birthday, '{y}-{m}-{d}');
272
+        this.form.phone = val.phone;
273
+        this.form.id_card_no = val.id_card_no;
274
+
275
+        var thisLen = this.form.id_card_no.length;
276
+        var birth = '';
277
+        if (thisLen == 15) {
278
+          birth = '19' + this.form.id_card_no.substr(6, 6)
279
+        } else {
280
+          birth = this.form.id_card_no.substr(6, 8)
281
+        }
282
+        var births =
283
+          birth.substr(0, 4) +
284
+          '-' +
285
+          birth.substr(4, 2) +
286
+          '-' +
287
+          birth.substr(6, 2);
288
+        this.form.age = jsGetAge(births, '-')
289
+      },
290
+      querySearchAsync(keyword, cb) {
291
+        let key = '';
292
+        if (keyword != undefined) {
293
+          key = keyword
294
+        }
295
+        let searchArray = [];
296
+        PostSearch(key).then(response => {
297
+          if (response.data.state == 1) {
298
+            searchArray = response.data.data.patient;
299
+            cb(searchArray)
300
+          } else {
301
+            cb([])
302
+          }
303
+        })
304
+      },
305
+
306
+
307
+      // reading(medicalInsuranceCard) {
308
+      //   var that = this
309
+      //   if (this.form.id_card_type.length == 0 || this.form.id_card_type == 0) {
310
+      //     this.$message.error('请先选择读卡类型')
311
+      //     return
312
+      //   }
313
+      //   let params = {
314
+      //     'id_card_type': this.form.id_card_type
315
+      //   }
316
+      //   axios.get('http://127.0.0.1:9532/api/sscard', {
317
+      //     params: params
318
+      //   })
319
+      //     .then(function(response) {
320
+      //       if (response.data.state == 0) {
321
+      //         that.$message.error(response.data.msg)
322
+      //         return false
323
+      //       } else {
324
+      //         var patient = response.data.data.patient
325
+      //
326
+      //         if (that.form.id_card_type == 1) {
327
+      //           that.form.name = patient.ID
328
+      //           that.form.sex = patient.gender
329
+      //           that.form.age = patient.age
330
+      //           that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
331
+      //           that.form.phone = patient.phone
332
+      //           that.form.id_card_no = patient.id_card_no
333
+      //           that.form.medicalInsuranceCard = response.data.data.number
334
+      //
335
+      //         } else if (that.form.id_card_type == 2) {
336
+      //           that.form.name = patient.ID
337
+      //           that.form.sex = patient.gender
338
+      //           that.form.age = patient.age
339
+      //           that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
340
+      //           that.form.phone = patient.phone
341
+      //           that.form.id_card_no = patient.id_card_no
342
+      //         }
343
+      //         that.$message({ message: '读卡成功', type: 'success' })
344
+      //       }
345
+      //     })
346
+      //     .catch(function(error) {
347
+      //
348
+      //     })
349
+      //
350
+      // },
351
+      getBirthday(date) {
352
+        console.log(date);
353
+        let curTime = moment(new Date(date)).format('YYYY-MM-DD');
354
+        console.log('curTime22222', curTime);
355
+
356
+        console.log(this.jsGetAge(curTime));
357
+
358
+        this.form.age = this.jsGetAge(curTime)
359
+      },
360
+      jsGetAge(strBirthday) { //传入形式yyyy-MM-dd
361
+        //strBirthday = util.formatTime(strBirthday);转换成yyyy-MM-dd形式
362
+        var returnAge;
363
+        var strBirthdayArr = strBirthday.split('-');
364
+        var birthYear = strBirthdayArr[0];
365
+        var birthMonth = strBirthdayArr[1];
366
+        var birthDay = strBirthdayArr[2];
367
+        var d = new Date();
368
+        var nowYear = d.getFullYear();
369
+        var nowMonth = d.getMonth() + 1;
370
+        var nowDay = d.getDate();
371
+        if (nowYear == birthYear) {
372
+          returnAge = 0 //同年 则为0岁
373
+        } else {
374
+          var ageDiff = nowYear - birthYear; //年之差
375
+          if (ageDiff > 0) {
376
+            if (nowMonth == birthMonth) {
377
+              var dayDiff = nowDay - birthDay; //日之差
378
+              if (dayDiff < 0) {
379
+                returnAge = ageDiff - 1
380
+              } else {
381
+                returnAge = ageDiff
382
+              }
383
+            } else {
384
+              var monthDiff = nowMonth - birthMonth; //月之差
385
+              if (monthDiff < 0) {
386
+                returnAge = ageDiff - 1
387
+              } else {
388
+                returnAge = ageDiff
389
+              }
390
+            }
391
+          } else {
392
+            returnAge = -1 //返回-1 表示出生日期输入错误 晚于今天
393
+          }
394
+        }
395
+        return returnAge //返回周岁年龄
396
+      },
397
+      getForm() {
398
+        this.form.total = this.total;
399
+        if (localStorage.getItem('temp')) {
400
+          let a = JSON.parse(localStorage.getItem('temp'));
401
+          // let arr = []
402
+          this.form.create_time = new Date(new Date().toLocaleDateString()).getTime() / 1000;
403
+          this.form.org_id = this.$store.getters.xt_user.org_id;
404
+          a.push(this.form);
405
+          console.log(111, a);
406
+          localStorage.setItem('temp', JSON.stringify(a));
407
+          Object.keys(this.form).forEach((key) => {
408
+            this.form[key] = ''
409
+          });
410
+          this.$message({message: '添加成功', type: 'success'})
411
+        } else {
412
+          let arr = [];
413
+          this.form.create_time = new Date(new Date().toLocaleDateString()).getTime() / 1000;
414
+          this.form.org_id = this.$store.getters.xt_user.org_id;
415
+          arr.push(this.form);
416
+          localStorage.setItem('temp', JSON.stringify(arr));
417
+          Object.keys(this.form).forEach((key) => {
418
+            this.form[key] = ''
419
+          });
420
+          this.$message({message: '添加成功', type: 'success'})
421
+        }
422
+      },
423
+
424
+      getAllDoctorList() {
425
+        getAllDoctorList().then(response => {
426
+          if (response.data.state == 1) {
427
+            var doctor = response.data.data.doctor;
428
+            this.doctorList = doctor;
429
+            var department = response.data.data.department;
430
+            this.departmentList = department
431
+          }
432
+        })
433
+      },
434
+      saveHisPatient(formName) {
435
+        if (this.form.name == '') {
436
+          this.$message.error('患者姓名不能为空');
437
+          this.is_Name = true;
438
+          return
439
+        }
440
+
441
+
442
+        if (this.form.doctor == '') {
443
+          this.$message.error('医生不能为空');
444
+          this.is_Name = true;
445
+          return
446
+        }
447
+
448
+        if (this.form.department == '') {
449
+          this.$message.error('科室不能为空');
450
+          this.is_Name = true;
451
+          return
452
+        }
453
+
454
+        if (this.form.id_card_type == '') {
455
+          this.$message.error('读卡类型不能为空');
456
+          this.is_Name = true;
457
+          return
458
+        }
459
+
460
+        if (this.form.id_card_no == '') {
461
+          this.$message.error('证件号码不能为空');
462
+          this.is_Name = true;
463
+          return
464
+        }
465
+
466
+        if (this.form.med_type == '') {
467
+          this.$message.error('医疗类别不能为空');
468
+          this.is_Name = true;
469
+          return
470
+        }
471
+
472
+        if (this.form.diagnosis == '') {
473
+          this.$message.error('诊断不能为空');
474
+          this.is_Name = true;
475
+          return
476
+        }
477
+
478
+        if (this.form.sick_type == '') {
479
+          this.$message.error('大病类别不能为空');
480
+          this.is_Name = true;
481
+          return
482
+        }
483
+
484
+
485
+        if (this.form.start_time == '') {
486
+          this.$message.error('入院时间不能为空');
487
+          this.is_Name = true;
488
+          return
489
+        }
490
+
491
+        this.$refs[formName].validate((valid) => {
492
+          if (valid) {
493
+            if (this.form.costChecked == true) {
494
+              this.check = 1
495
+            }
496
+            if (this.form.costChecked == false) {
497
+              this.check = 2
498
+            }
499
+            if (this.form.id_card_no == '') {
500
+              this.show = true
501
+            }
502
+            var nowDate = new Date();
503
+            var nowYear = nowDate.getFullYear();
504
+            var nowMonth = nowDate.getMonth() + 1;
505
+            var nowDay = nowDate.getDate();
506
+            this.record_date =
507
+              nowYear +
508
+              '-' +
509
+              (nowMonth < 10 ? '0' + nowMonth : nowMonth) +
510
+              '-' +
511
+              (nowDay < 10 ? '0' + nowDay : nowDay);
512
+
513
+            var params = {
514
+              id: this.form.id,
515
+              name: this.form.name,
516
+              id_card_type: this.form.id_card_type,
517
+              certificates: this.form.certificates,
518
+              id_card_no: this.form.id_card_no,
519
+              doctor: this.form.doctor,
520
+              department: this.form.department,
521
+              phone: this.form.phone,
522
+              med_type: this.form.med_type,
523
+              diagnosis: this.form.diagnosis,
524
+              sick_type: this.form.sick_type,
525
+              start_time: this.form.start_time,
526
+            };
527
+            params['record_time'] = this.record_date;
528
+            params['admin_user_id'] = this.$store.getters.xt_user.user.id;
529
+            this.loadingone = true;
530
+
531
+            var that = this;
532
+
533
+            axios.get('http://127.0.0.1:9532/zh/api/inhopitalcheck/get', {
534
+              params: params,
535
+              headers: {
536
+                'Permission': 5
537
+              }
538
+            })
539
+              .then(function (response) {
540
+                if (response.data.state == 0) {
541
+                  that.$message.error(response.data.msg);
542
+                  that.loadingone = false;
543
+                  return false
544
+                } else {
545
+                  that.loadingone = false;
546
+                  if (response.data.data.failed_code == -10) {
547
+                    // that.$message.error(response.data.data.msg)
548
+                    that.$confirm(response.data.data.msg, '医保错误信息', {
549
+                      confirmButtonText: '确 定',
550
+                      type: 'warning'
551
+                    }).then(() => {
552
+
553
+                    }).catch(() => {
554
+                    })
555
+                  } else {
556
+                    that.$message({message: '登记成功', type: 'success'});
557
+                    that.form.name = '';
558
+                    that.form.certificates = '';
559
+                    that.form.id_card_no = '';
560
+                    that.form.doctor = '';
561
+                    that.form.department = '';
562
+                    that.form.phone = '';
563
+                    that.form.med_type = 14;
564
+                    that.form.sick_type = that.sick[0].id;
565
+                    that.form.diagnosis = that.diagnoses[0].id
566
+                  }
567
+                }
568
+              })
569
+              .catch(function (error) {
570
+
571
+              })
572
+          }
573
+        })
574
+      },
575
+      getDictionaryDataConfig(module, filed_name) {
576
+        return getDictionaryDataConfig(module, filed_name)
577
+      },
578
+
579
+      changeDoctor(id) {
580
+        for (let i = 0; i < this.doctorList.length; i++) {
581
+          if (this.doctorList[i].admin_user_id == id) {
582
+            if (this.doctorList[i].department_id == 0) {
583
+              this.form.department = this.departmentList[0].id
584
+            } else {
585
+              this.form.department = this.doctorList[i].department_id
586
+            }
587
+
588
+          }
589
+        }
590
+      },
591
+      changeName(id) {
592
+        this.form.sex = '';
593
+        this.form.age = '';
594
+        this.form.birthday = '';
595
+        this.form.phone = '';
596
+        this.form.id_card_no = '';
597
+        getPatientDetail(id).then(response => {
598
+          if (response.data.state == 1) {
599
+            var patient = response.data.data.patient;
600
+            console.log('patient', patient);
601
+            this.form.sex = patient.gender;
602
+            this.form.age = patient.age;
603
+            this.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}');
604
+            this.form.phone = patient.phone;
605
+            this.form.id_card_no = patient.id_card_no
606
+          }
607
+        })
608
+      }, getInitData() {
609
+        getInitData().then(response => {
610
+          if (response.data.state == 0) {
611
+            this.$message.error(response.data.msg);
612
+            return false
613
+          } else {
614
+            this.doctors = response.data.data.doctors;
615
+            this.department = response.data.data.department;
616
+            this.sick = response.data.data.sick;
617
+            this.diagnoses = response.data.data.diagnose;
618
+
619
+            this.form.p_type = 14;
620
+            this.form.sick_type = this.sick[0].id;
621
+            this.form.diagnosis = this.diagnoses[0].id
622
+
623
+          }
624
+        })
625
+
626
+      }
627
+
628
+    },
629
+    created() {
630
+
631
+      if (this.$store.getters.xt_user.org_id == 9504 || this.$store.getters.xt_user.org_id == 10028) {
632
+        this.form.certificates = 2;
633
+        this.form.id_card_type = 1
634
+      } else {
635
+        this.form.certificates = 1;
636
+        this.form.id_card_type = 2
637
+      }
638
+
639
+      this.getInitData();
640
+      //获取当前机构有人员信息
641
+      this.getAllDoctorList()
642
+    }
643
+  }
644
+</script>
645
+
646
+<style lang="scss" scoped>
647
+  .nameTitle {
648
+    font-weight: bold;
649
+    font-size: 16px;
650
+  }
651
+
652
+  .formMain {
653
+    /*/ / padding: 10 px 90 px;*/
654
+    width: 80%;
655
+    margin: 0 auto;
656
+  }
657
+
658
+  .basicForm {
659
+
660
+    display: flex;
661
+    flex-wrap: wrap;
662
+    justify-content: space-between;
663
+
664
+  .el-form-item {
665
+    width: 33%;
666
+  }
667
+
668
+  .specialFormItem {
669
+    width: 66.5%;
670
+
671
+  .el-input {
672
+    min-width: 150px;
673
+  }
674
+
675
+  }
676
+  .el-select {
677
+    width: 100%;
678
+  }
679
+
680
+  .el-input {
681
+    width: 100%;
682
+  }
683
+
684
+  }
685
+  .el-form-item__error {
686
+    color: #F56C6C;
687
+    font-size: 12px;
688
+    line-height: 1;
689
+    padding-top: 4px;
690
+    position: absolute;
691
+    top: 100%;
692
+    left: 0;
693
+  }
694
+</style>

+ 152 - 0
src/xt_pages/hospitalStation/invoicePrint.vue View File

@@ -0,0 +1,152 @@
1
+<template>
2
+  <div>
3
+    <template>
4
+      <el-button
5
+        style="position:fixed;right:25px;z-index:999"
6
+        :loading="loading"
7
+        size="small"
8
+        icon="el-icon-printer"
9
+        @click="printThisPage"
10
+        type="primary"
11
+        >打印</el-button
12
+      >
13
+    </template>
14
+    <div class="app-container" style="padding-top:40px;">
15
+        <div class='dialysisPage'>
16
+            <printOne :paramsObj="invoiceParams"></printOne>
17
+        </div>
18
+    </div>
19
+  </div>
20
+</template>
21
+
22
+<script>
23
+import printOne from './invoiceTemplate/printOne'
24
+export default {
25
+  name: "invoicePrint",
26
+  components: {
27
+    printOne
28
+  },
29
+  props:{
30
+    invoiceParams:Object
31
+  },
32
+  data() {
33
+    return {
34
+      childResponse: {},
35
+    //   invoiceParams:{}
36
+      
37
+
38
+    };
39
+  },
40
+  methods: {
41
+    getAdminUser(id) {
42
+      if (id == 0) {
43
+        return "";
44
+      }
45
+      if (id == undefined) {
46
+        return "";
47
+      }
48
+      for (let i = 0; i < this.adminUser.length; i++) {
49
+        if (this.adminUser[i].id == id) {
50
+          return this.adminUser[i].name;
51
+        }
52
+      }
53
+    },
54
+    getTime(value, temp) {
55
+      if (value == 0) {
56
+        return "";
57
+      }
58
+      if (value != undefined) {
59
+        return uParseTime(value, temp);
60
+      }
61
+      return "";
62
+    },
63
+    printThisPage() {
64
+
65
+      const style =
66
+        '@media print {#invoice-print{font-size:12px;}.printTitle{font-size: 22px;text-align: center;font-weight: bold;}.infoMain{display: flex;flex-wrap: wrap;padding:0 10px;margin-top:10px;}.infoMain .infoP{width: 33%;}.chargeBox{border: 1px solid #000;}.chargeUl{display:flex;justify-content: space-between;text-align: center;}.chargeUl p{line-height: 1px;}.chargeP{line-height: 1px;padding-bottom:16px;}.moneyBox{display: flex;justify-content: space-between;padding: 0 10px;background: #eeeeee;-webkit-print-color-adjust:exact;-moz-print-color-adjust:exact;-ms-print-color-adjust:exact;print-color-adjust:exact;height: 40px;align-items: center;border:1px solid #000; border-top:none}.actionBar{display: flex;justify-content: space-between; line-height: 24px;padding:0 10px;}.actionBar div{width:150px;}}';
67
+        printJS({
68
+            printable: "invoice-print",
69
+            type: "html",
70
+            style: style,
71
+            scanStyles: false
72
+        });
73
+
74
+      // if (this.org_template_info.template_id == 1) {
75
+      //   printJS({
76
+      //     printable: "dialysis-print-box",
77
+      //     type: "html",
78
+      //     style: style,
79
+      //     scanStyles: false
80
+      //   });
81
+      // }
82
+    },
83
+  },
84
+  created() {
85
+      console.log('this.invoiceParams',this.invoiceParams)
86
+  },
87
+  watch:{
88
+    paramsObj:{//深度监听,可监听到对象、数组的变化
89
+      handler(val, oldVal){
90
+        this.invoiceParams = val
91
+        
92
+      },
93
+      deep:true
94
+    }
95
+  }
96
+};
97
+</script>
98
+
99
+<style lang="scss" scoped>
100
+.printTitle{
101
+    font-size: 22px;
102
+    text-align: center;
103
+    font-weight: bold;
104
+}
105
+.infoMain{
106
+    display: flex;
107
+    flex-wrap: wrap;
108
+    border-bottom: 2px solid #000;
109
+    padding:0 10px;
110
+}
111
+.infoMain .infoP{
112
+    width: 33%;
113
+    line-height: 24px;
114
+}
115
+.prescriptionBox{
116
+    padding:0 10px;
117
+    height:600px;
118
+}
119
+.Rp{
120
+    font-size: 22px;
121
+    font-weight: bold;
122
+}
123
+.drugsBox{
124
+    padding-left: 40px;
125
+    margin-bottom: 10px;
126
+}
127
+.drugsBox p{
128
+    line-height: 30px;
129
+}
130
+.drugsOne{
131
+    line-height: 24px;
132
+}
133
+.drugsOne span{
134
+    margin-right: 20px;
135
+}
136
+.doctorBox{
137
+    display: flex;
138
+    justify-content: space-between;
139
+    padding:0 10px;
140
+    line-height: 24px;
141
+    border-bottom: 2px solid #000;
142
+}
143
+.actionBar{
144
+    display: flex;
145
+    justify-content: space-between; 
146
+    line-height: 24px;
147
+    padding:0 10px;
148
+}
149
+.actionBar p{
150
+    width:150px;
151
+}
152
+</style>

+ 0 - 0
src/xt_pages/hospitalStation/invoiceTemplate/printOne.vue View File


Some files were not shown because too many files changed in this diff