Ver código fonte

Merge branch 'master' of http://git.shengws.com/csx/Vue_New

csx 4 anos atrás
pai
commit
0895f1b6c9
100 arquivos alterados com 21565 adições e 11920 exclusões
  1. 25 20
      index.html
  2. 8 2
      src/api/advice.js
  3. 1 0
      src/api/data.js
  4. 28 9
      src/api/dialysis.js
  5. 42 42
      src/api/inspection.js
  6. 14 8
      src/api/patient.js
  7. 44 47
      src/api/schedule.js
  8. BIN
      src/assets/home/eight.png
  9. BIN
      src/assets/home/serven.png
  10. 13 4
      src/lang/zh.js
  11. 117 93
      src/router/modules/dialysis.js
  12. 390 198
      src/router/modules/qcd.js
  13. 15 0
      src/store/modules/globalConfig.js
  14. 14 14
      src/utils/data.js
  15. 104 69
      src/views/layout/components/Sidebar/SidebarItem.vue
  16. 150 0
      src/xt_pages/data/components/dialysisSummary.vue
  17. 16 2
      src/xt_pages/data/components/tableson.vue
  18. 86 53
      src/xt_pages/data/prescription.vue
  19. 32 29
      src/xt_pages/data/printTemplate.vue
  20. 131 104
      src/xt_pages/data/showConfig.vue
  21. 43 32
      src/xt_pages/data/template.vue
  22. 368 196
      src/xt_pages/dialysis/batch_print/batch_print_order_eight.vue
  23. 13 5
      src/xt_pages/dialysis/batch_print/batch_print_order_seven.vue
  24. 157 23
      src/xt_pages/dialysis/batch_print/batch_print_order_six.vue
  25. 2450 0
      src/xt_pages/dialysis/batch_print/batch_print_order_twelve.vue
  26. 12 0
      src/xt_pages/dialysis/bloodPresssWatch.vue
  27. 5 4
      src/xt_pages/dialysis/details/assessmentAfter.vue
  28. 270 256
      src/xt_pages/dialysis/details/dialog/AssessmentAfterDislysis.vue
  29. 203 160
      src/xt_pages/dialysis/details/dialog/DoctorAdviceDialog.vue
  30. 106 85
      src/xt_pages/dialysis/details/dialog/MultiSelectBox/index.vue
  31. 23 2
      src/xt_pages/dialysis/details/dialog/adviceDialog/EditGroupAdvice.vue
  32. 35 11
      src/xt_pages/dialysis/details/dialog/assessmentBeforeDislysisDialog.vue
  33. 385 35
      src/xt_pages/dialysis/details/dialog/dialysisPrescriptionDialog.vue
  34. 20 4
      src/xt_pages/dialysis/details/dialog/monitor_dialog.vue
  35. 330 158
      src/xt_pages/dialysis/details/dialog/treatmentSummaryDialog.vue
  36. 211 78
      src/xt_pages/dialysis/details/dialysisMonitoring.vue
  37. 614 529
      src/xt_pages/dialysis/details/index.vue
  38. 44 20
      src/xt_pages/dialysis/details/treatmentOf.vue
  39. 353 421
      src/xt_pages/dialysis/template/DialysisPrintOrderEight.vue
  40. 1561 1549
      src/xt_pages/dialysis/template/DialysisPrintOrderEleven.vue
  41. 500 1169
      src/xt_pages/dialysis/template/DialysisPrintOrderNine.vue
  42. 88 575
      src/xt_pages/dialysis/template/DialysisPrintOrderOne.vue
  43. 34 10
      src/xt_pages/dialysis/template/DialysisPrintOrderSeven.vue
  44. 335 291
      src/xt_pages/dialysis/template/DialysisPrintOrderSix.vue
  45. 2251 2241
      src/xt_pages/dialysis/template/DialysisPrintOrderTen.vue
  46. 316 1741
      src/xt_pages/dialysis/template/dialysisPrintOrderFive.vue
  47. 254 212
      src/xt_pages/dialysis/template/dialysisPrintOrderTwelve.vue
  48. 4 4
      src/xt_pages/dialysis/template/dialysisPrintOrderTwo.vue
  49. 340 0
      src/xt_pages/qcd/basicInformationAnalysis.vue
  50. 233 0
      src/xt_pages/qcd/checkStatistical.vue
  51. 66 60
      src/xt_pages/qcd/components/BarChart.vue
  52. 142 59
      src/xt_pages/qcd/components/LineChart.vue
  53. 9 2
      src/xt_pages/qcd/dialysisTotal.vue
  54. 0 0
      src/xt_pages/qcd/indicatorControlAnalysis.vue
  55. 70 0
      src/xt_pages/qcd/indicatorControlAnalysis/analysis.vue
  56. 277 0
      src/xt_pages/qcd/indicatorControlAnalysis/analysisDetails.vue
  57. 397 0
      src/xt_pages/qcd/indicatorControlAnalysis/bloodPressure.vue
  58. 368 0
      src/xt_pages/qcd/indicatorControlAnalysis/bloodPressureDetails.vue
  59. 35 0
      src/xt_pages/qcd/indicatorControlAnalysis/components/NewNav.vue
  60. 337 0
      src/xt_pages/qcd/indicatorControlAnalysis/components/office.vue
  61. 371 0
      src/xt_pages/qcd/indicatorControlAnalysis/components/personal.vue
  62. 384 0
      src/xt_pages/qcd/indicatorControlAnalysis/monitor.vue
  63. 384 0
      src/xt_pages/qcd/indicatorControlAnalysis/process.vue
  64. 390 0
      src/xt_pages/qcd/indicatorControlAnalysis/weight.vue
  65. 368 0
      src/xt_pages/qcd/indicatorControlAnalysis/weightDetails.vue
  66. 0 0
      src/xt_pages/qcd/officesControlAnalysis.vue
  67. 261 0
      src/xt_pages/qcd/officesControlAnalysis/project.vue
  68. 356 0
      src/xt_pages/qcd/officesControlAnalysis/time.vue
  69. 9 2
      src/xt_pages/qcd/outcomeIndicators/control.vue
  70. 9 2
      src/xt_pages/qcd/patientAnalysis/total.vue
  71. 348 0
      src/xt_pages/qcd/patientComplianceDetails.vue
  72. 287 0
      src/xt_pages/qcd/patientControlAnalysis.vue
  73. 9 2
      src/xt_pages/qcd/processIndicators.vue
  74. 272 0
      src/xt_pages/qcd/statisticalConfiguration.vue
  75. 27 0
      src/xt_pages/qcd/treatmentControlAnalysis.vue
  76. 86 0
      src/xt_pages/qcd/treatmentControlAnalysis/check.vue
  77. 293 0
      src/xt_pages/qcd/treatmentControlAnalysis/components/CheckAll.vue
  78. 284 0
      src/xt_pages/qcd/treatmentControlAnalysis/components/CheckPersonal.vue
  79. 306 0
      src/xt_pages/qcd/treatmentControlAnalysis/components/TimeAll.vue
  80. 293 0
      src/xt_pages/qcd/treatmentControlAnalysis/components/TimePersonal.vue
  81. 86 0
      src/xt_pages/qcd/treatmentControlAnalysis/time.vue
  82. 0 0
      src/xt_pages/qcd/workAnalysis.vue
  83. 329 0
      src/xt_pages/qcd/workAnalysis/doctor.vue
  84. 322 0
      src/xt_pages/qcd/workAnalysis/nurse.vue
  85. 7 0
      src/xt_pages/stock/cancelStockOrder.vue
  86. 636 543
      src/xt_pages/stock/cancelStockOrderAdd.vue
  87. 7 1
      src/xt_pages/stock/detail/cancelStockDetail.vue
  88. 7 1
      src/xt_pages/stock/detail/salesReturnDetail.vue
  89. 7 1
      src/xt_pages/stock/detail/stockInDetail.vue
  90. 7 1
      src/xt_pages/stock/detail/stockOutDetail.vue
  91. 7 1
      src/xt_pages/stock/otherCancelStockOrder.vue
  92. 8 2
      src/xt_pages/stock/otherSalesReturnOrder.vue
  93. 7 1
      src/xt_pages/stock/otherStockInOrder.vue
  94. 7 1
      src/xt_pages/stock/otherStockOutOrder.vue
  95. 7 0
      src/xt_pages/stock/salesReturnOrder.vue
  96. 383 312
      src/xt_pages/stock/stockDetail.vue
  97. 8 1
      src/xt_pages/stock/stockInOrder.vue
  98. 7 0
      src/xt_pages/stock/stockOutOrder.vue
  99. 497 423
      src/xt_pages/stock/stockOutOrderAdd.vue
  100. 0 0
      src/xt_pages/user/components/PatientForm.vue

+ 25 - 20
index.html Ver arquivo

@@ -1,25 +1,30 @@
1 1
 <!DOCTYPE html>
2 2
 <html>
3
+  <head>
4
+    <meta charset="utf-8" />
5
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
6
+    <meta name="renderer" content="webkit" />
7
+    <meta
8
+      name="viewport"
9
+      content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
10
+    />
11
+    <title>血透管理-酷医云</title>
12
+  </head>
3 13
 
4
-<head>
5
-  <meta charset="utf-8">
6
-  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
7
-  <meta name="renderer" content="webkit">
8
-  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
9
-  <title>血透管理-酷医云</title>
10
-</head>
11
-
12
-<body>
13
-  <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
14
-  <script src="<%= htmlWebpackPlugin.options.path %>/tinymce4.7.5/tinymce.min.js"></script>
15
-  <script src="<%= htmlWebpackPlugin.options.path %>/neditor/neditor.config.js"></script>
16
-  <script src="<%= htmlWebpackPlugin.options.path %>/neditor/neditor.all.min.js"></script>
17
-  <script src="<%= htmlWebpackPlugin.options.path %>/neditor/neditor.service.js"></script>
18
-  <script src="<%= htmlWebpackPlugin.options.path %>/neditor/i18n/zh-cn/zh-cn.js"></script>
19
-  <script src="<%= htmlWebpackPlugin.options.path %>/neditor/neditor.parse.min.js"></script>
20
-
21
-  <div id="app"></div>
22
-  <!-- built files will be auto injected -->
23
-</body>
14
+  <body>
15
+    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
16
+    <script src="<%= htmlWebpackPlugin.options.path %>/tinymce4.7.5/tinymce.min.js"></script>
17
+    <script src="<%= htmlWebpackPlugin.options.path %>/neditor/neditor.config.js"></script>
18
+    <script src="<%= htmlWebpackPlugin.options.path %>/neditor/neditor.all.min.js"></script>
19
+    <script src="<%= htmlWebpackPlugin.options.path %>/neditor/neditor.service.js"></script>
20
+    <script src="<%= htmlWebpackPlugin.options.path %>/neditor/i18n/zh-cn/zh-cn.js"></script>
21
+    <script src="<%= htmlWebpackPlugin.options.path %>/neditor/neditor.parse.min.js"></script>
24 22
 
23
+    <div id="app"></div>
24
+    <!-- built files will be auto injected -->
25
+    <link
26
+      rel="stylesheet"
27
+      href="//at.alicdn.com/t/font_1480998_l66fq6mc0y.css"
28
+    />
29
+  </body>
25 30
 </html>

+ 8 - 2
src/api/advice.js Ver arquivo

@@ -76,7 +76,6 @@ export function CheckDoctorAdvice(patient, id, mode) {
76 76
 }
77 77
 
78 78
 export function getDoctorAdviceList(params) {
79
-  console.log("params", params);
80 79
   return request({
81 80
     url: "/api/patients/advices",
82 81
     method: "Get",
@@ -464,10 +463,17 @@ export function CheckGroupAdvice(groupno, mode) {
464 463
 }
465 464
 
466 465
 export function getPatientSchedules(id, params) {
467
-  console.log("id----", id);
468 466
   return request({
469 467
     url: "/api/patients/advices/getpatientschedules?id=" + id,
470 468
     method: "get",
471 469
     params: params
472 470
   });
473 471
 }
472
+
473
+export function SaveEditAdvices(params) {
474
+  return request({
475
+    url: "/api/patients/advices/saveditadvices",
476
+    method: "get",
477
+    params: params
478
+  });
479
+}

+ 1 - 0
src/api/data.js Ver arquivo

@@ -1,6 +1,7 @@
1 1
 import request from '@/utils/request'
2 2
 
3 3
 export function createConfig(params) {
4
+  console.log('params', params)
4 5
   return request({
5 6
     url: '/api/createconfig',
6 7
     method: 'post',

+ 28 - 9
src/api/dialysis.js Ver arquivo

@@ -149,7 +149,9 @@ export function postPrescription(params) {
149 149
     url: '/api/dialysis/prescription',
150 150
     method: 'Post',
151 151
     params: params,
152
-    headers:{"Permission":2},
152
+    headers: {
153
+      'Permission': 2
154
+    }
153 155
   })
154 156
 }
155 157
 
@@ -158,7 +160,9 @@ export function postSoulution(params) {
158 160
     url: '/api/dialysis/soulution',
159 161
     method: 'Post',
160 162
     params: params,
161
-    headers:{"Permission":2},
163
+    headers: {
164
+      'Permission': 2
165
+    }
162 166
 
163 167
   })
164 168
 }
@@ -168,17 +172,22 @@ export function postDoubleCheck(params) {
168 172
     url: '/api/dialysis/dobule',
169 173
     method: 'Post',
170 174
     params: params,
171
-    headers:{"Permission":2},
175
+    headers: {
176
+      'Permission': 2
177
+    }
172 178
 
173 179
   })
174 180
 }
175 181
 
176 182
 export function postAccepts(params) {
183
+  console.log('params', params)
177 184
   return request({
178 185
     url: '/api/dialysis/accepts',
179 186
     method: 'Post',
180 187
     params: params,
181
-    headers:{"Permission":2},
188
+    headers: {
189
+      'Permission': 2
190
+    }
182 191
 
183 192
   })
184 193
 }
@@ -188,7 +197,9 @@ export function postAssessmentBeforeDislysis(params) {
188 197
     url: '/api/dialysis/assessmentbeforedislysis',
189 198
     method: 'Post',
190 199
     params: params,
191
-    headers:{"Permission":2},
200
+    headers: {
201
+      'Permission': 2
202
+    }
192 203
 
193 204
   })
194 205
 }
@@ -198,7 +209,9 @@ export function postTreatmentsummary(params) {
198 209
     url: '/api/dialysis/treatmentsummary',
199 210
     method: 'Post',
200 211
     params: params,
201
-    headers:{"Permission":2},
212
+    headers: {
213
+      'Permission': 2
214
+    }
202 215
 
203 216
   })
204 217
 }
@@ -209,7 +222,9 @@ export function postAssessmentAfterDislysis(params, data) {
209 222
     method: 'Post',
210 223
     params: params,
211 224
     data: data,
212
-    headers:{"Permission":2},
225
+    headers: {
226
+      'Permission': 2
227
+    }
213 228
 
214 229
   })
215 230
 }
@@ -228,7 +243,9 @@ export function CreateGroupAdvice(id, groupno, advices) {
228 243
     url: '/api/advice_remind/create?id=' + id + '&groupno=' + groupno,
229 244
     method: 'post',
230 245
     data: advices,
231
-    headers:{"Permission":2},
246
+    headers: {
247
+      'Permission': 2
248
+    }
232 249
 
233 250
   })
234 251
 }
@@ -246,7 +263,9 @@ export function CreateDryWeight(params) {
246 263
     url: '/api/dryweight/commit',
247 264
     method: 'post',
248 265
     params: params,
249
-    headers:{"Permission":2},
266
+    headers: {
267
+      'Permission': 2
268
+    }
250 269
 
251 270
   })
252 271
 }

+ 42 - 42
src/api/inspection.js Ver arquivo

@@ -1,61 +1,61 @@
1 1
 import request from '@/utils/request'
2
+import {
3
+  fromTextArea
4
+} from 'codemirror'
2 5
 
3
-export function fetchInspectionReference(id){
4
-    return request({
5
-        url:'/api/patient/inspection/reference?patient='+id,
6
-        method:'get',
7
-    })
6
+export function fetchInspectionReference(id) {
7
+  return request({
8
+    url: '/api/patient/inspection/reference?patient=' + id,
9
+    method: 'get'
10
+  })
8 11
 }
9 12
 
10
-export function CreatePatientInspection(id, data,remind_cycle){
11
-    return request({
12
-        url:'/api/patient/inspection/create?patient='+id+"&remind_cycle="+remind_cycle,
13
-        method:'post',
14
-        data:data,
15
-    })
13
+export function CreatePatientInspection(id, data, remind_cycle) {
14
+  return request({
15
+    url: '/api/patient/inspection/create?patient=' + id + '&remind_cycle=' + remind_cycle,
16
+    method: 'post',
17
+    data: data
18
+  })
16 19
 }
17 20
 
18
-export function EditPatientInspection(id, data,remind_cycle){
19
-    return request({
20
-        url:'/api/patient/inspection/edit?patient='+id+"&remind_cycle="+remind_cycle,
21
-        method:'put',
22
-        data:data,
23
-    })
21
+export function EditPatientInspection(id, data, remind_cycle, dates, projectid) {
22
+  console.log('日期---', dates)
23
+  console.log('项目', projectid)
24
+  return request({
25
+    url: '/api/patient/inspection/edit?patient=' + id + '&remind_cycle=' + remind_cycle + '&dates=' + dates + '&projectid=' + projectid,
26
+    method: 'put',
27
+    data: data
28
+  })
24 29
 }
25 30
 
26
-export function DeletePatientInspection(params){
27
-    return request({
28
-        url:'/api/patient/inspection/delete',
29
-        method:'delete',
30
-        params:params,
31
-    })
31
+export function DeletePatientInspection(params) {
32
+  return request({
33
+    url: '/api/patient/inspection/delete',
34
+    method: 'delete',
35
+    params: params
36
+  })
32 37
 }
33 38
 
34
-export function fetchPatientInspections(params){
35
-    return request({
36
-        url:'/api/patient/inspection/list',
37
-        method:'get',
38
-        params:params,
39
-    })
39
+export function fetchPatientInspections(params) {
40
+  return request({
41
+    url: '/api/patient/inspection/list',
42
+    method: 'get',
43
+    params: params
44
+  })
40 45
 }
41 46
 
42
-
43
-export function GetUploadInspections(params){
47
+export function GetUploadInspections(params) {
44 48
   return request({
45
-    url:'/api/patient/inspection/get',
46
-    method:'get',
47
-    params:params,
49
+    url: '/api/patient/inspection/get',
50
+    method: 'get',
51
+    params: params
48 52
   })
49 53
 }
50 54
 
51
-export function GetInitInspections(params){
55
+export function GetInitInspections(params) {
52 56
   return request({
53
-    url:'/api/patient/inspectioninit/get',
54
-    method:'get',
55
-    params:params,
57
+    url: '/api/patient/inspectioninit/get',
58
+    method: 'get',
59
+    params: params
56 60
   })
57 61
 }
58
-
59
-
60
-
61
-

+ 14 - 8
src/api/patient.js Ver arquivo

@@ -36,6 +36,7 @@ export function createPatient(patient) {
36 36
   })
37 37
 }
38 38
 export function editPatient(id, patient) {
39
+  console.log('patient', patient)
39 40
   return request({
40 41
     url: '/api/patients/edit?id=' + id + '&record_date=' + patient.record_date + '&is_infectious=' + patient.is_infectious + '&remind_cycle=' + patient.remind_cycle,
41 42
     method: 'put',
@@ -57,23 +58,26 @@ export function fetchPatientDialysisSolutions(params) {
57 58
   })
58 59
 }
59 60
 
60
-export function createPatientDialysisSolution(id, solution,mode) {
61
+export function createPatientDialysisSolution(id, solution, mode) {
61 62
   return request({
62
-    url: '/api/patients/dialysissolution/create?patient=' + id +"&mode="+mode,
63
+    url: '/api/patients/dialysissolution/create?patient=' + id + '&mode=' + mode,
63 64
     method: 'post',
64 65
     data: solution,
65
-    headers:{"Permission":3},
66
-
66
+    headers: {
67
+      'Permission': 3
68
+    }
67 69
 
68 70
   })
69 71
 }
70 72
 
71
-export function editPatientDialysisSolution(patient, id, solution,mode) {
73
+export function editPatientDialysisSolution(patient, id, solution, mode) {
72 74
   return request({
73
-    url: '/api/patients/dialysissolution/edit?patient=' + patient + '&id=' + id+"&mode="+mode,
75
+    url: '/api/patients/dialysissolution/edit?patient=' + patient + '&id=' + id + '&mode=' + mode,
74 76
     method: 'put',
75 77
     data: solution,
76
-    headers:{"Permission":3},
78
+    headers: {
79
+      'Permission': 3
80
+    }
77 81
 
78 82
   })
79 83
 }
@@ -318,7 +322,9 @@ export function UpdateDryWeightData(params) {
318 322
     url: '/api/patient/updatedryweightdata',
319 323
     method: 'Post',
320 324
     params: params,
321
-    headers:{"Permission":3},
325
+    headers: {
326
+      'Permission': 3
327
+    }
322 328
 
323 329
   })
324 330
 }

+ 44 - 47
src/api/schedule.js Ver arquivo

@@ -1,66 +1,68 @@
1 1
 import request from '@/utils/request'
2 2
 
3
-export function getWeekPanels(t){
4
-    return request({
5
-        url:'/api/schedule/weekpanel?data='+t,
6
-        method:'get',
7
-    })
3
+export function getWeekPanels(t) {
4
+  return request({
5
+    url: '/api/schedule/weekpanel?data=' + t,
6
+    method: 'get'
7
+  })
8 8
 }
9 9
 
10
-export function getSchedules(week){
11
-    return request({
12
-        url:'/api/schedule/schedules?weekTime=' + week,
13
-        method:'get',
14
-    })
10
+export function getSchedules(week) {
11
+  return request({
12
+    url: '/api/schedule/schedules?weekTime=' + week,
13
+    method: 'get'
14
+  })
15 15
 }
16 16
 
17
-export function getSchedulePatients(params){
18
-    return request({
19
-        url:'/api/schedule/patients',
20
-        method:'get',
21
-        params:params,
22
-    })
17
+export function getSchedulePatients(params) {
18
+  return request({
19
+    url: '/api/schedule/patients',
20
+    method: 'get',
21
+    params: params
22
+  })
23 23
 }
24 24
 
25
-export function CreateSchedule(id, schedule){
26
-    return request({
27
-        url:'/api/schedule/create?patient_id='+id,
28
-        method:'Post',
29
-        data:schedule,
30
-    })
25
+export function CreateSchedule(id, schedule) {
26
+  return request({
27
+    url: '/api/schedule/create?patient_id=' + id,
28
+    method: 'Post',
29
+    data: schedule
30
+  })
31 31
 }
32 32
 
33 33
 export function CancelSchedule(id) {
34
-    return request({
35
-        url:'/api/schedule/delete?id='+id,
36
-        method:"Delete",
37
-    });
34
+  return request({
35
+    url: '/api/schedule/delete?id=' + id,
36
+    method: 'Delete'
37
+  })
38 38
 }
39 39
 
40
-export function ChangeSchedule(id, schedule){
41
-    return request({
42
-        url:'/api/schedule/change?id='+id,
43
-        method:'Put',
44
-        data:schedule,
45
-    })
40
+export function ChangeSchedule(id, schedule) {
41
+  console.log('schedule', schedule)
42
+  return request({
43
+    url: '/api/schedule/change?id=' + id,
44
+    method: 'Put',
45
+    data: schedule
46
+  })
46 47
 }
47 48
 
48 49
 export function GetPatientSchedules(id) {
49
-    return request({
50
-        url:'/api/patients/schedules?id='+id,
51
-        method:'Get',
52
-    })
50
+  return request({
51
+    url: '/api/patients/schedules?id=' + id,
52
+    method: 'Get'
53
+  })
53 54
 }
54 55
 
55 56
 export function GetWeekSchedulePrintInitData(date) {
56
-    return request({
57
-        url: '/api/schedule/print/initdata',
58
-        method: 'get',
59
-        params: { date: date },
60
-    })
57
+  return request({
58
+    url: '/api/schedule/print/initdata',
59
+    method: 'get',
60
+    params: {
61
+      date: date
62
+    }
63
+  })
61 64
 }
62 65
 
63
-
64 66
 export function getUrgentScheduleInitData(params) {
65 67
   return request({
66 68
     url: '/api/schedule/urgentinit',
@@ -69,8 +71,6 @@ export function getUrgentScheduleInitData(params) {
69 71
   })
70 72
 }
71 73
 
72
-
73
-
74 74
 export function getSearchResult(params) {
75 75
   return request({
76 76
     url: '/api/schedule/search',
@@ -79,9 +79,6 @@ export function getSearchResult(params) {
79 79
   })
80 80
 }
81 81
 
82
-
83
-
84
-
85 82
 export function getScheduleWeekDay(params) {
86 83
   return request({
87 84
     url: '/api/schedule/week',

BIN
src/assets/home/eight.png Ver arquivo


BIN
src/assets/home/serven.png Ver arquivo


+ 13 - 4
src/lang/zh.js Ver arquivo

@@ -131,6 +131,13 @@ export default {
131 131
     stockQuery: '库存查询',
132 132
     workforce_template: '排班模板设置',
133 133
     statistics: '统计分析',
134
+    statisticalConfig: '统计配置',
135
+    basicInformationAnalysis: '基本信息统计',
136
+    patientControlAnalysis: '患者质控达标统计',
137
+    treatmentControlAnalysis: '治疗信息统计',
138
+    indicatorControlAnalysis: '指标评估统计',
139
+    workAnalysis: 'workAnalysis',
140
+    officesControlAnalysis: '科室质控达标统计',
134 141
     config: '库存配置',
135 142
     goodInfo: '商品信息',
136 143
     CourseOfDiseaseManage: '病程管理',
@@ -172,9 +179,9 @@ export default {
172 179
     integration_config: '集成配置',
173 180
     his_config: 'HIS集成配置',
174 181
 
175
-    slow:"慢病管理",
176
-    scrm:'SCRM',
177
-    shop:"分销商城",
182
+    slow: '慢病管理',
183
+    scrm: 'SCRM',
184
+    shop: '分销商城'
178 185
   },
179 186
   navbar: {
180 187
     logOut: '退出登录',
@@ -277,6 +284,8 @@ export default {
277 284
     remark: '备注',
278 285
     course_disease: '病程',
279 286
     rescue_record: '抢救记录',
280
-    manage_ment: '设备管理'
287
+    manage_ment: '设备管理',
288
+    nursing_record: '透析护理记录',
289
+    special_record: '特殊记录'
281 290
   }
282 291
 }

+ 117 - 93
src/router/modules/dialysis.js Ver arquivo

@@ -1,64 +1,62 @@
1
-import Layout from '@/views/layout/Layout'
1
+import Layout from "@/views/layout/Layout";
2 2
 
3 3
 export default {
4
-  path: '/dialysis/',
4
+  path: "/dialysis/",
5 5
   component: Layout,
6
-  redirect: 'noredirect',
7
-  name: 'dialysis',
6
+  redirect: "noredirect",
7
+  name: "dialysis",
8 8
   alwaysShow: true,
9 9
   meta: {
10
-    title: 'dialysis',
11
-    icon: 'touxi'
10
+    title: "dialysis",
11
+    icon: "touxi"
12 12
   },
13
-  children: [{
14
-      path: '/dialysis/dialysisrecord',
15
-      component: () => import('@/xt_pages/dialysis/schedualPatient'),
16
-      name: '透析记录',
13
+  children: [
14
+    {
15
+      path: "/dialysis/dialysisrecord",
16
+      component: () => import("@/xt_pages/dialysis/schedualPatient"),
17
+      name: "透析记录",
17 18
       meta: {
18
-        title: '透析记录',
19
+        title: "透析记录",
19 20
         noCache: true
20
-
21 21
       }
22 22
     },
23 23
     {
24
-      path: '/dialysis/watch',
25
-      component: () => import('@/xt_pages/dialysis/bloodPresssWatch'),
26
-      name: 'watch',
24
+      path: "/dialysis/watch",
25
+      component: () => import("@/xt_pages/dialysis/bloodPresssWatch"),
26
+      name: "watch",
27 27
       meta: {
28
-        title: 'watch',
28
+        title: "watch",
29 29
         noCache: true
30
-
31 30
       }
32 31
     },
33 32
     {
34
-      path: '/dialysis/board',
35
-      component: () => import('@/xt_pages/dialysis/bulletinBoard'),
36
-      name: '数据看板',
33
+      path: "/dialysis/board",
34
+      component: () => import("@/xt_pages/dialysis/bulletinBoard"),
35
+      name: "数据看板",
37 36
       meta: {
38
-        title: '数据看板',
37
+        title: "数据看板",
39 38
         noCache: true
40
-
41 39
       }
42 40
     },
43 41
     {
44
-      path: '/dialysis/record/:id',
45
-      component: () => import('@/xt_pages/dialysis/dialysisPage'),
42
+      path: "/dialysis/record/:id",
43
+      component: () => import("@/xt_pages/dialysis/dialysisPage"),
46 44
       hidden: true,
47 45
       is_menu: false,
48
-      name: 'paper',
46
+      name: "paper",
49 47
       meta: {
50
-        title: 'paper',
48
+        title: "paper",
51 49
         noCache: true
52 50
       }
53 51
     },
54 52
     {
55
-      path: '/dialysis/print',
56
-      component: () => import('@/xt_pages/dialysis/dialysisPrintOrder'),
53
+      path: "/dialysis/print",
54
+      component: () => import("@/xt_pages/dialysis/dialysisPrintOrder"),
57 55
       hidden: true,
58 56
       is_menu: false,
59
-      name: 'dialysisPrintOrder',
57
+      name: "dialysisPrintOrder",
60 58
       meta: {
61
-        title: 'dialysisPrintOrder',
59
+        title: "dialysisPrintOrder",
62 60
         noCache: true
63 61
       }
64 62
     },
@@ -67,157 +65,183 @@ export default {
67 65
     // { path: 'prepare', component: () => import('@/xt_pages/dialysis/dialysisPrepare'), name: 'prepare', meta: { title: 'prepare' }},
68 66
 
69 67
     {
70
-      path: '/dialysis/details',
71
-      component: () => import('@/xt_pages/dialysis/details'),
72
-      name: 'details',
68
+      path: "/dialysis/details",
69
+      component: () => import("@/xt_pages/dialysis/details"),
70
+      name: "details",
73 71
       meta: {
74
-        title: 'details'
72
+        title: "details"
75 73
       },
76 74
       hidden: true,
77 75
       is_menu: false,
78 76
       noCache: true
79
-
80 77
     },
81 78
     {
82
-      path: '/dialysis/print/batch',
83
-      component: () => import('@/xt_pages/dialysis/batch_print/batch_print_order'),
79
+      path: "/dialysis/print/batch",
80
+      component: () =>
81
+        import("@/xt_pages/dialysis/batch_print/batch_print_order"),
84 82
       hidden: true,
85 83
       is_menu: false,
86
-      name: 'dialysis_batch_print',
84
+      name: "dialysis_batch_print",
87 85
       meta: {
88
-        title: '批量打印',
86
+        title: "批量打印",
89 87
         noCache: true
90 88
       }
91
-    }, {
92
-      path: '/dialysis/print/batch/other',
93
-      component: () => import('@/xt_pages/dialysis/batch_print/batch_print_order_other'),
89
+    },
90
+    {
91
+      path: "/dialysis/print/batch/other",
92
+      component: () =>
93
+        import("@/xt_pages/dialysis/batch_print/batch_print_order_other"),
94
+      hidden: true,
95
+      is_menu: false,
96
+      name: "dialysis_batch_print_two",
97
+      meta: {
98
+        title: "批量打印",
99
+        noCache: true
100
+      }
101
+    },
102
+    {
103
+      path: "/dialysis/print/batch/three",
104
+      component: () =>
105
+        import("@/xt_pages/dialysis/batch_print/batch_print_order_three"),
94 106
       hidden: true,
95 107
       is_menu: false,
96
-      name: 'dialysis_batch_print_two',
108
+      name: "dialysis_batch_print_two_one",
97 109
       meta: {
98
-        title: '批量打印',
110
+        title: "批量打印",
99 111
         noCache: true
100 112
       }
101 113
     },
102 114
     {
103
-      path: '/dialysis/print/batch/three',
104
-      component: () => import('@/xt_pages/dialysis/batch_print/batch_print_order_three'),
115
+      path: "/dialysis/print/batch/four",
116
+      component: () =>
117
+        import("@/xt_pages/dialysis/batch_print/batch_print_order_four"),
105 118
       hidden: true,
106 119
       is_menu: false,
107
-      name: 'dialysis_batch_print_two_one',
120
+      name: "dialysis_batch_print_two_one",
108 121
       meta: {
109
-        title: '批量打印',
122
+        title: "批量打印",
110 123
         noCache: true
111 124
       }
112 125
     },
113 126
     {
114
-      path: '/dialysis/print/batch/four',
115
-      component: () => import('@/xt_pages/dialysis/batch_print/batch_print_order_four'),
127
+      path: "/dialysis/print/batch/five",
128
+      component: () =>
129
+        import("@/xt_pages/dialysis/batch_print/batch_print_order_five"),
116 130
       hidden: true,
117 131
       is_menu: false,
118
-      name: 'dialysis_batch_print_two_one',
132
+      name: "dialysis_batch_print_two_one",
119 133
       meta: {
120
-        title: '批量打印',
134
+        title: "批量打印",
121 135
         noCache: true
122 136
       }
123 137
     },
124 138
     {
125
-      path: '/dialysis/print/batch/five',
126
-      component: () => import('@/xt_pages/dialysis/batch_print/batch_print_order_five'),
139
+      path: "/dialysis/print/batch/six",
140
+      component: () =>
141
+        import("@/xt_pages/dialysis/batch_print/batch_print_order_six"),
127 142
       hidden: true,
128 143
       is_menu: false,
129
-      name: 'dialysis_batch_print_two_one',
144
+      name: "dialysis_batch_six",
130 145
       meta: {
131
-        title: '批量打印',
146
+        title: "批量打印",
132 147
         noCache: true
133 148
       }
134 149
     },
135 150
     {
136
-      path: '/dialysis/print/batch/six',
137
-      component: () => import('@/xt_pages/dialysis/batch_print/batch_print_order_six'),
151
+      path: "/dialysis/print/batch/seven",
152
+      component: () =>
153
+        import("@/xt_pages/dialysis/batch_print/batch_print_order_seven"),
138 154
       hidden: true,
139 155
       is_menu: false,
140
-      name: 'dialysis_batch_six',
156
+      name: "dialysis_batch_seven",
141 157
       meta: {
142
-        title: '批量打印',
158
+        title: "批量打印",
143 159
         noCache: true
144 160
       }
145 161
     },
146 162
     {
147
-      path: '/dialysis/print/batch/seven',
148
-      component: () => import('@/xt_pages/dialysis/batch_print/batch_print_order_seven'),
163
+      path: "/dialysis/print/batch/eight",
164
+      component: () =>
165
+        import("@/xt_pages/dialysis/batch_print/batch_print_order_eight"),
149 166
       hidden: true,
150 167
       is_menu: false,
151
-      name: 'dialysis_batch_seven',
168
+      name: "dialysis_batch_eight",
152 169
       meta: {
153
-        title: '批量打印',
170
+        title: "批量打印",
154 171
         noCache: true
155 172
       }
156 173
     },
157 174
     {
158
-      path: '/dialysis/print/batch/eight',
159
-      component: () => import('@/xt_pages/dialysis/batch_print/batch_print_order_eight'),
175
+      path: "/dialysis/print/batch/nine",
176
+      component: () =>
177
+        import("@/xt_pages/dialysis/batch_print/batch_print_order_nine"),
160 178
       hidden: true,
161 179
       is_menu: false,
162
-      name: 'dialysis_batch_eight',
180
+      name: "dialysis_batch_nine",
163 181
       meta: {
164
-        title: '批量打印',
182
+        title: "批量打印",
165 183
         noCache: true
166 184
       }
167 185
     },
168 186
     {
169
-      path: '/dialysis/print/batch/nine',
187
+      path: "/dialysis/print/batch/twelve",
170 188
       component: () =>
171
-        import('@/xt_pages/dialysis/batch_print/batch_print_order_nine'),
189
+        import("@/xt_pages/dialysis/batch_print/batch_print_order_twelve"),
172 190
       hidden: true,
173 191
       is_menu: false,
174
-      name: 'dialysis_batch_nine',
192
+      name: "dialysis_batch_nine",
175 193
       meta: {
176
-        title: '批量打印',
194
+        title: "批量打印",
177 195
         noCache: true
178 196
       }
179 197
     },
180 198
     {
181
-      path: '/dialysis/print/batch/otherone',
182
-      component: () => import('@/xt_pages/dialysis/batch_print/batch_print_order_other_one'),
199
+      path: "/dialysis/print/batch/otherone",
200
+      component: () =>
201
+        import("@/xt_pages/dialysis/batch_print/batch_print_order_other_one"),
183 202
       hidden: true,
184 203
       is_menu: false,
185
-      name: 'dialysis_batch_print_two_one',
204
+      name: "dialysis_batch_print_two_one",
186 205
       meta: {
187
-        title: '批量打印',
206
+        title: "批量打印",
188 207
         noCache: true
189 208
       }
190
-    }, {
191
-      path: '/dialysis/print/batch/othertwo',
192
-      component: () => import('@/xt_pages/dialysis/batch_print/batch_print_order_other_two'),
209
+    },
210
+    {
211
+      path: "/dialysis/print/batch/othertwo",
212
+      component: () =>
213
+        import("@/xt_pages/dialysis/batch_print/batch_print_order_other_two"),
193 214
       hidden: true,
194 215
       is_menu: false,
195
-      name: 'dialysis_batch_print_two_two',
216
+      name: "dialysis_batch_print_two_two",
196 217
       meta: {
197
-        title: '批量打印',
218
+        title: "批量打印",
198 219
         noCache: true
199 220
       }
200
-    }, {
201
-      path: '/dialysis/print/batch/fiveone',
202
-      component: () => import('@/xt_pages/dialysis/batch_print/batch_print_order_five_one'),
221
+    },
222
+    {
223
+      path: "/dialysis/print/batch/fiveone",
224
+      component: () =>
225
+        import("@/xt_pages/dialysis/batch_print/batch_print_order_five_one"),
203 226
       hidden: true,
204 227
       is_menu: false,
205
-      name: 'dialysis_batch_print_two_two',
228
+      name: "dialysis_batch_print_two_two",
206 229
       meta: {
207
-        title: '批量打印',
230
+        title: "批量打印",
208 231
         noCache: true
209 232
       }
210
-    }, {
211
-      path: '/dialysis/print/batch/fivetwo',
212
-      component: () => import('@/xt_pages/dialysis/batch_print/batch_print_order_five_two'),
233
+    },
234
+    {
235
+      path: "/dialysis/print/batch/fivetwo",
236
+      component: () =>
237
+        import("@/xt_pages/dialysis/batch_print/batch_print_order_five_two"),
213 238
       hidden: true,
214 239
       is_menu: false,
215
-      name: 'dialysis_batch_print_two_two',
240
+      name: "dialysis_batch_print_two_two",
216 241
       meta: {
217
-        title: '批量打印',
242
+        title: "批量打印",
218 243
         noCache: true
219 244
       }
220 245
     }
221
-
222 246
   ]
223
-}
247
+};

+ 390 - 198
src/router/modules/qcd.js Ver arquivo

@@ -1,208 +1,400 @@
1
-import Layout from '@/views/layout/Layout'
1
+import Layout from "@/views/layout/Layout";
2 2
 
3 3
 export default {
4
-  path: '/qcd',
4
+  path: "/qcd",
5 5
   component: Layout,
6
-  redirect: '/qcd/dialysistotal',
7
-  name: 'qcd',
6
+  redirect: "/qcd/dialysistotal",
7
+  name: "qcd",
8 8
   alwaysShow: true,
9 9
   meta: {
10
-    title: '科室质控',
11
-    icon: 'statistics'
10
+    title: "科室质控",
11
+    icon: "statistics"
12 12
   },
13
-  children: [{
14
-    path: '/statistics/index',
15
-    component: () => import('@/xt_pages/statistics/index'),
16
-    name: 'statistics',
17
-    meta: {
18
-      title: 'statistics',
19
-      noCache: true,
13
+  children: [
14
+    {
15
+      path: "/statistics/index",
16
+      component: () => import("@/xt_pages/statistics/index"),
17
+      name: "statistics",
18
+      meta: {
19
+        title: "statistics",
20
+        noCache: true
21
+      }
22
+    },
23
+    {
24
+      path: "/qcd/dialysistotal",
25
+      component: () => import("@/xt_pages/qcd/dialysisTotal"),
26
+      name: "dialysistotal",
27
+      meta: {
28
+        title: "透析总量",
29
+        noCache: true
30
+      }
31
+    },
32
+    {
33
+      path: "/qcd/processindicators",
34
+      component: () => import("@/xt_pages/qcd/processIndicators"),
35
+      name: "processIndicators",
36
+      meta: {
37
+        title: "过程指标",
38
+        noCache: true
39
+      }
40
+    },
41
+    {
42
+      path: "/qcd/outcomeIndicators/control",
43
+      component: () => import("@/xt_pages/qcd/outcomeIndicators/control"),
44
+      name: "outcomeIndicatorsControl",
45
+      meta: {
46
+        title: "结果指标",
47
+        noCache: true
48
+      }
49
+    },
50
+    {
51
+      path: "/qcd/outcomeIndicators/query",
52
+      hidden: true,
53
+      is_menu: false,
54
+      component: () => import("@/xt_pages/qcd/outcomeIndicators/query"),
55
+      name: "outcomeIndicatorsQuery",
56
+      meta: {
57
+        title: "指标查询",
58
+        noCache: true
59
+      }
60
+    },
61
+    {
62
+      path: "/qcd/patientanalysis/total",
63
+      component: () => import("@/xt_pages/qcd/patientAnalysis/total"),
64
+      name: "patientAnalysisTotal",
65
+      meta: {
66
+        title: "患者分析",
67
+        noCache: true
68
+      }
69
+    },
70
+    {
71
+      path: "/qcd/patientanalysis/statisticalConfig",
72
+      component: () => import("@/xt_pages/qcd/statisticalConfiguration"),
73
+      name: "statisticalConfig",
74
+      meta: {
75
+        title: "统计配置",
76
+        noCache: true
77
+      }
78
+    },
79
+    {
80
+      path: "/qcd/basicInformationAnalysis",
81
+      component: () => import("@/xt_pages/qcd/basicInformationAnalysis"),
82
+      name: "basicInformationAnalysis",
83
+      meta: {
84
+        title: "基本信息统计",
85
+        noCache: true
86
+      }
87
+    },
88
+    {
89
+      path: "/qcd/officesControlAnalysis/time",
90
+      component: () => import("@/xt_pages/qcd/officesControlAnalysis/time"),
91
+      name: "officesControlAnalysis",
92
+      meta: {
93
+        title: "科室质控达标统计",
94
+        noCache: true
95
+      }
96
+    },
97
+    {
98
+      path: "/qcd/officesControlAnalysis/project",
99
+      hidden: true,
100
+      is_menu: false,
101
+      component: () => import("@/xt_pages/qcd/officesControlAnalysis/project"),
102
+      name: "patientControlAnalysisProject",
103
+      meta: {
104
+        title: "科室质控达标统计按项目",
105
+        noCache: true
106
+      }
107
+    },
108
+    {
109
+      path: "/qcd/patientControlAnalysis",
110
+      component: () => import("@/xt_pages/qcd/patientControlAnalysis"),
111
+      name: "patientControlAnalysisTime",
112
+      meta: {
113
+        title: "患者质控达标统计",
114
+        noCache: true
115
+      }
116
+    },
117
+    {
118
+      path: "/qcd/patientComplianceDetails",
119
+      hidden: true,
120
+      is_menu: false,
121
+      component: () => import("@/xt_pages/qcd/patientComplianceDetails"),
122
+      name: "patientComplianceDetails",
123
+      meta: {
124
+        title: "患者质控达标统计详情",
125
+        noCache: true
126
+      }
127
+    },
20 128
 
21
-    }
22
-  },
23
-  {
24
-    path: '/qcd/dialysistotal',
25
-    component: () => import('@/xt_pages/qcd/dialysisTotal'),
26
-    name: 'dialysistotal',
27
-    meta: {
28
-      title: '透析总量',
29
-      noCache: true,
30
-
31
-    }
32
-  },
33
-  {
34
-    path: '/qcd/processindicators',
35
-    component: () => import('@/xt_pages/qcd/processIndicators'),
36
-    name: 'processIndicators',
37
-    meta: {
38
-      title: '过程指标',
39
-      noCache: true,
40
-
41
-    }
42
-  },
43
-  {
44
-    path: '/qcd/outcomeIndicators/control',
45
-    component: () => import('@/xt_pages/qcd/outcomeIndicators/control'),
46
-    name: 'outcomeIndicatorsControl',
47
-    meta: {
48
-      title: '结果指标',
49
-      noCache: true,
50
-
51
-    }
52
-  },
53
-  {
54
-    path: '/qcd/outcomeIndicators/query',
55
-    hidden: true,
56
-    is_menu: false,
57
-    component: () => import('@/xt_pages/qcd/outcomeIndicators/query'),
58
-    name: 'outcomeIndicatorsQuery',
59
-    meta: {
60
-      title: '指标查询',
61
-      noCache: true,
62
-
63
-    }
64
-  },
65
-  {
66
-    path: '/qcd/patientanalysis/total',
67
-    component: () => import('@/xt_pages/qcd/patientAnalysis/total'),
68
-    name: 'patientAnalysisTotal',
69
-    meta: {
70
-      title: '患者分析',
71
-      noCache: true,
72
-
73
-    }
74
-  },
75
-  {
76
-    path: '/qcd/patientanalysis/weight',
77
-    hidden: true,
78
-    is_menu: false,
79
-    component: () => import('@/xt_pages/qcd/patientAnalysis/weight'),
80
-    name: 'patientAnalysisWeight',
81
-    meta: {
82
-      title: '体重分析',
83
-      noCache: true,
84
-
85
-    }
86
-  },
87
-  {
88
-    path: '/qcd/patientanalysis/bloodpressure',
89
-    hidden: true,
90
-    is_menu: false,
91
-    component: () => import('@/xt_pages/qcd/patientAnalysis/bloodPressure'),
92
-    name: 'patientAnalysisBloodPressure',
93
-    meta: {
94
-      title: '血压分析',
95
-      noCache: true,
96
-
97
-    }
98
-  },
99
-  {
100
-    path: '/qcd/patientanalysis/dialysisage',
101
-    hidden: true,
102
-    is_menu: false,
103
-    component: () => import('@/xt_pages/qcd/patientAnalysis/dialysisAge'),
104
-    name: 'patientAnalysisDialysisAge',
105
-    meta: {
106
-      title: '透析龄分析',
107
-      noCache: true,
108
-
109
-    }
110
-  },
111
-  {
112
-    path: '/qcd/patientanalysis/lapseto',
113
-    hidden: true,
114
-    is_menu: false,
115
-    component: () => import('@/xt_pages/qcd/patientAnalysis/lapseto'),
116
-    name: 'patientAnalysisLapseto',
117
-    meta: {
118
-      title: '转归分析',
119
-      noCache: true,
120
-
121
-    }
122
-  },
123
-  {
124
-    path: '/qcd/patientanalysis/complication',
125
-    hidden: true,
126
-    is_menu: false,
127
-    component: () => import('@/xt_pages/qcd/patientAnalysis/complication'),
128
-    name: 'patientAnalysisComplication',
129
-    meta: {
130
-      title: '并发症分析',
131
-      noCache: true,
132
-
133
-    }
134
-  },
135
-  {
136
-    path: '/qcd/patientanalysis/infectiousdiseases',
137
-    hidden: true,
138
-    is_menu: false,
139
-    component: () => import('@/xt_pages/qcd/patientAnalysis/infectiousDiseases'),
140
-    name: 'patientAnalysisInfectiousDiseases',
141
-    meta: {
142
-      title: '传染病分析',
143
-      noCache: true,
144
-
145
-    }
146
-  },
147
-  {
148
-    path: '/qcd/pa/person/lapseto',
149
-    hidden: true,
150
-    is_menu: false,
151
-    component: () => import('@/xt_pages/qcd/patientAnalysis/person/lapseto'),
152
-    name: 'paPersonLapseto',
153
-    meta: {
154
-      title: '转归',
155
-      noCache: true,
156
-
157
-    }
158
-  },
159
-  {
160
-    path: '/qcd/pa/person/weight',
161
-    hidden: true,
162
-    is_menu: false,
163
-    component: () => import('@/xt_pages/qcd/patientAnalysis/person/weight'),
164
-    name: 'paPersonWeight',
165
-    meta: {
166
-      title: '体重',
167
-      noCache: true,
168
-
169
-    }
170
-  },
171
-  {
172
-    path: '/qcd/pa/person/bloodpressure',
173
-    hidden: true,
174
-    is_menu: false,
175
-    component: () => import('@/xt_pages/qcd/patientAnalysis/person/bloodPressure'),
176
-    name: 'paPersonBloodPressure',
177
-    meta: {
178
-      title: '血压',
179
-      noCache: true,
180
-
181
-    }
182
-  },
183
-  {
184
-    path: '/qcd/pa/person/indicators',
185
-    hidden: true,
186
-    is_menu: false,
187
-    component: () => import('@/xt_pages/qcd/patientAnalysis/person/indicators'),
188
-    name: 'paPersonIndicators',
189
-    meta: {
190
-      title: '指标控制',
191
-      noCache: true,
192
-
193
-    }
194
-  },
195
-  {
196
-    path: '/qcd/pa/person/oralmedicine',
197
-    hidden: true,
198
-    is_menu: false,
199
-    component: () => import('@/xt_pages/qcd/patientAnalysis/person/oralMedicine'),
200
-    name: 'paPersonOralMedicine',
201
-    meta: {
202
-      title: '口服药',
203
-      noCache: true,
129
+    {
130
+      path: "/qcd/treatmentControlAnalysis/time",
131
+      component: () => import("@/xt_pages/qcd/treatmentControlAnalysis/time"),
132
+      name: "treatmentControlAnalysis",
133
+      meta: {
134
+        title: "治疗信息统计",
135
+        noCache: true
136
+      }
137
+    },
138
+    {
139
+      path: "/qcd/treatmentControlAnalysis/check",
140
+      hidden: true,
141
+      is_menu: false,
142
+      component: () => import("@/xt_pages/qcd/treatmentControlAnalysis/check"),
143
+      name: "treatmentControlAnalysisCheck",
144
+      meta: {
145
+        title: "治疗信息统计检验检查",
146
+        noCache: true
147
+      }
148
+    },
149
+    {
150
+      path: "/qcd/indicatorControlAnalysis/analysis",
151
+      component: () =>
152
+        import("@/xt_pages/qcd/indicatorControlAnalysis/analysis"),
153
+      name: "indicatorControlAnalysis",
154
+      meta: {
155
+        title: "指标评估统计",
156
+        noCache: true
157
+      }
158
+    },
159
+    {
160
+      path: "/qcd/indicatorControlAnalysis/process",
161
+      hidden: true,
162
+      is_menu: false,
163
+      component: () =>
164
+        import("@/xt_pages/qcd/indicatorControlAnalysis/process"),
165
+      name: "process",
166
+      meta: {
167
+        title: "指标评估统计透析过程",
168
+        noCache: true
169
+      }
170
+    },
171
+    {
172
+      path: "/qcd/indicatorControlAnalysis/monitor",
173
+      hidden: true,
174
+      is_menu: false,
175
+      component: () =>
176
+        import("@/xt_pages/qcd/indicatorControlAnalysis/monitor"),
177
+      name: "monitor",
178
+      meta: {
179
+        title: "指标评估统计透析监测",
180
+        noCache: true
181
+      }
182
+    },
183
+    {
184
+      path: "/qcd/indicatorControlAnalysis/bloodPressure",
185
+      hidden: true,
186
+      is_menu: false,
187
+      component: () =>
188
+        import("@/xt_pages/qcd/indicatorControlAnalysis/bloodPressure"),
189
+      name: "bloodPressure",
190
+      meta: {
191
+        title: "指标评估统计血压",
192
+        noCache: true
193
+      }
194
+    },
195
+    {
196
+      path: "/qcd/indicatorControlAnalysis/bloodPressureDetails",
197
+      hidden: true,
198
+      is_menu: false,
199
+      component: () =>
200
+        import("@/xt_pages/qcd/indicatorControlAnalysis/bloodPressureDetails"),
201
+      name: "bloodPressureDetails",
202
+      meta: {
203
+        title: "指标评估统计血压详情",
204
+        noCache: true
205
+      }
206
+    },
207
+    {
208
+      path: "/qcd/indicatorControlAnalysis/weight",
209
+      hidden: true,
210
+      is_menu: false,
211
+      component: () => import("@/xt_pages/qcd/indicatorControlAnalysis/weight"),
212
+      name: "weight",
213
+      meta: {
214
+        title: "指标评估体重",
215
+        noCache: true
216
+      }
217
+    },
218
+    {
219
+      path: "/qcd/indicatorControlAnalysis/weightDetails",
220
+      hidden: true,
221
+      is_menu: false,
222
+      component: () =>
223
+        import("@/xt_pages/qcd/indicatorControlAnalysis/weightDetails"),
224
+      name: "weightDetails",
225
+      meta: {
226
+        title: "指标评估体重详情",
227
+        noCache: true
228
+      }
229
+    },
230
+    {
231
+      path: "/qcd/analysisDetails",
232
+      hidden: true,
233
+      is_menu: false,
234
+      component: () =>
235
+        import("@/xt_pages/qcd/indicatorControlAnalysis/analysisDetails"),
236
+      name: "analysisDetails",
237
+      meta: {
238
+        title: "化验指标评估统计详情",
239
+        noCache: true
240
+      }
241
+    },
242
+    {
243
+      path: "/qcd/workAnalysis/doctor",
244
+      component: () => import("@/xt_pages/qcd/workAnalysis/doctor"),
245
+      name: "workAnalysisDoctor",
246
+      meta: {
247
+        title: "工作量分析统计医生",
248
+        noCache: true
249
+      }
250
+    },
251
+    {
252
+      path: "/qcd/workAnalysis/nurse",
253
+      hidden: true,
254
+      is_menu: false,
255
+      component: () => import("@/xt_pages/qcd/workAnalysis/nurse"),
256
+      name: "workAnalysisNurse",
257
+      meta: {
258
+        title: "工作量分析统计护士",
259
+        noCache: true
260
+      }
261
+    },
204 262
 
263
+    {
264
+      path: "/qcd/patientanalysis/checkStatistical",
265
+      hidden: true,
266
+      is_menu: false,
267
+      component: () => import("@/xt_pages/qcd/checkStatistical"),
268
+      name: "checkStatistical",
269
+      meta: {
270
+        title: "检验检查统计配置",
271
+        noCache: true
272
+      }
273
+    },
274
+    {
275
+      path: "/qcd/patientanalysis/weight",
276
+      hidden: true,
277
+      is_menu: false,
278
+      component: () => import("@/xt_pages/qcd/patientAnalysis/weight"),
279
+      name: "patientAnalysisWeight",
280
+      meta: {
281
+        title: "体重分析",
282
+        noCache: true
283
+      }
284
+    },
285
+    {
286
+      path: "/qcd/patientanalysis/bloodpressure",
287
+      hidden: true,
288
+      is_menu: false,
289
+      component: () => import("@/xt_pages/qcd/patientAnalysis/bloodPressure"),
290
+      name: "patientAnalysisBloodPressure",
291
+      meta: {
292
+        title: "血压分析",
293
+        noCache: true
294
+      }
295
+    },
296
+    {
297
+      path: "/qcd/patientanalysis/dialysisage",
298
+      hidden: true,
299
+      is_menu: false,
300
+      component: () => import("@/xt_pages/qcd/patientAnalysis/dialysisAge"),
301
+      name: "patientAnalysisDialysisAge",
302
+      meta: {
303
+        title: "透析龄分析",
304
+        noCache: true
305
+      }
306
+    },
307
+    {
308
+      path: "/qcd/patientanalysis/lapseto",
309
+      hidden: true,
310
+      is_menu: false,
311
+      component: () => import("@/xt_pages/qcd/patientAnalysis/lapseto"),
312
+      name: "patientAnalysisLapseto",
313
+      meta: {
314
+        title: "转归分析",
315
+        noCache: true
316
+      }
317
+    },
318
+    {
319
+      path: "/qcd/patientanalysis/complication",
320
+      hidden: true,
321
+      is_menu: false,
322
+      component: () => import("@/xt_pages/qcd/patientAnalysis/complication"),
323
+      name: "patientAnalysisComplication",
324
+      meta: {
325
+        title: "并发症分析",
326
+        noCache: true
327
+      }
328
+    },
329
+    {
330
+      path: "/qcd/patientanalysis/infectiousdiseases",
331
+      hidden: true,
332
+      is_menu: false,
333
+      component: () =>
334
+        import("@/xt_pages/qcd/patientAnalysis/infectiousDiseases"),
335
+      name: "patientAnalysisInfectiousDiseases",
336
+      meta: {
337
+        title: "传染病分析",
338
+        noCache: true
339
+      }
340
+    },
341
+    {
342
+      path: "/qcd/pa/person/lapseto",
343
+      hidden: true,
344
+      is_menu: false,
345
+      component: () => import("@/xt_pages/qcd/patientAnalysis/person/lapseto"),
346
+      name: "paPersonLapseto",
347
+      meta: {
348
+        title: "转归",
349
+        noCache: true
350
+      }
351
+    },
352
+    {
353
+      path: "/qcd/pa/person/weight",
354
+      hidden: true,
355
+      is_menu: false,
356
+      component: () => import("@/xt_pages/qcd/patientAnalysis/person/weight"),
357
+      name: "paPersonWeight",
358
+      meta: {
359
+        title: "体重",
360
+        noCache: true
361
+      }
362
+    },
363
+    {
364
+      path: "/qcd/pa/person/bloodpressure",
365
+      hidden: true,
366
+      is_menu: false,
367
+      component: () =>
368
+        import("@/xt_pages/qcd/patientAnalysis/person/bloodPressure"),
369
+      name: "paPersonBloodPressure",
370
+      meta: {
371
+        title: "血压",
372
+        noCache: true
373
+      }
374
+    },
375
+    {
376
+      path: "/qcd/pa/person/indicators",
377
+      hidden: true,
378
+      is_menu: false,
379
+      component: () =>
380
+        import("@/xt_pages/qcd/patientAnalysis/person/indicators"),
381
+      name: "paPersonIndicators",
382
+      meta: {
383
+        title: "指标控制",
384
+        noCache: true
385
+      }
386
+    },
387
+    {
388
+      path: "/qcd/pa/person/oralmedicine",
389
+      hidden: true,
390
+      is_menu: false,
391
+      component: () =>
392
+        import("@/xt_pages/qcd/patientAnalysis/person/oralMedicine"),
393
+      name: "paPersonOralMedicine",
394
+      meta: {
395
+        title: "口服药",
396
+        noCache: true
397
+      }
205 398
     }
206
-  }
207 399
   ]
208
-}
400
+};

+ 15 - 0
src/store/modules/globalConfig.js Ver arquivo

@@ -475,6 +475,21 @@ const global_config = {
475 475
         sodium: 2,
476 476
         calcium: 2,
477 477
         bicarbonate: 2
478
+      },
479
+      19: {
480
+        id: 19,
481
+        name: 'IUF+HD',
482
+        dialysis_duration: 1,
483
+        replacement_way: 1,
484
+        hemodialysis_machine: 2,
485
+        blood_filter: 1,
486
+        perfusion_apparatus: 2,
487
+        blood_flow_volume: 1,
488
+        dialysate_flow: 1,
489
+        kalium: 1,
490
+        sodium: 1,
491
+        calcium: 1,
492
+        bicarbonate: 1
478 493
       }
479 494
       // 15: { id: 15, name: 'HD前置换', dialysis_duration: 1, replacement_way: 2, hemodialysis_machine: 1, blood_filter: 2, perfusion_apparatus: 2, blood_flow_volume: 1, dialysate_flow: 1, kalium: 1, sodium: 1, calcium: 1, bicarbonate: 1 },
480 495
       // 16: { id: 16, name: 'HD后置换', dialysis_duration: 1, replacement_way: 2, hemodialysis_machine: 1, blood_filter: 2, perfusion_apparatus: 2, blood_flow_volume: 1, dialysate_flow: 1, kalium: 1, sodium: 1, calcium: 1, bicarbonate: 1 },

+ 14 - 14
src/utils/data.js Ver arquivo

@@ -3,7 +3,7 @@ import store from '@/store'
3 3
 export function getDataConfig(module, field) {
4 4
   var storeConfigList = store.getters.configlist
5 5
   var moduleConfig = storeConfigList[module]
6
-  if (module === 'summary' || module === 'education') {
6
+  if (module === 'summary' || module === 'education' || module === 'nursing_record' || module === 'special_record') {
7 7
     var Aresult = []
8 8
     for (var j = 0; j < moduleConfig.length; j++) {
9 9
       var Atemp = []
@@ -15,21 +15,21 @@ export function getDataConfig(module, field) {
15 15
     }
16 16
     return Aresult
17 17
   } else {
18
-      for (var i = 0; i < moduleConfig.length; i++) {
19
-        var newConfig = moduleConfig[i]
20
-        if (newConfig.field_name === field) {
21
-          var result = []
22
-          if(newConfig.childs != null) {
23
-            for (var j = 0; j < newConfig.childs.length; j++) {
24
-              var tempconfig = newConfig.childs[j]
25
-              var temp = []
26
-              temp['id'] = tempconfig.value
27
-              temp['name'] = tempconfig.name
28
-              result.push(temp)
29
-            }
18
+    for (var i = 0; i < moduleConfig.length; i++) {
19
+      var newConfig = moduleConfig[i]
20
+      if (newConfig.field_name === field) {
21
+        var result = []
22
+        if (newConfig.childs != null) {
23
+          for (var j = 0; j < newConfig.childs.length; j++) {
24
+            var tempconfig = newConfig.childs[j]
25
+            var temp = []
26
+            temp['id'] = tempconfig.value
27
+            temp['name'] = tempconfig.name
28
+            result.push(temp)
30 29
           }
31
-          return result
32 30
         }
31
+        return result
33 32
       }
33
+    }
34 34
   }
35 35
 }

+ 104 - 69
src/views/layout/components/Sidebar/SidebarItem.vue Ver arquivo

@@ -6,9 +6,21 @@
6 6
           :index="resolvePath(item.src)"
7 7
           :class="{ 'submenu-title-noDropdown': !isNest }"
8 8
         >
9
-          <i v-if="item.name == 'slow'" class="icon iconfont icon-manbing-xuanzhong" style="margin-right:4px"></i>
10
-          <i v-if="item.name == 'scrm'" class="icon iconfont icon-pengyou" style="margin-right:4px"></i>
11
-          <i v-if="item.name == 'shop'" class="icon iconfont icon-service_fill" style="margin-right:4px"></i>
9
+          <i
10
+            v-if="item.name == 'slow'"
11
+            class="icon iconfont icon-manbing-xuanzhong"
12
+            style="margin-right: 4px;"
13
+          ></i>
14
+          <i
15
+            v-if="item.name == 'scrm'"
16
+            class="icon iconfont icon-pengyou"
17
+            style="margin-right: 4px;"
18
+          ></i>
19
+          <i
20
+            v-if="item.name == 'shop'"
21
+            class="icon iconfont icon-service_fill"
22
+            style="margin-right: 4px;"
23
+          ></i>
12 24
           <span slot="title">{{ generateTitle(item.name) }}</span>
13 25
         </el-menu-item>
14 26
       </a>
@@ -17,8 +29,8 @@
17 29
       <div
18 30
         v-if="
19 31
           hasOneShowingChild(item.children) &&
20
-            !onlyOneChild.children &&
21
-            !item.alwaysShow
32
+          !onlyOneChild.children &&
33
+          !item.alwaysShow
22 34
         "
23 35
         @click="onClick(item)"
24 36
       >
@@ -34,20 +46,25 @@
34 46
             <span
35 47
               v-if="onlyOneChild.meta && onlyOneChild.meta.title"
36 48
               slot="title"
37
-            >{{ generateTitle(onlyOneChild.meta.title) }}</span>
49
+              >{{ generateTitle(onlyOneChild.meta.title) }}</span
50
+            >
38 51
           </el-menu-item>
39 52
         </router-link>
40
-        
41 53
       </div>
42 54
 
43 55
       <div v-else>
44
-        <el-submenu v-if="item.meta.isChild" id="mySubmenu" :index="item.name || item.path">
56
+        <el-submenu
57
+          v-if="item.meta.isChild"
58
+          id="mySubmenu"
59
+          :index="item.name || item.path"
60
+        >
45 61
           <template slot="title">
46
-            <svg-icon v-if="item.meta && item.meta.icon" :icon-class="item.meta.icon"></svg-icon>
62
+            <svg-icon
63
+              v-if="item.meta && item.meta.icon"
64
+              :icon-class="item.meta.icon"
65
+            ></svg-icon>
47 66
             <span v-if="item.meta && item.meta.title" slot="title">
48
-              {{
49
-              generateTitle(item.meta.title)
50
-              }}
67
+              {{ generateTitle(item.meta.title) }}
51 68
             </span>
52 69
           </template>
53 70
           <template v-for="child in item.children" v-if="!child.hidden">
@@ -56,23 +73,35 @@
56 73
               v-if="child.meta.isChild != true"
57 74
               :key="child.name"
58 75
             >
59
-              <el-menu-item @click="onClick(item)" :index="resolvePath(child.path)">
60
-                <svg-icon v-if="child.meta && child.meta.icon" :icon-class="child.meta.icon"></svg-icon>
76
+              <el-menu-item
77
+                @click="onClick(item)"
78
+                :index="resolvePath(child.path)"
79
+              >
80
+                <svg-icon
81
+                  v-if="child.meta && child.meta.icon"
82
+                  :icon-class="child.meta.icon"
83
+                ></svg-icon>
61 84
                 <span v-if="child.meta && child.meta.title" slot="title">
62
-                  {{
63
-                  generateTitle(child.meta.title)
64
-                  }}
85
+                  {{ generateTitle(child.meta.title) }}
65 86
                 </span>
66 87
               </el-menu-item>
67 88
             </router-link>
68 89
 
69
-            <router-link v-else :to="child.path" :key="child.name">
70
-              <el-menu-item @click="onClick(item,child.parentNum)" :index="resolvePath(child.path)">
71
-                <svg-icon v-if="child.meta && child.meta.icon" :icon-class="child.meta.icon"></svg-icon>
90
+            <router-link
91
+              v-if="child.meta.isChild == true"
92
+              :to="child.path"
93
+              :key="child.name"
94
+            >
95
+              <el-menu-item
96
+                @click="onClick(item, child.parentNum)"
97
+                :index="resolvePath(child.path)"
98
+              >
99
+                <svg-icon
100
+                  v-if="child.meta && child.meta.icon"
101
+                  :icon-class="child.meta.icon"
102
+                ></svg-icon>
72 103
                 <span v-if="child.meta && child.meta.title" slot="title">
73
-                  {{
74
-                  generateTitle(child.meta.title)
75
-                  }}
104
+                  {{ generateTitle(child.meta.title) }}
76 105
                 </span>
77 106
               </el-menu-item>
78 107
             </router-link>
@@ -82,36 +111,41 @@
82 111
           <router-link :to="resolvePath(item.children[0].path)">
83 112
             <el-menu-item :index="item.name || item.path">
84 113
               <template slot="title">
85
-                <svg-icon v-if="item.meta && item.meta.icon" :icon-class="item.meta.icon"></svg-icon>
114
+                <svg-icon
115
+                  v-if="item.meta && item.meta.icon"
116
+                  :icon-class="item.meta.icon"
117
+                ></svg-icon>
86 118
                 <span v-if="item.meta && item.meta.title" slot="title">
87
-                  {{
88
-                  generateTitle(item.meta.title)
89
-                  }}
119
+                  {{ generateTitle(item.meta.title) }}
90 120
                 </span>
91 121
               </template>
92 122
 
93 123
               <!-- <template v-for="child in item.children" v-if="!child.hidden">
94
-          <sidebar-item
95
-            :is-nest="true"
96
-            class="nest-menu"
97
-            v-if="child.children && child.children.length > 0"
98
-            :item="child"
99
-            :key="child.path"
100
-            :base-path="resolvePath(child.path)"
101
-          ></sidebar-item>
124
+                <sidebar-item
125
+                  :is-nest="true"
126
+                  class="nest-menu"
127
+                  v-if="child.children && child.children.length > 0"
128
+                  :item="child"
129
+                  :key="child.path"
130
+                  :base-path="resolvePath(child.path)"
131
+                ></sidebar-item>
102 132
 
103
-          <router-link v-else :to="resolvePath(child.path)" :key="child.name">
104
-            <el-menu-item :index="resolvePath(child.path)">
105
-              <svg-icon
106
-                v-if="child.meta && child.meta.icon"
107
-                :icon-class="child.meta.icon"
108
-              ></svg-icon>
109
-              <span v-if="child.meta && child.meta.title" slot="title">{{
110
-                generateTitle(child.meta.title)
111
-              }}</span>
112
-            </el-menu-item>
113
-          </router-link>
114
-              </template>-->
133
+                <router-link
134
+                  v-else
135
+                  :to="resolvePath(child.path)"
136
+                  :key="child.name"
137
+                >
138
+                  <el-menu-item :index="resolvePath(child.path)">
139
+                    <svg-icon
140
+                      v-if="child.meta && child.meta.icon"
141
+                      :icon-class="child.meta.icon"
142
+                    ></svg-icon>
143
+                    <span v-if="child.meta && child.meta.title" slot="title">{{
144
+                      generateTitle(child.meta.title)
145
+                    }}</span>
146
+                  </el-menu-item>
147
+                </router-link>
148
+              </template> -->
115 149
             </el-menu-item>
116 150
           </router-link>
117 151
         </div>
@@ -131,31 +165,31 @@ export default {
131 165
     // route object
132 166
     item: {
133 167
       type: Object,
134
-      required: true
168
+      required: true,
135 169
     },
136 170
     isNest: {
137 171
       type: Boolean,
138
-      default: false
172
+      default: false,
139 173
     },
140 174
     basePath: {
141 175
       type: String,
142
-      default: ""
176
+      default: "",
143 177
     },
144 178
     index: {
145
-      type: Number
146
-    }
179
+      type: Number,
180
+    },
147 181
   },
148 182
   computed: {
149
-    ...mapGetters(["permission_routers"])
183
+    ...mapGetters(["permission_routers"]),
150 184
   },
151 185
   data() {
152 186
     return {
153
-      onlyOneChild: null
187
+      onlyOneChild: null,
154 188
     };
155 189
   },
156 190
   methods: {
157 191
     hasOneShowingChild(children) {
158
-      const showingChildren = children.filter(item => {
192
+      const showingChildren = children.filter((item) => {
159 193
         if (item.hidden) {
160 194
           return false;
161 195
         } else {
@@ -201,9 +235,11 @@ export default {
201 235
       }
202 236
 
203 237
       return true;
204
-    }
238
+    },
239
+  },
240
+  created() {
241
+    console.log(this.permission_routers);
205 242
   },
206
-  created() {}
207 243
 };
208 244
 </script>
209 245
 
@@ -219,30 +255,29 @@ export default {
219 255
       min-width: 0;
220 256
       padding: 0 5px !important;
221 257
       font-size: 12px;
222
-      background-color:#1F2D3D !important;
258
+      background-color: #1f2d3d !important;
223 259
     }
224 260
   }
225 261
 }
226
-.menu-wrapper{
227
-  .el-menu-item{
228
-   background-color:#1F2D3D !important;
229
-   color: #fff !important;
262
+.menu-wrapper {
263
+  .el-menu-item {
264
+    background-color: #1f2d3d !important;
265
+    color: #fff !important;
230 266
   }
231
-  .el-menu{
232
-    background-color:#1F2D3D !important;
267
+  .el-menu {
268
+    background-color: #1f2d3d !important;
233 269
   }
234
-  .el-submenu__title{
235
-    background-color:#1F2D3D !important;
270
+  .el-submenu__title {
271
+    background-color: #1f2d3d !important;
236 272
     color: #fff !important;
237 273
     height: 32px !important;
238 274
     line-height: 32px !important;
239 275
   }
240
-  .router-link-exact-active{
276
+  .router-link-exact-active {
241 277
     color: rgb(64, 158, 255) !important;
242
-    .el-menu-item{
278
+    .el-menu-item {
243 279
       color: rgb(64, 158, 255) !important;
244 280
     }
245 281
   }
246 282
 }
247
-
248 283
 </style>

+ 150 - 0
src/xt_pages/data/components/dialysisSummary.vue Ver arquivo

@@ -0,0 +1,150 @@
1
+<template>
2
+  <div class="">
3
+    <el-table
4
+      :row-style="{ color: '#303133' }"
5
+      :header-cell-style="{
6
+        backgroundColor: 'rgb(245, 247, 250)',
7
+        color: '#606266'
8
+      }"
9
+      :data="dialysis_summary_data"
10
+      border
11
+      fit
12
+      highlight-current-row
13
+      style="width: 100%;min-height:500px;"
14
+    >
15
+      <el-table-column align="center" label="字段名">
16
+        <template slot-scope="scope">
17
+          <span>{{ scope.row.filed_name_cn }}</span>
18
+        </template>
19
+      </el-table-column>
20
+      <el-table-column align="center" label="字段">
21
+        <template slot-scope="scope">
22
+          <span>{{ scope.row.filed_name }}</span>
23
+        </template>
24
+      </el-table-column>
25
+
26
+      <el-table-column align="center" label="是否显示">
27
+        <template slot-scope="scope">
28
+          <span v-if="scope.row.is_show == 1">是</span>
29
+          <span v-if="scope.row.is_show == 2">否</span>
30
+        </template>
31
+      </el-table-column>
32
+
33
+      <el-table-column label="操作" align="center">
34
+        <template slot-scope="scope">
35
+          <el-tooltip
36
+            class="item"
37
+            effect="dark"
38
+            content="不展示"
39
+            placement="top"
40
+            v-if="scope.row.is_show == 1"
41
+          >
42
+            <el-button
43
+              size="small"
44
+              type="danger"
45
+              icon="el-icon-remove-outline"
46
+              @click="handleHide(scope.$index, scope.row)"
47
+            >
48
+            </el-button>
49
+          </el-tooltip>
50
+
51
+          <el-tooltip
52
+            class="item"
53
+            effect="dark"
54
+            content="展示"
55
+            placement="top"
56
+            v-if="scope.row.is_show == 2"
57
+          >
58
+            <el-button
59
+              size="small"
60
+              type="primary"
61
+              icon="el-icon-view"
62
+              @click="handleShow(scope.$index, scope.row)"
63
+            >
64
+            </el-button>
65
+          </el-tooltip>
66
+        </template>
67
+      </el-table-column>
68
+    </el-table>
69
+  </div>
70
+</template>
71
+
72
+<script>
73
+import { updateFieldIsShow } from "@/api/data";
74
+import store from "@/store";
75
+
76
+export default {
77
+  name: "dialysisSummary",
78
+
79
+  props: {
80
+    dialysis_summary_data: {
81
+      type: Array
82
+    }
83
+  },
84
+  methods: {
85
+    handleHide: function(index, row) {
86
+      this.$confirm("是否将该字段设为不可见?", "提示", {
87
+        confirmButtonText: "确 定",
88
+        cancelButtonText: "取 消",
89
+        type: "warning"
90
+      })
91
+        .then(() => {
92
+          updateFieldIsShow(row.id, 2).then(response => {
93
+            if (response.data.state == 1) {
94
+              let params = {
95
+                id: response.data.data.id,
96
+                is_show: response.data.data.is_show
97
+              };
98
+              store.dispatch("updateFiledConfigList", params).then(() => {});
99
+              this.$emit("change", params);
100
+            }
101
+          });
102
+          this.$message({
103
+            type: "success",
104
+            message: "设置成功!"
105
+          });
106
+        })
107
+        .catch(() => {});
108
+    },
109
+    handleShow: function(index, row) {
110
+      this.$confirm("是否将该字段设为可见?", "提示", {
111
+        confirmButtonText: "确 定",
112
+        cancelButtonText: "取 消",
113
+        type: "warning"
114
+      })
115
+        .then(() => {
116
+          updateFieldIsShow(row.id, 1).then(response => {
117
+            if (response.data.state == 1) {
118
+              let params = {
119
+                id: response.data.data.id,
120
+                is_show: response.data.data.is_show
121
+              };
122
+              store.dispatch("updateFiledConfigList", params).then(() => {});
123
+              this.$emit("change", params);
124
+            }
125
+          });
126
+          this.$message({
127
+            type: "success",
128
+            message: "设置成功!"
129
+          });
130
+        })
131
+        .catch(() => {});
132
+    }
133
+  }
134
+};
135
+</script>
136
+
137
+<style scoped></style>
138
+<style>
139
+.el-table td,
140
+.el-table th.is-leaf,
141
+.el-table--border,
142
+.el-table--group {
143
+  border-color: #d0d3da;
144
+}
145
+.el-table--border::after,
146
+.el-table--group::after,
147
+.el-table::before {
148
+  background-color: #d0d3da;
149
+}
150
+</style>

+ 16 - 2
src/xt_pages/data/components/tableson.vue Ver arquivo

@@ -357,6 +357,20 @@ export default {
357 357
     handleCreate() {
358 358
       this.resetTemp();
359 359
       this.dialogStatus = "create";
360
+      // for (let i = 0; i < this.list.length; i++) {
361
+      //  if (
362
+      //    this.list[i].name == "无肝素" ||
363
+      //   this.list[i].name == "普通肝素" ||
364
+      //   this.list[i].name == "低分子肝素钠" ||
365
+      //    this.list[i].name == "低分子肝素钙" ||
366
+      //   this.list[i].name == "阿加曲班" ||
367
+      //    this.list[i].name == "枸橼酸钠"
368
+      //  ) {
369
+      //    this.$message.error("该项暂不支持新增");
370
+      //    return false;
371
+      //  }
372
+      // }
373
+
360 374
       this.dialogFormVisible = true;
361 375
       this.$nextTick(() => {
362 376
         this.$refs["dataForm"].clearValidate();
@@ -391,8 +405,8 @@ export default {
391 405
       if (
392 406
         row.name == "无肝素" ||
393 407
         row.name == "普通肝素" ||
394
-        row.name == "低分子钠" ||
395
-        row.name == "低分子钙" ||
408
+        row.name == "低分子肝素钠" ||
409
+        row.name == "低分子肝素钙" ||
396 410
         row.name == "阿加曲班" ||
397 411
         row.name == "枸橼酸钠"
398 412
       ) {

+ 86 - 53
src/xt_pages/data/prescription.vue Ver arquivo

@@ -192,7 +192,14 @@
192 192
                     ></el-input>
193 193
                   </el-form-item>
194 194
                 </el-col>
195
-                <el-col :span="8">
195
+                <el-col
196
+                  :span="8"
197
+                  v-if="
198
+                    current_select == 2 ||
199
+                      current_select == 5 ||
200
+                      current_select == 12
201
+                  "
202
+                >
196 203
                   <el-form-item label="置换量(L) : " prop="replacement_total">
197 204
                     <el-input
198 205
                       v-model="addPlan.replacement_total"
@@ -310,7 +317,9 @@
310 317
                   <el-form-item
311 318
                     label="置换液:"
312 319
                     v-if="
313
-                      current_select == 2 &&
320
+                      (current_select == 2 ||
321
+                        current_select == 5 ||
322
+                        current_select == 12) &&
314 323
                         this.$store.getters.xt_user.template_info.template_id !=
315 324
                           6
316 325
                     "
@@ -352,7 +361,14 @@
352 361
                   </el-form-item>
353 362
                 </el-col>
354 363
 
355
-                <el-col :span="8" v-if="current_select == 2">
364
+                <el-col
365
+                  :span="8"
366
+                  v-if="
367
+                    current_select == 2 ||
368
+                      current_select == 5 ||
369
+                      current_select == 12
370
+                  "
371
+                >
356 372
                   <el-form-item label="置换液总量(L)">
357 373
                     <el-input v-model="addPlan.displace_liqui_value"></el-input>
358 374
                   </el-form-item>
@@ -640,24 +656,69 @@ export default {
640 656
           calcium: 2,
641 657
           bicarbonate: 2
642 658
         },
659
+        // {
660
+        //   id: 15,
661
+        //   name: "HD前置换",
662
+        //   dialysis_duration: 1,
663
+        //   replacement_way: 2,
664
+        //   hemodialysis_machine: 1,
665
+        //   blood_filter: 2,
666
+        //   perfusion_apparatus: 2,
667
+        //   blood_flow_volume: 1,
668
+        //   dialysate_flow: 1,
669
+        //   kalium: 1,
670
+        //   sodium: 1,
671
+        //   calcium: 1,
672
+        //   bicarbonate: 1
673
+        // },
674
+        // {
675
+        //   id: 16,
676
+        //   name: "HD后置换",
677
+        //   dialysis_duration: 1,
678
+        //   replacement_way: 2,
679
+        //   hemodialysis_machine: 1,
680
+        //   blood_filter: 2,
681
+        //   perfusion_apparatus: 2,
682
+        //   blood_flow_volume: 1,
683
+        //   dialysate_flow: 1,
684
+        //   kalium: 1,
685
+        //   sodium: 1,
686
+        //   calcium: 1,
687
+        //   bicarbonate: 1
688
+        // },
689
+        // {
690
+        //   id: 17,
691
+        //   name: "HDF前置换",
692
+        //   dialysis_duration: 1,
693
+        //   replacement_way: 1,
694
+        //   hemodialysis_machine: 2,
695
+        //   blood_filter: 1,
696
+        //   perfusion_apparatus: 2,
697
+        //   blood_flow_volume: 1,
698
+        //   dialysate_flow: 1,
699
+        //   kalium: 1,
700
+        //   sodium: 1,
701
+        //   calcium: 1,
702
+        //   bicarbonate: 1
703
+        // },
704
+        // {
705
+        //   id: 18,
706
+        //   name: "HDF后置换",
707
+        //   dialysis_duration: 1,
708
+        //   replacement_way: 1,
709
+        //   hemodialysis_machine: 2,
710
+        //   blood_filter: 1,
711
+        //   perfusion_apparatus: 2,
712
+        //   blood_flow_volume: 1,
713
+        //   dialysate_flow: 1,
714
+        //   kalium: 1,
715
+        //   sodium: 1,
716
+        //   calcium: 1,
717
+        //   bicarbonate: 1
718
+        // },
643 719
         {
644
-          id: 15,
645
-          name: "HD前置换",
646
-          dialysis_duration: 1,
647
-          replacement_way: 2,
648
-          hemodialysis_machine: 1,
649
-          blood_filter: 2,
650
-          perfusion_apparatus: 2,
651
-          blood_flow_volume: 1,
652
-          dialysate_flow: 1,
653
-          kalium: 1,
654
-          sodium: 1,
655
-          calcium: 1,
656
-          bicarbonate: 1
657
-        },
658
-        {
659
-          id: 16,
660
-          name: "HD后置换",
720
+          id: 19,
721
+          name: "IUF+HD",
661 722
           dialysis_duration: 1,
662 723
           replacement_way: 2,
663 724
           hemodialysis_machine: 1,
@@ -669,36 +730,6 @@ export default {
669 730
           sodium: 1,
670 731
           calcium: 1,
671 732
           bicarbonate: 1
672
-        },
673
-        {
674
-          id: 17,
675
-          name: "HDF前置换",
676
-          dialysis_duration: 1,
677
-          replacement_way: 1,
678
-          hemodialysis_machine: 2,
679
-          blood_filter: 1,
680
-          perfusion_apparatus: 2,
681
-          blood_flow_volume: 1,
682
-          dialysate_flow: 1,
683
-          kalium: 1,
684
-          sodium: 1,
685
-          calcium: 1,
686
-          bicarbonate: 1
687
-        },
688
-        {
689
-          id: 18,
690
-          name: "HDF后置换",
691
-          dialysis_duration: 1,
692
-          replacement_way: 1,
693
-          hemodialysis_machine: 2,
694
-          blood_filter: 1,
695
-          perfusion_apparatus: 2,
696
-          blood_flow_volume: 1,
697
-          dialysate_flow: 1,
698
-          kalium: 1,
699
-          sodium: 1,
700
-          calcium: 1,
701
-          bicarbonate: 1
702 733
         }
703 734
       ],
704 735
       addPlan: {
@@ -782,6 +813,7 @@ export default {
782 813
       row.index = rowIndex;
783 814
     },
784 815
     onRowClicks(row, event, column) {
816
+      console.log("row------", row.id);
785 817
       this.current_select = row.id;
786 818
       this.mode_name = row.name;
787 819
       this.isEdit = false;
@@ -1002,15 +1034,16 @@ export default {
1002 1034
       );
1003 1035
     },
1004 1036
     "addPlan.anticoagulant_shouji": function() {
1005
-      console.log(this.addPlan.anticoagulant_shouji);
1006
-      console.log(this.addPlan.dialysis_duration);
1007
-      console.log(this.addPlan.anticoagulant_weichi);
1037
+      console.log("首剂", this.addPlan.anticoagulant_shouji);
1038
+      console.log("维持", this.addPlan.anticoagulant_weichi);
1039
+      console.log("总量", this.addPlan.dialysis_duration);
1008 1040
       this.addPlan.anticoagulant_zongliang = calculateAnticoagulantZL(
1009 1041
         1,
1010 1042
         this.addPlan.anticoagulant_shouji,
1011 1043
         this.addPlan.dialysis_duration,
1012 1044
         this.addPlan.anticoagulant_weichi
1013 1045
       );
1046
+      console.log("总量----", this.addPlan.anticoagulant_zongliang);
1014 1047
     },
1015 1048
     "addPlan.anticoagulant_weichi": function() {
1016 1049
       console.log(this.addPlan.anticoagulant_shouji);

+ 32 - 29
src/xt_pages/data/printTemplate.vue Ver arquivo

@@ -88,7 +88,7 @@
88 88
               >
89 89
                 <el-image
90 90
                   style="width: 200px; height: 200px"
91
-                  :src="require('@/assets/home/4.png')"
91
+                  :src="require('@/assets/home/serven.png')"
92 92
                   :preview-src-list="imgs_seven"
93 93
                 ></el-image>
94 94
               </el-tooltip>
@@ -110,7 +110,7 @@
110 110
               >
111 111
                 <el-image
112 112
                   style="width: 200px; height: 200px;margin-left:-60px"
113
-                  :src="require('@/assets/home/5.png')"
113
+                  :src="require('@/assets/home/eight.png')"
114 114
                   :preview-src-list="imgs_six"
115 115
                 ></el-image>
116 116
               </el-tooltip>
@@ -145,24 +145,24 @@
145 145
           </el-col>
146 146
 
147 147
           <!--<el-col :span="6" style="text-align: center">-->
148
-            <!--<div class="demo-image__preview">-->
149
-              <!--<el-tooltip-->
150
-                <!--class="item"-->
151
-                <!--effect="dark"-->
152
-                <!--content="点击查看大图"-->
153
-                <!--placement="top-start"-->
154
-                <!--:hide-after="2000"-->
155
-              <!--&gt;-->
156
-                <!--<el-image-->
157
-                  <!--style="width: 200px; height: 200px;margin-left:30px"-->
158
-                  <!--:src="require('@/assets/home/template_ten.jpg')"-->
159
-                  <!--:preview-src-list="imgs_ten"-->
160
-                <!--&gt;</el-image>-->
161
-              <!--</el-tooltip>-->
162
-            <!--</div>-->
163
-            <!--<el-radio v-model="radio" label="10" @change="change"-->
164
-            <!--&gt;模版十</el-radio-->
165
-            <!--&gt;-->
148
+          <!--<div class="demo-image__preview">-->
149
+          <!--<el-tooltip-->
150
+          <!--class="item"-->
151
+          <!--effect="dark"-->
152
+          <!--content="点击查看大图"-->
153
+          <!--placement="top-start"-->
154
+          <!--:hide-after="2000"-->
155
+          <!--&gt;-->
156
+          <!--<el-image-->
157
+          <!--style="width: 200px; height: 200px;margin-left:30px"-->
158
+          <!--:src="require('@/assets/home/template_ten.jpg')"-->
159
+          <!--:preview-src-list="imgs_ten"-->
160
+          <!--&gt;</el-image>-->
161
+          <!--</el-tooltip>-->
162
+          <!--</div>-->
163
+          <!--<el-radio v-model="radio" label="10" @change="change"-->
164
+          <!--&gt;模版十</el-radio-->
165
+          <!--&gt;-->
166 166
           <!--</el-col>-->
167 167
         </el-row>
168 168
       </div>
@@ -188,15 +188,14 @@ export default {
188 188
       imgUrl_Two: require("@/assets/home/2.jpg"),
189 189
       imgUrl_Five: require("@/assets/home/5.jpg"),
190 190
 
191
-
192 191
       imgs_one: [
193 192
         // 'https://images.shengws.com/template_one.jpg'
194 193
         "https://images.shengws.com/fangji.jpg"
195 194
       ],
196 195
       imgs_two: ["https://images.shengws.com/template_two.jpg"],
197 196
       imgs_five: ["https://images.shengws.com/template_five.jpg"],
198
-      imgs_seven: ["http://images.shengws.com/7.png"],
199
-      imgs_six: ["https://images.shengws.com/5.png"],
197
+      imgs_seven: ["http://images.shengws.com/serven.png"],
198
+      imgs_six: ["http://images.shengws.com/eight.png"],
200 199
       imgs_eight: ["https://images.shengws.com/template_six.png"],
201 200
       imgs_ten: ["https://kuyi.shengws.com/template_ten.jpg"],
202 201
 
@@ -209,11 +208,15 @@ export default {
209 208
   methods: {
210 209
     change: function(val) {
211 210
       console.log("val是什么", val);
212
-      this.$confirm("切换模版后,透析记录的字段会根据打印单来显示与隐藏,是否确定切换模版", "提示", {
213
-        confirmButtonText: "确定",
214
-        cancelButtonText: "取消",
215
-        type: "info"
216
-      })
211
+      this.$confirm(
212
+        "切换模版后,透析记录的字段会根据打印单来显示与隐藏,是否确定切换模版",
213
+        "提示",
214
+        {
215
+          confirmButtonText: "确定",
216
+          cancelButtonText: "取消",
217
+          type: "info"
218
+        }
219
+      )
217 220
         .then(() => {
218 221
           this.loading = true;
219 222
           postPrintTemplate(val).then(response => {
@@ -224,7 +227,7 @@ export default {
224 227
               // 同步
225 228
               // console.log(response.data.data.fileds)
226 229
               this.loading = false;
227
-               // store.dispatch("updateAllFiledConfigList", response.data.data.fileds).then(() => {});
230
+               store.dispatch("updateAllFiledConfigList", response.data.data.fileds).then(() => {});
228 231
               this.$message({
229 232
                 type: "success",
230 233
                 message: "切换成功"

+ 131 - 104
src/xt_pages/data/showConfig.vue Ver arquivo

@@ -1,27 +1,47 @@
1 1
 <template>
2 2
   <div class="main-contain">
3 3
     <div class="position">
4
-      <bread-crumb :crumbs='crumbs'></bread-crumb>
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5 5
     </div>
6 6
     <div class="app-container">
7 7
       <div class="service-box">
8 8
         <el-tabs v-model="activeName">
9 9
           <el-tab-pane label="透析处方" name="first">
10
-            <dialysis-prescription :dialysis_prescription_data="dialysis_prescription_data" @change="changePrescriptionData"></dialysis-prescription>
10
+            <dialysis-prescription
11
+              :dialysis_prescription_data="dialysis_prescription_data"
12
+              @change="changePrescriptionData"
13
+            ></dialysis-prescription>
11 14
           </el-tab-pane>
12 15
           <el-tab-pane label="接诊评估">
13
-            <receive-treatment-asses :receive_treatment_asses_data="receive_treatment_asses_data" @change="changeAssesData"></receive-treatment-asses>
16
+            <receive-treatment-asses
17
+              :receive_treatment_asses_data="receive_treatment_asses_data"
18
+              @change="changeAssesData"
19
+            ></receive-treatment-asses>
14 20
           </el-tab-pane>
15 21
           <el-tab-pane label="透前评估">
16
-            <dialysis-before :dialysis_before_data="dialysis_before_data" @change="changeBeforeData"></dialysis-before>
22
+            <dialysis-before
23
+              :dialysis_before_data="dialysis_before_data"
24
+              @change="changeBeforeData"
25
+            ></dialysis-before>
17 26
           </el-tab-pane>
18 27
           <el-tab-pane label="透析监测">
19
-            <dialysis-monitor :dialysis_monitor_data="dialysis_monitor_data" @change="changeMonitorData"></dialysis-monitor>
28
+            <dialysis-monitor
29
+              :dialysis_monitor_data="dialysis_monitor_data"
30
+              @change="changeMonitorData"
31
+            ></dialysis-monitor>
20 32
           </el-tab-pane>
21 33
           <el-tab-pane label="透后评估">
22
-            <dialysis-after :dialysis_after_data="dialysis_after_data" @change="changeAfterData"></dialysis-after>
34
+            <dialysis-after
35
+              :dialysis_after_data="dialysis_after_data"
36
+              @change="changeAfterData"
37
+            ></dialysis-after>
38
+          </el-tab-pane>
39
+          <el-tab-pane label="透析小结">
40
+            <dialysis-summary
41
+              :dialysis_summary_data="dialysis_summary_data"
42
+              @change="changeSummaryData"
43
+            ></dialysis-summary>
23 44
           </el-tab-pane>
24
-
25 45
         </el-tabs>
26 46
       </div>
27 47
     </div>
@@ -29,114 +49,121 @@
29 49
 </template>
30 50
 
31 51
 <script>
32
-
33
-  import BreadCrumb from '@/xt_pages/components/bread-crumb'
34
-  import DialysisAfter from './components/dialysisAfter'
35
-  import DialysisPrescription from './components/dialysisPrescription'
36
-  import DialysisBefore from './components/dialysisBefore'
37
-  import DialysisMonitor from './components/dialysisMonitor'
38
-  import ReceiveTreatmentAsses from './components/receiveTreatmentAsses'
39
-  import { getFiledConfigList } from '@/utils/data_config' // getConfigList from sessionStorage
40
-  import store from '@/store'
41
-
42
-  export default {
43
-    name: 'showConfig',
44
-    components: {
45
-      ReceiveTreatmentAsses,
46
-      DialysisMonitor,
47
-      DialysisBefore,
48
-      DialysisPrescription,
49
-      DialysisAfter,
50
-      BreadCrumb
52
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
53
+import DialysisAfter from "./components/dialysisAfter";
54
+import DialysisPrescription from "./components/dialysisPrescription";
55
+import DialysisBefore from "./components/dialysisBefore";
56
+import DialysisMonitor from "./components/dialysisMonitor";
57
+import ReceiveTreatmentAsses from "./components/receiveTreatmentAsses";
58
+import DialysisSummary from "./components/dialysisSummary";
59
+import { getFiledConfigList } from "@/utils/data_config"; // getConfigList from sessionStorage
60
+import store from "@/store";
61
+
62
+export default {
63
+  name: "showConfig",
64
+  components: {
65
+    ReceiveTreatmentAsses,
66
+    DialysisMonitor,
67
+    DialysisBefore,
68
+    DialysisPrescription,
69
+    DialysisAfter,
70
+    BreadCrumb,
71
+    DialysisSummary
72
+  },
73
+  data() {
74
+    return {
75
+      crumbs: [
76
+        { path: false, name: "管理中心" },
77
+        { path: "/data/showconfig", name: "显示配置" }
78
+      ],
79
+      activeName: "first",
80
+      dialysis_prescription_data: [],
81
+      receive_treatment_asses_data: [],
82
+      dialysis_before_data: [],
83
+      dialysis_monitor_data: [],
84
+      dialysis_after_data: [],
85
+      dialysis_summary_data: []
86
+    };
87
+  },
88
+  methods: {
89
+    handleClick(tab, event) {
90
+      console.log(tab, event, this.activeName);
51 91
     },
52
-    data() {
53
-      return {
54
-        crumbs: [
55
-          { path: false, name: '管理中心' },
56
-          { path: '/data/showconfig', name: '显示配置' }
57
-        ],
58
-        activeName: 'first',
59
-        dialysis_prescription_data:[],
60
-        receive_treatment_asses_data:[],
61
-        dialysis_before_data:[],
62
-        dialysis_monitor_data:[],
63
-        dialysis_after_data:[],
92
+    changePrescriptionData: function(object) {
93
+      for (let i = 0; i < this.dialysis_prescription_data.length; i++) {
94
+        if (this.dialysis_prescription_data[i].id == object.id) {
95
+          this.dialysis_prescription_data[i].is_show = object.is_show;
96
+        }
64 97
       }
65 98
     },
66
-    methods: {
67
-      handleClick(tab, event) {
68
-        console.log(tab, event, this.activeName)
69
-      },changePrescriptionData:function(object) {
70
-        for (let i = 0; i< this.dialysis_prescription_data.length; i++){
71
-          if( this.dialysis_prescription_data[i].id ==object.id){
72
-            this.dialysis_prescription_data[i].is_show = object.is_show
73
-          }
74
-
75
-        }
76
-
77
-      },changeAssesData:function(object) {
78
-        for (let i = 0; i< this.receive_treatment_asses_data.length; i++){
79
-          if( this.receive_treatment_asses_data[i].id ==object.id){
80
-            this.receive_treatment_asses_data[i].is_show = object.is_show
81
-          }
82
-
99
+    changeAssesData: function(object) {
100
+      for (let i = 0; i < this.receive_treatment_asses_data.length; i++) {
101
+        if (this.receive_treatment_asses_data[i].id == object.id) {
102
+          this.receive_treatment_asses_data[i].is_show = object.is_show;
83 103
         }
84
-
85
-
86
-      },changeBeforeData:function(object) {
87
-        for (let i = 0; i< this.dialysis_before_data.length; i++){
88
-          if( this.dialysis_before_data[i].id ==object.id){
89
-            this.dialysis_before_data[i].is_show = object.is_show
90
-          }
91
-
104
+      }
105
+    },
106
+    changeBeforeData: function(object) {
107
+      for (let i = 0; i < this.dialysis_before_data.length; i++) {
108
+        if (this.dialysis_before_data[i].id == object.id) {
109
+          this.dialysis_before_data[i].is_show = object.is_show;
92 110
         }
93
-
94
-
95
-      },changeMonitorData:function(object) {
96
-        for (let i = 0; i< this.dialysis_monitor_data.length; i++){
97
-          if( this.dialysis_monitor_data[i].id ==object.id){
98
-            this.dialysis_monitor_data[i].is_show = object.is_show
99
-          }
100
-
111
+      }
112
+    },
113
+    changeMonitorData: function(object) {
114
+      for (let i = 0; i < this.dialysis_monitor_data.length; i++) {
115
+        if (this.dialysis_monitor_data[i].id == object.id) {
116
+          this.dialysis_monitor_data[i].is_show = object.is_show;
101 117
         }
102
-
103
-
104
-      },changeAfterData:function(object) {
105
-        for (let i = 0; i< this.dialysis_after_data.length; i++){
106
-          if( this.dialysis_after_data[i].id ==object.id){
107
-            this.dialysis_after_data[i].is_show = object.is_show
108
-          }
109
-
118
+      }
119
+    },
120
+    changeAfterData: function(object) {
121
+      for (let i = 0; i < this.dialysis_after_data.length; i++) {
122
+        if (this.dialysis_after_data[i].id == object.id) {
123
+          this.dialysis_after_data[i].is_show = object.is_show;
110 124
         }
111
-
112
-
113 125
       }
114 126
     },
115
-    created(){
116
-      var filedList = store.getters.xt_user.fileds
117
-      for (let i = 0; i < filedList.length;i++){
118
-        switch (filedList[i].module) {
119
-          case 1:
120
-            this.dialysis_prescription_data.push(filedList[i])
121
-            break
122
-          case 2:
123
-            this.receive_treatment_asses_data.push(filedList[i])
124
-            break
125
-          case 3:
126
-            this.dialysis_before_data.push(filedList[i])
127
-            break
128
-          case 4:
129
-            this.dialysis_monitor_data.push(filedList[i])
130
-            break
131
-          case 5:
132
-            this.dialysis_after_data.push(filedList[i])
133
-            break
127
+    changeSummaryData: function(object) {
128
+      for (let i = 0; i < this.dialysis_summary_data.length; i++) {
129
+        if (this.dialysis_summary_data[i].id == object.id) {
130
+          this.dialysis_summary_data[i].is_show = object.is_show;
134 131
         }
135 132
       }
136
-
137
-
133
+    }
134
+  },
135
+  created() {
136
+    var filedList = store.getters.xt_user.fileds;
137
+    console.log("filedList", filedList);
138
+    var arr = [];
139
+    for (let i = 0; i < filedList.length; i++) {
140
+      if (filedList[i].module == 6) {
141
+        arr.push(filedList[i]);
142
+      }
143
+    }
144
+    console.log("arr", arr);
145
+    for (let i = 0; i < filedList.length; i++) {
146
+      switch (filedList[i].module) {
147
+        case 1:
148
+          this.dialysis_prescription_data.push(filedList[i]);
149
+          break;
150
+        case 2:
151
+          this.receive_treatment_asses_data.push(filedList[i]);
152
+          break;
153
+        case 3:
154
+          this.dialysis_before_data.push(filedList[i]);
155
+          break;
156
+        case 4:
157
+          this.dialysis_monitor_data.push(filedList[i]);
158
+          break;
159
+        case 5:
160
+          this.dialysis_after_data.push(filedList[i]);
161
+          break;
162
+        case 6:
163
+          this.dialysis_summary_data.push(filedList[i]);
164
+          break;
165
+      }
138 166
     }
139 167
   }
168
+};
140 169
 </script>
141
-
142
-

+ 43 - 32
src/xt_pages/data/template.vue Ver arquivo

@@ -1,55 +1,66 @@
1 1
 <template>
2
-<div class="main-contain">
3
-  <div class="position">
4
-    <bread-crumb :crumbs='crumbs'></bread-crumb>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <el-tabs v-model="activeName">
8
+        <el-tab-pane
9
+          v-for="item in tabMapOptions"
10
+          :label="item.label"
11
+          :key="item.key"
12
+          :name="item.key"
13
+          style="display:flex;"
14
+        >
15
+          <keep-alive>
16
+            <div style="display:flex;width:100%;">
17
+              <tab-pane
18
+                v-if="activeName == item.key"
19
+                :type="item.key"
20
+                style="flex:1;"
21
+              ></tab-pane>
22
+            </div>
23
+          </keep-alive>
24
+        </el-tab-pane>
25
+      </el-tabs>
26
+    </div>
5 27
   </div>
6
-  <div class="app-container">
7
-    <el-tabs v-model="activeName" >
8
-      <el-tab-pane v-for="item in tabMapOptions" :label="item.label" :key='item.key' :name="item.key" style="display:flex;">
9
-        <keep-alive>
10
-          <div style="display:flex;width:100%;">
11
-          <tab-pane v-if='activeName==item.key' :type='item.key' style="flex:1;"></tab-pane>
12
-          </div>
13
-        </keep-alive>
14
-      </el-tab-pane>
15
-    </el-tabs>
16
-  </div>
17
-  </div>
18
-
19 28
 </template>
20 29
 
21 30
 <script>
22
-import tabPane from './components/templateTable'
31
+import tabPane from "./components/templateTable";
23 32
 import BreadCrumb from "@/xt_pages/components/bread-crumb";
24 33
 export default {
25
-  name: 'tab',
26
-  components: { tabPane,BreadCrumb},
34
+  name: "tab",
35
+  components: { tabPane, BreadCrumb },
27 36
   data() {
28 37
     return {
29 38
       crumbs: [
30
-        { path: false, name: '管理中心' },
31
-        { path: 'data/template', name: '模版配置' },
39
+        { path: false, name: "管理中心" },
40
+        { path: "data/template", name: "模版配置" }
32 41
       ],
33 42
       tabMapOptions: [
34
-        { label: this.$t("data_config.education"), key: 'education'},
35
-        { label: this.$t("data_config.summary"), key: 'summary'},
36
-        { label: this.$t("data_config.course_disease"), key: 'course_disease' },
37
-        { label: this.$t("data_config.rescue_record"), key: 'rescue_record'}
43
+        { label: this.$t("data_config.education"), key: "education" },
44
+        { label: this.$t("data_config.summary"), key: "summary" },
45
+        { label: this.$t("data_config.nursing_record"), key: "nursing_record" },
46
+        { label: this.$t("data_config.special_record"), key: "special_record" },
47
+        { label: this.$t("data_config.course_disease"), key: "course_disease" },
48
+        { label: this.$t("data_config.rescue_record"), key: "rescue_record" }
38 49
       ],
39
-      activeName: 'education',
50
+      activeName: "education",
40 51
       createdTimes: 0
41
-    }
52
+    };
42 53
   },
43 54
   methods: {
44 55
     showCreatedTimes() {
45
-      this.createdTimes = this.createdTimes + 1
56
+      this.createdTimes = this.createdTimes + 1;
46 57
     }
47 58
   }
48
-}
59
+};
49 60
 </script>
50 61
 
51 62
 <style scoped>
52
-  .tab-container{
53
-    margin: 30px;
54
-  }
63
+.tab-container {
64
+  margin: 30px;
65
+}
55 66
 </style>

+ 368 - 196
src/xt_pages/dialysis/batch_print/batch_print_order_eight.vue Ver arquivo

@@ -31,12 +31,12 @@
31 31
                       {{ getTime(record.schedule_date, "{y}-{m}-{d}") }}
32 32
                     </span>
33 33
                   </td>
34
-                  <td style="text-align:center;">
34
+                  <td style="text-align:center">
35 35
                     姓名:<span style="display:inline-block;margin-left:10px;">
36 36
                        {{ record.patient.name }}
37 37
                     </span>
38 38
                   </td>
39
-                  <td style="text-align:center;">
39
+                  <td style="text-align:center;width:100px">
40 40
                     性别:<span
41 41
                       style="display:inline-block;margin-left:10px;"
42 42
                     >
@@ -51,11 +51,11 @@
51 51
                     </span>
52 52
                   </td>
53 53
                   <td style="text-align:center;">
54
-                    <check-box text="门诊" :checked="record.patient.source == 1"></check-box>
54
+                    <check-box text="门诊" :checked="record.receive_assessment.condition == 1"></check-box>
55 55
                    &nbsp;
56
-                     <check-box text="住院" :checked="record.patient.source == 2"></check-box>
56
+                     <check-box text="住院" :checked="record.receive_assessment.condition == 2"></check-box>
57 57
                   </td>
58
-                  <td style="text-align:center;">
58
+                  <td style="text-align:center;width:160px"">
59 59
                     住院号:<span style="display:inline-block;margin-left:10px;">
60 60
                        {{record.receive_assessment.admission_number?record.receive_assessment.admission_number:"/"}}
61 61
                     </span>
@@ -132,7 +132,7 @@
132 132
                       }}kg</span
133 133
                     >
134 134
                   </td>
135
-                  <td style="text-align:left;" colspan="1">
135
+                  <td style="text-align:left;" colspan="2">
136 136
                     <span style="display:inline-block;margin-left:15px;"
137 137
                       >电导率:{{record.prescription.conductivity?record.prescription.conductivity:"0"}}(mS/cm)</span
138 138
                     >
@@ -223,7 +223,7 @@
223 223
                       {{record.assessment_after_dislysis.actual_ultrafiltration?record.assessment_after_dislysis.actual_ultrafiltration:"0"}}
224 224
                       </span>&nbsp;L
225 225
                   </td>
226
-                   <td style="text-align:left;" colspan="2">
226
+                   <td style="text-align:left;" colspan="3">
227 227
                     <span style="display:inline-block;margin-left:15px;"
228 228
                       >透析时间:
229 229
                      {{
@@ -247,7 +247,7 @@
247 247
                         }}
248 248
                       </span>&nbsp;L
249 249
                   </td>
250
-                   <td style="text-align:left;" colspan="2">
250
+                   <td style="text-align:left;" colspan="1">
251 251
                     <span style="display:inline-block;margin-left:15px;"
252 252
                       >置换方式:
253 253
                        <label-box
@@ -273,7 +273,7 @@
273 273
                 </tr>
274 274
                 <tr>
275 275
                   <td style="text-align:left;">
276
-                    <span style="display:inline-block;margin-left:15px;"
276
+                    <span style="display:inline-block;margin-left:15px;display:flex;align-items:center;height:36px;"
277 277
                       >责任护士:
278 278
                        <span
279 279
                             v-if="
@@ -297,7 +297,7 @@
297 297
                             alt=""
298 298
                             srcset=""
299 299
                             v-else
300
-                            style="height: 20px;"
300
+                            style="height: 30px;"
301 301
                           /></span>
302 302
                   </td>
303 303
                   <td style="text-align:left;">
@@ -325,7 +325,7 @@
325 325
                             alt=""
326 326
                             srcset=""
327 327
                             v-else
328
-                            style="height: 20px;"
328
+                            style="height: 30px;"
329 329
                           />
330 330
                       </span>
331 331
                   </td>
@@ -354,14 +354,15 @@
354 354
                             alt=""
355 355
                             srcset=""
356 356
                             v-else
357
-                            style="height: 20px;"
357
+                            style="height: 30px;"
358 358
                           />
359 359
                       </span>
360 360
                   </td>
361 361
                   <td style="text-align:left;" colspan="3">
362
-                    <span style="display:inline-block;margin-left:15px;"
362
+                    <span style="display:inline-block;margin-left:15px;display:flex;align-items:center;height:36px;"
363 363
                       >医生签名:
364 364
                        <span
365
+                           
365 366
                             v-if="
366 367
                               !record.advices ||
367 368
                                 typeof record.advices[0] == 'undefined' ||
@@ -382,7 +383,9 @@
382 383
                               )
383 384
                             }}</span
384 385
                           >
386
+                          
385 387
                           <img
388
+                            v-else
386 389
                             class="es-img"
387 390
                             :src="
388 391
                               setAdminUserES(
@@ -392,10 +395,7 @@
392 395
                             "
393 396
                             alt=""
394 397
                             srcset=""
395
-                            v-else
396
-                            style="height: 20px;"
397
-                          />  </span
398
-                    >
398
+                            style="height: 30px;"/> </span> 
399 399
                   </td>
400 400
                 </tr>
401 401
                 <tr>
@@ -478,54 +478,99 @@
478 478
                 <tr>
479 479
                   <td colspan="2" style="text-align:left;">
480 480
                     <span style="display:inline-block;margin-left:15px;">食欲:</span>
481
-                       <check-box text="正常" :checked="isCheckBoxChecked(record.receive_assessment, 'appetite', 1)"></check-box>
482
-                       <check-box text="下降" :checked="isCheckBoxChecked(record.receive_assessment, 'appetite', 2)"></check-box>
483
-                       <check-box text="恶心" :checked="isCheckBoxChecked(record.receive_assessment, 'appetite', 3)"></check-box>
484
-                       <check-box text="呕吐" :checked="isCheckBoxChecked(record.receive_assessment, 'appetite', 4)"></check-box>
485
-                      <check-box text="腹泻" :checked="isCheckBoxChecked(record.receive_assessment, 'appetite', 5)"></check-box>
481
+                    <label-box
482
+                        :isChecked="record.receive_assessment.appetite == 1 ? true : false"
483
+                        showValue="正常"
484
+                      ></label-box
485
+                      >&nbsp;
486
+                      <label-box
487
+                        :isChecked="record.receive_assessment.appetite == 2 ? true : false"
488
+                        showValue="减退"
489
+                      ></label-box
490
+                      >&nbsp;
491
+                      <label-box
492
+                        :isChecked="record.receive_assessment.appetite == 3 ? true : false"
493
+                        showValue="恶心"
494
+                      ></label-box
495
+                      >&nbsp;
496
+                      <label-box
497
+                        :isChecked="record.receive_assessment.appetite == 4 ? true : false"
498
+                        showValue="呕吐"
499
+                      ></label-box
500
+                      >&nbsp;
501
+                      <label-box
502
+                        :isChecked="record.receive_assessment.appetite == 5 ? true : false"
503
+                        showValue="腹泻"
504
+                      ></label-box
505
+                      >&nbsp;
486 506
                   </td>
487 507
                   <td colspan="2">
488 508
                     <span>体温: {{record.assessment_before_dislysis.temperature?record.assessment_before_dislysis.temperature:"0"}} ℃</span>
489 509
                   </td>
490 510
                   <td colspan="3" style="text-align:left;">
491 511
                     <span style="display:inline-block;margin-left:15px;">体位:
492
-                      <check-box text="自动体位"
493
-                         :checked="isCheckBoxChecked(record.receive_assessment, 'posture', 1)"></check-box>
494
-                     <check-box text="平卧位"
495
-                         :checked="isCheckBoxChecked(record.receive_assessment, 'posture', 2)"></check-box>
496
-                      <check-box text="半卧位"
497
-                         :checked="isCheckBoxChecked(record.receive_assessment, 'posture', 3)"></check-box>
498
-                     <check-box text="端坐位"
499
-                         :checked="isCheckBoxChecked(record.receive_assessment, 'posture', 4)"></check-box>
500
-                     <check-box text="躁动不安"
501
-                         :checked="isCheckBoxChecked(record.receive_assessment, 'posture', 5)"></check-box>
512
+                     <label-box
513
+                          v-for="(item, index) in posture_arr"
514
+                          :key="index"
515
+                          :isChecked="
516
+                            record.receive_assessment.posture == item.id ? true : false
517
+                          "
518
+                          :showValue="item.name"
519
+                        ></label-box>
520
+                        <label-box
521
+                          :isChecked="record.receive_assessment.posture == 1 ? true : false"
522
+                          showValue="自动体位"
523
+                        ></label-box
524
+                        >&nbsp;
525
+                        <label-box
526
+                          :isChecked="record.receive_assessment.posture == 2 ? true : false"
527
+                          showValue="平卧位"
528
+                        ></label-box
529
+                        >&nbsp;
530
+                        <label-box
531
+                          :isChecked="record.receive_assessment.posture == 3 ? true : false"
532
+                          showValue="半卧位"
533
+                        ></label-box
534
+                        >&nbsp;
535
+                        <label-box
536
+                          :isChecked="record.receive_assessment.posture == 4 ? true : false"
537
+                          showValue="端坐位"
538
+                        ></label-box
539
+                        >&nbsp;
540
+                        <label-box
541
+                          :isChecked="record.receive_assessment.posture == 5 ? true : false"
542
+                          showValue="躁动不安"
543
+                        ></label-box
544
+                        >&nbsp;
502 545
                     </span>
503 546
                    </td>
504 547
                 </tr>
505 548
                 <tr>
506 549
                   <td colspan="8" style="text-align:left;">
507 550
                     <span style="display:inline-block;margin-left:15px;"
508
-                      > 血管通路:内瘘波动及震颤: (&nbsp;<check-box
551
+                      > 血管通路:内瘘波动及震颤:
552
+                      (&nbsp;
553
+                        <label-box
509 554
                           v-for="(item, index) in arr"
510 555
                           :key="index"
511
-                          :text="item.name"
512
-                          :checked="
556
+                          :isChecked="
513 557
                             record.assessment_before_dislysis.blood_access_part_opera_id == item.id
514 558
                               ? true
515 559
                               : false
516 560
                           "
517
-                        ></check-box
561
+                          :showValue="item.name"
562
+                        ></label-box
518 563
                         >)
519
-                        <check-box
564
+                        <label-box
520 565
                           v-for="(item, index) in arrtwo"
521 566
                           :key="index"
522
-                          :text="item.name"
523
-                          :checked="
524
-                            record.assessment_before_dislysis.blood_access_part_opera_id == item.id
567
+                          :isChecked="
568
+                          record.assessment_before_dislysis.blood_access_part_opera_id == item.id
525 569
                               ? true
526 570
                               : false
527 571
                           "
528
-                        ></check-box>
572
+                          :showValue="item.name"
573
+                        ></label-box>
529 574
                     </span>
530 575
                   </td>
531 576
                 </tr>
@@ -633,132 +678,149 @@
633 678
                <tr>
634 679
                 <td style="text-align:left;" colspan="8">
635 680
                 <span style="display:inline-block;margin-left:15px;">皮肤:</span>
636
-                  <check-box text="完整" :checked="isCheckBoxChecked(record.assessment_before_dislysis, 'skin', 1)"></check-box>
637
-                  <check-box text="干燥" :checked="isCheckBoxChecked(record.assessment_before_dislysis, 'skin', 2)"></check-box>
638
-                  <check-box text="瘙痒" :checked="isCheckBoxChecked(record.assessment_before_dislysis, 'skin', 3)"></check-box>
639
-                  <check-box text="菲薄" :checked="isCheckBoxChecked(record.assessment_before_dislysis, 'skin', 4)"></check-box>
640
-                  <check-box text="水肿" :checked="isCheckBoxChecked(record.assessment_before_dislysis, 'skin', 5)"></check-box>
641
-                  <check-box text="皮疹" :checked="isCheckBoxChecked(record.assessment_before_dislysis, 'skin', 6)"></check-box>
642
-                  <check-box text="出血点" :checked="isCheckBoxChecked(record.assessment_before_dislysis, 'skin', 7)"></check-box>
643
-                 <check-box text="压疮" :checked="isCheckBoxChecked(record.assessment_before_dislysis, 'skin', 8)"></check-box>
644
-                  <check-box text="皮下淤血" :checked="isCheckBoxChecked(record.assessment_before_dislysis, 'skin', 9)"></check-box>
681
+                 <label-box
682
+                      showValue="完整"
683
+                      :isChecked="record.assessment_before_dislysis.skin == 1 ? true : false"
684
+                    ></label-box>
685
+                    <label-box
686
+                      showValue="干燥"
687
+                      :isChecked="record.assessment_before_dislysis.skin == 2 ? true : false"
688
+                    ></label-box>
689
+                    <label-box
690
+                      showValue="瘙痒"
691
+                      :isChecked="record.assessment_before_dislysis.skin == 3 ? true : false"
692
+                    ></label-box>
693
+                    <label-box
694
+                      showValue="菲薄"
695
+                      :isChecked="record.assessment_before_dislysis.skin == 4 ? true : false"
696
+                    ></label-box
697
+                    >/
698
+                    <label-box
699
+                      showValue="水肿"
700
+                      :isChecked="record.assessment_before_dislysis.skin == 5 ? true : false"
701
+                    ></label-box>
702
+                    <label-box
703
+                      showValue="皮疹"
704
+                      :isChecked="record.assessment_before_dislysis.skin == 6 ? true : false"
705
+                    ></label-box>
706
+                    <label-box
707
+                      showValue="出血点"
708
+                      :isChecked="record.assessment_before_dislysis.skin == 7 ? true : false"
709
+                    ></label-box>
710
+                    <label-box
711
+                      showValue="压疮"
712
+                      :isChecked="record.assessment_before_dislysis.skin == 8 ? true : false"
713
+                    ></label-box>
714
+                    <label-box
715
+                      showValue="皮下淤血"
716
+                      :isChecked="record.assessment_before_dislysis.skin == 9 ? true : false"
717
+                    ></label-box>
645 718
                </td>
646 719
             </tr>
647 720
             <tr>
648 721
             <td style="text-align:left;" colspan="8">
649 722
                <span style="display:inline-block;margin-left:15px;">出血影响因素:</span>
650
-                 <check-box
651
-                          text="无"
652
-                          :checked="
653
-                            isCheckBoxChecked(
654
-                              record.assessment_before_dislysis,
655
-                              'is_hemorrhage',
656
-                              2
657
-                            )
658
-                          "
659
-                        ></check-box>
660
-                        <check-box
661
-                          text="有"
662
-                          :checked="
663
-                            isCheckBoxChecked(
664
-                              record.assessment_before_dislysis,
665
-                              'is_hemorrhage',
666
-                              1
667
-                            )
668
-                          "
669
-                        ></check-box>
670
-                        &nbsp;
671
-                        <check-box
672
-                          text="穿刺点渗血"
673
-                          :checked="
674
-                            isCheckBoxChecked(
675
-                              record.assessment_before_dislysis,
676
-                              'is_hemorrhage',
677
-                              1
678
-                            ) &&
679
-                            record.assessment_before_dislysis.hemorrhage.indexOf(
680
-                              '穿刺点渗血'
681
-                            ) > -1
682
-                              ? true
683
-                              : false
684
-                          "
685
-                        ></check-box>
686
-                        <check-box
687
-                          text="牙龈出血"
688
-                          :checked="
689
-                            isCheckBoxChecked(
690
-                              record.assessment_before_dislysis,
691
-                              'is_hemorrhage',
692
-                              1
693
-                            ) &&
694
-                            record.assessment_before_dislysis.hemorrhage.indexOf(
695
-                              '牙龈出血'
696
-                            ) > -1
697
-                              ? true
698
-                              : false
699
-                          "
700
-                        ></check-box>
701
-                        <check-box
702
-                          text="消化道出血"
703
-                          :checked="
704
-                            isCheckBoxChecked(
705
-                              record.assessment_before_dislysis,
706
-                              'is_hemorrhage',
707
-                              1
708
-                            ) &&
709
-                            record.assessment_before_dislysis.hemorrhage.indexOf(
710
-                              '消化道出血'
711
-                            ) > -1
712
-                              ? true
713
-                              : false
714
-                          "
715
-                        ></check-box>
716
-                        <check-box
717
-                          text="女性经期"
718
-                          :checked="
719
-                            isCheckBoxChecked(
720
-                              record.assessment_before_dislysis,
721
-                              'is_hemorrhage',
722
-                              1
723
-                            ) &&
724
-                            record.assessment_before_dislysis.hemorrhage.indexOf(
725
-                              '女性经期'
726
-                            ) > -1
727
-                              ? true
728
-                              : false
729
-                          "
730
-                        ></check-box>
731
-
732
-                  其他:{{
733
-                            isCheckBoxChecked(
734
-                              record.assessment_before_dislysis,
735
-                              "is_hemorrhage",
736
-                              1
737
-                            )
738
-                              ? record.assessment_before_dislysis
739
-                                  .hemorrhage_other
740
-                              : ""
741
-                          }}
723
+                  <label-box
724
+                    showValue="无"
725
+                    :isChecked="record.assessment_before_dislysis.is_hemorrhage == 2 ? true : false"
726
+                  ></label-box>
727
+                  <label-box
728
+                    showValue="异常"
729
+                    :isChecked="record.assessment_before_dislysis.is_hemorrhage == 1 ? true : false"
730
+                  ></label-box
731
+                  >&nbsp;
732
+                  <label-box
733
+                    showValue="穿刺点渗血"
734
+                    :isChecked="
735
+                      record.assessment_before_dislysis.is_hemorrhage == 1 &&
736
+                      record.assessment_before_dislysis.hemorrhage.indexOf('穿刺点渗血') > -1
737
+                        ? true
738
+                        : false
739
+                    "
740
+                  ></label-box>
741
+                  <label-box
742
+                    showValue="牙龈出血"
743
+                    :isChecked="
744
+                      record.assessment_before_dislysis.is_hemorrhage == 1 &&
745
+                      record.assessment_before_dislysis.hemorrhage.indexOf('牙龈出血') > -1
746
+                        ? true
747
+                        : false
748
+                    "
749
+                  ></label-box>
750
+                  <label-box
751
+                    showValue="消化道出血"
752
+                    :isChecked="
753
+                      record.assessment_before_dislysis.is_hemorrhage == 1 &&
754
+                      record.assessment_before_dislysis.hemorrhage.indexOf('消化道出血') > -1
755
+                        ? true
756
+                        : false
757
+                    "
758
+                  ></label-box>
759
+                  <label-box
760
+                    showValue="女性经期"
761
+                    :isChecked="
762
+                      record.assessment_before_dislysis.is_hemorrhage == 1 &&
763
+                      record.assessment_before_dislysis.hemorrhage.indexOf('女性经期') > -1
764
+                        ? true
765
+                        : false
766
+                    "
767
+                  ></label-box
768
+                  >&nbsp;&nbsp;其他:
769
+                  <span>{{ record.assessment_before_dislysis.hemorrhage_other }}</span>
742 770
               </td>
743 771
              </tr>
744 772
                 <tr>
745 773
            <td style="text-align:left;" colspan="8">
746
-             <span style="display:inline-block;margin-left:15px;">使用特殊药物性:</span>
747
-                <check-box text="无" :checked="isCheckBoxChecked(record.prescription, 'special_medicine', 1)"></check-box>
748
-                 <check-box text="有" :checked="isCheckBoxChecked(record.prescription, 'special_medicine', 2)"></check-box>
749
-                <check-box text="降压药" :checked="isCheckBoxChecked(record.prescription, 'special_medicine', 3)"></check-box>
750
-                <check-box text="抗凝药" :checked="isCheckBoxChecked(record.prescription, 'special_medicine', 4)"></check-box>
751
-               其他:
774
+             <span style="display:inline-block;margin-left:15px;">使用特殊药物:</span>
775
+                <label-box
776
+                    :isChecked="record.prescription.special_medicine == 1 ? true : false"
777
+                    showValue="无"
778
+                  ></label-box>
779
+                  <label-box
780
+                    :isChecked="record.prescription.special_medicine == 2 ? true : false"
781
+                    showValue="有"
782
+                  ></label-box
783
+                  >:
784
+                  <label-box
785
+                    :isChecked="record.prescription.special_medicine == 3 ? true : false"
786
+                    showValue="降压药"
787
+                  ></label-box>
788
+                  <label-box
789
+                    :isChecked="record.prescription.special_medicine == 4 ? true : false"
790
+                    showValue="抗凝药"
791
+                  ></label-box>
792
+                  其他:{{ record.prescription.special_medicine_other }}
752 793
               </td>
753 794
              </tr>
754 795
              <tr>
755 796
             <td style="text-align:left;" colspan="8">
756 797
               <span style="display:inline-block;margin-left:15px;">跌倒风险:</span>
757
-               <check-box text="无" :checked="isCheckBoxChecked(record.receive_assessment, 'danger_level', 1)"></check-box>
758
-               <check-box text="低风险" :checked="isCheckBoxChecked(record.receive_assessment, 'danger_level', 2)"></check-box>
759
-              <check-box text="中度风险" :checked="isCheckBoxChecked(record.receive_assessment, 'danger_level', 3)"></check-box>
760
-             <check-box text="高风险" :checked="isCheckBoxChecked(record.receive_assessment, 'danger_level', 4)"></check-box>
761
-            跌倒风险预防措施:
798
+               <label-box
799
+                  showValue="无"
800
+                  :isChecked="
801
+                    record.receive_assessment.danger_level == 1 ? true : false
802
+                  "
803
+                ></label-box>
804
+                <label-box
805
+                  showValue="低风险"
806
+                  :isChecked="
807
+                    record.receive_assessment.danger_level == 2 ? true : false
808
+                  "
809
+                ></label-box>
810
+                <label-box
811
+                  showValue="中度风险"
812
+                  :isChecked="
813
+                    record.receive_assessment.danger_level == 3 ? true : false
814
+                  "
815
+                ></label-box>
816
+                <label-box
817
+                  showValue="高风险"
818
+                  :isChecked="
819
+                    record.receive_assessment.danger_level == 4 ? true : false
820
+                  "
821
+                 >
822
+                  </label-box>
823
+                  跌倒风险预防措施:
762 824
                 <label-box
763 825
                   showValue="镇定剂"
764 826
                   :isChecked="
@@ -821,7 +883,7 @@
821 883
             }}</td>
822 884
          <td>{{monitor.pulse_frequency}}</td>
823 885
          <td>{{monitor.blood_flow_volume}}</td>
824
-         <td>{{monitor.arterial_pressure}}</td>
886
+         <td>{{monitor.venous_pressure}}</td>
825 887
          <td>{{monitor.transmembrane_pressure}}</td>
826 888
          <td>{{monitor.ultrafiltration_rate}}</td>
827 889
          <td>{{monitor.ultrafiltration_volume}}</td>
@@ -829,43 +891,124 @@
829 891
          <td> {{ monitor.symptom }} &nbsp;{{ monitor.result }}</td>
830 892
          <td colspan="2">
831 893
            <span v-show="showOne">{{getName(monitor.monitoring_nurse)}}</span>
832
-           <span v-show="showTwo"><img :src="getName(monitor.monitoring_nurse)" style="height:20px"></span>
894
+           <span v-show="showTwo"><img :src="getName(monitor.monitoring_nurse)" style="height:30px"></span>
833 895
          </td>
834 896
         </tr>
835 897
          <tr>
836 898
           <td style="text-align:left;" colspan="12">
837
-            <span style="display:inline-block;margin-left:15px;">透析护理记录:</span>
899
+            <span style="display:inline-block;margin-left:15px;">透析护理记录:{{record.summer && record.summer.nursing_record? record.summer.nursing_record: '/'}}</span>
838 900
           </td>
839 901
         </tr>
840 902
         <tr>
841 903
           <td style="text-align:left;" colspan="12">
842 904
             <span style="display:inline-block;margin-left:15px;">透后评估:
843 905
                透析过程:
844
-               <check-box text="完成" :checked="isCheckBoxChecked(record.assessment_after_dislysis, 'dialysis_process', 1)"></check-box>
845
-               <check-box text="提前" :checked="isCheckBoxChecked(record.assessment_after_dislysis, 'dialysis_process', 2)"></check-box>
906
+               <label-box
907
+                showValue="完成"
908
+                :isChecked="record.assessment_after_dislysis.dialysis_process == 1 ? true : false"
909
+              ></label-box>
910
+              <label-box
911
+                showValue="提前"
912
+                :isChecked="record.assessment_after_dislysis.dialysis_process == 2 ? true : false"
913
+              ></label-box>
914
+              &nbsp;&nbsp;
846 915
                 并发症:
847
-               <check-box text="低血压"
848
-                 :checked="isValueIndexOfCheck(record.assessment_after_dislysis, 'complication', '低血压')"></check-box>
849
-               <check-box text="高血压"
850
-                 :checked="isValueIndexOfCheck(record.assessment_after_dislysis, 'complication', '高血压')"></check-box>
851
-                <check-box text="心律失常"
852
-                  :checked="isValueIndexOfCheck(record.assessment_after_dislysis, 'complication', '心律失常')"></check-box>
853
-                <check-box text="头晕"
854
-                  :checked="isValueIndexOfCheck(record.assessment_after_dislysis, 'complication', '头晕')"></check-box>
855
-                <check-box text="头痛"
856
-                  :checked="isValueIndexOfCheck(record.assessment_after_dislysis, 'complication', '头痛')"></check-box>
857
-                <check-box text="呕吐"
858
-                  :checked="isValueIndexOfCheck(record.assessment_after_dislysis, 'complication', '呕吐')"></check-box>
859
-                <check-box text="抽搐"
860
-                 :checked="isValueIndexOfCheck(record.assessment_after_dislysis, 'complication', '抽搐')"></check-box>
861
-                <check-box text="出血"
862
-                 :checked="isValueIndexOfCheck(record.assessment_after_dislysis, 'complication', '出血')"></check-box>
863
-                <check-box text="心衰"
864
-                 :checked="isValueIndexOfCheck(record.assessment_after_dislysis, 'complication', '心衰')"></check-box>
865
-                <check-box text="腹痛"
866
-                 :checked="isValueIndexOfCheck(record.assessment_after_dislysis, 'complication', '腹痛')"></check-box>
867
-                 <check-box text="无"
868
-                 :checked="isValueIndexOfCheck(record.assessment_after_dislysis, 'complication', '无')"></check-box>
916
+               <label-box
917
+                :isChecked="
918
+                  record.assessment_after_dislysis.complication.indexOf('低血压') > -1
919
+                    ? true
920
+                    : false
921
+                "
922
+                showValue="低血压"
923
+              ></label-box>
924
+              <label-box
925
+                :isChecked="
926
+                  record.assessment_after_dislysis.complication.indexOf('高血压') > -1
927
+                    ? true
928
+                    : false
929
+                "
930
+                showValue="高血压"
931
+              ></label-box>
932
+              <label-box
933
+                :isChecked="
934
+                  record.assessment_after_dislysis.complication.indexOf('心律失常') > -1
935
+                    ? true
936
+                    : false
937
+                "
938
+                showValue="心律失常"
939
+              ></label-box>
940
+              <label-box
941
+                :isChecked="
942
+                  record.assessment_after_dislysis.complication.indexOf('头晕') > -1
943
+                    ? true
944
+                    : false
945
+                "
946
+                showValue="头晕"
947
+              ></label-box>
948
+              <label-box
949
+                :isChecked="
950
+                  record.assessment_after_dislysis.complication.indexOf('头痛') > -1
951
+                    ? true
952
+                    : false
953
+                "
954
+                showValue="头痛"
955
+              ></label-box>
956
+              <label-box
957
+                :isChecked="
958
+                  record.assessment_after_dislysis.complication.indexOf('呕吐') > -1
959
+                    ? true
960
+                    : false
961
+                "
962
+                showValue="呕吐"
963
+              ></label-box>
964
+              <label-box
965
+                :isChecked="
966
+                  record.assessment_after_dislysis.complication.indexOf('抽搐') > -1
967
+                    ? true
968
+                    : false
969
+                "
970
+                showValue="抽搐"
971
+              ></label-box>
972
+              <label-box
973
+                :isChecked="
974
+                  record.assessment_after_dislysis.complication.indexOf('出血') > -1
975
+                    ? true
976
+                    : false
977
+                "
978
+                showValue="出血"
979
+              ></label-box>
980
+              <label-box
981
+                :isChecked="
982
+                  record.assessment_after_dislysis.complication.indexOf('心衰') > -1
983
+                    ? true
984
+                    : false
985
+                "
986
+                showValue="心衰"
987
+              ></label-box>
988
+              <label-box
989
+                :isChecked="
990
+                  record.assessment_after_dislysis.complication.indexOf('腹痛') > -1
991
+                    ? true
992
+                    : false
993
+                "
994
+                showValue="腹痛"
995
+              ></label-box>
996
+                <label-box
997
+                :isChecked="
998
+                  record.assessment_after_dislysis.complication.indexOf('肌肉痉挛') > -1
999
+                    ? true
1000
+                    : false
1001
+                "
1002
+                showValue="肌肉痉挛"
1003
+              ></label-box>
1004
+              <label-box
1005
+                :isChecked="
1006
+                  record.assessment_after_dislysis.complication.indexOf('无') > -1
1007
+                    ? true
1008
+                    : false
1009
+                "
1010
+                showValue="无"
1011
+              ></label-box>
869 1012
             </span>
870 1013
           </td>
871 1014
         </tr>
@@ -875,19 +1018,48 @@
875 1018
          </td>
876 1019
           <td style="text-align:left;" colspan="10">
877 1020
             <span style="display:inline-block;margin-left:15px;">内瘘搏动及震颤音:
878
-             <check-box text="存在" :checked="record.assessment_after_dislysis.tremor_noise==1?true:false"></check-box>
879
-             <check-box text="减弱" :checked="record.assessment_after_dislysis.tremor_noise==2?true:false"></check-box>
880
-            <check-box text="不存在" :checked="record.assessment_after_dislysis.tremor_noise==3?true:false"></check-box>
1021
+            <label-box
1022
+                showValue="存在"
1023
+                :isChecked="
1024
+                  record.assessment_after_dislysis.internal_fistula.indexOf('震颤-存在') > -1
1025
+                    ? true
1026
+                    : false
1027
+                "
1028
+              ></label-box>
1029
+              <label-box
1030
+                showValue="减弱"
1031
+                :isChecked="
1032
+                  record.assessment_after_dislysis.internal_fistula.indexOf('震颤-减弱') > -1
1033
+                    ? true
1034
+                    : false
1035
+                "
1036
+              ></label-box>
1037
+              <label-box
1038
+                showValue="不存在"
1039
+                :isChecked="
1040
+                  record.assessment_after_dislysis.internal_fistula.indexOf('震颤-无') > -1
1041
+                    ? true
1042
+                    : false
1043
+                "
1044
+              ></label-box> 
881 1045
             </span>&nbsp;
882 1046
             <span>透析器及管路凝血情况:
883
-               <check-box text="0"
884
-                :checked="record.assessment_after_dislysis.cruor.indexOf('透析器-0度') > -1"></check-box>
885
-               <check-box text="+"
886
-                :checked="record.assessment_after_dislysis.cruor.indexOf('透析器-Ⅰ度') > -1"></check-box>
887
-               <check-box text="++"
888
-                 :checked="record.assessment_after_dislysis.cruor.indexOf('透析器-Ⅱ度') > -1"></check-box>
889
-               <check-box text="+++"
890
-                :checked="record.assessment_after_dislysis.cruor.indexOf('透析器-Ⅲ度') > -1"></check-box>
1047
+                <label-box
1048
+                showValue="0级"
1049
+                :isChecked="record.assessment_after_dislysis.cruor.indexOf('透析器-0度') > -1"
1050
+              ></label-box>
1051
+              <label-box
1052
+                showValue="1级"
1053
+                :isChecked="record.assessment_after_dislysis.cruor.indexOf('透析器-Ⅰ度') > -1"
1054
+              ></label-box>
1055
+              <label-box
1056
+                showValue="2级"
1057
+                :isChecked="record.assessment_after_dislysis.cruor.indexOf('透析器-Ⅱ度') > -1"
1058
+              ></label-box>
1059
+              <label-box
1060
+                showValue="3级"
1061
+                :isChecked="record.assessment_after_dislysis.cruor.indexOf('透析器-Ⅲ度') > -1"
1062
+              ></label-box>
891 1063
              </span>
892 1064
           </td>
893 1065
         </tr>
@@ -906,10 +1078,10 @@
906 1078
            </span>
907 1079
          </td>
908 1080
          <td style="text-align:left;" >
909
-           <span>下机护士:
910
-              <span v-if="setAdminUserES(record.dialysis_order, 'finish_nurse') == ''">{{getAdminUser(record.dialysis_order, 'finish_nurse')}}</span>
1081
+           <span style="display:flex;align-items:center;height:36px;">下机护士:
1082
+              <span  v-if="setAdminUserES(record.dialysis_order, 'finish_nurse') == ''">{{getAdminUser(record.dialysis_order, 'finish_nurse')}}</span>
911 1083
                 <img class="es-img" :src="setAdminUserES(record.dialysis_order, 'finish_nurse')" alt=""
912
-              srcset="" v-else style="height: 20px;">
1084
+              srcset="" v-else style="height: 30px;">
913 1085
            </span>
914 1086
          </td>
915 1087
         </tr>
@@ -982,7 +1154,7 @@
982 1154
                               style="height: 20px;"
983 1155
                             />
984 1156
                    </td>
985
-          <td>{{getTime(advice.start_time,'{y}-{m}-{d} {h}:{i}')}}</td>
1157
+          <td>{{getTime(advice.execution_time,'{y}-{m}-{d} {h}:{i}')}}</td>
986 1158
           <td>
987 1159
               <span
988 1160
                v-if="setAdminUserES(advice[0], 'checker') == ''"
@@ -1000,7 +1172,7 @@
1000 1172
         </tr>
1001 1173
         <tr>
1002 1174
           <td style="text-align:left;"  colspan="6">
1003
-            <span style="margin-left:15px">特殊记录:{{record.summer && record.summer.dialysis_summary? record.summer.dialysis_summary: '/'}}</span>
1175
+            <span style="margin-left:15px">特殊记录:{{record.summer && record.summer.special_record? record.summer.special_record: '/'}}</span>
1004 1176
           </td>
1005 1177
         </tr>
1006 1178
         <tr>

+ 13 - 5
src/xt_pages/dialysis/batch_print/batch_print_order_seven.vue Ver arquivo

@@ -187,11 +187,13 @@
187 187
                           透析次数:
188 188
                           <span class="under-line"
189 189
                           >&nbsp;
190
-                            {{
191
-                              record.patient.total_dialysis
192
-                                ? record.patient.total_dialysis + 1
193
-                                : '/'
194
-                            }}</span
190
+                           {{
191
+                            record.patient.total_dialysis +
192
+                            record.patient.user_sys_before_count
193
+                              ? record.patient.total_dialysis +
194
+                                record.patient.user_sys_before_count
195
+                              : "/"
196
+                          }}</span
195 197
                           >
196 198
                         </td>
197 199
                       </tr>
@@ -410,10 +412,16 @@
410 412
                         <td style="text-align:left;margin-left:15px">
411 413
                           置换方式:
412 414
                           <span class="under-line"
415
+                               v-if="
416
+                          record.prescription.mode_id == 2 ||
417
+                          record.prescription.mode_id == 5 ||
418
+                          record.prescription.mode_id == 12
419
+                      "
413 420
                           >&nbsp; {{
414 421
                               getDisplaceLiquiPart(record.prescription.displace_liqui_part) ? getDisplaceLiquiPart(record.prescription.displace_liqui_part):"/"
415 422
                           }}</span
416 423
                           >
424
+                          <span v-else class="under-line">/</span>
417 425
                         </td>
418 426
                         <td style="text-align:left;margin-left:15px">
419 427
                           置换液总量:

+ 157 - 23
src/xt_pages/dialysis/batch_print/batch_print_order_six.vue Ver arquivo

@@ -154,8 +154,10 @@
154 154
                           style="width: 70px;text-align: center"
155 155
                         >
156 156
                           {{
157
-                            record.patient.total_dialysis
158
-                              ? record.patient.total_dialysis
157
+                            record.patient.total_dialysis +
158
+                            record.patient.user_sys_before_count
159
+                              ? record.patient.total_dialysis +
160
+                                record.patient.user_sys_before_count
159 161
                               : "/"
160 162
                           }}
161 163
                         </div>
@@ -448,6 +450,76 @@
448 450
                           >
449 451
                             HF
450 452
                           </div>
453
+                          <div
454
+                            class="under_line"
455
+                            style="width: 100px;text-align: center;font-weight:600;"
456
+                            v-if="record.prescription.mode_id == 6"
457
+                          >
458
+                            SCUF
459
+                          </div>
460
+                          <div
461
+                            class="under_line"
462
+                            style="width: 100px;text-align: center;font-weight:600;"
463
+                            v-if="record.prescription.mode_id == 7"
464
+                          >
465
+                            IUF
466
+                          </div>
467
+                          <div
468
+                            class="under_line"
469
+                            style="width: 100px;text-align: center;font-weight:600;"
470
+                            v-if="record.prescription.mode_id == 8"
471
+                          >
472
+                            HFHD
473
+                          </div>
474
+                          <div
475
+                            class="under_line"
476
+                            style="width: 100px;text-align: center;font-weight:600;"
477
+                            v-if="record.prescription.mode_id == 9"
478
+                          >
479
+                            HFHD+HP
480
+                          </div>
481
+                          <div
482
+                            class="under_line"
483
+                            style="width: 100px;text-align: center;font-weight:600;"
484
+                            v-if="record.prescription.mode_id == 10"
485
+                          >
486
+                            PHF
487
+                          </div>
488
+                          <div
489
+                            class="under_line"
490
+                            style="width: 100px;text-align: center;font-weight:600;"
491
+                            v-if="record.prescription.mode_id == 11"
492
+                          >
493
+                            HFR
494
+                          </div>
495
+                          <div
496
+                            class="under_line"
497
+                            style="width: 100px;text-align: center;font-weight:600;"
498
+                            v-if="record.prescription.mode_id == 12"
499
+                          >
500
+                            HDF+HP
501
+                          </div>
502
+                          <div
503
+                            class="under_line"
504
+                            style="width: 100px;text-align: center;font-weight:600;"
505
+                            v-if="record.prescription.mode_id == 13"
506
+                          >
507
+                            CRRT
508
+                          </div>
509
+                          <div
510
+                            class="under_line"
511
+                            style="width: 100px;text-align: center;font-weight:600;"
512
+                            v-if="record.prescription.mode_id == 14"
513
+                          >
514
+                            腹水回输
515
+                          </div>
516
+                          <div
517
+                            class="under_line"
518
+                            style="width: 100px;text-align: center;font-weight:600;"
519
+                            v-if="record.prescription.mode_id == 19"
520
+                          >
521
+                            IUF+HD
522
+                          </div>
451 523
                         </div>
452 524
                       </div>
453 525
 
@@ -705,12 +777,30 @@
705 777
                           class="under_line"
706 778
                           style="width: 150px;text-align: center"
707 779
                         >
708
-                          {{
709
-                            record.prescription &&
710
-                            record.prescription.anticoagulant_name
711
-                              ? record.prescription.anticoagulant_name
712
-                              : "/"
713
-                          }}
780
+                          <span v-if="record.prescription.anticoagulant == 0"
781
+                            >&nbsp;/</span
782
+                          >
783
+                          <span v-if="record.prescription.anticoagulant == 1"
784
+                            >&nbsp;无肝素</span
785
+                          >
786
+                          <span v-if="record.prescription.anticoagulant == 2"
787
+                            >&nbsp;普通肝素</span
788
+                          >
789
+                          <span v-if="record.prescription.anticoagulant == 3"
790
+                            >&nbsp;低分子肝素</span
791
+                          >
792
+                          <span v-if="record.prescription.anticoagulant == 4"
793
+                            >&nbsp;阿加曲班</span
794
+                          >
795
+                          <span v-if="record.prescription.anticoagulant == 5"
796
+                            >&nbsp;枸橼酸钠</span
797
+                          >
798
+                          <span v-if="record.prescription.anticoagulant == 6"
799
+                            >&nbsp;低分子肝素钙</span
800
+                          >
801
+                          <span v-if="record.prescription.anticoagulant == 7"
802
+                            >&nbsp;低分子肝素钠</span
803
+                          >
714 804
                         </div>
715 805
                       </div>
716 806
                       <div class="inline_block" style="margin-left:20px;">
@@ -726,7 +816,18 @@
726 816
                               : "/"
727 817
                           }}
728 818
                         </div>
729
-                        lu
819
+                        <span v-if="record.prescription.anticoagulant == 4"
820
+                          >mg</span
821
+                        >
822
+                        <span v-if="record.prescription.anticoagulant == 3"
823
+                          >iu</span
824
+                        >
825
+                        <span v-if="record.prescription.anticoagulant == 2"
826
+                          >iu</span
827
+                        >
828
+                        <span v-if="record.prescription.anticoagulant == 1"
829
+                          >mg</span
830
+                        >
730 831
                       </div>
731 832
                       <div class="inline_block" style="margin-left:20px;">
732 833
                         维持:
@@ -760,7 +861,21 @@
760 861
                               : 0
761 862
                           }}
762 863
                         </div>
763
-                        lu
864
+                        <span v-if="record.prescription.anticoagulant == 5"
865
+                          >ml/h</span
866
+                        >
867
+                        <span v-if="record.prescription.anticoagulant == 4"
868
+                          >mg/h</span
869
+                        >
870
+                        <span v-if="record.prescription.anticoagulant == 3"
871
+                          >iu/h</span
872
+                        >
873
+                        <span v-if="record.prescription.anticoagulant == 2"
874
+                          >iu/h</span
875
+                        >
876
+                        <span v-if="record.prescription.anticoagulant == 1"
877
+                          >mg/h</span
878
+                        >
764 879
                       </div>
765 880
                       <div class="inline_block" style="margin-left:20px;">
766 881
                         总量:
@@ -775,7 +890,18 @@
775 890
                               : "/"
776 891
                           }}
777 892
                         </div>
778
-                        lu
893
+                        <span v-if="record.prescription.anticoagulant == 4"
894
+                          >mg</span
895
+                        >
896
+                        <span v-if="record.prescription.anticoagulant == 3"
897
+                          >iu</span
898
+                        >
899
+                        <span v-if="record.prescription.anticoagulant == 2"
900
+                          >iu</span
901
+                        >
902
+                        <span v-if="record.prescription.anticoagulant == 1"
903
+                          >mg</span
904
+                        >
779 905
                       </div>
780 906
                       <div class="inline_block" style="margin-left:20px;">
781 907
                         透析机号:
@@ -1020,8 +1146,8 @@
1020 1146
                             <span v-if="advice[0].parent_id > 0">---></span>
1021 1147
                             <span>{{ advice[0].advice_name }}</span>
1022 1148
                             <span v-if="advice[0].advice_desc != ''"
1023
-                              >{{ advice[0].advice_desc
1024
-                              }}{{ advice[0].drug_spec_unit }}</span
1149
+                              >({{ advice[0].advice_desc
1150
+                              }}{{ advice[0].drug_spec_unit }})</span
1025 1151
                             >
1026 1152
                             <span v-if="advice[0].prescribing_number"
1027 1153
                               >&nbsp;&nbsp; {{ advice[0].prescribing_number
@@ -1080,26 +1206,27 @@
1080 1206
                           <td height="35px">
1081 1207
                             <span
1082 1208
                               v-if="
1083
-                                setAdminUserES(advice[0].execution_staff) == ''
1209
+                                setAdminUserES(advice[0], 'execution_staff') ==
1210
+                                  ''
1084 1211
                               "
1085 1212
                               >{{
1086
-                                getAdminUser(advice[0].execution_staff)
1213
+                                getAdminUser(advice[0], "execution_staff")
1087 1214
                               }}</span
1088 1215
                             >
1089 1216
                             <img
1090
-                              style="height:20px;"
1091
-                              :src="setAdminUserES(advice[0].execution_staff)"
1217
+                              class="es-img"
1218
+                              :src="
1219
+                                setAdminUserES(advice[0], 'execution_staff')
1220
+                              "
1092 1221
                               alt=""
1093 1222
                               srcset=""
1094 1223
                               v-else
1224
+                              style="height: 40px;"
1095 1225
                             />
1096 1226
                           </td>
1097 1227
                           <td height="35px">
1098 1228
                             <span v-if="advice[0].execution_time">{{
1099
-                              getTime(
1100
-                                advice[0].execution_time,
1101
-                                "{y}-{m}-{d} {h}:{i}"
1102
-                              )
1229
+                              getTime(advice[0].execution_time, " {h}:{i}")
1103 1230
                             }}</span>
1104 1231
                           </td>
1105 1232
                         </tr>
@@ -1393,7 +1520,10 @@
1393 1520
                         min
1394 1521
                       </div>
1395 1522
                       <!-- 只是占位 -->
1396
-                      <div class="inline_block" style="flex:1;visibility: hidden;">
1523
+                      <div
1524
+                        class="inline_block"
1525
+                        style="flex:1;visibility: hidden;"
1526
+                      >
1397 1527
                         透析器凝血:
1398 1528
                         <div
1399 1529
                           class="under_line"
@@ -1612,7 +1742,11 @@
1612 1742
                           style="width: 80px;text-align: left"
1613 1743
                           v-if="record.dialysis_order == null"
1614 1744
                         ></div>
1615
-                        <div v-if="record.check" class="under_line" style="width: 80px;text-align: left">
1745
+                        <div
1746
+                          v-if="record.check"
1747
+                          class="under_line"
1748
+                          style="width: 80px;text-align: left"
1749
+                        >
1616 1750
                           <div
1617 1751
                             style="width: 80px;text-align: left;display: inline-block;white-space: nowrap;"
1618 1752
                             v-if="

Diferenças do arquivo suprimidas por serem muito extensas
+ 2450 - 0
src/xt_pages/dialysis/batch_print/batch_print_order_twelve.vue


+ 12 - 0
src/xt_pages/dialysis/bloodPresssWatch.vue Ver arquivo

@@ -130,6 +130,16 @@
130 130
           >批量打印</el-button
131 131
         >
132 132
       </template>
133
+      <template v-if="this.template_id == 12">
134
+        <el-button
135
+          size="small"
136
+          icon="el-icon-printer"
137
+          :disabled="selecting_schs.length == 0"
138
+          @click="batchPrintAction"
139
+          type="primary"
140
+          >批量打印</el-button
141
+        >
142
+      </template>
133 143
     </div>
134 144
     <div class="app-container">
135 145
       <!-- <div class="filter-container">
@@ -631,6 +641,8 @@ export default {
631 641
         this.$router.push({ path: "/dialysis/print/batch/eight" });
632 642
       } else if (this.template_id == 9) {
633 643
         this.$router.push({ path: "/dialysis/print/batch/nine" });
644
+      } else if (this.template_id == 12) {
645
+        this.$router.push({ path: "/dialysis/print/batch/twelve" });
634 646
       }
635 647
     },
636 648
     batchPrintActionOne: function() {

+ 5 - 4
src/xt_pages/dialysis/details/assessmentAfter.vue Ver arquivo

@@ -73,7 +73,9 @@
73 73
 
74 74
         <li v-if="isShow('其他观察内容') && patient_gose == 3">
75 75
           <label>其他观察内容 : </label>
76
-          <span class="content">{{ observation_content_other }}</span>
76
+          <span class="content">{{
77
+            this.record.observation_content_other
78
+          }}</span>
77 79
         </li>
78 80
 
79 81
         <li
@@ -211,10 +213,10 @@
211 213
           <span class="content">{{ this.record.complication }}</span>
212 214
         </li>
213 215
         <li
214
-          v-if="isShow('交待病房护士/患者/陪人观察内容') && patient_gose == 3"
216
+          v-if="patient_gose == 3 && isShow('交待病房护士/患者/陪人观察内容')"
215 217
         >
216 218
           <label>交待病房护士/患者/陪人观察内容 : </label>
217
-          <span class="content">{{ observation_content }}</span>
219
+          <span class="content">{{ this.record.observation_content }}</span>
218 220
         </li>
219 221
 
220 222
         <li v-if="isShow('患者去向')">
@@ -712,7 +714,6 @@ export default {
712 714
     },
713 715
     isShow(name) {
714 716
       var filedList = store.getters.xt_user.fileds;
715
-
716 717
       for (let i = 0; i < filedList.length; i++) {
717 718
         if (
718 719
           filedList[i].module == 5 &&

+ 270 - 256
src/xt_pages/dialysis/details/dialog/AssessmentAfterDislysis.vue Ver arquivo

@@ -9,7 +9,6 @@
9 9
     >
10 10
       <div class="warnTxt" v-if="showTxt != ''">{{ showTxt }}</div>
11 11
       <el-form ref="form" :model="form" label-width="160px">
12
-        <!-- <el-row :gutter="20"> -->
13 12
         <el-row :gutter="20">
14 13
           <el-col :span="8" v-if="isShow('实际治疗时长')">
15 14
             <el-form-item label="实际治疗时长(时):">
@@ -27,8 +26,14 @@
27 26
           </el-col>
28 27
 
29 28
           <el-col :span="8" v-if="isShow('实际超滤量')">
30
-
31
-            <el-form-item label="实际超滤量(ml): " v-if="this.template_id == 6 || this.template_id == 10 || this.template_id == 11">
29
+            <el-form-item
30
+              label="实际超滤量(ml): "
31
+              v-if="
32
+                this.template_id == 6 ||
33
+                  this.template_id == 10 ||
34
+                  this.template_id == 11
35
+              "
36
+            >
32 37
               <el-input v-model="form.actual_ultrafiltration"></el-input>
33 38
             </el-form-item>
34 39
             <el-form-item label="实际超滤量(L): " v-else>
@@ -41,7 +46,9 @@
41 46
               <el-input v-model="form.weight_after"></el-input>
42 47
             </el-form-item>
43 48
           </el-col>
49
+        </el-row>
44 50
 
51
+        <el-row :gutter="20">
45 52
           <el-col :span="8" v-if="isShow('体重减少')">
46 53
             <el-form-item label="体重减少(kg): ">
47 54
               <el-input v-model="form.weight_loss"></el-input>
@@ -66,7 +73,9 @@
66 73
               ></el-input>
67 74
             </el-form-item>
68 75
           </el-col>
76
+        </el-row>
69 77
 
78
+        <el-row :gutter="20">
70 79
           <el-col :span="8" v-if="isShow('内瘘')">
71 80
             <el-form-item label="内瘘: ">
72 81
               <el-input
@@ -126,12 +135,15 @@
126 135
               ></el-input>
127 136
             </el-form-item>
128 137
           </el-col>
138
+        </el-row>
129 139
 
140
+        <el-row :gutter="20">
130 141
           <el-col :span="8" v-if="isShow('内瘘管拔针后压迫止血时间')">
131 142
             <el-form-item label="内瘘管拔针后压迫止血时间(min): ">
132 143
               <el-input v-model="form.hemostasis_minute" :rows="5"></el-input>
133 144
             </el-form-item>
134 145
           </el-col>
146
+
135 147
           <el-col :span="8" v-if="isShow('内瘘管拔针后压迫止血操作')">
136 148
             <el-form-item label="内瘘管拔针后压迫止血操作: ">
137 149
               <el-select v-model="form.hemostasis_opera">
@@ -161,6 +173,8 @@
161 173
               </el-select>
162 174
             </el-form-item>
163 175
           </el-col>
176
+        </el-row>
177
+        <el-row :gutter="20">
164 178
           <el-col :span="8" v-if="isShow('静脉管道')">
165 179
             <el-form-item label="静脉管道: ">
166 180
               <el-select v-model="form.intravenous_tube">
@@ -190,7 +204,6 @@
190 204
             <el-form-item label="患者去向: ">
191 205
               <el-select v-model="form.patient_gose">
192 206
                 <el-option :key="0" label="请选择" :value="0"></el-option>
193
-
194 207
                 <el-option
195 208
                   v-for="item in patientGoseOptions"
196 209
                   :label="item.name"
@@ -200,7 +213,9 @@
200 213
               </el-select>
201 214
             </el-form-item>
202 215
           </el-col>
216
+        </el-row>
203 217
 
218
+        <el-row>
204 219
           <el-col :span="8" v-if="isShow('拔针后穿刺点渗血')">
205 220
             <el-form-item label="拔针后穿刺点渗血: ">
206 221
               <el-radio-group v-model="form.puncture_point_oozing_blood">
@@ -209,283 +224,281 @@
209 224
               </el-radio-group>
210 225
             </el-form-item>
211 226
           </el-col>
212
-
213
-          <!--          <el-col :span="8" v-if="isShow('压迫后内瘘震颤')">-->
214
-          <!--            <el-form-item label="压迫后内瘘震颤: ">-->
215
-          <!--              <el-select v-model="form.internal_fistula_tremor_ac">-->
216
-          <!--                <el-option :key="0" label="请选择" :value="0"></el-option>-->
217
-
218
-          <!--                <el-option-->
219
-          <!--                  v-for="item in internalFistulaTremorAcOptions"-->
220
-          <!--                  :label="item.name"-->
221
-          <!--                  :value="item.id"-->
222
-          <!--                  :key="item.id"-->
223
-          <!--                ></el-option>-->
224
-          <!--              </el-select>-->
225
-          <!--            </el-form-item>-->
226
-          <!--          </el-col>-->
227
-
228
-          <el-row :gutter="20" v-if="form.patient_gose == 3 && isShow('科室')">
229
-            <el-col :span="24">
230
-              <el-form-item label="科室: ">
231
-                <el-input
232
-                  v-model="form.inpatient_department"
233
-                  :rows="5"
234
-                ></el-input>
235
-              </el-form-item>
236
-            </el-col>
237
-          </el-row>
238
-          <el-row
239
-            :gutter="20"
240
-            v-if="form.patient_gose == 3 && isShow('交待观察内容')"
241
-          >
242
-            <el-col :span="24">
243
-              <el-form-item label="交待观察内容: ">
244
-                <el-input
245
-                  placeholder="交待病房护士/患者/陪人观察内容"
246
-                  v-model="form.observation_content"
247
-                  :rows="5"
248
-                  readonly
249
-                  @focus="showDialog('6')"
250
-                ></el-input>
251
-              </el-form-item>
252
-            </el-col>
253
-          </el-row>
254
-          <el-row
255
-            :gutter="20"
256
-            v-show="form.patient_gose == 3 && isShow('其他观察内容')"
257
-          >
258
-            <el-col :span="24">
259
-              <el-form-item label="其他观察内容: ">
260
-                <el-input
261
-                  v-model="form.observation_content_other"
262
-                  :rows="5"
263
-                ></el-input>
264
-              </el-form-item>
265
-            </el-col>
266
-          </el-row>
267
-
268
-          <el-col :span="8" v-if="isShow('体温')">
269
-            <el-form-item label="体温(℃): ">
270
-              <el-input v-model="form.temperature"></el-input>
271
-            </el-form-item>
272
-          </el-col>
273
-          <!-- </el-row>
274
-
275
-        <el-row :gutter="20"> -->
276
-          <el-col :span="8" v-if="isShow('收缩压')">
277
-            <el-form-item label="收缩压(mmHg): ">
278
-              <el-input v-model="form.systolic_blood_pressure"></el-input>
279
-            </el-form-item>
280
-          </el-col>
281
-          <el-col :span="8" v-if="isShow('舒张压')">
282
-            <el-form-item label="舒张压(mmHg): ">
283
-              <el-input v-model="form.diastolic_blood_pressure"></el-input>
284
-            </el-form-item>
285
-          </el-col>
286
-
287
-          <el-col :span="8" v-if="isShow('呼吸频率')">
288
-            <el-form-item label="呼吸频率(次/min): ">
289
-              <el-input v-model="form.breathing_rate"></el-input>
290
-            </el-form-item>
291
-          </el-col>
292
-
293
-          <el-col :span="8" v-if="isShow('脉搏')">
294
-            <el-form-item label="脉搏(次/分): ">
295
-              <el-input v-model="form.pulse_frequency"></el-input>
227
+        </el-row>
228
+        <!--          <el-col :span="8" v-if="isShow('压迫后内瘘震颤')">-->
229
+        <!--            <el-form-item label="压迫后内瘘震颤: ">-->
230
+        <!--              <el-select v-model="form.internal_fistula_tremor_ac">-->
231
+        <!--                <el-option :key="0" label="请选择" :value="0"></el-option>-->
232
+
233
+        <!--                <el-option-->
234
+        <!--                  v-for="item in internalFistulaTremorAcOptions"-->
235
+        <!--                  :label="item.name"-->
236
+        <!--                  :value="item.id"-->
237
+        <!--                  :key="item.id"-->
238
+        <!--                ></el-option>-->
239
+        <!--              </el-select>-->
240
+        <!--            </el-form-item>-->
241
+        <!--          </el-col>-->
242
+
243
+        <el-row :gutter="20" v-if="form.patient_gose == 3 && isShow('科室')">
244
+          <el-col :span="24">
245
+            <el-form-item label="科室: ">
246
+              <el-input
247
+                v-model="form.inpatient_department"
248
+                :rows="5"
249
+              ></el-input>
296 250
             </el-form-item>
297 251
           </el-col>
252
+        </el-row>
298 253
 
299
-          <el-col :span="8" v-if="isShow('透后症状')">
300
-            <el-form-item label="透后症状: ">
254
+        <el-row
255
+          :gutter="20"
256
+          v-if="
257
+            form.patient_gose == 3 && isShow('交待病房护士/患者/陪人观察内容')
258
+          "
259
+        >
260
+          <el-col :span="24">
261
+            <el-form-item label="交待病房护士/患者/陪人观察内容: ">
301 262
               <el-input
302
-                v-model="form.symptom_after_dialysis"
263
+                placeholder="交待病房护士/患者/陪人观察内容"
264
+                v-model="form.observation_content"
265
+                :rows="5"
303 266
                 readonly
304
-                @focus="showDialog('2')"
267
+                @focus="showDialog('6')"
305 268
               ></el-input>
306 269
             </el-form-item>
307 270
           </el-col>
308
-          <el-col :span="8" v-if="isShow('透析中入量')">
309
-            <el-form-item label="透析中入量: ">
310
-              <el-input v-model="form.dialysis_intakes"></el-input>
311
-            </el-form-item>
312
-          </el-col>
271
+        </el-row>
313 272
 
314
-          <el-col :span="8" v-if="isShow('透析中入量单位')">
315
-            <el-form-item label="透析中入量单位: ">
316
-              <el-select v-model="form.dialysis_intakes_unit">
317
-                <el-option :key="0" label="请选择" :value="0"></el-option>
318
-                <el-option
319
-                  v-for="item in unit"
320
-                  :label="item.name"
321
-                  :value="item.id"
322
-                  :key="item.id"
323
-                ></el-option>
324
-              </el-select>
273
+        <el-row
274
+          :gutter="20"
275
+          v-show="form.patient_gose == 3 && isShow('其他观察内容')"
276
+        >
277
+          <el-col :span="24">
278
+            <el-form-item label="其他观察内容: ">
279
+              <el-input
280
+                v-model="form.observation_content_other"
281
+                :rows="5"
282
+              ></el-input>
325 283
             </el-form-item>
326 284
           </el-col>
285
+        </el-row>
327 286
 
328
-          <!-- </el-row>
287
+        <el-col :span="8" v-if="isShow('体温')">
288
+          <el-form-item label="体温(℃): ">
289
+            <el-input v-model="form.temperature"></el-input>
290
+          </el-form-item>
291
+        </el-col>
292
+        <!-- </el-row>
329 293
 
330 294
         <el-row :gutter="20"> -->
295
+        <el-col :span="8" v-if="isShow('收缩压')">
296
+          <el-form-item label="收缩压(mmHg): ">
297
+            <el-input v-model="form.systolic_blood_pressure"></el-input>
298
+          </el-form-item>
299
+        </el-col>
300
+        <el-col :span="8" v-if="isShow('舒张压')">
301
+          <el-form-item label="舒张压(mmHg): ">
302
+            <el-input v-model="form.diastolic_blood_pressure"></el-input>
303
+          </el-form-item>
304
+        </el-col>
305
+
306
+        <el-col :span="8" v-if="isShow('呼吸频率')">
307
+          <el-form-item label="呼吸频率(次/min): ">
308
+            <el-input v-model="form.breathing_rate"></el-input>
309
+          </el-form-item>
310
+        </el-col>
311
+
312
+        <el-col :span="8" v-if="isShow('脉搏')">
313
+          <el-form-item label="脉搏(次/分): ">
314
+            <el-input v-model="form.pulse_frequency"></el-input>
315
+          </el-form-item>
316
+        </el-col>
317
+
318
+        <el-col :span="8" v-if="isShow('透后症状')">
319
+          <el-form-item label="透后症状: ">
320
+            <el-input
321
+              v-model="form.symptom_after_dialysis"
322
+              readonly
323
+              @focus="showDialog('2')"
324
+            ></el-input>
325
+          </el-form-item>
326
+        </el-col>
327
+        <el-col :span="8" v-if="isShow('透析中入量')">
328
+          <el-form-item label="透析中入量: ">
329
+            <el-input v-model="form.dialysis_intakes"></el-input>
330
+          </el-form-item>
331
+        </el-col>
332
+
333
+        <el-col :span="8" v-if="isShow('透析中入量单位')">
334
+          <el-form-item label="透析中入量单位: ">
335
+            <el-select v-model="form.dialysis_intakes_unit">
336
+              <el-option :key="0" label="请选择" :value="0"></el-option>
337
+              <el-option
338
+                v-for="item in unit"
339
+                :label="item.name"
340
+                :value="item.id"
341
+                :key="item.id"
342
+              ></el-option>
343
+            </el-select>
344
+          </el-form-item>
345
+        </el-col>
346
+
347
+        <!-- </el-row>
331 348
 
332
-          <el-col :span="8" v-if="isShow('实际置换量')">
333
-            <el-form-item label="实际置换量(L): ">
334
-              <el-input v-model="form.actual_displacement"></el-input>
335
-            </el-form-item>
336
-          </el-col>
349
+        <el-row :gutter="20"> -->
350
+
351
+        <el-col :span="8" v-if="isShow('实际置换量')">
352
+          <el-form-item label="实际置换量(L): ">
353
+            <el-input v-model="form.actual_displacement"></el-input>
354
+          </el-form-item>
355
+        </el-col>
337 356
 
338
-          <!-- </el-row>
357
+        <!-- </el-row>
339 358
 
340 359
         <el-row :gutter="20"> -->
341 360
 
342
-          <!-- </el-row>
361
+        <!-- </el-row>
343 362
 
344 363
         <el-row :gutter="20"> -->
345 364
 
346
-          <!--          <el-col :span="8" v-if="isShow('血管通路部位')">-->
347
-          <!--            <el-form-item label="血管通路部位: ">-->
348
-          <!--              <el-select v-model="form.blood_access_part_id">-->
349
-          <!--                <el-option :key="0" label="请选择" :value="0"></el-option>-->
350
-
351
-          <!--                <el-option-->
352
-          <!--                  v-for="item in vascularAccessOptions"-->
353
-          <!--                  :label="item.name"-->
354
-          <!--                  :value="item.id"-->
355
-          <!--                  :key="item.id"-->
356
-          <!--                ></el-option>-->
357
-          <!--              </el-select>-->
358
-          <!--            </el-form-item>-->
359
-          <!--          </el-col>-->
360
-          <!--          <el-col :span="8" v-if="isShow('血管通路')">-->
361
-          <!--            <el-form-item label="血管通路: ">-->
362
-          <!--              <el-select v-model="form.blood_access_part_opera_id">-->
363
-          <!--                <el-option :key="0" label="请选择" :value="0"></el-option>-->
364
-
365
-          <!--                <el-option-->
366
-          <!--                  v-for="item in vascularAccessDescOptions"-->
367
-          <!--                  :label="item.name"-->
368
-          <!--                  :value="item.id"-->
369
-          <!--                  :key="item.id"-->
370
-          <!--                ></el-option>-->
371
-          <!--              </el-select>-->
372
-          <!--            </el-form-item>-->
373
-          <!--          </el-col>-->
374
-          <!-- </el-row>
365
+        <!--          <el-col :span="8" v-if="isShow('血管通路部位')">-->
366
+        <!--            <el-form-item label="血管通路部位: ">-->
367
+        <!--              <el-select v-model="form.blood_access_part_id">-->
368
+        <!--                <el-option :key="0" label="请选择" :value="0"></el-option>-->
369
+
370
+        <!--                <el-option-->
371
+        <!--                  v-for="item in vascularAccessOptions"-->
372
+        <!--                  :label="item.name"-->
373
+        <!--                  :value="item.id"-->
374
+        <!--                  :key="item.id"-->
375
+        <!--                ></el-option>-->
376
+        <!--              </el-select>-->
377
+        <!--            </el-form-item>-->
378
+        <!--          </el-col>-->
379
+        <!--          <el-col :span="8" v-if="isShow('血管通路')">-->
380
+        <!--            <el-form-item label="血管通路: ">-->
381
+        <!--              <el-select v-model="form.blood_access_part_opera_id">-->
382
+        <!--                <el-option :key="0" label="请选择" :value="0"></el-option>-->
383
+
384
+        <!--                <el-option-->
385
+        <!--                  v-for="item in vascularAccessDescOptions"-->
386
+        <!--                  :label="item.name"-->
387
+        <!--                  :value="item.id"-->
388
+        <!--                  :key="item.id"-->
389
+        <!--                ></el-option>-->
390
+        <!--              </el-select>-->
391
+        <!--            </el-form-item>-->
392
+        <!--          </el-col>-->
393
+        <!-- </el-row>
375 394
 
376 395
         <el-row :gutter="20"> -->
377 396
 
378
-          <!-- </el-row>
397
+        <!-- </el-row>
379 398
 
380 399
 
381 400
 
382 401
           <el-row :gutter="20" > -->
383 402
 
384
-          <!--
403
+        <!--
385 404
                   </el-row>
386 405
 
387 406
 
388 407
 
389 408
 
390 409
                   <el-row :gutter="20"> -->
391
-          <!--          <el-col :span="8" v-if="isShow('内瘘震颤和血管杂音')">-->
392
-          <!--            <el-form-item label="内瘘震颤和血管杂音: ">-->
393
-          <!--              <el-select v-model="form.tremor_noise">-->
394
-          <!--                <el-option :key="0" label="请选择" :value="0"></el-option>-->
395
-
396
-          <!--                <el-option-->
397
-          <!--                  v-for="item in this.$store.getters.tremor_noise"-->
398
-          <!--                  :label="item.name"-->
399
-          <!--                  :value="item.id"-->
400
-          <!--                  :key="item.id"-->
401
-          <!--                ></el-option>-->
402
-          <!--              </el-select>-->
403
-          <!--            </el-form-item>-->
404
-          <!--          </el-col>-->
405
-          <el-col :span="8" v-if="isShow('失衡综合症')">
406
-            <el-form-item label="失衡综合症: ">
407
-              <el-select v-model="form.disequilibrium_syndrome">
408
-                <el-option :key="0" label="请选择" :value="0"></el-option>
409
-
410
-                <el-option
411
-                  v-for="item in this.$store.getters.disequilibrium_syndrome"
412
-                  :label="item.name"
413
-                  :value="item.id"
414
-                  :key="item.id"
415
-                ></el-option>
416
-              </el-select>
417
-            </el-form-item>
418
-          </el-col>
419
-          <!--          <el-col :span="8" v-if="isShow('失衡综合症症状')">-->
420
-          <!--            <el-form-item label="失衡综合症症状: ">-->
421
-          <!--              <el-input-->
422
-          <!--                v-model="form.disequilibrium_syndrome_option"-->
423
-          <!--                readonly-->
424
-          <!--                @focus="showDialog('8')"-->
425
-          <!--              ></el-input>-->
426
-          <!--            </el-form-item>-->
427
-          <!--          </el-col>-->
428
-
429
-          <!-- </el-row>
410
+        <!--          <el-col :span="8" v-if="isShow('内瘘震颤和血管杂音')">-->
411
+        <!--            <el-form-item label="内瘘震颤和血管杂音: ">-->
412
+        <!--              <el-select v-model="form.tremor_noise">-->
413
+        <!--                <el-option :key="0" label="请选择" :value="0"></el-option>-->
414
+
415
+        <!--                <el-option-->
416
+        <!--                  v-for="item in this.$store.getters.tremor_noise"-->
417
+        <!--                  :label="item.name"-->
418
+        <!--                  :value="item.id"-->
419
+        <!--                  :key="item.id"-->
420
+        <!--                ></el-option>-->
421
+        <!--              </el-select>-->
422
+        <!--            </el-form-item>-->
423
+        <!--          </el-col>-->
424
+        <el-col :span="8" v-if="isShow('失衡综合症')">
425
+          <el-form-item label="失衡综合症: ">
426
+            <el-select v-model="form.disequilibrium_syndrome">
427
+              <el-option :key="0" label="请选择" :value="0"></el-option>
428
+
429
+              <el-option
430
+                v-for="item in this.$store.getters.disequilibrium_syndrome"
431
+                :label="item.name"
432
+                :value="item.id"
433
+                :key="item.id"
434
+              ></el-option>
435
+            </el-select>
436
+          </el-form-item>
437
+        </el-col>
438
+        <!--          <el-col :span="8" v-if="isShow('失衡综合症症状')">-->
439
+        <!--            <el-form-item label="失衡综合症症状: ">-->
440
+        <!--              <el-input-->
441
+        <!--                v-model="form.disequilibrium_syndrome_option"-->
442
+        <!--                readonly-->
443
+        <!--                @focus="showDialog('8')"-->
444
+        <!--              ></el-input>-->
445
+        <!--            </el-form-item>-->
446
+        <!--          </el-col>-->
447
+
448
+        <!-- </el-row>
430 449
 
431 450
 
432 451
 
433 452
           <el-row :gutter="20"  > -->
434 453
 
435
-          <!--          <el-col :span="8" v-if="isShow('透析器')">-->
436
-          <!--            <el-form-item label="透析器凝血: ">-->
437
-          <!--              <el-select v-model="form.dialyzer">-->
438
-          <!--                <el-option :key="0" label="请选择" :value="0"></el-option>-->
439
-
440
-          <!--                <el-option-->
441
-          <!--                  v-for="item in this.$store.getters.dialyzer"-->
442
-          <!--                  :label="item.name"-->
443
-          <!--                  :value="item.id"-->
444
-          <!--                  :key="item.id"-->
445
-          <!--                ></el-option>-->
446
-          <!--              </el-select>-->
447
-          <!--            </el-form-item>-->
448
-          <!--          </el-col>-->
449
-          <el-col :span="8" v-if="isShow('透析期间进食')">
450
-            <el-form-item label="透析期间进食: ">
451
-              <el-radio-group v-model="form.is_eat">
452
-                <el-radio :label="1">有</el-radio>
453
-                <el-radio :label="2">无</el-radio>
454
-              </el-radio-group>
455
-            </el-form-item>
456
-          </el-col>
457
-
458
-
459
-          <el-col :span="8" v-if="isShow('中心静脉封管(肝素-A端)')">
460
-            <el-form-item label="中心静脉封管(肝素-A端): ">
461
-              <el-input v-model="form.cvc_a"></el-input>
462
-            </el-form-item>
463
-          </el-col>
464
-
465
-
466
-          <el-col :span="8" v-if="isShow('中心静脉封管(肝素-V端)')">
467
-            <el-form-item label="中心静脉封管(肝素-V端): ">
468
-              <el-input v-model="form.cvc_v"></el-input>
469
-            </el-form-item>
470
-          </el-col>
471
-
472
-          <el-col :span="8" v-if="isShow('管路')">
473
-            <el-form-item label="管路: ">
474
-              <el-select v-model="form.channel">
475
-                <el-option :key="0" label="请选择" :value="0"></el-option>
476
-                <el-option
477
-                  v-for="item in channels"
478
-                  :label="item.name"
479
-                  :value="item.id"
480
-                  :key="item.id"
481
-                ></el-option>
482
-              </el-select>
483
-            </el-form-item>
484
-          </el-col>
485
-
486
-
487
-
488
-        </el-row>
454
+        <!--          <el-col :span="8" v-if="isShow('透析器')">-->
455
+        <!--            <el-form-item label="透析器凝血: ">-->
456
+        <!--              <el-select v-model="form.dialyzer">-->
457
+        <!--                <el-option :key="0" label="请选择" :value="0"></el-option>-->
458
+
459
+        <!--                <el-option-->
460
+        <!--                  v-for="item in this.$store.getters.dialyzer"-->
461
+        <!--                  :label="item.name"-->
462
+        <!--                  :value="item.id"-->
463
+        <!--                  :key="item.id"-->
464
+        <!--                ></el-option>-->
465
+        <!--              </el-select>-->
466
+        <!--            </el-form-item>-->
467
+        <!--          </el-col>-->
468
+        <el-col :span="8" v-if="isShow('透析期间进食')">
469
+          <el-form-item label="透析期间进食: ">
470
+            <el-radio-group v-model="form.is_eat">
471
+              <el-radio :label="1">有</el-radio>
472
+              <el-radio :label="2">无</el-radio>
473
+            </el-radio-group>
474
+          </el-form-item>
475
+        </el-col>
476
+
477
+        <el-col :span="8" v-if="isShow('中心静脉封管(肝素-A端)')">
478
+          <el-form-item label="中心静脉封管(肝素-A端): ">
479
+            <el-input v-model="form.cvc_a"></el-input>
480
+          </el-form-item>
481
+        </el-col>
482
+
483
+        <el-col :span="8" v-if="isShow('中心静脉封管(肝素-V端)')">
484
+          <el-form-item label="中心静脉封管(肝素-V端): ">
485
+            <el-input v-model="form.cvc_v"></el-input>
486
+          </el-form-item>
487
+        </el-col>
488
+
489
+        <el-col :span="8" v-if="isShow('管路')">
490
+          <el-form-item label="管路: ">
491
+            <el-select v-model="form.channel">
492
+              <el-option :key="0" label="请选择" :value="0"></el-option>
493
+              <el-option
494
+                v-for="item in channels"
495
+                :label="item.name"
496
+                :value="item.id"
497
+                :key="item.id"
498
+              ></el-option>
499
+            </el-select>
500
+          </el-form-item>
501
+        </el-col>
489 502
       </el-form>
490 503
 
491 504
       <span slot="footer" class="dialog-footer">
@@ -562,7 +575,7 @@ export default {
562 575
       internalFistulaTremorAcOptions: [],
563 576
       patientGoseOptions: [],
564 577
       observationContentOptions: [],
565
-      channels:[],
578
+      channels: [],
566 579
 
567 580
       isVisibiltyForCruorDialog: false,
568 581
       dialogCruorTitle: "凝血",
@@ -619,10 +632,9 @@ export default {
619 632
         dialyzer: "",
620 633
         breathing_rate: "",
621 634
         dialysis_intakes_unit: 0,
622
-        cvc_a:0,
623
-        cvc_v:0,
624
-        channel:"",
625
-
635
+        cvc_a: 0,
636
+        cvc_v: 0,
637
+        channel: ""
626 638
       }
627 639
     };
628 640
   },
@@ -695,13 +707,10 @@ export default {
695 707
         this.form.observation_content = "";
696 708
         this.form.observation_content_other = "";
697 709
       }
698
-    }, "form.weight_after":function() {
699
-      if(this){
700
-
701
-
702
-
710
+    },
711
+    "form.weight_after": function() {
712
+      if (this) {
703 713
       }
704
-
705 714
     }
706 715
   },
707 716
   methods: {
@@ -837,7 +846,7 @@ export default {
837 846
         : 0;
838 847
 
839 848
       data["is_eat"] = this.form.is_eat ? parseFloat(this.form.is_eat) : 0;
840
-
849
+      console.log("data", data);
841 850
       postAssessmentAfterDislysis(ParamsQuery, data)
842 851
         .then(response => {
843 852
           this.loading = false;
@@ -853,7 +862,9 @@ export default {
853 862
             });
854 863
 
855 864
             var assement = response.data.data.AssessmentAfterDislysis;
865
+
856 866
             var assessment_after_dislysis = this.assessment_after_dislysis;
867
+
857 868
             for (var index in assement) {
858 869
               // assessment_after_dislysis[index] = assement[index];
859 870
               this.$set(assessment_after_dislysis, index, assement[index]);
@@ -969,14 +980,16 @@ export default {
969 980
       this.InnerDialogProps.visibility = false;
970 981
     },
971 982
 
983
+    //数据开始
972 984
     show(predialysis) {
973 985
       this.isVisibility = true;
974 986
       this.predialysis = predialysis;
987
+      this.form.observation_content = predialysis.observation_content;
988
+      this.form.inpatient_department = predialysis.inpatient_department;
989
+      this.form.observation_content_other =
990
+        predialysis.observation_content_other;
975 991
       // console.log("透后", predialysis);
976 992
 
977
-
978
-
979
-
980 993
       this.getPermission();
981 994
     },
982 995
 
@@ -1076,9 +1089,10 @@ export default {
1076 1089
     this.internalFistulaTremorAcOptions = this.$store.getters.internal_fistula_tremor_ac;
1077 1090
     this.patientGoseOptions = this.$store.getters.patient_gose;
1078 1091
     this.observationContentOptions = this.$store.getters.observation_content;
1092
+    console.log("----", this.$store.getters.observation_content);
1079 1093
     this.template_id = this.$store.getters.xt_user.template_info.template_id;
1080 1094
 
1081
-    this.channels = this.$store.getters.channels
1095
+    this.channels = this.$store.getters.channels;
1082 1096
 
1083 1097
     var date = this.$route.query && this.$route.query.date;
1084 1098
     this.record_date = uParseTime(date, "{y}-{m}-{d}");

+ 203 - 160
src/xt_pages/dialysis/details/dialog/DoctorAdviceDialog.vue Ver arquivo

@@ -13,9 +13,7 @@
13 13
           @click="openGroupFrom"
14 14
           :loading="deleLoading"
15 15
           :disabled="!is_has_create"
16
-        >
17
-          新增医嘱
18
-        </el-button>
16
+        >新增医嘱</el-button>
19 17
 
20 18
         <el-button
21 19
           v-if="currentRow != null"
@@ -23,16 +21,8 @@
23 21
           :disabled="!is_has_exce"
24 22
           @click="execAdvice"
25 23
           :loading="deleLoading"
26
-          >执行医嘱
27
-        </el-button>
28
-        <el-button
29
-          v-else
30
-          disabled
31
-          round
32
-          @click="execAdvice"
33
-          :loading="deleLoading"
34
-          >执行医嘱</el-button
35
-        >
24
+        >执行医嘱</el-button>
25
+        <el-button v-else disabled round @click="execAdvice" :loading="deleLoading">执行医嘱</el-button>
36 26
 
37 27
         <el-button
38 28
           v-if="currentRow != null"
@@ -40,16 +30,8 @@
40 30
           :disabled="!is_has_check"
41 31
           @click="checkAdvice"
42 32
           :loading="deleLoading"
43
-          >医嘱核对
44
-        </el-button>
45
-        <el-button
46
-          v-else
47
-          disabled
48
-          round
49
-          @click="checkAdvice"
50
-          :loading="deleLoading"
51
-          >医嘱核对</el-button
52
-        >
33
+        >医嘱核对</el-button>
34
+        <el-button v-else disabled round @click="checkAdvice" :loading="deleLoading">医嘱核对</el-button>
53 35
 
54 36
         <el-button
55 37
           v-if="groupSelectRow != null"
@@ -57,16 +39,8 @@
57 39
           round
58 40
           @click="openEditGroupAdvice"
59 41
           :loading="deleLoading"
60
-          >修改医嘱
61
-        </el-button>
62
-        <el-button
63
-          v-else
64
-          disabled
65
-          round
66
-          @click="openEditGroupAdvice"
67
-          :loading="deleLoading"
68
-          >修改医嘱</el-button
69
-        >
42
+        >修改医嘱</el-button>
43
+        <el-button v-else disabled round @click="openEditGroupAdvice" :loading="deleLoading">修改医嘱</el-button>
70 44
 
71 45
         <el-button
72 46
           v-if="groupSelectRow != null"
@@ -74,16 +48,8 @@
74 48
           round
75 49
           @click="openDeleteGroupAdvice"
76 50
           :loading="deleLoading"
77
-          >删除医嘱
78
-        </el-button>
79
-        <el-button
80
-          v-else
81
-          disabled
82
-          round
83
-          @click="openDeleteGroupAdvice"
84
-          :loading="deleLoading"
85
-          >删除医嘱</el-button
86
-        >
51
+        >删除医嘱</el-button>
52
+        <el-button v-else disabled round @click="openDeleteGroupAdvice" :loading="deleLoading">删除医嘱</el-button>
87 53
 
88 54
         <!--<el-button round @click="openNewChild" :loading="deleLoading">新增子药</el-button>-->
89 55
       </div>
@@ -104,70 +70,44 @@
104 70
         highlight-current-row
105 71
         @current-change="handleCurrentChange"
106 72
       >
107
-        <el-table-column
108
-          prop="date"
109
-          label="开嘱医生"
110
-          align="center"
111
-          min-width="26px"
112
-        >
73
+        <el-table-column prop="date" label="开嘱医生" align="center" min-width="26px">
113 74
           <template slot-scope="scope">
114 75
             <span>{{ getXuserName(scope.row.advice_doctor) }}</span>
115 76
           </template>
116 77
         </el-table-column>
117
-        <el-table-column
118
-          prop="start_time"
119
-          label="开始时间"
120
-          align="center"
121
-          min-width="35px"
122
-        >
78
+        <el-table-column prop="start_time" label="开始时间" align="center" min-width="35px">
123 79
           <template slot-scope="scope">
124
-            <span>{{
80
+            <span>
81
+              {{
125 82
               scope.row.start_time | parseTime("{y}-{m}-{d} {h}:{i}")
126
-            }}</span>
83
+              }}
84
+            </span>
127 85
           </template>
128 86
         </el-table-column>
129
-        <el-table-column
130
-          prop="advice_name"
131
-          min-width="50px"
132
-          label="医嘱内容"
133
-          align="center"
134
-        >
87
+        <el-table-column prop="advice_name" min-width="50px" label="医嘱内容" align="center">
135 88
           <template slot-scope="scope">
136 89
             <el-dropdown trigger="click" v-if="scope.row.parent_id == 0">
137
-              <span class="el-dropdown-link"
138
-                >{{ getAdviceContent(scope.row, 1)
139
-                }}<i class="el-icon-arrow-down el-icon--right"></i
140
-              ></span>
90
+              <span class="el-dropdown-link">
91
+                {{ getAdviceContent(scope.row, 1)
92
+                }}
93
+                <i class="el-icon-arrow-down el-icon--right"></i>
94
+              </span>
141 95
               <el-dropdown-menu slot="dropdown">
142
-                <el-dropdown-item
143
-                  @click.native="openEdit(scope.$index, scope.row)"
144
-                  >修改医嘱</el-dropdown-item
145
-                >
146
-                <el-dropdown-item
147
-                  @click.native="openDelete(scope.$index, scope.row)"
148
-                  >删除医嘱</el-dropdown-item
149
-                >
150
-                <el-dropdown-item
151
-                  @click.native="openNewChildTwo(scope.$index, scope.row)"
152
-                  >新增子药</el-dropdown-item
153
-                >
96
+                <el-dropdown-item @click.native="openEdit(scope.$index, scope.row)">修改医嘱</el-dropdown-item>
97
+                <el-dropdown-item @click.native="openDelete(scope.$index, scope.row)">删除医嘱</el-dropdown-item>
98
+                <el-dropdown-item @click.native="openNewChildTwo(scope.$index, scope.row)">新增子药</el-dropdown-item>
154 99
               </el-dropdown-menu>
155 100
             </el-dropdown>
156 101
 
157 102
             <el-dropdown trigger="click" v-if="scope.row.parent_id > 0">
158
-              <span class="el-dropdown-link"
159
-                >&emsp;{{ getAdviceContent(scope.row, 2)
160
-                }}<i class="el-icon-arrow-down el-icon--right"></i
161
-              ></span>
103
+              <span class="el-dropdown-link">
104
+                &emsp;{{ getAdviceContent(scope.row, 2)
105
+                }}
106
+                <i class="el-icon-arrow-down el-icon--right"></i>
107
+              </span>
162 108
               <el-dropdown-menu slot="dropdown">
163
-                <el-dropdown-item
164
-                  @click.native="openEdit(scope.$index, scope.row)"
165
-                  >修改子药
166
-                </el-dropdown-item>
167
-                <el-dropdown-item
168
-                  @click.native="openDelete(scope.$index, scope.row)"
169
-                  >删除子药
170
-                </el-dropdown-item>
109
+                <el-dropdown-item @click.native="openEdit(scope.$index, scope.row)">修改子药</el-dropdown-item>
110
+                <el-dropdown-item @click.native="openDelete(scope.$index, scope.row)">删除子药</el-dropdown-item>
171 111
               </el-dropdown-menu>
172 112
             </el-dropdown>
173 113
           </template>
@@ -181,22 +121,21 @@
181 121
           sortable
182 122
         >
183 123
           <template slot-scope="scope">
184
-            <span v-if="scope.row.execution_time != 0">{{
124
+            <span v-if="scope.row.execution_time != 0">
125
+              {{
185 126
               scope.row.start_time | parseTime("{m}-{d} {h}:{i}")
186
-            }}</span>
127
+              }}
128
+            </span>
187 129
             <span v-else></span>
188 130
           </template>
189 131
         </el-table-column>
190
-        <el-table-column
191
-          prop="execution_staff"
192
-          align="center"
193
-          min-width="30px"
194
-          label="执行护士"
195
-        >
132
+        <el-table-column prop="execution_staff" align="center" min-width="30px" label="执行护士">
196 133
           <template slot-scope="scope">
197
-            <span v-if="scope.row.parent_id == 0">{{
134
+            <span v-if="scope.row.parent_id == 0">
135
+              {{
198 136
               getXuserName(scope.row.execution_staff)
199
-            }}</span>
137
+              }}
138
+            </span>
200 139
             <span v-else></span>
201 140
           </template>
202 141
         </el-table-column>
@@ -208,22 +147,98 @@
208 147
           label="核对人员"
209 148
         >
210 149
           <template slot-scope="scope">
211
-            <span v-if="scope.row.parent_id == 0">{{
150
+            <span v-if="scope.row.parent_id == 0">
151
+              {{
212 152
               getXuserName(scope.row.checker)
213
-            }}</span>
153
+              }}
154
+            </span>
214 155
             <span v-else></span>
215 156
           </template>
216 157
         </el-table-column>
217 158
       </el-table>
218 159
       <!-- 医嘱列表 end -->
219 160
 
161
+      <!-- 新医嘱列表 -->
162
+      <!-- <div class="orderTable">
163
+        <table class="table">
164
+          <tr @click="cancelAdviceSelect" class="tableTh">
165
+            <th width="8%">开嘱医生</th>
166
+            <th width="12%">开始时间</th>
167
+            <th width="52%">医嘱内容</th>
168
+            <th width="12%">执行时间</th>
169
+            <th width="8%">执行护士</th>
170
+            <th v-if="template_id != 6" width="8%">核对人员</th>
171
+          </tr>
172
+          <template v-for="(group, group_index) in advice_groups">
173
+            <tr
174
+              v-for="(advice, advice_index) in group.advices"
175
+              :key="advice.id"
176
+              :class="{ 'row-class-active': current_group_index == group_index && current_advice_index < 0 }"
177
+            >
178
+              <td
179
+                v-if="advice_index == 0"
180
+                :rowspan="group.advices.length"
181
+                @click="selectGroupAdviceAction(group_index, -1, null,group)"
182
+              >
183
+                <span v-if="advice.parent_id==0">{{getXuserName(advice.advice_doctor)}}</span>
184
+                <span v-else></span>
185
+              </td>
186
+
187
+              <td
188
+                v-if="advice_index == 0"
189
+                :rowspan="group.advices.length"
190
+                @click="selectGroupAdviceAction(group_index, -1, null,group)"
191
+              >
192
+                <span>{{uParseTime(advice.start_time, '{m}-{d} {h}:{i}')}}</span>
193
+              </td>
194
+
195
+              <td
196
+                :class="{ 'advice_content': advice.parent_id == 0, 'subadvice_content': advice.parent_id > 0, 'td-active':current_group_index == group_index  && advice.is_selected == 1 }"
197
+                @click="selectAdviceAction(group_index, advice_index, advice)"
198
+              >
199
+                <div class="txt">
200
+                  <span>{{advice.advice_name }}</span>
201
+                  <span
202
+                    v-if="advice.advice_desc"
203
+                  >({{ advice.advice_desc }}{{advice.drug_spec_unit}})</span>
204
+                  <span
205
+                    v-if="advice.prescribing_number"
206
+                  >&nbsp;&nbsp;{{advice.prescribing_number}}{{advice.prescribing_number_unit}}</span>
207
+                  <span
208
+                    v-if="advice.single_dose && template_id == 6"
209
+                  >{{advice.single_dose}}{{advice.single_dose_unit}}</span>
210
+                  <span
211
+                    v-if="advice.single_dose && template_id != 6"
212
+                  >单次用量{{advice.single_dose}}{{advice.single_dose_unit}}</span>
213
+
214
+                  <span v-if="advice.parent_id == 0">{{advice.delivery_way}}</span>
215
+                  <span v-if="advice.parent_id == 0">{{advice.execution_frequency}}</span>
216
+                  <span v-if="advice.parent_id == 0 && advice.remark.length > 0">({{advice.remark}})</span>
217
+                </div>
218
+              </td>
219
+
220
+              <td
221
+                :class="{'td-active':current_group_index == group_index  && advice.is_selected == 1}"
222
+                @click="selectAdviceAction(group_index,advice_index, advice)"
223
+              >{{uParseTime(advice.execution_time, '{m}-{d} {h}:{i}')}}</td>
224
+
225
+              <td
226
+                :class="{'td-active':current_group_index == group_index  && advice.is_selected == 1}"
227
+                @click="selectAdviceAction(group_index,advice_index, advice)"
228
+              >{{getXuserName(advice.execution_staff)}}</td>
229
+              <td
230
+                v-if="template_id != 6"
231
+                :class="{'td-active':current_group_index == group_index  && advice.is_selected == 1}"
232
+                @click="selectAdviceAction(group_index,advice_index, advice)"
233
+              >{{getXuserName(advice.checker)}}</td>
234
+            </tr>
235
+          </template>
236
+        </table>
237
+      </div>-->
238
+      <!-- 新医嘱列表 -->
239
+
220 240
       <!-- 医嘱表单 -->
221
-      <el-form
222
-        ref="form"
223
-        :model="form"
224
-        label-width="100px"
225
-        v-show="showAdviceForm"
226
-      >
241
+      <el-form ref="form" :model="form" label-width="100px" v-show="showAdviceForm">
227 242
         <el-row :gutter="20">
228 243
           <!--<el-col :span="8">-->
229 244
           <!--<el-form-item label="医嘱类型:">-->
@@ -258,10 +273,7 @@
258 273
 
259 274
           <el-col :span="8">
260 275
             <el-form-item label="药品规格:">
261
-              <el-input
262
-                v-model="form.advice_desc"
263
-                style="width: 40%;"
264
-              ></el-input>
276
+              <el-input v-model="form.advice_desc" style="width: 40%;"></el-input>
265 277
               <el-select
266 278
                 v-model="form.drug_spec_unit"
267 279
                 style="width: 56%;"
@@ -273,8 +285,7 @@
273 285
                   :key="item.id"
274 286
                   :label="item.name"
275 287
                   :value="item.name"
276
-                >
277
-                </el-option>
288
+                ></el-option>
278 289
               </el-select>
279 290
             </el-form-item>
280 291
           </el-col>
@@ -283,10 +294,7 @@
283 294
         <el-row :gutter="20">
284 295
           <el-col :span="8">
285 296
             <el-form-item label="开药数量:">
286
-              <el-input
287
-                v-model="form.prescribing_number"
288
-                style="width: 40%;"
289
-              ></el-input>
297
+              <el-input v-model="form.prescribing_number" style="width: 40%;"></el-input>
290 298
               <el-select
291 299
                 v-model="form.prescribing_number_unit"
292 300
                 style="width: 56%;"
@@ -298,8 +306,7 @@
298 306
                   :key="item.id"
299 307
                   :label="item.name"
300 308
                   :value="item.name"
301
-                >
302
-                </el-option>
309
+                ></el-option>
303 310
               </el-select>
304 311
               <!-- <el-input v-model="form.prescribing_number_unit" style="width: 40%;"></el-input> -->
305 312
             </el-form-item>
@@ -307,10 +314,7 @@
307 314
 
308 315
           <el-col :span="8">
309 316
             <el-form-item label="单次用量:">
310
-              <el-input
311
-                v-model="form.single_dose"
312
-                style="width: 40%;"
313
-              ></el-input>
317
+              <el-input v-model="form.single_dose" style="width: 40%;"></el-input>
314 318
               <el-select
315 319
                 v-model="form.single_dose_unit"
316 320
                 style="width: 56%;"
@@ -322,8 +326,7 @@
322 326
                   :key="item.id"
323 327
                   :label="item.name"
324 328
                   :value="item.name"
325
-                >
326
-                </el-option>
329
+                ></el-option>
327 330
               </el-select>
328 331
 
329 332
               <!-- <el-input v-model="form.single_dose_unit" style="width: 40%;"></el-input> -->
@@ -343,8 +346,7 @@
343 346
                   :key="item.id"
344 347
                   :label="item.name"
345 348
                   :value="item.name"
346
-                >
347
-                </el-option>
349
+                ></el-option>
348 350
               </el-select>
349 351
             </el-form-item>
350 352
           </el-col>
@@ -364,8 +366,7 @@
364 366
                   :key="item.id"
365 367
                   :label="item.name"
366 368
                   :value="item.name"
367
-                >
368
-                </el-option>
369
+                ></el-option>
369 370
               </el-select>
370 371
             </el-form-item>
371 372
           </el-col>
@@ -373,20 +374,8 @@
373 374
       </el-form>
374 375
       <div slot="footer" class="dialog-footer" v-show="showAdviceForm">
375 376
         <el-button @click="hideForm">取 消</el-button>
376
-        <el-button
377
-          type="primary"
378
-          v-if="form.id == 0"
379
-          @click="submitAdvice"
380
-          :loading="loading"
381
-          >保 存</el-button
382
-        >
383
-        <el-button
384
-          type="primary"
385
-          v-else
386
-          @click="submitEditAdvice"
387
-          :loading="loading"
388
-          >保 存</el-button
389
-        >
377
+        <el-button type="primary" v-if="form.id == 0" @click="submitAdvice" :loading="loading">保 存</el-button>
378
+        <el-button type="primary" v-else @click="submitEditAdvice" :loading="loading">保 存</el-button>
390 379
       </div>
391 380
       <!-- 医嘱表单 end -->
392 381
     </el-dialog>
@@ -407,15 +396,10 @@
407 396
         type="datetime"
408 397
         placeholder="选择执行时间"
409 398
         style="width:100%"
410
-      >
411
-      </el-date-picker>
399
+      ></el-date-picker>
412 400
       <span slot="footer" class="dialog-footer">
413
-        <el-button @click="closeTimePanel" :loading="exceLoading"
414
-          >取 消</el-button
415
-        >
416
-        <el-button type="primary" @click="submitExce" :loading="exceLoading"
417
-          >保 存</el-button
418
-        >
401
+        <el-button @click="closeTimePanel" :loading="exceLoading">取 消</el-button>
402
+        <el-button type="primary" @click="submitExce" :loading="exceLoading">保 存</el-button>
419 403
       </span>
420 404
     </el-dialog>
421 405
 
@@ -650,7 +634,6 @@ export default {
650 634
             this.showAdviceForm = false;
651 635
             this.showAdvicePanel = true;
652 636
             var advice = response.data.data.advice;
653
-            // console.log("advice-------", advice);
654 637
             this.doctor_advices[this.currentIndex].drug_spec = advice.drug_spec;
655 638
             this.doctor_advices[this.currentIndex].drug_spec_unit =
656 639
               advice.drug_spec_unit;
@@ -1268,7 +1251,7 @@ export default {
1268 1251
         this.$message.error("你没有执行医嘱的权限");
1269 1252
         return false;
1270 1253
       }
1271
-
1254
+      this.execTimeDialogVisible = true;
1272 1255
       // if (this.currentAdvices.length <= 0) {
1273 1256
       //   return;
1274 1257
       //  }
@@ -1283,12 +1266,10 @@ export default {
1283 1266
             isExecution = false;
1284 1267
           }
1285 1268
         }
1286
-        console.log("a");
1287 1269
         if (isExecution) {
1288 1270
           this.$message.error("所选医嘱已停止或执行");
1289 1271
           return false;
1290 1272
         }
1291
-        console.log("b");
1292 1273
         for (let i = 0; i < adviceArr.length; i++) {
1293 1274
           if (
1294 1275
             adviceArr[i].is_selected == 1 &&
@@ -1305,7 +1286,6 @@ export default {
1305 1286
             currentAdviceIdArr.push(adviceArr[i].id);
1306 1287
           }
1307 1288
         }
1308
-        console.log("c");
1309 1289
         this.currentAdviceIdsStr = currentAdviceIdArr.join(",");
1310 1290
         this.nowExecTime = new Date(adviceArr[0].start_time * 1000);
1311 1291
       } else {
@@ -1521,8 +1501,10 @@ export default {
1521 1501
             response.data.data.drugways === null
1522 1502
               ? []
1523 1503
               : response.data.data.drugways;
1504
+
1524 1505
           this.executionFrequencyOptions =
1525 1506
             response.data.data.efs === null ? [] : response.data.data.efs;
1507
+
1526 1508
           this.adviceTemplates =
1527 1509
             response.data.data.advice_templates === null
1528 1510
               ? []
@@ -1820,6 +1802,7 @@ export default {
1820 1802
       console.log("val是什么", val);
1821 1803
     },
1822 1804
     objectSpanMethod({ row, column, rowIndex, columnIndex }) {
1805
+      console.log("columnIndex", columnIndex);
1823 1806
       if (columnIndex === 0) {
1824 1807
         if (rowIndex % 2 === 0) {
1825 1808
           return {
@@ -1852,12 +1835,10 @@ export default {
1852 1835
   created() {
1853 1836
     var date = this.$route.query && this.$route.query.date;
1854 1837
     this.record_date = uParseTime(date, "{y}-{m}-{d}");
1855
-
1856 1838
     this.form.advice_date = this.record_date;
1857 1839
     this.getAdviceConfig();
1858 1840
     this.unitsOption = getDataConfig("hemodialysis", "units");
1859 1841
     this.template_id = this.$store.getters.xt_user.template_info.template_id;
1860
-    console.log("医嘱----", this.doctor_advices);
1861 1842
   },
1862 1843
   components: {
1863 1844
     AddGroupAdvice,
@@ -1880,6 +1861,68 @@ export default {
1880 1861
 }
1881 1862
 </style>
1882 1863
 
1864
+<style lang="scss" scoped>
1865
+.table {
1866
+  width: 100%;
1867
+  .tableTh {
1868
+    th {
1869
+      padding: 10px 0px;
1870
+      background-color: rgb(245, 247, 250);
1871
+      color: #909399;
1872
+      font-weight: bold;
1873
+      text-align: center;
1874
+    }
1875
+  }
1876
+  tr {
1877
+    // th {
1878
+    //   background: $main-color;
1879
+    //   color: #fff;
1880
+    //   height: 1.2rem;
1881
+    //   line-height: 1.2rem;
1882
+    // }
1883
+    td {
1884
+      line-height: 0.6rem;
1885
+      .txt {
1886
+        // float: left;
1887
+        padding: 0 10px 0 10px;
1888
+        // width: 75%;
1889
+        text-align: left;
1890
+      }
1891
+      .ico {
1892
+        float: right;
1893
+        width: 60px;
1894
+        text-align: right;
1895
+        padding-right: 3px;
1896
+      }
1897
+      .iconfont {
1898
+        font-size: 20px;
1899
+        padding: 0 2px;
1900
+        color: #7b8a97;
1901
+      }
1902
+      .handle {
1903
+        color: #409eff;
1904
+        // padding: 0 7px;
1905
+      }
1906
+    }
1907
+    .advice_content {
1908
+      // background: #eff6fc;
1909
+    }
1910
+    .subadvice_content {
1911
+      // background: #fafcfe;
1912
+      padding-left: 20px;
1913
+    }
1914
+    .td-active {
1915
+      background: #badcff !important;
1916
+    }
1917
+  }
1918
+  .row-class-active {
1919
+    td {
1920
+      background: #badcff;
1921
+    }
1922
+  }
1923
+}
1924
+</style>
1925
+
1883 1926
 <!--<style scoped>-->
1884 1927
 
1885 1928
 <!--.txsj{-->

+ 106 - 85
src/xt_pages/dialysis/details/dialog/MultiSelectBox/index.vue Ver arquivo

@@ -1,112 +1,133 @@
1 1
 <template>
2
-  <el-dialog   append-to-body :show-close="isClose" :close-on-click-modal="isClose" :close-on-press-escape="isClose" :title="propsForm.titles" :visible.sync="propsForm.visibility"   >
3
-    <el-checkbox-group v-model="checkedData"  >
4
-      <el-checkbox v-for="(item,index) in propsForm.values" :label="item.name" :key="index"></el-checkbox>
2
+  <el-dialog
3
+    append-to-body
4
+    :show-close="isClose"
5
+    :close-on-click-modal="isClose"
6
+    :close-on-press-escape="isClose"
7
+    :title="propsForm.titles"
8
+    :visible.sync="propsForm.visibility"
9
+  >
10
+    <el-checkbox-group v-model="checkedData">
11
+      <el-checkbox
12
+        v-for="(item, index) in propsForm.values"
13
+        :label="item.name"
14
+        :key="index"
15
+      ></el-checkbox>
5 16
     </el-checkbox-group>
6
-    <el-input v-show="propsForm.isShowTextArea" v-model="customData"  type="textarea" :rows="6" placeholder="自定义"></el-input>
17
+    <el-input
18
+      v-show="propsForm.isShowTextArea"
19
+      v-model="customData"
20
+      type="textarea"
21
+      :rows="6"
22
+      placeholder="自定义"
23
+    ></el-input>
7 24
     <span slot="footer" class="dialog-footer">
8
-    <el-button @click="cancle">取 消</el-button>
9
-    <el-button type="primary" @click="comfirm">保 存</el-button>
10
-  </span>
25
+      <el-button @click="cancle">取 消</el-button>
26
+      <el-button type="primary" @click="comfirm">保 存</el-button>
27
+    </span>
11 28
   </el-dialog>
12 29
 </template>
13 30
 
14 31
 <script>
15
-  export default {
16
-    name: 'MultiSelectBox',
17
-    props:{
18
-      propsForm:{
19
-        type: Object,
20
-      }
32
+export default {
33
+  name: "MultiSelectBox",
34
+  props: {
35
+    propsForm: {
36
+      type: Object
37
+    }
38
+  },
39
+  data() {
40
+    return {
41
+      checkedData: [],
42
+      customData: "",
43
+      valueString: this.propsForm.selected,
44
+      isClose: false,
45
+      typeValue: this.propsForm.type
46
+    };
47
+  },
48
+  methods: {
49
+    comfirm: function() {
50
+      let returnValue = {};
51
+      returnValue["value"] = this.getValue();
52
+      returnValue["type"] = this.propsForm.type;
53
+      this.propsForm.type = "";
54
+      this.$emit("dialog-comfirm", returnValue);
21 55
     },
22
-    data() {
23
-      return {
24
-        checkedData: [],
25
-        customData: "",
26
-        valueString:this.propsForm.selected,
27
-        isClose: false,
28
-        typeValue:this.propsForm.type,
29
-      }
56
+    cancle: function() {
57
+      this.propsForm.type = "";
58
+      this.$emit("dialog-cancle");
30 59
     },
31
-    methods: {
32
-      comfirm:function() {
33
-        let returnValue = {
34
-
35
-        }
36
-        returnValue['value'] = this.getValue()
37
-        returnValue['type'] = this.propsForm.type;
38
-        this.propsForm.type = ''
39
-        this.$emit('dialog-comfirm', returnValue);
40
-      },
41
-      cancle:function () {
42
-        this.propsForm.type = ''
43
-        this.$emit('dialog-cancle');
44
-      },
45 60
 
46
-      getValue:function () {
47
-        var returnData = []
48
-        for(var index in this.checkedData) {
49
-          returnData.push(this.checkedData[index])
50
-        }
51
-        if (this.customData != '') {
52
-          var customData = this.customData.split(',')
53
-          for(var index in customData) {
54
-            returnData.push(customData[index])
55
-          }
61
+    getValue: function() {
62
+      var returnData = [];
63
+      for (var index in this.checkedData) {
64
+        returnData.push(this.checkedData[index]);
65
+      }
66
+      if (this.customData != "") {
67
+        var customData = this.customData.split(",");
68
+        for (var index in customData) {
69
+          returnData.push(customData[index]);
56 70
         }
57
-        return returnData;
58
-        // if(this.propsForm.customData != undefined){
59
-        //   this.propsForm.checkedData.push(this.propsForm.customData)
60
-        //   return this.propsForm.checkedData
61
-        // }else{
62
-        //   return  this.propsForm.checkedData
63
-        // }
64 71
       }
72
+      return returnData;
73
+      // if(this.propsForm.customData != undefined){
74
+      //   this.propsForm.checkedData.push(this.propsForm.customData)
75
+      //   return this.propsForm.checkedData
76
+      // }else{
77
+      //   return  this.propsForm.checkedData
78
+      // }
79
+    }
80
+  },
81
+  created() {
82
+    //console.log(11111111111, this.propsForm);
83
+  },
84
+  watch: {
85
+    "propsForm.type": function() {
86
+      this.checkedData = [];
87
+      this.customData = "";
65 88
 
66
-    },
67
-    watch:{
68
-      "propsForm.type":function(){
89
+      if (this.propsForm.type == "") {
90
+        return false;
91
+      }
92
+      if (
93
+        typeof this.propsForm.selected != "string" ||
94
+        this.propsForm.selected == ""
95
+      ) {
69 96
         this.checkedData = [];
70
-        this.customData = '';
71
-
72
-        if (this.propsForm.type=='') {
73
-          return false;
97
+      } else {
98
+        var checkedData = this.propsForm.selected.split(",");
99
+        var checkedDataObj = {};
100
+        for (var index in checkedData) {
101
+          checkedDataObj[checkedData[index]] = 1;
74 102
         }
75
-        if(typeof(this.propsForm.selected) != "string" || this.propsForm.selected=='') {
76
-          this.checkedData = [];
77
-        } else {
78
-          var checkedData = this.propsForm.selected.split(',');
79
-          var checkedDataObj = {};
80
-          for(var index in checkedData) {
81
-            checkedDataObj[checkedData[index]] = 1;
103
+        var readyDataObj = {};
104
+        for (var index in this.propsForm.values) {
105
+          if (this.propsForm.values[index].name in checkedDataObj) {
106
+            this.checkedData.push(this.propsForm.values[index].name);
107
+            readyDataObj[this.propsForm.values[index].name] = 1;
82 108
           }
83
-          var readyDataObj = {};
84
-          for(var index in this.propsForm.values) {
85
-            if(this.propsForm.values[index].name in checkedDataObj) {
86
-              this.checkedData.push(this.propsForm.values[index].name);
87
-              readyDataObj[this.propsForm.values[index].name] = 1;
88
-            }
89
-          }
90
-          var addtion = []
91
-          var addtionObj = {};
92
-          for(var index in checkedData) {
93
-            if(!(checkedData[index] in readyDataObj) && !(checkedData[index] in addtionObj) ) {
94
-              addtion.push(checkedData[index]);
95
-              addtionObj[checkedData[index]] = 1;
96
-            }
109
+        }
110
+        var addtion = [];
111
+        var addtionObj = {};
112
+        for (var index in checkedData) {
113
+          if (
114
+            !(checkedData[index] in readyDataObj) &&
115
+            !(checkedData[index] in addtionObj)
116
+          ) {
117
+            addtion.push(checkedData[index]);
118
+            addtionObj[checkedData[index]] = 1;
97 119
           }
98
-          this.customData = addtion.join(',');
99 120
         }
121
+        this.customData = addtion.join(",");
100 122
       }
101 123
     }
102
-
103
-
104 124
   }
125
+};
105 126
 </script>
106 127
 
107 128
 <style scoped>
108 129
 .el-checkbox {
109
-    margin-left: 0px;
110
-    margin-right: 30px;
130
+  margin-left: 0px;
131
+  margin-right: 30px;
111 132
 }
112 133
 </style>

+ 23 - 2
src/xt_pages/dialysis/details/dialog/adviceDialog/EditGroupAdvice.vue Ver arquivo

@@ -196,6 +196,10 @@
196 196
           </el-col>
197 197
         </el-row>
198 198
       </el-form>
199
+      <span slot="footer" class="dialog-footer">
200
+        <el-button @click="groupEditFormVisible = false">取 消</el-button>
201
+        <el-button type="primary" @click="SaveEditAdvices">保 存</el-button>
202
+      </span>
199 203
     </el-dialog>
200 204
 
201 205
     <el-dialog
@@ -512,7 +516,8 @@ import {
512 516
   EditDoctorAdvice,
513 517
   getAdviceConfig,
514 518
   getDoctorAdviceList,
515
-  StopDoctorAdvice
519
+  StopDoctorAdvice,
520
+  SaveEditAdvices
516 521
 } from "@/api/advice";
517 522
 import { jsGetAge, uParseTime } from "@/utils/tools";
518 523
 
@@ -797,6 +802,7 @@ export default {
797 802
               advice_type: _this.groupForm.advice_type,
798 803
               advice_date: _this.groupForm.advice_date,
799 804
               start_time: _this.groupForm.start_time,
805
+
800 806
               advice_name: _this.nameForm.advice_name,
801 807
               advice_desc: _this.nameForm.advice_desc,
802 808
               single_dose: "" + _this.nameForm.single_dose,
@@ -814,7 +820,6 @@ export default {
814 820
               parent_id: _this.groupSelectRow.parent_id,
815 821
               groupno: _this.groupForm.groupno
816 822
             };
817
-            console.log(this.groupSelectRow);
818 823
             let mode = "2";
819 824
             if (
820 825
               this.groupSelectRow.advice_doctor !=
@@ -2140,6 +2145,22 @@ export default {
2140 2145
         }
2141 2146
         this.groupForm.adviceNames.push(item);
2142 2147
       }
2148
+    },
2149
+    SaveEditAdvices() {
2150
+      const params = {
2151
+        start_time: this.groupForm.start_time,
2152
+        groupno: this.groupForm.groupno,
2153
+        date: this.$route.query.date,
2154
+        patient_id: this.$route.query.patient_id
2155
+      };
2156
+      console.log("params", params);
2157
+      SaveEditAdvices(params).then(response => {
2158
+        if (response.data.state == 1) {
2159
+          var advice = response.data.data.advice;
2160
+          this.$message.success("保存成功!");
2161
+          this.groupEditFormVisible = false;
2162
+        }
2163
+      });
2143 2164
     }
2144 2165
   },
2145 2166
   watch: {

+ 35 - 11
src/xt_pages/dialysis/details/dialog/assessmentBeforeDislysisDialog.vue Ver arquivo

@@ -43,9 +43,20 @@
43 43
             </el-form-item>
44 44
           </el-col>
45 45
 
46
+<!--          <el-col :span="8">-->
47
+<!--            <el-form-item label="透析机型号:" v-if="isShow('透析机型号')">-->
48
+<!--              <el-input v-model="assessmentBeforeDislysis.machine_type"></el-input>-->
49
+<!--            </el-form-item>-->
50
+<!--          </el-col>-->
51
+
46 52
           <el-col :span="8">
47
-            <el-form-item label="透析机型号:" v-if="isShow('透析机型号')">
48
-              <el-input v-model="assessmentBeforeDislysis.machine_type"></el-input>
53
+            <el-form-item label="透析机型号" v-if="isShow('透析机型号')">
54
+              <el-select v-model="assessmentBeforeDislysis.machine_type">
55
+                <el-option :key="0" label="请选择" :value="0"></el-option>
56
+
57
+                <el-option v-for="item in machineType" :label="item.name" :value="item.id"
58
+                           :key="item.id"></el-option>
59
+              </el-select>
49 60
             </el-form-item>
50 61
           </el-col>
51 62
 
@@ -128,13 +139,7 @@
128 139
 
129 140
 
130 141
 
131
-          <el-col :span="8" v-if="assessmentBeforeDislysis.is_hemorrhage == 1&&isShow('出血选项')">
132
-            <el-form-item label="出血选项: ">
133
-              <div>
134
-                <el-input v-model="assessmentBeforeDislysis.hemorrhage" @focus="showInnerDialog('6')"></el-input>
135
-              </div>
136
-            </el-form-item>
137
-          </el-col>
142
+
138 143
           <el-col :span="8" v-if="assessmentBeforeDislysis.is_hemorrhage == 1&&isShow('其他出血情况')">
139 144
             <el-form-item label="其他出血情况: ">
140 145
               <el-input v-model="assessmentBeforeDislysis.hemorrhage_other"></el-input>
@@ -255,6 +260,14 @@
255 260
           </el-col>
256 261
 
257 262
 
263
+          <el-col :span="8" v-if="assessmentBeforeDislysis.is_hemorrhage == 1&&isShow('出血选项')">
264
+            <el-form-item label="出血选项: ">
265
+              <div>
266
+                <el-input v-model="assessmentBeforeDislysis.hemorrhage" @focus="showInnerDialog('6')"></el-input>
267
+              </div>
268
+            </el-form-item>
269
+          </el-col>
270
+
258 271
           <el-col :span="8" v-if="isShow('皮肤')">
259 272
             <el-form-item label="皮肤: ">
260 273
               <el-select v-model="assessmentBeforeDislysis.skin">
@@ -579,7 +592,8 @@
579 592
           customContent: '',
580 593
           titles: '',
581 594
           type: '' // 不同弹框类型,用来匹配数据
582
-        }
595
+        },
596
+        machineType:[],
583 597
 
584 598
       }
585 599
     },
@@ -803,7 +817,15 @@
803 817
       }, innerDialogCancle: function() {
804 818
         this.InnerDialogProps.visibility = false
805 819
       }, handleComfirm: function() {
806
-        const ParamsQuery = this.assessmentBeforeDislysis
820
+         var arr = this.assessmentBeforeDislysis
821
+         for(let i=0;i<this.machineType.length;i++){
822
+           if(arr.machine_type == this.machineType[i].id){
823
+                arr.machine_type = this.machineType[i].name
824
+           }
825
+         }
826
+         console.log("arr",arr)
827
+        const ParamsQuery = arr
828
+        console.log("paramsquery",ParamsQuery)
807 829
         ParamsQuery['patient'] = this.patient.id
808 830
         ParamsQuery['record_date'] = this.record_date
809 831
         ParamsQuery['mode'] = "1"
@@ -930,9 +952,11 @@
930 952
       this.hemorrhage = getDataConfig('hemodialysis', 'hemorrhage')
931 953
       this.blood_access_part = getDataConfig('hemodialysis', 'vascular_access')
932 954
       this.blood_access_part_opera = getDataConfig('hemodialysis', 'vascular_access_desc')
955
+      //console.log("血管通路部位",this.blood_access_part_opera)
933 956
       this.internal_fistula = getDataConfig('hemodialysis', 'internal_fistula')
934 957
       this.internal_fistula_skin = getDataConfig('hemodialysis', 'internal_fistula_skin')
935 958
       this.puncture_method = getDataConfig('hemodialysis', 'puncture_method')
959
+      this.machineType = getDataConfig('hemodialysis','machine_type')
936 960
       this.blood_access_noise = this.$store.getters.blood_access_noise
937 961
       var date = this.$route.query && this.$route.query.date
938 962
       this.record_date = uParseTime(date, '{y}-{m}-{d}')

+ 385 - 35
src/xt_pages/dialysis/details/dialog/dialysisPrescriptionDialog.vue Ver arquivo

@@ -283,11 +283,30 @@
283 283
             </el-form-item>
284 284
           </el-col>
285 285
 
286
+          <!--          <el-col :span="8" v-if="isShows('透析器/灌流器')">-->
287
+          <!--            <el-form-item label="透析器/灌流器:">-->
288
+          <!--              <el-input-->
289
+          <!--                v-model="dialysisPrescription.dialyzer_perfusion_apparatus"-->
290
+          <!--              ></el-input>-->
291
+          <!--            </el-form-item>-->
292
+          <!--          </el-col>-->
293
+
286 294
           <el-col :span="8" v-if="isShows('透析器/灌流器')">
287
-            <el-form-item label="透析器/灌流器:">
288
-              <el-input
295
+            <el-form-item label="透析器/灌流器">
296
+              <el-select
289 297
                 v-model="dialysisPrescription.dialyzer_perfusion_apparatus"
290
-              ></el-input>
298
+                placeholder="请选择"
299
+                style="width:100%;"
300
+              >
301
+                <el-option :key="0" label="请选择" :value="0"></el-option>
302
+
303
+                <el-option
304
+                  v-for="(item, index) in dialyzerPerfusionApparatus"
305
+                  :label="item.name"
306
+                  :key="index"
307
+                  :value="item.id"
308
+                ></el-option>
309
+              </el-select>
291 310
             </el-form-item>
292 311
           </el-col>
293 312
 
@@ -691,9 +710,7 @@
691 710
       <span slot="footer" class="dialog-footer">
692 711
         <el-button @click="handleCancle">取 消</el-button>
693 712
         <!-- <el-button type="primary" @click="handleCommit" v-if="isPermission()">保 存</el-button> -->
694
-        <el-button type="primary" @click="handleCommit"
695
-          >保 存</el-button
696
-        >
713
+        <el-button type="primary" @click="handleCommit">保 存</el-button>
697 714
         <el-button type="primary" @click="handleSolution"
698 715
           >保存为长期处方</el-button
699 716
         >
@@ -1132,7 +1149,8 @@ export default {
1132 1149
         gaijiliang_unit: ""
1133 1150
       },
1134 1151
 
1135
-      doctorAdvices: []
1152
+      doctorAdvices: [],
1153
+      dialyzerPerfusionApparatus: []
1136 1154
     };
1137 1155
   },
1138 1156
   methods: {
@@ -1220,7 +1238,7 @@ export default {
1220 1238
           }
1221 1239
         });
1222 1240
       });
1223
-      console.log("arrFour", arrFour);
1241
+      // console.log("arrFour", arrFour);
1224 1242
       this.anticoagulantsConfit = arrFour;
1225 1243
       this.dialysisList = this.devices;
1226 1244
 
@@ -1232,7 +1250,13 @@ export default {
1232 1250
         "hemodialysis",
1233 1251
         "vascular_access_desc"
1234 1252
       );
1253
+
1235 1254
       console.log("血管通路", this.blood_access_option);
1255
+      this.dialyzerPerfusionApparatus = getDataConfig(
1256
+        "hemodialysis",
1257
+        "dialyzer_perfusion_apparatus"
1258
+      );
1259
+      console.log("灌流器", this.dialyzerPerfusionApparatus);
1236 1260
       var date = this.$route.query && this.$route.query.date;
1237 1261
       this.record_date = uParseTime(date, "{y}-{m}-{d}");
1238 1262
 
@@ -1275,6 +1299,21 @@ export default {
1275 1299
           }
1276 1300
         }
1277 1301
       } else {
1302
+        console.log("排班----------", schedual.mode_id);
1303
+        if (
1304
+          schedual.mode_id == 2 ||
1305
+          schedual.mode_id == 5 ||
1306
+          schedual.mode_id == 12
1307
+        ) {
1308
+          console.log("进来----");
1309
+          this.zhiShow = true;
1310
+          this.huShow = true;
1311
+          this.totalShow = true;
1312
+        } else {
1313
+          this.zhiShow = false;
1314
+          this.huShow = false;
1315
+          this.totalShow = false;
1316
+        }
1278 1317
         this.dialysisPrescription.mode_id = schedual.mode_id;
1279 1318
       }
1280 1319
       var thismode = parseInt(this.dialysisPrescription.anticoagulant);
@@ -1397,6 +1436,7 @@ export default {
1397 1436
             return;
1398 1437
           }
1399 1438
           const ParamsQuery = this.dialysisPrescription;
1439
+
1400 1440
           ParamsQuery["patient"] = this.patient.id;
1401 1441
           ParamsQuery["record_date"] = this.record_date;
1402 1442
           ParamsQuery["mode"] = 1;
@@ -1559,10 +1599,35 @@ export default {
1559 1599
       if (pre.anticoagulant == 3) {
1560 1600
         this.dialysisPrescription.anticoagulant = "低分子肝素";
1561 1601
       }
1602
+      //入口
1603
+      var pre = pre;
1604
+      console.log("pre是----", pre);
1605
+      if (pre.mode_id == 2 || pre.mode_id == 5 || pre.mode_id == 12) {
1606
+        this.zhiShow = true;
1607
+        this.huShow = true;
1608
+        this.totalShow = true;
1609
+      } else if (
1610
+        pre.mode_id == 1 ||
1611
+        pre.mode_id == 3 ||
1612
+        pre.mode_id == 4 ||
1613
+        pre.mode_id == 6 ||
1614
+        pre.mode_id == 7 ||
1615
+        pre.mode_id == 8 ||
1616
+        pre.mode_id == 9 ||
1617
+        pre.mode_id == 10 ||
1618
+        pre.mode_id == 11 ||
1619
+        pre.mode_id == 13 ||
1620
+        pre.mode_id == 14 ||
1621
+        pre.mode_id == 19
1622
+      ) {
1623
+        this.zhiShow = false;
1624
+        this.huShow = false;
1625
+        this.totalShow = false;
1626
+      }
1562 1627
       this.pre = pre;
1563 1628
       console.log("pre1", pre);
1564 1629
       this.getPermission();
1565
-      
1630
+
1566 1631
       let last_weight_after = 0;
1567 1632
       let weight_before = 0;
1568 1633
 
@@ -1621,7 +1686,6 @@ export default {
1621 1686
       //console.log("fffff", this.anticoagulant);
1622 1687
     },
1623 1688
     handleCommit: function() {
1624
-      console.log("aaaa----", this.dialysisPrescription.anticoagulant);
1625 1689
       if (this.dialysisPrescription.anticoagulant == "低分子肝素") {
1626 1690
         this.dialysisPrescription.anticoagulant = 3;
1627 1691
       }
@@ -1653,7 +1717,21 @@ export default {
1653 1717
             return;
1654 1718
           }
1655 1719
 
1656
-          const ParamsQuery = this.dialysisPrescription;
1720
+          var arr = this.dialysisPrescription;
1721
+          console.log("arr", arr);
1722
+          for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
1723
+            if (
1724
+              parseInt(arr.dialyzer_perfusion_apparatus) ==
1725
+              this.dialyzerPerfusionApparatus[i].id
1726
+            ) {
1727
+              arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[
1728
+                i
1729
+              ].name;
1730
+            }
1731
+          }
1732
+
1733
+          const ParamsQuery = arr;
1734
+          console.log("night", ParamsQuery);
1657 1735
           ParamsQuery["patient"] = this.patient.id;
1658 1736
           ParamsQuery["record_date"] = this.record_date;
1659 1737
           ParamsQuery["mode"] = "1";
@@ -1691,7 +1769,21 @@ export default {
1691 1769
               return;
1692 1770
             }
1693 1771
 
1694
-            const ParamsQuery = this.dialysisPrescription;
1772
+            var arr = this.dialysisPrescription;
1773
+            console.log("arr", arr);
1774
+            for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
1775
+              if (
1776
+                parseInt(arr.dialyzer_perfusion_apparatus) ==
1777
+                this.dialyzerPerfusionApparatus[i].id
1778
+              ) {
1779
+                arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[
1780
+                  i
1781
+                ].name;
1782
+              }
1783
+            }
1784
+
1785
+            const ParamsQuery = arr;
1786
+            console.log("ParamsQuerytwo", ParamsQuery);
1695 1787
             ParamsQuery["patient"] = this.patient.id;
1696 1788
             ParamsQuery["record_date"] = this.record_date;
1697 1789
             ParamsQuery["mode"] = "1";
@@ -1735,7 +1827,21 @@ export default {
1735 1827
               return;
1736 1828
             }
1737 1829
 
1738
-            const ParamsQuery = this.dialysisPrescription;
1830
+            var arr = this.dialysisPrescription;
1831
+            console.log("arr", arr);
1832
+            for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
1833
+              if (
1834
+                parseInt(arr.dialyzer_perfusion_apparatus) ==
1835
+                this.dialyzerPerfusionApparatus[i].id
1836
+              ) {
1837
+                arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[
1838
+                  i
1839
+                ].name;
1840
+              }
1841
+            }
1842
+
1843
+            const ParamsQuery = arr;
1844
+            console.log("paramsquerythree", ParamsQuery);
1739 1845
             ParamsQuery["patient"] = this.patient.id;
1740 1846
             ParamsQuery["record_date"] = this.record_date;
1741 1847
             ParamsQuery["mode"] = "1";
@@ -1798,16 +1904,29 @@ export default {
1798 1904
               return;
1799 1905
             }
1800 1906
 
1801
-            const ParamsQuery = this.dialysisPrescription;
1802
-            ParamsQuery["patient"] = this.patient.id;
1803
-            ParamsQuery["record_date"] = this.record_date;
1804
-            // console.log(this.prescription);
1907
+            var arr = this.dialysisPrescription;
1908
+            console.log("arr", arr);
1909
+            for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
1910
+              if (
1911
+                parseInt(arr.dialyzer_perfusion_apparatus) ==
1912
+                this.dialyzerPerfusionApparatus[i].id
1913
+              ) {
1914
+                arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[
1915
+                  i
1916
+                ].name;
1917
+              }
1918
+            }
1805 1919
 
1920
+            const ParamsQuery = arr;
1921
+            console.log("paramsqueryfour", ParamsQuery);
1806 1922
             if (this.prescription.creater <= 0) {
1807 1923
               mode = 1;
1808 1924
             } else {
1809 1925
               mode = 2;
1810 1926
             }
1927
+            ParamsQuery["patient"] = this.patient.id;
1928
+            ParamsQuery["record_date"] = this.record_date;
1929
+            // console.log(this.prescription);
1811 1930
 
1812 1931
             postPrescription(ParamsQuery).then(response => {
1813 1932
               if (response.data.state == 0) {
@@ -1842,7 +1961,21 @@ export default {
1842 1961
               return;
1843 1962
             }
1844 1963
 
1845
-            const ParamsQuery = this.dialysisPrescription;
1964
+            var arr = this.dialysisPrescription;
1965
+            console.log("arr", arr);
1966
+            for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
1967
+              if (
1968
+                parseInt(arr.dialyzer_perfusion_apparatus) ==
1969
+                this.dialyzerPerfusionApparatus[i].id
1970
+              ) {
1971
+                arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[
1972
+                  i
1973
+                ].name;
1974
+              }
1975
+            }
1976
+
1977
+            const ParamsQuery = arr;
1978
+            console.log("paramsqueryfive", ParamsQuery);
1846 1979
             ParamsQuery["patient"] = this.patient.id;
1847 1980
             ParamsQuery["record_date"] = this.record_date;
1848 1981
             ParamsQuery["mode"] = "1";
@@ -1880,7 +2013,21 @@ export default {
1880 2013
                 return;
1881 2014
               }
1882 2015
 
1883
-              const ParamsQuery = this.dialysisPrescription;
2016
+              var arr = this.dialysisPrescription;
2017
+              console.log("arr", arr);
2018
+              for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
2019
+                if (
2020
+                  parseInt(arr.dialyzer_perfusion_apparatus) ==
2021
+                  this.dialyzerPerfusionApparatus[i].id
2022
+                ) {
2023
+                  arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[
2024
+                    i
2025
+                  ].name;
2026
+                }
2027
+              }
2028
+
2029
+              const ParamsQuery = arr;
2030
+              console.log("ParamsQuerysix", ParamsQuery);
1884 2031
               ParamsQuery["patient"] = this.patient.id;
1885 2032
               ParamsQuery["record_date"] = this.record_date;
1886 2033
               ParamsQuery["mode"] = "1";
@@ -1924,7 +2071,21 @@ export default {
1924 2071
                 return;
1925 2072
               }
1926 2073
 
1927
-              const ParamsQuery = this.dialysisPrescription;
2074
+              var arr = this.dialysisPrescription;
2075
+              console.log("arr", arr);
2076
+              for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
2077
+                if (
2078
+                  parseInt(arr.dialyzer_perfusion_apparatus) ==
2079
+                  this.dialyzerPerfusionApparatus[i].id
2080
+                ) {
2081
+                  arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[
2082
+                    i
2083
+                  ].name;
2084
+                }
2085
+              }
2086
+
2087
+              const ParamsQuery = arr;
2088
+              console.log("parasmqueryseven", parasmqueryseven);
1928 2089
               ParamsQuery["patient"] = this.patient.id;
1929 2090
               ParamsQuery["record_date"] = this.record_date;
1930 2091
               ParamsQuery["mode"] = "1";
@@ -1989,7 +2150,20 @@ export default {
1989 2150
                 return;
1990 2151
               }
1991 2152
 
1992
-              const ParamsQuery = this.dialysisPrescription;
2153
+              var arr = this.dialysisPrescription;
2154
+              console.log("arr", arr);
2155
+              for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
2156
+                if (
2157
+                  parseInt(arr.dialyzer_perfusion_apparatus) ==
2158
+                  this.dialyzerPerfusionApparatus[i].id
2159
+                ) {
2160
+                  arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[
2161
+                    i
2162
+                  ].name;
2163
+                }
2164
+              }
2165
+              const ParamsQuery = arr;
2166
+              console.log("eight", ParamsQuery);
1993 2167
               ParamsQuery["patient"] = this.patient.id;
1994 2168
               ParamsQuery["record_date"] = this.record_date;
1995 2169
               ParamsQuery["mode"] = "1";
@@ -2024,7 +2198,21 @@ export default {
2024 2198
             return;
2025 2199
           }
2026 2200
 
2027
-          const ParamsQuery = this.dialysisPrescription;
2201
+          var arr = this.dialysisPrescription;
2202
+          console.log("arr", arr);
2203
+          for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
2204
+            if (
2205
+              parseInt(arr.dialyzer_perfusion_apparatus) ==
2206
+              this.dialyzerPerfusionApparatus[i].id
2207
+            ) {
2208
+              arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[
2209
+                i
2210
+              ].name;
2211
+            }
2212
+          }
2213
+
2214
+          const ParamsQuery = arr;
2215
+          console.log("night", ParamsQuery);
2028 2216
           ParamsQuery["patient"] = this.patient.id;
2029 2217
           ParamsQuery["record_date"] = this.record_date;
2030 2218
           ParamsQuery["mode"] = "2";
@@ -2091,7 +2279,21 @@ export default {
2091 2279
             this.loading = false;
2092 2280
             return;
2093 2281
           }
2094
-          const ParamsQuery = this.dialysisPrescription;
2282
+          var arr = this.dialysisPrescription;
2283
+          console.log("arr", arr);
2284
+          for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
2285
+            if (
2286
+              parseInt(arr.dialyzer_perfusion_apparatus) ==
2287
+              this.dialyzerPerfusionApparatus[i].id
2288
+            ) {
2289
+              arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[
2290
+                i
2291
+              ].name;
2292
+            }
2293
+          }
2294
+
2295
+          const ParamsQuery = arr;
2296
+          console.log("长期处方1", ParamsQuery);
2095 2297
           ParamsQuery["patient"] = this.patient.id;
2096 2298
           ParamsQuery["record_date"] = this.record_date;
2097 2299
           ParamsQuery["mode"] = "1";
@@ -2134,7 +2336,22 @@ export default {
2134 2336
               this.loading = false;
2135 2337
               return;
2136 2338
             }
2137
-            const ParamsQuery = this.dialysisPrescription;
2339
+            var arr = this.dialysisPrescription;
2340
+            console.log("arr", arr);
2341
+            for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
2342
+              if (
2343
+                parseInt(arr.dialyzer_perfusion_apparatus) ==
2344
+                this.dialyzerPerfusionApparatus[i].id
2345
+              ) {
2346
+                arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[
2347
+                  i
2348
+                ].name;
2349
+              }
2350
+            }
2351
+
2352
+            const ParamsQuery = arr;
2353
+            console.log("长期处方2", ParamsQuery);
2354
+
2138 2355
             ParamsQuery["patient"] = this.patient.id;
2139 2356
             ParamsQuery["record_date"] = this.record_date;
2140 2357
             ParamsQuery["mode"] = "1";
@@ -2184,7 +2401,22 @@ export default {
2184 2401
               return;
2185 2402
             }
2186 2403
 
2187
-            const ParamsQuery = this.dialysisPrescription;
2404
+            var arr = this.dialysisPrescription;
2405
+            console.log("arr", arr);
2406
+            for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
2407
+              if (
2408
+                parseInt(arr.dialyzer_perfusion_apparatus) ==
2409
+                this.dialyzerPerfusionApparatus[i].id
2410
+              ) {
2411
+                arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[
2412
+                  i
2413
+                ].name;
2414
+              }
2415
+            }
2416
+
2417
+            const ParamsQuery = arr;
2418
+            console.log("长期处方3", ParamsQuery);
2419
+
2188 2420
             ParamsQuery["patient"] = this.patient.id;
2189 2421
             ParamsQuery["record_date"] = this.record_date;
2190 2422
             console.log(this.prescription);
@@ -2247,7 +2479,22 @@ export default {
2247 2479
               this.loading = false;
2248 2480
               return;
2249 2481
             }
2250
-            const ParamsQuery = this.dialysisPrescription;
2482
+            var arr = this.dialysisPrescription;
2483
+            console.log("arr", arr);
2484
+            for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
2485
+              if (
2486
+                parseInt(arr.dialyzer_perfusion_apparatus) ==
2487
+                this.dialyzerPerfusionApparatus[i].id
2488
+              ) {
2489
+                arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[
2490
+                  i
2491
+                ].name;
2492
+              }
2493
+            }
2494
+
2495
+            const ParamsQuery = arr;
2496
+            console.log("长期处方5", ParamsQuery);
2497
+
2251 2498
             ParamsQuery["patient"] = this.patient.id;
2252 2499
             ParamsQuery["record_date"] = this.record_date;
2253 2500
             ParamsQuery["mode"] = "1";
@@ -2289,7 +2536,21 @@ export default {
2289 2536
               this.loading = false;
2290 2537
               return;
2291 2538
             }
2292
-            const ParamsQuery = this.dialysisPrescription;
2539
+            var arr = this.dialysisPrescription;
2540
+            console.log("arr", arr);
2541
+            for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
2542
+              if (
2543
+                parseInt(arr.dialyzer_perfusion_apparatus) ==
2544
+                this.dialyzerPerfusionApparatus[i].id
2545
+              ) {
2546
+                arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[
2547
+                  i
2548
+                ].name;
2549
+              }
2550
+            }
2551
+
2552
+            const ParamsQuery = arr;
2553
+            console.log("长期处方6", ParamsQuery);
2293 2554
             ParamsQuery["patient"] = this.patient.id;
2294 2555
             ParamsQuery["record_date"] = this.record_date;
2295 2556
             ParamsQuery["mode"] = "1";
@@ -2332,7 +2593,21 @@ export default {
2332 2593
                 this.loading = false;
2333 2594
                 return;
2334 2595
               }
2335
-              const ParamsQuery = this.dialysisPrescription;
2596
+              var arr = this.dialysisPrescription;
2597
+              console.log("arr", arr);
2598
+              for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
2599
+                if (
2600
+                  parseInt(arr.dialyzer_perfusion_apparatus) ==
2601
+                  this.dialyzerPerfusionApparatus[i].id
2602
+                ) {
2603
+                  arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[
2604
+                    i
2605
+                  ].name;
2606
+                }
2607
+              }
2608
+
2609
+              const ParamsQuery = arr;
2610
+              console.log("长期处方7", ParamsQuery);
2336 2611
               ParamsQuery["patient"] = this.patient.id;
2337 2612
               ParamsQuery["record_date"] = this.record_date;
2338 2613
               ParamsQuery["mode"] = "1";
@@ -2381,7 +2656,21 @@ export default {
2381 2656
                 this.loading = false;
2382 2657
                 return;
2383 2658
               }
2384
-              const ParamsQuery = this.dialysisPrescription;
2659
+              var arr = this.dialysisPrescription;
2660
+              console.log("arr", arr);
2661
+              for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
2662
+                if (
2663
+                  parseInt(arr.dialyzer_perfusion_apparatus) ==
2664
+                  this.dialyzerPerfusionApparatus[i].id
2665
+                ) {
2666
+                  arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[
2667
+                    i
2668
+                  ].name;
2669
+                }
2670
+              }
2671
+
2672
+              const ParamsQuery = arr;
2673
+              console.log("长期处方8", ParamsQuery);
2385 2674
               ParamsQuery["patient"] = this.patient.id;
2386 2675
               ParamsQuery["record_date"] = this.record_date;
2387 2676
               ParamsQuery["mode"] = "1";
@@ -2450,7 +2739,21 @@ export default {
2450 2739
                 this.loading = false;
2451 2740
                 return;
2452 2741
               }
2453
-              const ParamsQuery = this.dialysisPrescription;
2742
+              var arr = this.dialysisPrescription;
2743
+              console.log("arr", arr);
2744
+              for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
2745
+                if (
2746
+                  parseInt(arr.dialyzer_perfusion_apparatus) ==
2747
+                  this.dialyzerPerfusionApparatus[i].id
2748
+                ) {
2749
+                  arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[
2750
+                    i
2751
+                  ].name;
2752
+                }
2753
+              }
2754
+
2755
+              const ParamsQuery = arr;
2756
+              console.log("长期处方9", ParamsQuery);
2454 2757
               ParamsQuery["patient"] = this.patient.id;
2455 2758
               ParamsQuery["record_date"] = this.record_date;
2456 2759
               ParamsQuery["mode"] = "1";
@@ -2490,7 +2793,22 @@ export default {
2490 2793
             this.loading = false;
2491 2794
             return;
2492 2795
           }
2493
-          const ParamsQuery = this.dialysisPrescription;
2796
+          var arr = this.dialysisPrescription;
2797
+          console.log("arr", arr);
2798
+          for (let i = 0; i < this.dialyzerPerfusionApparatus.length; i++) {
2799
+            if (
2800
+              parseInt(arr.dialyzer_perfusion_apparatus) ==
2801
+              this.dialyzerPerfusionApparatus[i].id
2802
+            ) {
2803
+              arr.dialyzer_perfusion_apparatus = this.dialyzerPerfusionApparatus[
2804
+                i
2805
+              ].name;
2806
+            }
2807
+          }
2808
+
2809
+          const ParamsQuery = arr;
2810
+          console.log("长期处方10", ParamsQuery);
2811
+
2494 2812
           ParamsQuery["patient"] = this.patient.id;
2495 2813
           ParamsQuery["record_date"] = this.record_date;
2496 2814
           ParamsQuery["mode"] = "1";
@@ -2710,7 +3028,8 @@ export default {
2710 3028
         id === 13 ||
2711 3029
         id === 14 ||
2712 3030
         id === 15 ||
2713
-        id === 16
3031
+        id === 16 ||
3032
+        id === 19
2714 3033
       ) {
2715 3034
         this.zhiShow = false;
2716 3035
         this.huShow = false;
@@ -2830,12 +3149,22 @@ export default {
2830 3149
       this.dialysisPrescription.anticoagulant_zongliang = calculateAnticoagulantZL(
2831 3150
         1,
2832 3151
         this.dialysisPrescription.anticoagulant_shouji,
2833
-        duration,
3152
+        this.dialysisPrescription.dialysis_duration,
2834 3153
         this.dialysisPrescription.anticoagulant_weichi
2835 3154
       );
2836 3155
       if (isNaN(this.dialysisPrescription.anticoagulant_zongliang)) {
2837 3156
         this.dialysisPrescription.anticoagulant_zongliang = "";
2838 3157
       }
3158
+
3159
+      //this.dialysisPrescription.anticoagulant_zongliang = calculateAnticoagulantZL(
3160
+      //  1,
3161
+      //   this.dialysisPrescription.anticoagulant_shouji,
3162
+      //  duration,
3163
+      //  this.dialysisPrescription.anticoagulant_weichi
3164
+      // );
3165
+      //  if (isNaN(this.dialysisPrescription.anticoagulant_zongliang)) {
3166
+      //    this.dialysisPrescription.anticoagulant_zongliang = "";
3167
+      //  }
2839 3168
     },
2840 3169
     "dialysisPrescription.anticoagulant_shouji": function() {
2841 3170
       let dialysis_duration_minute = 0;
@@ -2856,15 +3185,26 @@ export default {
2856 3185
       duration =
2857 3186
         parseFloat(dialysis_duration_hour) +
2858 3187
         parseFloat(dialysis_duration_minute) / 60;
3188
+
2859 3189
       this.dialysisPrescription.anticoagulant_zongliang = calculateAnticoagulantZL(
2860 3190
         1,
2861 3191
         this.dialysisPrescription.anticoagulant_shouji,
2862
-        duration,
3192
+        this.dialysisPrescription.dialysis_duration,
2863 3193
         this.dialysisPrescription.anticoagulant_weichi
2864 3194
       );
2865 3195
       if (isNaN(this.dialysisPrescription.anticoagulant_zongliang)) {
2866 3196
         this.dialysisPrescription.anticoagulant_zongliang = "";
2867 3197
       }
3198
+
3199
+      //  this.dialysisPrescription.anticoagulant_zongliang = calculateAnticoagulantZL(
3200
+      //   1,
3201
+      //    this.dialysisPrescription.anticoagulant_shouji,
3202
+      //    duration,
3203
+      //    this.dialysisPrescription.anticoagulant_weichi
3204
+      //  );
3205
+      // if (isNaN(this.dialysisPrescription.anticoagulant_zongliang)) {
3206
+      //    this.dialysisPrescription.anticoagulant_zongliang = "";
3207
+      // }
2868 3208
     },
2869 3209
     "dialysisPrescription.anticoagulant_weichi": function() {
2870 3210
       let dialysis_duration_minute = 0;
@@ -2891,12 +3231,22 @@ export default {
2891 3231
       this.dialysisPrescription.anticoagulant_zongliang = calculateAnticoagulantZL(
2892 3232
         1,
2893 3233
         this.dialysisPrescription.anticoagulant_shouji,
2894
-        duration,
3234
+        this.dialysisPrescription.dialysis_duration,
2895 3235
         this.dialysisPrescription.anticoagulant_weichi
2896 3236
       );
2897 3237
       if (isNaN(this.dialysisPrescription.anticoagulant_zongliang)) {
2898 3238
         this.dialysisPrescription.anticoagulant_zongliang = "";
2899 3239
       }
3240
+
3241
+      // this.dialysisPrescription.anticoagulant_zongliang = calculateAnticoagulantZL(
3242
+      //   1,
3243
+      //  this.dialysisPrescription.anticoagulant_shouji,
3244
+      //   duration,
3245
+      //   this.dialysisPrescription.anticoagulant_weichi
3246
+      // );
3247
+      // if (isNaN(this.dialysisPrescription.anticoagulant_zongliang)) {
3248
+      //   this.dialysisPrescription.anticoagulant_zongliang = "";
3249
+      // }
2900 3250
     },
2901 3251
     "prescription.id": function() {
2902 3252
       if (this.prescription.id > 0) {

+ 20 - 4
src/xt_pages/dialysis/details/dialog/monitor_dialog.vue Ver arquivo

@@ -154,7 +154,10 @@
154 154
             width="110"
155 155
             v-if="
156 156
               isShow('超滤量') &&
157
-                (template_id == 6 || template_id == 10 || template_id == 11)
157
+                (template_id == 6 ||
158
+                  template_id == 10 ||
159
+                  template_id == 11 ||
160
+                  template_id == 12)
158 161
             "
159 162
           >
160 163
             <template slot-scope="scope">
@@ -174,7 +177,8 @@
174 177
               isShow('超滤量') &&
175 178
                 template_id != 6 &&
176 179
                 template_id != 10 &&
177
-                template_id != 11
180
+                template_id != 11 &&
181
+                template_id != 12
178 182
             "
179 183
           >
180 184
             <template slot-scope="scope">
@@ -467,30 +471,37 @@
467 471
               <el-input v-model="form.ultrafiltration_rate"></el-input>
468 472
             </el-form-item>
469 473
           </el-col>
474
+
470 475
           <el-col
471 476
             :span="8"
472 477
             v-if="
473 478
               isShow('超滤量') &&
474
-                (template_id != 6 || template_id != 10 || template_id != 11)
479
+                (template_id == 6 ||
480
+                  template_id == 10 ||
481
+                  template_id == 11 ||
482
+                  template_id == 12)
475 483
             "
476 484
           >
477 485
             <el-form-item label="超滤量(ml):">
478 486
               <el-input v-model="form.ultrafiltration_volume"></el-input>
479 487
             </el-form-item>
480 488
           </el-col>
489
+
481 490
           <el-col
482 491
             :span="8"
483 492
             v-if="
484 493
               isShow('超滤量') &&
485 494
                 template_id != 6 &&
486 495
                 template_id != 10 &&
487
-                template_id != 11
496
+                template_id != 11 &&
497
+                template_id != 12
488 498
             "
489 499
           >
490 500
             <el-form-item label="超滤量(L):">
491 501
               <el-input v-model="form.ultrafiltration_volume"></el-input>
492 502
             </el-form-item>
493 503
           </el-col>
504
+
494 505
           <el-col :span="8" v-if="isShow('钠浓度')">
495 506
             <el-form-item label="钠浓度(mmol/L):">
496 507
               <el-input v-model="form.sodium_concentration"></el-input>
@@ -745,6 +756,7 @@ export default {
745 756
   },
746 757
   created() {
747 758
     this.template_id = this.$store.getters.xt_user.template_info.template_id;
759
+    console.log("模版ID", this.template_id);
748 760
     var date = this.$route.query.date;
749 761
     var patient_id = this.$route.query.patient_id;
750 762
     this.patient_id = patient_id;
@@ -861,6 +873,7 @@ export default {
861 873
 
862 874
       getTodayMonitor(params).then(rs => {
863 875
         var resp = rs.data.data;
876
+        console.log("hheh", resp.monitor);
864 877
         this.form.operate_time = resp.monitor.operate_time
865 878
           ? (resp.monitor.operate_time + 3600) * 1000
866 879
           : Date.parse(new Date());
@@ -903,6 +916,9 @@ export default {
903 916
         this.form.symptom = ""; // this.last_monitor_record.symptom;
904 917
         this.form.dispose = ""; // this.last_monitor_record.dispose;
905 918
         this.form.result = ""; // this.last_monitor_record.result;
919
+        this.form.blood_oxygen_saturation = resp.monitor.blood_oxygen_saturation
920
+          ? resp.monitor.blood_oxygen_saturation
921
+          : "";
906 922
       });
907 923
     },
908 924
 

+ 330 - 158
src/xt_pages/dialysis/details/dialog/treatmentSummaryDialog.vue Ver arquivo

@@ -5,217 +5,389 @@
5 5
     width="854px"
6 6
     :visible.sync="isVisibility"
7 7
     :modal-append-to-body="false"
8
-  > 
8
+  >
9 9
     <div class="warnTxt" v-if="showTxt != ''">{{ showTxt }}</div>
10 10
     <el-form :model="treatmentSummary">
11 11
       <el-row :gutter="20">
12
-        <el-col :span="24">
12
+        <el-col :span="24" v-if="isShow('宣教知识')">
13 13
           <el-form-item label="宣教知识:">
14 14
             <el-select @change="dialysisAfterTeachSelectChange" v-model="value">
15
-              <el-option v-for="(item,index) in education" :label="item.text" :value="item.value" :key="index"></el-option>
15
+              <el-option
16
+                v-for="(item, index) in education"
17
+                :label="item.text"
18
+                :value="item.value"
19
+                :key="index"
20
+              ></el-option>
16 21
             </el-select>
17 22
           </el-form-item>
18 23
         </el-col>
19 24
       </el-row>
20
-      <el-form-item>
21
-        <el-input type="textarea" v-model="treatmentSummary.mission" :rows="4"></el-input>
22
-      </el-form-item>
23 25
       <el-row :gutter="20">
24
-        <el-col :span="24">
26
+        <el-col v-if="isShow('宣教知识')">
27
+          <el-form-item>
28
+            <el-input
29
+              type="textarea"
30
+              v-model="treatmentSummary.mission"
31
+              :rows="4"
32
+            ></el-input>
33
+          </el-form-item>
34
+        </el-col>
35
+      </el-row>
36
+      <el-row :gutter="20">
37
+        <el-col :span="24" v-if="isShow('透析小结')">
25 38
           <el-form-item label="透析小结:">
26 39
             <el-select @change="dialysisSummarySelectChange" v-model="value2">
27
-              <el-option v-for="(item,index) in summary" :label="item.text" :value="item.value" :key="index"></el-option>
40
+              <el-option
41
+                v-for="(item, index) in summary"
42
+                :label="item.text"
43
+                :value="item.value"
44
+                :key="index"
45
+              ></el-option>
28 46
             </el-select>
29 47
           </el-form-item>
30 48
         </el-col>
31 49
       </el-row>
32
-      <el-form-item>
33
-        <el-input type="textarea" v-model="treatmentSummary.dialysis_summary" :rows="4"></el-input>
34
-      </el-form-item>
50
+      <el-row :gutter="20">
51
+        <el-col v-if="isShow('透析小结')">
52
+          <el-form-item>
53
+            <el-input
54
+              type="textarea"
55
+              v-model="treatmentSummary.dialysis_summary"
56
+              :rows="4"
57
+            ></el-input>
58
+          </el-form-item>
59
+        </el-col>
60
+      </el-row>
61
+      <el-row :gutter="20">
62
+        <el-col :span="24" v-if="isShow('透析护理记录')">
63
+          <el-form-item label="透析护理记录:">
64
+            <el-select
65
+              @change="dialysisNusingRecordSelectChange"
66
+              v-model="value3"
67
+            >
68
+              <el-option
69
+                v-for="(item, index) in nursingRecord"
70
+                :label="item.text"
71
+                :value="item.value"
72
+                :key="index"
73
+              ></el-option>
74
+            </el-select>
75
+          </el-form-item>
76
+        </el-col>
77
+      </el-row>
78
+      <el-row :gutter="20">
79
+        <el-col v-if="isShow('透析护理记录')">
80
+          <el-form-item>
81
+            <el-input
82
+              type="textarea"
83
+              v-model="treatmentSummary.nursing_record"
84
+              :rows="4"
85
+            ></el-input>
86
+          </el-form-item>
87
+        </el-col>
88
+      </el-row>
89
+      <el-row :gutter="20">
90
+        <el-col :span="24" v-if="isShow('特殊记录')">
91
+          <el-form-item label="特殊记录:">
92
+            <el-select
93
+              @change="dialysisSpecialRecordSelectChange"
94
+              v-model="value4"
95
+            >
96
+              <el-option
97
+                v-for="(item, index) in specialRecord"
98
+                :label="item.text"
99
+                :value="item.value"
100
+                :key="index"
101
+              ></el-option>
102
+            </el-select>
103
+          </el-form-item>
104
+        </el-col>
105
+      </el-row>
106
+      <el-row :gutter="20">
107
+        <el-col v-if="isShow('特殊记录')">
108
+          <el-form-item>
109
+            <el-input
110
+              type="textarea"
111
+              v-model="treatmentSummary.special_record"
112
+              :rows="4"
113
+            ></el-input>
114
+          </el-form-item>
115
+        </el-col>
116
+      </el-row>
35 117
     </el-form>
36 118
     <div slot="footer" class="dialog-footer">
37 119
       <el-button @click="handleCancle">取 消</el-button>
38
-      <el-button type="primary" @click="handleComfirm" v-if="hasPermission">保 存</el-button>
120
+      <el-button type="primary" @click="handleComfirm" v-if="hasPermission"
121
+        >保 存</el-button
122
+      >
39 123
     </div>
40 124
   </el-dialog>
41 125
 </template>
42 126
 
43 127
 <script>
44
-  import { getDataConfig } from '@/utils/data'
45
-import { postTreatmentsummary } from '@/api/dialysis'
46
-import { uParseTime } from '@/utils/tools'
47
-
48
-import request from '@/utils/request'
128
+import { getDataConfig } from "@/utils/data";
129
+import { postTreatmentsummary } from "@/api/dialysis";
130
+import { uParseTime } from "@/utils/tools";
131
+import store from "@/store";
132
+import request from "@/utils/request";
49 133
 
50 134
 export default {
51
-    name: 'treatmentSummaryDialog',
135
+  name: "treatmentSummaryDialog",
52 136
 
53
-    props: {
54
-      treatment_summary: { // 治疗小结
55
-        type: Object,
56
-        default: () => {
57
-          return { id: 0 }
58
-        }
59
-      }, patient: { // 患者信息
60
-        type: Object,
61
-        default: () => {
62
-          return { id: 0 }
63
-        }
137
+  props: {
138
+    treatment_summary: {
139
+      // 治疗小结
140
+      type: Object,
141
+      default: () => {
142
+        return { id: 0 };
64 143
       }
65
-
66 144
     },
67
-    data() {
68
-      return {
69
-        showTxt:'',
70
-        hasPermission:true,
71
-        value: '',
72
-        value2: '',
73
-
74
-        isVisibility: false,
75
-        record_date: '',
76
-        education: [],
77
-        summary: [],
78
-        treatmentSummary: {
79
-          mission: '',
80
-          dialysis_summary: '',
81
-          sj_nurse: '',
82
-          zl_nurse: '',
83
-          hd_nurse: '',
84
-          xj_nurse: '',
85
-          zl_doctor: ''
86
-        }
145
+    patient: {
146
+      // 患者信息
147
+      type: Object,
148
+      default: () => {
149
+        return { id: 0 };
87 150
       }
151
+    }
88 152
   },
89
-    methods: {
90
-      show(record) {
91
-        this.isVisibility = true
92
-        this.record = record
93
-        console.log("治疗小结",record)
94
-        this.getPermission()
95
-      },
96
-      hide() {
97
-        this.isVisibility = false
98
-      },
99
-      dialysisAfterTeachSelectChange: function(values) {
100
-        if (this.treatmentSummary.mission == '') {
101
-          this.treatmentSummary.mission = values
102
-        } else {
103
-          if (this.treatmentSummary.mission.indexOf(values) == -1) {
104
-            if (this.treatmentSummary.mission.charAt(this.treatmentSummary.mission.length - 1).indexOf('。') == -1) {
105
-              this.treatmentSummary.mission = this.treatmentSummary.mission + ',' + values
106
-            } else {
107
-              this.treatmentSummary.mission = this.treatmentSummary.mission + values
108
-            }
153
+  data() {
154
+    return {
155
+      showTxt: "",
156
+      hasPermission: true,
157
+      value: "",
158
+      value2: "",
159
+      value3: "",
160
+      value4: "",
161
+      isVisibility: false,
162
+      record_date: "",
163
+      education: [],
164
+      summary: [],
165
+      nursingRecord: [],
166
+      specialRecord: [],
167
+      treatmentSummary: {
168
+        mission: "",
169
+        dialysis_summary: "",
170
+        sj_nurse: "",
171
+        zl_nurse: "",
172
+        hd_nurse: "",
173
+        xj_nurse: "",
174
+        zl_doctor: "",
175
+        nursing_record: "",
176
+        special_record: ""
177
+      }
178
+    };
179
+  },
180
+  methods: {
181
+    show(record) {
182
+      this.isVisibility = true;
183
+      this.record = record;
184
+      console.log("治疗小结", record);
185
+      this.getPermission();
186
+    },
187
+    hide() {
188
+      this.isVisibility = false;
189
+    },
190
+    dialysisAfterTeachSelectChange: function(values) {
191
+      if (this.treatmentSummary.mission == "") {
192
+        this.treatmentSummary.mission = values;
193
+      } else {
194
+        if (this.treatmentSummary.mission.indexOf(values) == -1) {
195
+          if (
196
+            this.treatmentSummary.mission
197
+              .charAt(this.treatmentSummary.mission.length - 1)
198
+              .indexOf("。") == -1
199
+          ) {
200
+            this.treatmentSummary.mission =
201
+              this.treatmentSummary.mission + "," + values;
202
+          } else {
203
+            this.treatmentSummary.mission =
204
+              this.treatmentSummary.mission + values;
109 205
           }
110 206
         }
111
-      }, dialysisSummarySelectChange: function(values) {
112
-        if (this.treatmentSummary.dialysis_summary == '') {
113
-          this.treatmentSummary.dialysis_summary = values
114
-        } else {
115
-          if (this.treatmentSummary.dialysis_summary.indexOf(values) == -1) {
116
-            if (this.treatmentSummary.dialysis_summary.charAt(this.treatmentSummary.dialysis_summary.length - 1).indexOf('。') == -1) {
117
-              this.treatmentSummary.dialysis_summary = this.treatmentSummary.dialysis_summary + ',' + values
118
-            } else {
119
-              this.treatmentSummary.dialysis_summary = this.treatmentSummary.dialysis_summary + ',' + values
120
-              this.treatmentSummary.dialysis_summary = this.treatmentSummary.dialysis_summary + values
121
-            }
207
+      }
208
+    },
209
+    dialysisSummarySelectChange: function(values) {
210
+      if (this.treatmentSummary.dialysis_summary == "") {
211
+        this.treatmentSummary.dialysis_summary = values;
212
+      } else {
213
+        if (this.treatmentSummary.dialysis_summary.indexOf(values) == -1) {
214
+          if (
215
+            this.treatmentSummary.dialysis_summary
216
+              .charAt(this.treatmentSummary.dialysis_summary.length - 1)
217
+              .indexOf("。") == -1
218
+          ) {
219
+            this.treatmentSummary.dialysis_summary =
220
+              this.treatmentSummary.dialysis_summary + "," + values;
221
+          } else {
222
+            this.treatmentSummary.dialysis_summary =
223
+              this.treatmentSummary.dialysis_summary + "," + values;
224
+            this.treatmentSummary.dialysis_summary =
225
+              this.treatmentSummary.dialysis_summary + values;
122 226
           }
123 227
         }
124
-      }, handleCancle: function() {
125
-        this.isVisibility = false
126
-      }, handleComfirm: function() {
127
-        const ParamsQuery = this.treatmentSummary
128
-        ParamsQuery['patient'] = this.patient.id
129
-        ParamsQuery['record_date'] = this.record_date
130
-        ParamsQuery['mode'] = "1"
131
-        if(this.treatment_summary.id > 0){
132
-          ParamsQuery['mode'] = "2"
133
-          if(this.treatment_summary.creater != this.$store.getters.xt_user.user.id){
134
-            ParamsQuery['mode'] = "3"
228
+      }
229
+    },
230
+    dialysisNusingRecordSelectChange: function(values) {
231
+      if (this.treatmentSummary.nursing_record == "") {
232
+        this.treatmentSummary.nursing_record = values;
233
+      } else {
234
+        if (this.treatmentSummary.nursing_record.indexOf(values) == -1) {
235
+          if (
236
+            this.treatmentSummary.nursing_record
237
+              .charAt(this.treatmentSummary.nursing_record.length - 1)
238
+              .indexOf("。") == -1
239
+          ) {
240
+            this.treatmentSummary.nursing_record =
241
+              this.treatmentSummary.nursing_record + "," + values;
242
+          } else {
243
+            this.treatmentSummary.nursing_record =
244
+              this.treatmentSummary.nursing_record + "," + values;
245
+            this.treatmentSummary.nursing_record =
246
+              this.treatmentSummary.nursing_record + values;
135 247
           }
136 248
         }
137
-        postTreatmentsummary(ParamsQuery).then(response => {
138
-          if (response.data.state == 0) {
139
-            this.$message.error(response.data.msg)
140
-            return false
249
+      }
250
+    },
251
+    dialysisSpecialRecordSelectChange(values) {
252
+      if (this.treatmentSummary.special_record == "") {
253
+        this.treatmentSummary.special_record = values;
254
+      } else {
255
+        if (this.treatmentSummary.special_record.indexOf(values) == -1) {
256
+          if (
257
+            this.treatmentSummary.special_record
258
+              .charAt(this.treatmentSummary.special_record.length - 1)
259
+              .indexOf("。") == -1
260
+          ) {
261
+            this.treatmentSummary.special_record =
262
+              this.treatmentSummary.special_record + "," + values;
141 263
           } else {
142
-            this.$notify({
143
-              title: '成功',
144
-              message: '提交成功',
145
-              type: 'success',
146
-              duration: 2000
147
-            })
264
+            this.treatmentSummary.special_record =
265
+              this.treatmentSummary.special_record + "," + values;
266
+            this.treatmentSummary.special_record =
267
+              this.treatmentSummary.special_record + values;
268
+          }
269
+        }
270
+      }
271
+    },
272
+    handleCancle: function() {
273
+      this.isVisibility = false;
274
+    },
275
+    handleComfirm: function() {
276
+      const ParamsQuery = this.treatmentSummary;
277
+      ParamsQuery["patient"] = this.patient.id;
278
+      ParamsQuery["record_date"] = this.record_date;
279
+      ParamsQuery["mode"] = "1";
280
+      if (this.treatment_summary.id > 0) {
281
+        ParamsQuery["mode"] = "2";
282
+        if (
283
+          this.treatment_summary.creater != this.$store.getters.xt_user.user.id
284
+        ) {
285
+          ParamsQuery["mode"] = "3";
286
+        }
287
+      }
288
+      postTreatmentsummary(ParamsQuery).then(response => {
289
+        if (response.data.state == 0) {
290
+          this.$message.error(response.data.msg);
291
+          return false;
292
+        } else {
293
+          this.$notify({
294
+            title: "成功",
295
+            message: "提交成功",
296
+            type: "success",
297
+            duration: 2000
298
+          });
148 299
 
149
-            const summary_resp = response.data.data.summary
150
-            // prop
151
-            var treatment_summary = this.treatment_summary
152
-            for (var index in summary_resp) {
153
-              // treatment_summary[index] = summary_resp[index];
154
-              this.$set(treatment_summary, index, summary_resp[index])
155
-            }
300
+          const summary_resp = response.data.data.summary;
301
+          // prop
302
+          var treatment_summary = this.treatment_summary;
303
+          for (var index in summary_resp) {
304
+            // treatment_summary[index] = summary_resp[index];
305
+            this.$set(treatment_summary, index, summary_resp[index]);
306
+          }
156 307
 
157
-            this.hide()
308
+          this.hide();
309
+        }
310
+      });
311
+    },
312
+    getPermission() {
313
+      request
314
+        .get("/api/func_per/get", {
315
+          params: {
316
+            create_url: "/api/dialysis/treatmentsummary?mode=1",
317
+            modify_url: "/api/dialysis/treatmentsummary?mode=2",
318
+            modify_other_url: "/api/dialysis/treatmentsummary?mode=3",
319
+            module: 9
158 320
           }
159 321
         })
160
-      },
161
-      getPermission(){
162
-        request.get("/api/func_per/get",{
163
-          params:{
164
-            create_url:"/api/dialysis/treatmentsummary?mode=1",
165
-            modify_url:"/api/dialysis/treatmentsummary?mode=2",
166
-            modify_other_url:"/api/dialysis/treatmentsummary?mode=3",
167
-            module:9
168
-          }
169
-        }).then(res => {
170
-          console.log(res)
171
-          console.log("小结",this.record)
172
-          if(res.data.state == 0){
173
-            this.hasPermission = false
174
-          }else if(res.data.state == 1){
175
-            if(this.record.id != "" && this.record.creater != 0){//有数据
176
-              if(this.record.creater == this.$store.getters.user.admin.id){//创建人是自己
177
-                if(res.data.data.is_has_modify == false){
178
-                  this.hasPermission = false
179
-                  this.showTxt = "你没有修改治疗小结权限"
322
+        .then(res => {
323
+          if (res.data.state == 0) {
324
+            this.hasPermission = false;
325
+          } else if (res.data.state == 1) {
326
+            if (this.record.id != "" && this.record.creater != 0) {
327
+              //有数据
328
+              if (this.record.creater == this.$store.getters.user.admin.id) {
329
+                //创建人是自己
330
+                if (res.data.data.is_has_modify == false) {
331
+                  this.hasPermission = false;
332
+                  this.showTxt = "你没有修改治疗小结权限";
180 333
                 }
181
-              }else{//创建人不是自己
182
-                if(res.data.data.is_has_modify_other == false){
183
-                  this.hasPermission = false
184
-                  this.showTxt = "你没有修改他人治疗小结权限"
334
+              } else {
335
+                //创建人不是自己
336
+                if (res.data.data.is_has_modify_other == false) {
337
+                  this.hasPermission = false;
338
+                  this.showTxt = "你没有修改他人治疗小结权限";
185 339
                 }
186 340
               }
187
-            }else if(this.record.id == "" || this.record.creater == 0){
188
-              if(res.data.data.is_has_create  == false){
189
-                this.hasPermission = false
190
-                this.showTxt = "你没有新增治疗小结权限"
341
+            } else if (this.record.id == "" || this.record.creater == 0) {
342
+              if (res.data.data.is_has_create == false) {
343
+                this.hasPermission = false;
344
+                this.showTxt = "你没有新增治疗小结权限";
191 345
               }
192 346
             }
193 347
           }
194
-        })
195
-      }
196
-    }, watch: {
197
-      isVisibility(val) {
348
+        });
349
+    },
350
+    isShow(name) {
351
+      var filedList = store.getters.xt_user.fileds;
198 352
 
199
-      },
200
-      'treatment_summary.id': function() {
201
-        if (this.treatment_summary.id > 0) {
202
-          for (var index in this.treatmentSummary) {
203
-            this.treatmentSummary[index] = this.treatment_summary[index]
204
-          }
353
+      for (let i = 0; i < filedList.length; i++) {
354
+        if (
355
+          filedList[i].module == 6 &&
356
+          filedList[i].filed_name_cn == name &&
357
+          filedList[i].is_show == 1
358
+        ) {
359
+          return true;
360
+        }
361
+      }
362
+      return false;
363
+    }
364
+  },
365
+  watch: {
366
+    isVisibility(val) {},
367
+    "treatment_summary.id": function() {
368
+      if (this.treatment_summary.id > 0) {
369
+        for (var index in this.treatmentSummary) {
370
+          this.treatmentSummary[index] = this.treatment_summary[index];
205 371
         }
206 372
       }
207
-    }, created() {
208
-      this.education = getDataConfig('education', 'education')
209
-      this.summary = getDataConfig('summary', 'summary')
373
+    }
374
+  },
375
+  created() {
376
+    this.education = getDataConfig("education", "education");
377
+    this.summary = getDataConfig("summary", "summary");
210 378
 
211
-      var date = this.$route.query && this.$route.query.date
212
-      this.record_date = uParseTime(date, '{y}-{m}-{d}')
213
-  }
379
+    this.nursingRecord = getDataConfig("nursing_record", "nursing_record");
380
+
381
+    this.specialRecord = getDataConfig("special_record", "special_record");
382
+
383
+    var date = this.$route.query && this.$route.query.date;
384
+    this.record_date = uParseTime(date, "{y}-{m}-{d}");
214 385
   }
386
+};
215 387
 </script>
216 388
 
217 389
 <style scoped>
218
-.warnTxt{
390
+.warnTxt {
219 391
   text-align: center;
220 392
   margin: 0 auto;
221 393
   background: #faa331;
@@ -223,12 +395,12 @@ export default {
223 395
   padding: 10px 20px;
224 396
   border-radius: 4px;
225 397
   margin-bottom: 10px;
226
-  color:#fff;
398
+  color: #fff;
227 399
 }
228 400
 </style>
229 401
 <style lang="scss">
230
-.newDialog{
231
-  .el-dialog__body{
402
+.newDialog {
403
+  .el-dialog__body {
232 404
     padding: 10px 20px 30px;
233 405
   }
234 406
 }

+ 211 - 78
src/xt_pages/dialysis/details/dialysisMonitoring.vue Ver arquivo

@@ -1,104 +1,240 @@
1 1
 <template>
2
-  <div class="plate-box" >
3
-    <h2 class="DetailsTit"><span>{{ title }}</span></h2>
2
+  <div class="plate-box">
3
+    <h2 class="DetailsTit">
4
+      <span>{{ title }}</span>
5
+    </h2>
4 6
     <div style="width:100%;overflow:hildden;overflow-x:auto;">
5
-    <table  class="table" style="">
6
-      <tr>
7
-        <th v-if="isShow('监测时间')"  width="124px">时间</th>
8
-        <th v-if="isShow('体温')" width="72px">体温(℃)</th>
9
-        <th v-if="isShow('血压')" width="72px">血压(mmHg)</th>
10
-        <th v-if="isShow('脉搏')" width="80px">脉搏(次/分)</th>
11
-        <th v-if="isShow('呼吸频率')" width="110px">呼吸频率(次/分)</th>
12
-        <th width="76px">静脉压/动脉压(mmHg)</th>
13
-        <th v-if="isShow('血流量')" width="92px">血流量(ml/min)</th>
14
-        <th v-if="isShow('跨膜压')" width="76px">跨膜压(mmhg)</th>
15
-        <th v-if="isShow('超滤量') && (template_id == 6 || template_id == 10 || template_id == 11)" width="76px">超滤量(ml)</th>
16
-        <th v-if="isShow('超滤量') && template_id != 6 && template_id != 10 && template_id != 11" width="76px">超滤量(L)</th>
17
-        <th v-if="isShow('钠浓度')" width="92px">钠浓度(mmol/L)</th>
18
-        <th v-if="isShow('透析液温度')" width="92px">透析液温度(℃)</th>
19
-        <th v-if="isShow('置换率')&& (template_id == 6 || template_id == 10 || template_id == 11)" width="92px">置换率(ml/min)</th>
20
-        <th v-if="isShow('置换率')&& template_id != 6 && template_id != 10 && template_id != 11" width="92px">置换率(L/h)</th>
7
+      <table class="table" style="">
8
+        <tr>
9
+          <th v-if="isShow('监测时间')" width="124px">时间</th>
10
+          <th v-if="isShow('体温')" width="72px">体温(℃)</th>
11
+          <th v-if="isShow('血压')" width="72px">血压(mmHg)</th>
12
+          <th v-if="isShow('脉搏')" width="80px">脉搏(次/分)</th>
13
+          <th v-if="isShow('呼吸频率')" width="110px">呼吸频率(次/分)</th>
14
+          <th width="76px">静脉压/动脉压(mmHg)</th>
15
+          <th v-if="isShow('血流量')" width="92px">血流量(ml/min)</th>
16
+          <th v-if="isShow('跨膜压')" width="76px">跨膜压(mmhg)</th>
17
+          <th
18
+            v-if="
19
+              isShow('超滤量') &&
20
+                (template_id == 6 || template_id == 10 || template_id == 11)
21
+            "
22
+            width="76px"
23
+          >
24
+            超滤量(ml)
25
+          </th>
26
+          <th
27
+            v-if="
28
+              isShow('超滤量') &&
29
+                template_id != 6 &&
30
+                template_id != 10 &&
31
+                template_id != 11
32
+            "
33
+            width="76px"
34
+          >
35
+            超滤量(L)
36
+          </th>
37
+          <th v-if="isShow('钠浓度')" width="92px">钠浓度(mmol/L)</th>
38
+          <th v-if="isShow('透析液温度')" width="92px">透析液温度(℃)</th>
39
+          <th
40
+            v-if="
41
+              isShow('置换率') &&
42
+                (template_id == 6 || template_id == 10 || template_id == 11)
43
+            "
44
+            width="92px"
45
+          >
46
+            置换率(ml/min)
47
+          </th>
48
+          <th
49
+            v-if="
50
+              isShow('置换率') &&
51
+                template_id != 6 &&
52
+                template_id != 10 &&
53
+                template_id != 11
54
+            "
55
+            width="92px"
56
+          >
57
+            置换率(L/h)
58
+          </th>
21 59
 
22
-        <th v-if="isShow('置换量')&& (template_id == 6 || template_id == 10 ||  template_id == 11)" width="92px">置换量(ml)</th>
23
-        <th v-if="isShow('置换量')&& template_id != 6 && template_id != 10 && template_id != 10" width="92px">置换量(L)</th>
24
-         <th v-if="isShow('SpO₂')&& template_id != 6 && template_id != 10 && template_id != 11" width="92px">SpO₂(%)</th>
25
-        <th v-if="isShow('电导度')" width="92px">电导度(mS/m)</th>
26
-        <th v-if="isShow('置换液流量')"  width="92px">置换液流量(ml/h)</th>
27
-        <th v-if="isShow('肝素用量余量')"  width="92px">肝素用量余量(ml)</th>
60
+          <th
61
+            v-if="
62
+              isShow('置换量') &&
63
+                (template_id == 6 || template_id == 10 || template_id == 11)
64
+            "
65
+            width="92px"
66
+          >
67
+            置换量(ml)
68
+          </th>
69
+          <th
70
+            v-if="
71
+              isShow('置换量') &&
72
+                template_id != 6 &&
73
+                template_id != 10 &&
74
+                template_id != 10
75
+            "
76
+            width="92px"
77
+          >
78
+            置换量(L)
79
+          </th>
80
+          <th
81
+            v-if="
82
+              isShow('SpO₂') &&
83
+                template_id != 6 &&
84
+                template_id != 10 &&
85
+                template_id != 11
86
+            "
87
+            width="92px"
88
+          >
89
+            SpO₂(%)
90
+          </th>
91
+          <th v-if="isShow('电导度')" width="92px">电导度(mS/m)</th>
92
+          <th v-if="isShow('置换液流量')" width="92px">置换液流量(ml/h)</th>
93
+          <th v-if="isShow('肝素用量余量')" width="92px">肝素用量余量(ml)</th>
28 94
 
29
-        <th v-if="isShow('病情变化')" width="92px">病情变化</th>
30
-        <th v-if="isShow('处理')"  width="92px">处理</th>
31
-        <th v-if="isShow('结果')" width="92px">结果</th>
32
-      </tr>
33
-      <tr v-for="(monitor, index) in monitores" :key="index">
34
-        <td v-if="isShow('监测时间')">{{ parseTime(monitor.operate_time, "{y}-{m}-{d} {h}:{i}") }}</td>
35
-        <td v-if="isShow('体温')">{{ monitor.temperature?monitor.temperature:'' }}</td>
36
-        <td v-if="isShow('血压')">{{ monitor.systolic_blood_pressure?monitor.systolic_blood_pressure:'' }}/{{ monitor.diastolic_blood_pressure?monitor.diastolic_blood_pressure:'' }}</td>
37
-        <td v-if="isShow('脉搏')">{{ monitor.pulse_frequency?monitor.pulse_frequency:'' }}</td>
38
-        <td v-if="isShow('呼吸频率')">{{ monitor.breathing_rate?monitor.breathing_rate:'' }}</td>
39
-        <td>{{ monitor.venous_pressure?monitor.venous_pressure:'' }} /{{ monitor.arterial_pressure?monitor.arterial_pressure:'' }} </td>
40
-        <td v-if="isShow('血流量')">{{ monitor.blood_flow_volume?monitor.blood_flow_volume:'' }}</td>
41
-        <td v-if="isShow('跨膜压')">{{ monitor.transmembrane_pressure?monitor.transmembrane_pressure:'' }}</td>
42
-        <td v-if="isShow('超滤量')">{{ monitor.ultrafiltration_volume?monitor.ultrafiltration_volume:'' }}</td>
43
-        <td v-if="isShow('钠浓度')">{{ monitor.sodium_concentration?monitor.sodium_concentration:'' }}</td>
44
-        <td v-if="isShow('透析液温度')">{{ monitor.dialysate_temperature?monitor.dialysate_temperature:'' }}</td>
45
-        <td v-if="isShow('置换率')">{{ monitor.replacement_rate?monitor.replacement_rate:'' }}</td>
46
-        <td v-if="isShow('置换量')">{{ monitor.displacement_quantity?monitor.displacement_quantity:'' }}</td>
47
-        <td v-if="isShow('SpO₂')">{{monitor.blood_oxygen_saturation?monitor.blood_oxygen_saturation:''}}</td>
48
-        <td v-if="isShow('电导度')">{{ monitor.conductivity?monitor.conductivity:'' }}</td>
49
-        <th v-if="isShow('置换液流量')" >{{monitor.displacement_flow_quantity?monitor.displacement_flow_quantity:''}}</th>
95
+          <th v-if="isShow('病情变化')" width="92px">病情变化</th>
96
+          <th v-if="isShow('处理')" width="92px">处理</th>
97
+          <th v-if="isShow('结果')" width="92px">结果</th>
98
+        </tr>
99
+        <tr v-for="(monitor, index) in monitores" :key="index">
100
+          <td v-if="isShow('监测时间')">
101
+            {{ parseTime(monitor.operate_time, "{y}-{m}-{d} {h}:{i}") }}
102
+          </td>
103
+          <td v-if="isShow('体温')">
104
+            {{ monitor.temperature ? monitor.temperature : "" }}
105
+          </td>
106
+          <td v-if="isShow('血压')">
107
+            {{
108
+              monitor.systolic_blood_pressure
109
+                ? monitor.systolic_blood_pressure
110
+                : ""
111
+            }}/{{
112
+              monitor.diastolic_blood_pressure
113
+                ? monitor.diastolic_blood_pressure
114
+                : ""
115
+            }}
116
+          </td>
117
+          <td v-if="isShow('脉搏')">
118
+            {{ monitor.pulse_frequency ? monitor.pulse_frequency : "" }}
119
+          </td>
120
+          <td v-if="isShow('呼吸频率')">
121
+            {{ monitor.breathing_rate ? monitor.breathing_rate : "" }}
122
+          </td>
123
+          <td>
124
+            {{ monitor.venous_pressure ? monitor.venous_pressure : "" }} /{{
125
+              monitor.arterial_pressure ? monitor.arterial_pressure : ""
126
+            }}
127
+          </td>
128
+          <td v-if="isShow('血流量')">
129
+            {{ monitor.blood_flow_volume ? monitor.blood_flow_volume : "" }}
130
+          </td>
131
+          <td v-if="isShow('跨膜压')">
132
+            {{
133
+              monitor.transmembrane_pressure
134
+                ? monitor.transmembrane_pressure
135
+                : ""
136
+            }}
137
+          </td>
138
+          <td v-if="isShow('超滤量')">
139
+            {{
140
+              monitor.ultrafiltration_volume
141
+                ? monitor.ultrafiltration_volume
142
+                : ""
143
+            }}
144
+          </td>
145
+          <td v-if="isShow('钠浓度')">
146
+            {{
147
+              monitor.sodium_concentration ? monitor.sodium_concentration : ""
148
+            }}
149
+          </td>
150
+          <td v-if="isShow('透析液温度')">
151
+            {{
152
+              monitor.dialysate_temperature ? monitor.dialysate_temperature : ""
153
+            }}
154
+          </td>
155
+          <td v-if="isShow('置换率')">
156
+            {{ monitor.replacement_rate ? monitor.replacement_rate : "" }}
157
+          </td>
158
+          <td v-if="isShow('置换量')">
159
+            {{
160
+              monitor.displacement_quantity ? monitor.displacement_quantity : ""
161
+            }}
162
+          </td>
163
+          <td v-if="isShow('SpO₂')">
164
+            {{
165
+              monitor.blood_oxygen_saturation
166
+                ? monitor.blood_oxygen_saturation
167
+                : ""
168
+            }}
169
+          </td>
170
+          <td v-if="isShow('电导度')">
171
+            {{ monitor.conductivity ? monitor.conductivity : "" }}
172
+          </td>
173
+          <th v-if="isShow('置换液流量')">
174
+            {{
175
+              monitor.displacement_flow_quantity
176
+                ? monitor.displacement_flow_quantity
177
+                : ""
178
+            }}
179
+          </th>
50 180
 
51
-        <th v-if="isShow('肝素用量余量')" >{{monitor.heparin?monitor.heparin:''}}</th>
181
+          <th v-if="isShow('肝素用量余量')">
182
+            {{ monitor.heparin ? monitor.heparin : "" }}
183
+          </th>
52 184
 
53
-        <td v-if="isShow('病情变化')">{{ monitor.symptom }}</td>
54
-        <td v-if="isShow('处理')">{{ monitor.dispose }}</td>
55
-        <td v-if="isShow('结果')">{{ monitor.result }}</td>
56
-      </tr>
185
+          <td v-if="isShow('病情变化')">{{ monitor.symptom }}</td>
186
+          <td v-if="isShow('处理')">{{ monitor.dispose }}</td>
187
+          <td v-if="isShow('结果')">{{ monitor.result }}</td>
188
+        </tr>
57 189
       </table>
58
-     </div>
190
+    </div>
59 191
     <div class="middleLine"></div>
60 192
   </div>
61 193
 </template>
62 194
 
63 195
 <script>
64
-  import store from '@/store'
196
+import store from "@/store";
65 197
 
66
-import { parseTime } from '@/utils'
198
+import { parseTime } from "@/utils";
67 199
 
68 200
 export default {
69
-  name: 'statOrder',
201
+  name: "statOrder",
70 202
   data() {
71
-      return {
72
-        title: '透析监测 ',
73
-        template_id: 0
74
-      }
203
+    return {
204
+      title: "透析监测 ",
205
+      template_id: 0
206
+    };
75 207
   },
76 208
   props: {
77
-      monitores: {
78
-        type: Array
79
-      }
209
+    monitores: {
210
+      type: Array
211
+    }
212
+  },
213
+  created() {
214
+    this.template_id = this.$store.getters.xt_user.template_info.template_id;
80 215
   },
81
-    created() {
82
-      this.template_id = this.$store.getters.xt_user.template_info.template_id
83
-    },
84 216
   methods: {
85
-      parseTime(time, layout) {
86
-        return parseTime(time, layout)
87
-      }, isShow(name) {
88
-        var filedList = store.getters.xt_user.fileds
89
-        for (let i = 0; i < filedList.length; i++) {
90
-          if (filedList[i].module == 4 && filedList[i].filed_name_cn == name && filedList[i].is_show == 1) {
91
-            return true
92
-          }
217
+    parseTime(time, layout) {
218
+      return parseTime(time, layout);
219
+    },
220
+    isShow(name) {
221
+      var filedList = store.getters.xt_user.fileds;
222
+      for (let i = 0; i < filedList.length; i++) {
223
+        if (
224
+          filedList[i].module == 4 &&
225
+          filedList[i].filed_name_cn == name &&
226
+          filedList[i].is_show == 1
227
+        ) {
228
+          return true;
93 229
         }
94
-        return false
95 230
       }
231
+      return false;
232
+    }
96 233
   }
97
-}
234
+};
98 235
 </script>
99 236
 
100 237
 <style rel="stylesheet/scss" lang="scss" scoped>
101
-
102 238
 .table {
103 239
   width: 1500px;
104 240
   overflow: auto;
@@ -128,6 +264,3 @@ export default {
128 264
   }
129 265
 }
130 266
 </style>
131
-
132
-
133
-

Diferenças do arquivo suprimidas por serem muito extensas
+ 614 - 529
src/xt_pages/dialysis/details/index.vue


+ 44 - 20
src/xt_pages/dialysis/details/treatmentOf.vue Ver arquivo

@@ -1,7 +1,9 @@
1 1
 <template>
2 2
   <div class="plate-box">
3
-    <h2 class="DetailsTit"><span>{{ title }}</span></h2>
4
-    <div class="plate " >   
3
+    <h2 class="DetailsTit">
4
+      <span>{{ title }}</span>
5
+    </h2>
6
+    <div class="plate ">
5 7
       <ul>
6 8
         <li>
7 9
           <label>透后宣教 : </label>
@@ -9,23 +11,37 @@
9 11
         </li>
10 12
       </ul>
11 13
       <ul>
12
-         <li>
14
+        <li>
13 15
           <label>透析小结 : </label>
14 16
           <span class="content">{{ dialysis_summary }}</span>
15 17
         </li>
16 18
       </ul>
17 19
     </div>
20
+    <div class="plate ">
21
+      <ul>
22
+        <li>
23
+          <label>透析护理记录 : </label>
24
+          <span class="content">{{ nursing_record }}</span>
25
+        </li>
26
+      </ul>
27
+      <ul>
28
+        <li>
29
+          <label>特殊记录 : </label>
30
+          <span class="content">{{ special_record }}</span>
31
+        </li>
32
+      </ul>
33
+    </div>
18 34
     <div class="middleLine"></div>
19
-  </div>    
35
+  </div>
20 36
 </template>
21 37
 
22 38
 <script>
23 39
 export default {
24
-  name: 'DialysisPrescription',
40
+  name: "DialysisPrescription",
25 41
   data() {
26 42
     return {
27
-      title: '治疗小结'
28
-    }
43
+      title: "治疗小结"
44
+    };
29 45
   },
30 46
   props: {
31 47
     record: {
@@ -35,25 +51,33 @@ export default {
35 51
   computed: {
36 52
     mission: function() {
37 53
       if (this.record.id == 0) {
38
-        return ''
54
+        return "";
39 55
       }
40
-      return this.record.mission
56
+      return this.record.mission;
41 57
     },
42 58
     dialysis_summary: function() {
43 59
       if (this.record.id == 0) {
44
-        return ''
60
+        return "";
45 61
       }
46
-      return this.record.dialysis_summary
62
+      return this.record.dialysis_summary;
63
+    },
64
+    nursing_record: function() {
65
+      if (this.record.id == 0) {
66
+        return "";
67
+      }
68
+
69
+      return this.record.nursing_record;
70
+    },
71
+    special_record: function() {
72
+      if (this.record.id == 0) {
73
+        return "";
74
+      }
75
+
76
+      return this.record.special_record;
47 77
     }
48 78
   },
49
-  methods: {
50
-
51
-  }
52
-}
79
+  methods: {}
80
+};
53 81
 </script>
54 82
 
55
-<style rel="stylesheet/scss" lang="scss" scoped>
56
-</style>
57
-
58
-
59
-
83
+<style rel="stylesheet/scss" lang="scss" scoped></style>

Diferenças do arquivo suprimidas por serem muito extensas
+ 353 - 421
src/xt_pages/dialysis/template/DialysisPrintOrderEight.vue


Diferenças do arquivo suprimidas por serem muito extensas
+ 1561 - 1549
src/xt_pages/dialysis/template/DialysisPrintOrderEleven.vue


Diferenças do arquivo suprimidas por serem muito extensas
+ 500 - 1169
src/xt_pages/dialysis/template/DialysisPrintOrderNine.vue


Diferenças do arquivo suprimidas por serem muito extensas
+ 88 - 575
src/xt_pages/dialysis/template/DialysisPrintOrderOne.vue


+ 34 - 10
src/xt_pages/dialysis/template/DialysisPrintOrderSeven.vue Ver arquivo

@@ -122,7 +122,17 @@
122 122
                   </td>
123 123
                   <td style="text-align:left;margin-left:15px" colspan="2">
124 124
                     透析次数:
125
-                    <span class="under-line">&nbsp;{{ total }}</span>
125
+                    <span class="under-line"
126
+                      >&nbsp;
127
+                      {{
128
+                        patientInfo.total_dialysis +
129
+                        patientInfo.user_sys_before_count
130
+                          ? patientInfo.total_dialysis +
131
+                            patientInfo.user_sys_before_count -
132
+                            1
133
+                          : "/"
134
+                      }}</span
135
+                    >
126 136
                   </td>
127 137
                 </tr>
128 138
                 <tr>
@@ -242,12 +252,20 @@
242 252
                   </td>
243 253
                   <td style="text-align:left;margin-left:15px">
244 254
                     置换方式:
245
-                    <span class="under-line"
246
-                      >&nbsp;
255
+                    <span
256
+                      class="under-line"
257
+                      v-if="
258
+                        prescription.mode_id == 2 ||
259
+                          prescription.mode_id == 5 ||
260
+                          prescription.mode_id == 12
261
+                      "
262
+                    >
263
+                      &nbsp;
247 264
                       {{
248 265
                         getDisplaceLiquiPart(prescription.displace_liqui_part)
249
-                      }}</span
250
-                    >
266
+                      }}
267
+                    </span>
268
+                    <span v-else class="under-line">/</span>
251 269
                   </td>
252 270
                   <td style="text-align:left;margin-left:15px">
253 271
                     置换液总量:
@@ -423,7 +441,6 @@
423 441
                     </span>
424 442
                   </td>
425 443
                 </tr>
426
-
427 444
               </table>
428 445
             </td>
429 446
           </tr>
@@ -640,7 +657,13 @@
640 657
             <td v-if="advice_index === 0">透前体重:</td>
641 658
             <td v-if="advice_index === 0">{{ predialysis.weight_before }}kg</td>
642 659
             <td v-if="advice_index === 1">体重增加量:</td>
643
-            <td v-if="advice_index === 1"></td>
660
+            <td v-if="advice_index === 1">
661
+              {{
662
+                (
663
+                  predialysis.weight_before - assessmentafter.weight_after
664
+                ).toFixed(1)
665
+              }}kg
666
+            </td>
644 667
             <td v-if="advice_index === 2">干体重(DW):</td>
645 668
             <td v-if="advice_index === 2">{{ predialysis.dry_weight }}kg</td>
646 669
             <td v-if="advice_index === 3">较干体重增加量:</td>
@@ -808,7 +831,7 @@
808 831
                 压迫后内瘘震颤:
809 832
                 <label-box
810 833
                   :isChecked="
811
-                    predialysis.internal_fistula.indexOf('震颤-存在') > -1
834
+                    afterdialysis.internal_fistula.indexOf('震颤-存在') > -1
812 835
                       ? true
813 836
                       : false
814 837
                   "
@@ -817,7 +840,7 @@
817 840
                 &nbsp;
818 841
                 <label-box
819 842
                   :isChecked="
820
-                    predialysis.internal_fistula.indexOf('震颤-减弱') > -1
843
+                    afterdialysis.internal_fistula.indexOf('震颤-减弱') > -1
821 844
                       ? true
822 845
                       : false
823 846
                   "
@@ -826,7 +849,7 @@
826 849
                 &nbsp;
827 850
                 <label-box
828 851
                   :isChecked="
829
-                    predialysis.internal_fistula.indexOf('震颤-无') > -1
852
+                    afterdialysis.internal_fistula.indexOf('震颤-无') > -1
830 853
                       ? true
831 854
                       : false
832 855
                   "
@@ -1129,6 +1152,7 @@ export default {
1129 1152
       getDialysisRecord(this.queryParams).then(response => {
1130 1153
         if (response.data.state === 1) {
1131 1154
           this.total = response.data.data.total;
1155
+
1132 1156
           this.adminUser = response.data.data.users;
1133 1157
           this.users = response.data.data.users;
1134 1158
           var patientInfo = response.data.data.patientInfo;

Diferenças do arquivo suprimidas por serem muito extensas
+ 335 - 291
src/xt_pages/dialysis/template/DialysisPrintOrderSix.vue


Diferenças do arquivo suprimidas por serem muito extensas
+ 2251 - 2241
src/xt_pages/dialysis/template/DialysisPrintOrderTen.vue


Diferenças do arquivo suprimidas por serem muito extensas
+ 316 - 1741
src/xt_pages/dialysis/template/dialysisPrintOrderFive.vue


+ 254 - 212
src/xt_pages/dialysis/template/dialysisPrintOrderTwelve.vue Ver arquivo

@@ -22,15 +22,11 @@
22 22
 
23 23
             <td width="120" style="border:none;text-align: left;">
24 24
               性 别:
25
-              <span>
26
-                {{ patientInfo.gender ? patientInfo.gender : "/" }}
27
-              </span>
25
+              <span>{{ patientInfo.gender ? patientInfo.gender : "/" }}</span>
28 26
             </td>
29 27
             <td width="120" style="border:none;text-align: left;">
30 28
               年 龄:
31
-              <span>
32
-                {{ getAge(patientInfo) }}
33
-              </span>
29
+              <span>{{ getAge(patientInfo) }}</span>
34 30
             </td>
35 31
             <td width="50" style="border:none">身 高:</td>
36 32
             <td width="80" style="border:none;text-align: left;">
@@ -45,12 +41,16 @@
45 41
             <td width="140" style="border:none;text-align: left;">
46 42
               <div>
47 43
                 <label-box
48
-                  showValue="住院"
49
-                  :isChecked="patientInfo_source_1 ? true : false"
44
+                  showValue="门诊"
45
+                  :isChecked="
46
+                    receiverTreatmentAccess.condition == 2 ? true : false
47
+                  "
50 48
                 ></label-box>
51 49
                 <label-box
52
-                  showValue="门诊"
53
-                  :isChecked="patientInfo_source_2 ? true : false"
50
+                  showValue="住院"
51
+                  :isChecked="
52
+                    receiverTreatmentAccess.condition == 1 ? true : false
53
+                  "
54 54
                 ></label-box>
55 55
               </div>
56 56
             </td>
@@ -70,9 +70,7 @@
70 70
             <!-- <td width="1"></td> -->
71 71
             <td width="50" style="border:none">床位号:</td>
72 72
             <td width="80" style="border-left:none;text-align: left;">
73
-              <div>
74
-                {{ patientInfo.dialysis_no }}
75
-              </div>
73
+              <div>{{ patientInfo.dialysis_no }}</div>
76 74
             </td>
77 75
           </tr>
78 76
           <tr style="text-align:left">
@@ -109,8 +107,8 @@
109 107
                 "
110 108
                 showValue="后稀释"
111 109
               ></label-box>
112
-              <span
113
-                >,置换量
110
+              <span>
111
+                ,置换量
114 112
                 <span style="width:50px;display: inline-block;">
115 113
                   {{
116 114
                     prescription.displace_liqui_value
@@ -118,35 +116,54 @@
118 116
                       : "/"
119 117
                   }}
120 118
                 </span>
121
-                L</span
122
-              >
119
+                L
120
+              </span>
123 121
124 122
               <label-box
125
-                :isChecked="
126
-                  prescription.mode_id == 3
127
-                    ? true
128
-                    : prescription.mode_id == 4
129
-                    ? true
130
-                    : prescription.mode_id == 5
131
-                    ? true
132
-                    : false
133
-                "
123
+                :isChecked="prescription.mode_id > 2 ? true : false"
134 124
                 showValue="其他:"
135 125
               ></label-box>
136
-              <span v-if="prescription.mode_id == 3">
137
-                {{ prescription.mode_id == 3 ? "HD+HP" : "" }}
138
-              </span>
139
-              <span v-if="prescription.mode_id == 4">
140
-                {{ prescription.mode_id == 4 ? "HP" : "" }}
141
-              </span>
142
-              <span v-if="prescription.mode_id == 5">
143
-                {{ prescription.mode_id == 5 ? "HF" : "" }}
144
-              </span>
126
+              <span v-if="prescription.mode_id == 3">{{
127
+                prescription.mode_id == 3 ? "HD+HP" : ""
128
+              }}</span>
129
+              <span v-if="prescription.mode_id == 4">{{
130
+                prescription.mode_id == 4 ? "HP" : ""
131
+              }}</span>
132
+              <span v-if="prescription.mode_id == 5">{{
133
+                prescription.mode_id == 5 ? "HF" : ""
134
+              }}</span>
135
+              <span v-if="prescription.mode_id == 6">{{
136
+                prescription.mode_id == 6 ? "SCUF" : ""
137
+              }}</span>
138
+              <span v-if="prescription.mode_id == 7">{{
139
+                prescription.mode_id == 7 ? "IUF" : ""
140
+              }}</span>
141
+              <span v-if="prescription.mode_id == 8">{{
142
+                prescription.mode_id == 8 ? "HFHD" : ""
143
+              }}</span>
144
+              <span v-if="prescription.mode_id == 9">{{
145
+                prescription.mode_id == 9 ? "HFHD+HP" : ""
146
+              }}</span>
147
+              <span v-if="prescription.mode_id == 10">{{
148
+                prescription.mode_id == 10 ? "PHF" : ""
149
+              }}</span>
150
+              <span v-if="prescription.mode_id == 11">{{
151
+                prescription.mode_id == 11 ? "HFR" : ""
152
+              }}</span>
153
+              <span v-if="prescription.mode_id == 12">{{
154
+                prescription.mode_id == 12 ? "HDF+HP" : ""
155
+              }}</span>
156
+              <span v-if="prescription.mode_id == 13">{{
157
+                prescription.mode_id == 13 ? "CRRT" : ""
158
+              }}</span>
159
+              <span v-if="prescription.mode_id == 14">{{
160
+                prescription.mode_id == 14 ? "腹水回输" : ""
161
+              }}</span>
145 162
             </td>
146 163
             <td colspan="3" style="border-left:1px solid #000;padding-left:5px">
147 164
               治疗时间:
148
-              <span
149
-                >&nbsp;{{
165
+              <span>
166
+                &nbsp;{{
150 167
                   prescription.dialysis_duration_hour
151 168
                     ? prescription.dialysis_duration_hour
152 169
                     : "0"
@@ -154,13 +171,14 @@
154 171
                   prescription.dialysis_duration_minute
155 172
                     ? prescription.dialysis_duration_minute
156 173
                     : "0"
157
-                }}分钟</span
158
-              >
174
+                }}分钟
175
+              </span>
159 176
             </td>
160 177
           </tr>
161 178
           <tr style="text-align:left">
162 179
             <td colspan="11" style="padding-left:5px">
163
-              治疗抗凝:<label-box
180
+              治疗抗凝:
181
+              <label-box
164 182
                 :isChecked="
165 183
                   prescription.anticoagulant == '低分子肝素钙'
166 184
                     ? true
@@ -170,26 +188,32 @@
170 188
                 "
171 189
                 showValue="低分子肝素:"
172 190
               ></label-box>
173
-              <span style="width:50px;display: inline-block;">{{
174
-                prescription.anticoagulant_zongliang &&
175
-                (prescription.anticoagulant == "低分子肝素钙" ||
176
-                  prescription.anticoagulant == "低分子肝素钠")
177
-                  ? prescription.anticoagulant_zongliang
178
-                  : ""
179
-              }}</span
191
+              <span style="width:50px;display: inline-block;">
192
+                {{
193
+                  prescription.anticoagulant_zongliang &&
194
+                  (prescription.anticoagulant == "低分子肝素钙" ||
195
+                    prescription.anticoagulant == "低分子肝素钠")
196
+                    ? prescription.anticoagulant_zongliang
197
+                    : ""
198
+                }} </span
180 199
               >iu&nbsp;
181 200
               <label-box
182 201
                 :isChecked="
183 202
                   prescription.anticoagulant == '普通肝素' ? true : false
184 203
                 "
185 204
                 showValue="普通肝素:"
186
-              ></label-box>
187
-              首剂:<span style="width:35px;display: inline-block;">{{
188
-                prescription.anticoagulant_shouji &&
189
-                prescription.anticoagulant == "普通肝素"
190
-                  ? prescription.anticoagulant_shouji
191
-                  : ""
192
-              }}</span>
205
+              ></label-box
206
+              >首剂:
207
+              <span style="width:35px;display: inline-block;">
208
+                {{
209
+                  prescription.anticoagulant_shouji &&
210
+                  (prescription.anticoagulant != "低分子肝素钙" &&
211
+                    prescription.anticoagulant != "低分子肝素钠") &&
212
+                  prescription.anticoagulant == "普通肝素"
213
+                    ? prescription.anticoagulant_shouji
214
+                    : ""
215
+                }}
216
+              </span>
193 217
               <span v-if="prescription.anticoagulant == '枸橼酸钠'">mg</span>
194 218
               <span v-if="prescription.anticoagulant == '阿加曲班'">mg</span>
195 219
               <span v-if="prescription.anticoagulant == '低分子肝素'">iu</span>
@@ -199,12 +223,16 @@
199 223
                 >iu</span
200 224
               >
201 225
               <span v-if="prescription.anticoagulant == '低分子肝素钠'">iu</span
202
-              >&nbsp; 追加:<span style="width:35px;display: inline-block;">{{
203
-                prescription.anticoagulant_weichi
204
-                  ? prescription.anticoagulant_weichi
205
-                  : ""
206
-              }}</span
207
-              ><span v-if="prescription.anticoagulant == '枸橼酸钠'">ml/h</span>
226
+              >&nbsp; 追加:
227
+              <span style="width:35px;display: inline-block;">
228
+                {{
229
+                  prescription.anticoagulant_weichi &&
230
+                  prescription.anticoagulant == "普通肝素"
231
+                    ? prescription.anticoagulant_weichi
232
+                    : ""
233
+                }}
234
+              </span>
235
+              <span v-if="prescription.anticoagulant == '枸橼酸钠'">ml/h</span>
208 236
               <span v-if="prescription.anticoagulant == '阿加曲班'">mg/h</span>
209 237
               <span v-if="prescription.anticoagulant == '低分子肝素'"
210 238
                 >iu/h</span
@@ -217,14 +245,16 @@
217 245
               <span v-if="prescription.anticoagulant == '低分子肝素钠'"
218 246
                 >iu/h</span
219 247
               >
220
-              &nbsp; 总量:<span style="width:50px;display: inline-block;">{{
221
-                prescription.anticoagulant_zongliang &&
222
-                (prescription.anticoagulant != "低分子肝素钙" ||
223
-                  prescription.anticoagulant == "低分子肝素钠")
224
-                  ? prescription.anticoagulant_zongliang
225
-                  : ""
226
-              }}</span
227
-              ><span v-if="prescription.anticoagulant == '枸橼酸钠'">mg</span>
248
+              &nbsp; 总量:
249
+              <span style="width:50px;display: inline-block;">
250
+                {{
251
+                  prescription.anticoagulant_zongliang &&
252
+                  prescription.anticoagulant == "普通肝素"
253
+                    ? prescription.anticoagulant_zongliang
254
+                    : ""
255
+                }}
256
+              </span>
257
+              <span v-if="prescription.anticoagulant == '枸橼酸钠'">mg</span>
228 258
               <span v-if="prescription.anticoagulant == '阿加曲班'">mg</span>
229 259
               <span v-if="prescription.anticoagulant == '低分子肝素'">iu</span>
230 260
               <span v-if="prescription.anticoagulant == '普通肝素'">iu</span>
@@ -252,15 +282,18 @@
252 282
           </tr>
253 283
           <tr style="text-align:left">
254 284
             <td colspan="7" style="padding-left:5px">
255
-              处方脱水量:<span style="width:50px;display: inline-block;">{{
256
-                prescription.target_ultrafiltration
257
-                  ? prescription.target_ultrafiltration
258
-                  : ""
259
-              }}</span
260
-              >L; 透析液流量:<span style="width:50px;display: inline-block;">
285
+              处方脱水量:
286
+              <span style="width:50px;display: inline-block;">
287
+                {{
288
+                  prescription.target_ultrafiltration
289
+                    ? prescription.target_ultrafiltration
290
+                    : ""
291
+                }} </span
292
+              >L; 透析液流量:
293
+              <span style="width:50px;display: inline-block;">
261 294
                 {{
262 295
                   prescription.dialysate_flow ? prescription.dialysate_flow : ""
263
-                }}</span
296
+                }} </span
264 297
               >ml/min;
265 298
             </td>
266 299
             <td
@@ -268,14 +301,14 @@
268 301
               style="padding-left:5px;border-left:1px solid #000;padding-left:5px"
269 302
             >
270 303
               医师签名:
271
-              <span v-if="setAdminUserES(prescription.creater) == ''">{{
272
-                getAdminUser(prescription.creater)
273
-              }}</span>
304
+              <span v-if="setAdminUserES(prescription.creater) == ''">
305
+                {{ getAdminUser(prescription.creater) }}
306
+              </span>
274 307
               <img
275 308
                 class="es-img"
276 309
                 :src="setAdminUserES(prescription.creater)"
277
-                alt=""
278
-                srcset=""
310
+                alt
311
+                srcset
279 312
                 v-else
280 313
               />
281 314
             </td>
@@ -300,17 +333,18 @@
300 333
               colspan="7"
301 334
               style="padding-left:5px;border-left:1px solid #000;"
302 335
             >
303
-              透析液:钾:<span style="width:40px;display: inline-block;">{{
304
-                prescription.kalium
336
+              透析液:钾:
337
+              <span style="width:40px;display: inline-block;">
338
+                {{ prescription.kalium }} </span
339
+              >mmol/L&nbsp; 钙:
340
+              <span style="width:40px;display: inline-block;">{{
341
+                prescription.calcium
305 342
               }}</span
306
-              >mmol/L&nbsp; 钙:<span
307
-                style="width:40px;display: inline-block;"
308
-                >{{ prescription.calcium }}</span
309
-              >mmol/L&nbsp; 碳酸氢根:<span
310
-                style="width:40px;display: inline-block;"
311
-                >{{
343
+              >mmol/L&nbsp; 碳酸氢根:
344
+              <span style="width:40px;display: inline-block;">
345
+                {{
312 346
                   prescription.bicarbonate ? prescription.bicarbonate : ""
313
-                }}</span
347
+                }} </span
314 348
               >mmol/L
315 349
             </td>
316 350
           </tr>
@@ -319,8 +353,7 @@
319 353
               血管通路:
320 354
               <label-box
321 355
                 :isChecked="
322
-                  predialysis.blood_access_part_opera_name.indexOf('自体内瘘') >
323
-                  -1
356
+                  predialysis.blood_access_part_opera_name == '内瘘'
324 357
                     ? true
325 358
                     : false
326 359
                 "
@@ -360,28 +393,34 @@
360 393
               >&nbsp;
361 394
               <label-box
362 395
                 :isChecked="
363
-                  predialysis.blood_access_part_opera_name.indexOf('自体内瘘') >
396
+                  predialysis.blood_access_part_opera_name.indexOf('人造血管') >
364 397
                   -1
365 398
                     ? true
399
+                    : predialysis.blood_access_part_opera_name.indexOf(
400
+                        '移植血管'
401
+                      ) > -1
402
+                    ? true
366 403
                     : false
367 404
                 "
368 405
                 showValue="其他"
369 406
               ></label-box
370 407
               >&nbsp;
371 408
               <span style="width:50px;display: inline-block;"></span>
372
-              穿刺者:<span style="width:50px;display: inline-block;">
409
+              穿刺者:
410
+              <span style="width:50px;display: inline-block;">
373 411
                 <span
374 412
                   v-if="
375 413
                     setAdminUserES(
376 414
                       dialysisOrder == null ? 0 : dialysisOrder.puncture_nurse
377 415
                     ) == ''
378 416
                   "
379
-                  >{{
417
+                >
418
+                  {{
380 419
                     getAdminUser(
381 420
                       dialysisOrder == null ? 0 : dialysisOrder.puncture_nurse
382 421
                     )
383
-                  }}</span
384
-                >
422
+                  }}
423
+                </span>
385 424
                 <img
386 425
                   class="es-img"
387 426
                   :src="
@@ -389,8 +428,8 @@
389 428
                       dialysisOrder == null ? 0 : dialysisOrder.puncture_nurse
390 429
                     )
391 430
                   "
392
-                  alt=""
393
-                  srcset=""
431
+                  alt
432
+                  srcset
394 433
                   v-else
395 434
                 />
396 435
               </span>
@@ -733,7 +772,7 @@
733 772
             </td>
734 773
           </tr>
735 774
         </tbody>
736
-      </table> -->
775
+      </table>-->
737 776
       <table class="print-table" border="1">
738 777
         <tr style="text-align:center">
739 778
           <td colspan="14" style="margin-left:15px;font-size:20px">
@@ -762,7 +801,7 @@
762 801
           </th>
763 802
           <th style="width:70px">
764 803
             <p style="height:20px;line-height:20px">脱水量</p>
765
-            <p style="height:20px;line-height:20px">L</p>
804
+            <p style="height:20px;line-height:20px">ml</p>
766 805
           </th>
767 806
           <th style="width:30px">
768 807
             <p style="height:20px;line-height:20px">T</p>
@@ -781,7 +820,10 @@
781 820
             <p style="height:20px;line-height:20px">mmHg</p>
782 821
           </th>
783 822
           <th style="width:50px">
784
-            <p style="height:20px;line-height:20px">Spo<sub>2</sub></p>
823
+            <p style="height:20px;line-height:20px">
824
+              Spo
825
+              <sub>2</sub>
826
+            </p>
785 827
             <p style="height:20px;line-height:20px">%</p>
786 828
           </th>
787 829
           <th style="width:333px">
@@ -802,22 +844,18 @@
802 844
                 monitor.transmembrane_pressure
803 845
                   ? monitor.transmembrane_pressure
804 846
                   : "0"
805
-              }}</span
806
-            >
847
+              }}
848
+            </span>
807 849
           </td>
808 850
           <td>
809 851
             <span v-if="getTime(monitor.operate_time) != ''">
810
-              {{
811
-                monitor.arterial_pressure ? monitor.arterial_pressure : "0"
812
-              }}</span
813
-            >
852
+              {{ monitor.venous_pressure ? monitor.venous_pressure : "0" }}
853
+            </span>
814 854
           </td>
815 855
           <td>
816 856
             <span v-if="getTime(monitor.operate_time) != ''">
817
-              {{
818
-                monitor.blood_flow_volume ? monitor.blood_flow_volume : "0"
819
-              }}</span
820
-            >
857
+              {{ monitor.blood_flow_volume ? monitor.blood_flow_volume : "0" }}
858
+            </span>
821 859
           </td>
822 860
           <td>
823 861
             <span v-if="getTime(monitor.operate_time) != ''">
@@ -828,20 +866,20 @@
828 866
               }}
829 867
             </span>
830 868
           </td>
831
-          <td>
832
-            <span v-if="getTime(monitor.operate_time) != ''">
833
-              {{ monitor.temperature ? monitor.temperature : "0" }}
834
-            </span>
835
-          </td>
836 869
           <td>
837 870
             <span v-if="getTime(monitor.operate_time) != ''">{{
838
-              monitor.pulse_frequency ? monitor.pulse_frequency : "0"
871
+              monitor.temperature ? monitor.temperature : "0"
839 872
             }}</span>
840 873
           </td>
841 874
           <td>
842
-            <span v-if="getTime(monitor.operate_time) != ''">{{
843
-              monitor.breathing_rate ? monitor.breathing_rate : "0"
844
-            }}</span>
875
+            <span v-if="getTime(monitor.operate_time) != ''">
876
+              {{ monitor.pulse_frequency ? monitor.pulse_frequency : "0" }}
877
+            </span>
878
+          </td>
879
+          <td>
880
+            <span v-if="getTime(monitor.operate_time) != ''">
881
+              {{ monitor.breathing_rate ? monitor.breathing_rate : "0" }}
882
+            </span>
845 883
           </td>
846 884
           <td>
847 885
             <span v-if="getTime(monitor.operate_time) != ''">
@@ -859,11 +897,13 @@
859 897
             </span>
860 898
           </td>
861 899
           <td>
862
-            <span v-if="getTime(monitor.operate_time) != ''">{{
863
-              monitor.blood_oxygen_saturation
864
-                ? monitor.blood_oxygen_saturation
865
-                : "0"
866
-            }}</span>
900
+            <span v-if="getTime(monitor.operate_time) != ''">
901
+              {{
902
+                monitor.blood_oxygen_saturation
903
+                  ? monitor.blood_oxygen_saturation
904
+                  : "0"
905
+              }}
906
+            </span>
867 907
           </td>
868 908
           <td>
869 909
             <span v-if="monitor.symptom || monitor.dispose || monitor.result">
@@ -874,14 +914,14 @@
874 914
           </td>
875 915
           <td width="0" style="border:none;visibility: hidden;padding:0"></td>
876 916
           <td>
877
-            <span v-if="setAdminUserES(monitor.monitoring_nurse) == ''">{{
878
-              getAdminUser(monitor.monitoring_nurse)
879
-            }}</span>
917
+            <span v-if="setAdminUserES(monitor.monitoring_nurse) == ''">
918
+              {{ getAdminUser(monitor.monitoring_nurse) }}
919
+            </span>
880 920
             <img
881 921
               class="es-img"
882 922
               :src="setAdminUserES(monitor.monitoring_nurse)"
883
-              alt=""
884
-              srcset=""
923
+              alt
924
+              srcset
885 925
               v-else
886 926
             />
887 927
           </td>
@@ -891,22 +931,12 @@
891 931
       <table class="print-table" border="1">
892 932
         <tbody>
893 933
           <tr>
894
-            <td style="width:130px;height:40px">
895
-              时间
896
-            </td>
897
-            <td colspan="5" style="width:560px;height:40px">
898
-              医嘱执行记录
899
-            </td>
900
-            <td colspan="2" style="width:110px;height:40px">
901
-              医生签名
902
-            </td>
934
+            <td style="width:130px;height:40px">时间</td>
935
+            <td colspan="5" style="width:560px;height:40px">医嘱执行记录</td>
936
+            <td colspan="2" style="width:110px;height:40px">医生签名</td>
903 937
 
904
-            <td colspan="2" style="width:108px;height:40px">
905
-              执行
906
-            </td>
907
-            <td colspan="3" style="width:130px;height:40px">
908
-              执行时间
909
-            </td>
938
+            <td colspan="2" style="width:108px;height:40px">执行</td>
939
+            <td colspan="3" style="width:130px;height:40px">执行时间</td>
910 940
             <!-- <td style="width:60px;height:60px">
911 941
               <p style="height:20px;line-height:20px">核对</p>
912 942
             </td>
@@ -919,7 +949,7 @@
919 949
                   ? assessmentafter.weight_after
920 950
                   : "0"
921 951
               }}kg
922
-            </td> -->
952
+            </td>-->
923 953
           </tr>
924 954
 
925 955
           <tr v-for="(advice, advice_index) in tableAdvice" style="height:30px">
@@ -932,39 +962,39 @@
932 962
               >
933 963
               <span v-if="advice.prescribing_number">
934 964
                 &nbsp;&nbsp; {{ advice.prescribing_number
935
-                }}{{ advice.prescribing_number_unit }}</span
936
-              >
937
-              <span v-if="advice.single_dose != 0">
938
-                {{ advice.single_dose }}{{ advice.single_dose_unit }}</span
965
+                }}{{ advice.prescribing_number_unit }}
966
+              </span>
967
+              <span v-if="advice.single_dose != 0"
968
+                >{{ advice.single_dose }}{{ advice.single_dose_unit }}</span
939 969
               >
940
-              <span v-if="advice.parent_id == 0">{{
941
-                advice.delivery_way
942
-              }}</span>
943
-              <span v-if="advice.parent_id == 0">{{
944
-                advice.execution_frequency
945
-              }}</span>
970
+              <span v-if="advice.parent_id == 0">
971
+                {{ advice.delivery_way }}
972
+              </span>
973
+              <span v-if="advice.parent_id == 0">
974
+                {{ advice.execution_frequency }}
975
+              </span>
946 976
             </td>
947 977
             <td colspan="2">
948
-              <span v-if="setAdminUserES(advice.advice_doctor) == ''">{{
949
-                getAdminUser(advice.advice_doctor)
950
-              }}</span>
978
+              <span v-if="setAdminUserES(advice.advice_doctor) == ''">
979
+                {{ getAdminUser(advice.advice_doctor) }}
980
+              </span>
951 981
               <img
952 982
                 style="height:30px;"
953 983
                 :src="setAdminUserES(advice.advice_doctor)"
954
-                alt=""
955
-                srcset=""
984
+                alt
985
+                srcset
956 986
                 v-else
957 987
               />
958 988
             </td>
959 989
             <td colspan="2" style="height:40px">
960
-              <span v-if="setAdminUserES(advice.execution_staff) == ''">{{
961
-                getAdminUser(advice.execution_staff)
962
-              }}</span>
990
+              <span v-if="setAdminUserES(advice.execution_staff) == ''">
991
+                {{ getAdminUser(advice.execution_staff) }}
992
+              </span>
963 993
               <img
964 994
                 style="height:30px;"
965 995
                 :src="setAdminUserES(advice.execution_staff)"
966
-                alt=""
967
-                srcset=""
996
+                alt
997
+                srcset
968 998
                 v-else
969 999
               />
970 1000
             </td>
@@ -1007,7 +1037,7 @@
1007 1037
             <td v-if="advice_index === 5">透后体重:</td>
1008 1038
             <td v-if="advice_index === 5">
1009 1039
               {{ afterdialysis.weight_after }}kg
1010
-            </td> -->
1040
+            </td>-->
1011 1041
           </tr>
1012 1042
         </tbody>
1013 1043
       </table>
@@ -1017,9 +1047,11 @@
1017 1047
             <td width="100" style="padding-left:5px;border:none">透前体重:</td>
1018 1048
             <td width="120" style="border:none;text-align:left;border:none;">
1019 1049
               <div>
1020
-                &nbsp;<span style="width:70px;display:inline-block">{{
1021
-                  predialysis.weight_before ? predialysis.weight_before : ""
1022
-                }}</span
1050
+                &nbsp;
1051
+                <span style="width:70px;display:inline-block">
1052
+                  {{
1053
+                    predialysis.weight_before ? predialysis.weight_before : ""
1054
+                  }} </span
1023 1055
                 >Kg
1024 1056
               </div>
1025 1057
             </td>
@@ -1033,9 +1065,10 @@
1033 1065
             </td>
1034 1066
             <td width="180" style="text-align:left;border:none;">
1035 1067
               <div>
1036
-                <span style="width:70px;display:inline-block;border:none;">{{
1037
-                  predialysis.dry_weight ? predialysis.dry_weight : ""
1038
-                }}</span
1068
+                <span style="width:70px;display:inline-block;border:none;">
1069
+                  {{
1070
+                    predialysis.dry_weight ? predialysis.dry_weight : ""
1071
+                  }} </span
1039 1072
                 >Kg
1040 1073
               </div>
1041 1074
             </td>
@@ -1049,11 +1082,12 @@
1049 1082
             </td>
1050 1083
             <td width="130" style="text-align:left;border:none;">
1051 1084
               <div>
1052
-                <span style="width:70px;display:inline-block">{{
1053
-                  afterdialysis.actual_ultrafiltration
1054
-                    ? afterdialysis.actual_ultrafiltration
1055
-                    : "/"
1056
-                }}</span
1085
+                <span style="width:70px;display:inline-block">
1086
+                  {{
1087
+                    afterdialysis.actual_ultrafiltration
1088
+                      ? afterdialysis.actual_ultrafiltration
1089
+                      : "/"
1090
+                  }} </span
1057 1091
                 >L
1058 1092
               </div>
1059 1093
             </td>
@@ -1065,14 +1099,12 @@
1065 1099
             </td>
1066 1100
             <td width="180" style="text-align:left;border:none;">
1067 1101
               <div>
1068
-                <span style="width:70px;display:inline-block">{{
1069
-                  afterdialysis.weight_after
1070
-                    ? parseFloat(
1071
-                        afterdialysis.weight_after -
1072
-                          afterdialysis.additional_weight
1073
-                      ).toFixed(1)
1074
-                    : ""
1075
-                }}</span
1102
+                <span style="width:70px;display:inline-block">
1103
+                  {{
1104
+                    afterdialysis.weight_after
1105
+                      ? parseFloat(afterdialysis.weight_after).toFixed(1)
1106
+                      : ""
1107
+                  }} </span
1076 1108
                 >Kg
1077 1109
               </div>
1078 1110
             </td>
@@ -1094,36 +1126,34 @@
1094 1126
             </td>
1095 1127
             <td width="100" style="text-align:left;border:none;">
1096 1128
               <div>
1097
-                <span style="width:100px;display:inline-block;border:none;">{{
1098
-                  afterdialysis.cruor ? afterdialysis.cruor : ""
1099
-                }}</span>
1129
+                <span style="width:100px;display:inline-block;border:none;">
1130
+                  {{ afterdialysis.cruor ? afterdialysis.cruor : "" }}
1131
+                </span>
1100 1132
               </div>
1101 1133
             </td>
1102 1134
             <!-- <td width="10" style="border:none;"></td> -->
1103 1135
 
1104
-            <td width="70" style="border:none;padding-left:5px;">
1105
-              内瘘:
1106
-            </td>
1136
+            <td width="70" style="border:none;padding-left:5px;">内瘘:</td>
1107 1137
             <td
1108 1138
               width="200"
1109 1139
               style="text-align:left;border:none;line-height: 30px;"
1110 1140
             >
1111 1141
               <div>
1112
-                <span style="width:200px;display:inline-block">{{
1113
-                  afterdialysis.internal_fistula
1114
-                    ? afterdialysis.internal_fistula
1115
-                    : ""
1116
-                }}</span>
1142
+                <span style="width:200px;display:inline-block">
1143
+                  {{
1144
+                    afterdialysis.internal_fistula
1145
+                      ? afterdialysis.internal_fistula
1146
+                      : ""
1147
+                  }}
1148
+                </span>
1117 1149
               </div>
1118 1150
             </td>
1119
-            <td width="70" style="border:none;padding-left:5px">
1120
-              导管:
1121
-            </td>
1151
+            <td width="70" style="border:none;padding-left:5px">导管:</td>
1122 1152
             <td width="180" style="text-align:left;border:none;">
1123 1153
               <div>
1124
-                <span style="width:180px;display:inline-block">{{
1125
-                  afterdialysis.catheter ? afterdialysis.catheter : ""
1126
-                }}</span>
1154
+                <span style="width:180px;display:inline-block">
1155
+                  {{ afterdialysis.catheter ? afterdialysis.catheter : "" }}
1156
+                </span>
1127 1157
               </div>
1128 1158
             </td>
1129 1159
           </tr>
@@ -1326,7 +1356,7 @@
1326 1356
               </td>
1327 1357
             </tr>
1328 1358
           </table>
1329
-        </td> -->
1359
+        </td>-->
1330 1360
         <tr style="height:100px;text-align:left;border:none;">
1331 1361
           <td style="padding-left:5px;border:none">
1332 1362
             治疗小结:{{
@@ -1335,18 +1365,30 @@
1335 1365
           </td>
1336 1366
         </tr>
1337 1367
         <tr style="height:40px">
1338
-          <td
1339
-            rowspan="11"
1340
-            style="border:none;text-align:right;padding-right:100px;height:40px"
1341
-          >
1368
+          <td rowspan="11" style="border:none;text-align:right;height:40px">
1342 1369
             医生签名
1343 1370
             <span style="display: inline-block;width:100px;text-align: left;">
1344 1371
               &nbsp;
1345 1372
               <span v-if="doctorForm.url === ''">{{ doctorForm.doctor }}</span>
1346 1373
               <span v-if="doctorForm.url !== ''">
1347
-                <img style="height:20px" :src="doctorForm.url" />
1374
+                <img class="es-img" :src="doctorForm.url" />
1348 1375
               </span>
1349 1376
             </span>
1377
+            核对护士
1378
+            <span style="display: inline-block;width:100px;text-align: left;">
1379
+              &nbsp;
1380
+              <span
1381
+                v-if="setAdminUserES(check == null ? 0 : check.modifier) == ''"
1382
+                >{{ getAdminUser(check == null ? 0 : check.modifier) }}</span
1383
+              >
1384
+              <img
1385
+                style="height:20px;"
1386
+                :src="setAdminUserES(check == null ? 0 : check.modifier)"
1387
+                alt
1388
+                srcset
1389
+                v-else
1390
+              />
1391
+            </span>
1350 1392
             护士签名
1351 1393
             <span style="display: inline-block;width:100px;text-align: left;">
1352 1394
               &nbsp;
@@ -1358,8 +1400,8 @@
1358 1400
                 <img
1359 1401
                   class="es-img"
1360 1402
                   :src="setAdminUserES(doctor_advices[0].execution_staff)"
1361
-                  alt=""
1362
-                  srcset=""
1403
+                  alt
1404
+                  srcset
1363 1405
                   v-else
1364 1406
                 />
1365 1407
               </p>
@@ -1370,7 +1412,7 @@
1370 1412
 
1371 1413
       <!-- <div>
1372 1414
         注:透析器凝血评价标准:"0级"&nbsp;无凝血或数条纤维束凝血,"Ⅰ级"&nbsp;少于10%纤维凝血,"Ⅱ级"&nbsp;少于50%纤维凝血,"Ⅲ级"&nbsp;大于50%纤维凝血
1373
-      </div> -->
1415
+      </div>-->
1374 1416
     </div>
1375 1417
   </div>
1376 1418
 </template>

+ 4 - 4
src/xt_pages/dialysis/template/dialysisPrintOrderTwo.vue Ver arquivo

@@ -1248,7 +1248,7 @@
1248 1248
                   <div class="inline_block">
1249 1249
1250 1250
                     <check-box
1251
-                      :isChecked="
1251
+                      :checked="
1252 1252
                         afterdialysis.complication.indexOf('头晕') > -1
1253 1253
                           ? true
1254 1254
                           : false
@@ -1256,7 +1256,7 @@
1256 1256
                       text="头晕"
1257 1257
                     ></check-box>
1258 1258
                     <check-box
1259
-                      :isChecked="
1259
+                      :checked="
1260 1260
                         afterdialysis.complication.indexOf('头痛') > -1
1261 1261
                           ? true
1262 1262
                           : false
@@ -1264,7 +1264,7 @@
1264 1264
                       text="头痛"
1265 1265
                     ></check-box>
1266 1266
                     <check-box
1267
-                      :isChecked="
1267
+                      :checked="
1268 1268
                         afterdialysis.complication.indexOf('呕吐') > -1
1269 1269
                           ? true
1270 1270
                           : false
@@ -1272,7 +1272,7 @@
1272 1272
                       text="呕吐"
1273 1273
                     ></check-box>
1274 1274
                     <check-box
1275
-                      :isChecked="
1275
+                      :checked="
1276 1276
                         afterdialysis.complication.indexOf('低血压') > -1
1277 1277
                           ? true
1278 1278
                           : false

+ 340 - 0
src/xt_pages/qcd/basicInformationAnalysis.vue Ver arquivo

@@ -0,0 +1,340 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <div class="cell clearfix">
8
+        <label class="title">
9
+          <span class="name">转归状态</span> :
10
+        </label>
11
+        <div class="time">
12
+          <ul class>
13
+            <li
14
+              :class="item.state == stateType ? 'active' : ''"
15
+              @click="selectLapseTo(item.state)"
16
+              v-for="item in month"
17
+              :key="item.value"
18
+            >{{ item.label }}</li>
19
+          </ul>
20
+        </div>
21
+        <label class="title">
22
+          <span class="name">日期查询</span> :
23
+        </label>
24
+        <el-date-picker
25
+          v-model="listQuery.start_time"
26
+          prefix-icon="el-icon-date"
27
+          @change="changeTime"
28
+          :editable="false"
29
+          style="width: 196px;"
30
+          type="date"
31
+          placeholder="选择日期时间"
32
+          align="right"
33
+          format="yyyy-MM-dd"
34
+          value-format="yyyy-MM-dd"
35
+        ></el-date-picker>
36
+        <span class>-</span>
37
+        <el-date-picker
38
+          v-model="listQuery.end_time"
39
+          prefix-icon="el-icon-date"
40
+          @change="changeEndTime"
41
+          :editable="false"
42
+          style="width: 196px;"
43
+          type="date"
44
+          placeholder="选择日期时间"
45
+          align="right"
46
+          format="yyyy-MM-dd"
47
+          value-format="yyyy-MM-dd"
48
+        ></el-date-picker>
49
+      </div>
50
+      <div class="cell clearfix" style="align-items:normal">
51
+        <div style="float:left">
52
+          <div class="infoBox">
53
+            <div class="infoOne">
54
+              <div class="titleBox">
55
+                <span class="point"></span>
56
+                <p class="infoTitle">透析总量(100次)</p>
57
+              </div>
58
+              <div class="borderBox">
59
+                <p>HD:64次(64%)</p>
60
+                <el-progress :percentage="70"></el-progress>
61
+                <p>HD:64次(64%)</p>
62
+                <el-progress :percentage="70"></el-progress>
63
+                <p>HD:64次(64%)</p>
64
+                <el-progress :percentage="70"></el-progress>
65
+                <p>HD:64次(64%)</p>
66
+                <el-progress :percentage="70"></el-progress>
67
+                <p>HD:64次(64%)</p>
68
+                <el-progress :percentage="70"></el-progress>
69
+                <p>HD:64次(64%)</p>
70
+                <el-progress :percentage="70"></el-progress>
71
+                <p>HD:64次(64%)</p>
72
+                <el-progress :percentage="70"></el-progress>
73
+                <p>HD:64次(64%)</p>
74
+                <el-progress :percentage="70"></el-progress>
75
+                <p>HD:64次(64%)</p>
76
+                <el-progress :percentage="70"></el-progress>
77
+              </div>
78
+            </div>
79
+            <div class="infoOne">
80
+              <div class="titleBox">
81
+                <span class="point2"></span>
82
+                <p class="infoTitle">传染病统计</p>
83
+              </div>
84
+              <div class="borderBox2">
85
+                <p>无传染病:64人(64%)</p>
86
+                <el-progress :percentage="70"></el-progress>
87
+                <p>乙肝:64人(64%)</p>
88
+                <el-progress :percentage="70"></el-progress>
89
+              </div>
90
+            </div>
91
+          </div>
92
+        </div>
93
+        <div style="float:left">
94
+          <div class="infoBox">
95
+            <div class="infoOne">
96
+              <div class="titleBox">
97
+                <span class="point1"></span>
98
+                <p class="infoTitle">转归统计(总人数100人)</p>
99
+              </div>
100
+              <div class="borderBox1">
101
+                <p>留治:64人(64%)</p>
102
+                <el-progress :percentage="70"></el-progress>
103
+                <p>转出:64人(64%)</p>
104
+                <el-progress :percentage="70"></el-progress>
105
+              </div>
106
+            </div>
107
+            <div class="infoOne">
108
+              <div class="titleBox">
109
+                <span class="point2"></span>
110
+                <p class="infoTitle">男女比例</p>
111
+              </div>
112
+              <div class="borderBox2">
113
+                <p>男:64人(64%)</p>
114
+                <el-progress :percentage="70"></el-progress>
115
+                <p>女:64人(64%)</p>
116
+                <el-progress :percentage="70"></el-progress>
117
+              </div>
118
+            </div>
119
+            <div class="infoOne">
120
+              <div class="titleBox">
121
+                <span class="point"></span>
122
+                <p class="infoTitle">年龄统计</p>
123
+              </div>
124
+              <div class="borderBox">
125
+                <p>年龄&lt;20:64人(64%)</p>
126
+                <el-progress :percentage="70"></el-progress>
127
+                <p>20≤年龄≤30:64人(64%)</p>
128
+                <el-progress :percentage="70"></el-progress>
129
+                <p>30≤年龄≤40:64人(64%)</p>
130
+                <el-progress :percentage="70"></el-progress>
131
+                <p>其他:64人(64%)</p>
132
+                <el-progress :percentage="70"></el-progress>
133
+              </div>
134
+            </div>
135
+            <div class="infoOne">
136
+              <div class="titleBox">
137
+                <span class="point1"></span>
138
+                <p class="infoTitle">透龄统计</p>
139
+              </div>
140
+              <div class="borderBox1">
141
+                <p>透析龄&lt;12:64人(64%)</p>
142
+                <el-progress :percentage="70"></el-progress>
143
+                <p>12≤透析龄≤36:64人(64%)</p>
144
+                <el-progress :percentage="70"></el-progress>
145
+                <p>36≤透析龄≤60:64人(64%)</p>
146
+                <el-progress :percentage="70"></el-progress>
147
+                <p>透析龄 ≥60:64人(64%)</p>
148
+                <el-progress :percentage="70"></el-progress>
149
+              </div>
150
+            </div>
151
+          </div>
152
+        </div>
153
+      </div>
154
+    </div>
155
+  </div>
156
+</template>
157
+
158
+
159
+
160
+<script>
161
+import { GetOICData } from "@/api/qcd";
162
+import PieChart from "../qcd/components/BarChart";
163
+import { uParseTime } from "@/utils/tools";
164
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
165
+export default {
166
+  name: "dialysisTotal",
167
+  components: {
168
+    PieChart,
169
+    BreadCrumb
170
+  },
171
+  data() {
172
+    return {
173
+      crumbs: [
174
+        { path: false, name: "科室质控" },
175
+        { path: false, name: "基本信息统计" }
176
+      ],
177
+      listQuery: {
178
+        start_time: "",
179
+        end_time: "",
180
+        page: 1,
181
+        limit: 10
182
+      },
183
+      stateType: 0,
184
+      month: [
185
+        { value: 0, label: "本月", state: 0 },
186
+        { value: 1, label: "近三个月", state: 1 },
187
+        { value: 2, label: "近半年", state: 2 },
188
+        { value: 3, label: "近一年", state: 3 }
189
+      ]
190
+    };
191
+  },
192
+  created() {},
193
+  methods: {
194
+    changeTime() {},
195
+    changeEndTime(val) {
196
+      var time =
197
+        this.getTimestamp(val) - this.getTimestamp(this.listQuery.start_time);
198
+      if (time < 0) {
199
+        this.$message.error("结束时间不能小于开始时间");
200
+        this.listQuery.end_time = "";
201
+      } else {
202
+      }
203
+    },
204
+    selectLapseTo(state) {
205
+      this.stateType = state;
206
+      this.listQuery.state = state;
207
+    }
208
+  }
209
+};
210
+</script>
211
+
212
+ <style rel="stylesheet/scss" lang="scss" scoped>
213
+.infoBox {
214
+  display: flex;
215
+  flex-wrap: wrap;
216
+  .infoOne {
217
+    margin-right: 30px;
218
+    margin-top: 30px;
219
+    .titleBox {
220
+      display: flex;
221
+      align-items: center;
222
+    }
223
+    .point {
224
+      display: inline-block;
225
+      width: 7px;
226
+      height: 7px;
227
+      background: linear-gradient(
228
+        90deg,
229
+        rgba(169, 224, 243, 1),
230
+        rgba(159, 189, 252, 1)
231
+      );
232
+      border-radius: 50%;
233
+    }
234
+    .point1 {
235
+      width: 7px;
236
+      height: 7px;
237
+      background: linear-gradient(
238
+        90deg,
239
+        rgba(255, 215, 192, 1),
240
+        rgba(255, 153, 148, 1)
241
+      );
242
+      border-radius: 50%;
243
+    }
244
+    .point2 {
245
+      width: 7px;
246
+      height: 7px;
247
+      background: linear-gradient(
248
+        90deg,
249
+        rgba(215, 195, 253, 1),
250
+        rgba(179, 168, 247, 1)
251
+      );
252
+      border-radius: 50%;
253
+    }
254
+    .infoTitle {
255
+      font-size: 16px;
256
+      font-weight: bold;
257
+      margin-left: 5px;
258
+      color: #000;
259
+    }
260
+    .borderBox {
261
+      width: 340px;
262
+      min-height: 140px;
263
+      background: rgba(255, 255, 255, 1);
264
+      border: 1px solid rgba(229, 229, 229, 1);
265
+      border-radius: 10px;
266
+      padding: 0 14px 20px;
267
+      margin-top: 10px;
268
+      p {
269
+        font-size: 14px;
270
+        color: #000;
271
+        margin: 10px 0 3px;
272
+      }
273
+    }
274
+    .borderBox1 {
275
+      width: 340px;
276
+      min-height: 140px;
277
+      background: rgba(255, 255, 255, 1);
278
+      border: 1px solid rgba(229, 229, 229, 1);
279
+      border-radius: 10px;
280
+      padding: 0 14px 20px;
281
+      margin-top: 10px;
282
+      p {
283
+        font-size: 14px;
284
+        color: #000;
285
+        margin: 10px 0 3px;
286
+      }
287
+    }
288
+    .borderBox2 {
289
+      width: 340px;
290
+      min-height: 140px;
291
+      background: rgba(255, 255, 255, 1);
292
+      border: 1px solid rgba(229, 229, 229, 1);
293
+      border-radius: 10px;
294
+      padding: 0 14px 20px;
295
+      margin-top: 10px;
296
+      p {
297
+        font-size: 14px;
298
+        color: #000;
299
+        margin: 10px 0 3px;
300
+      }
301
+    }
302
+  }
303
+}
304
+</style>
305
+
306
+<style lang="scss">
307
+.infoBox {
308
+  .infoOne {
309
+    .borderBox {
310
+      .el-progress-bar__inner {
311
+        background: linear-gradient(
312
+          90deg,
313
+          rgba(169, 224, 243, 1),
314
+          rgba(159, 189, 252, 1)
315
+        );
316
+      }
317
+    }
318
+    .borderBox1 {
319
+      .el-progress-bar__inner {
320
+        background: linear-gradient(
321
+          90deg,
322
+          rgba(255, 215, 192, 1),
323
+          rgba(255, 153, 148, 1)
324
+        );
325
+      }
326
+    }
327
+    .borderBox2 {
328
+      .el-progress-bar__inner {
329
+        background: linear-gradient(
330
+          90deg,
331
+          rgba(215, 195, 253, 1),
332
+          rgba(179, 168, 247, 1)
333
+        );
334
+      }
335
+    }
336
+  }
337
+}
338
+</style>
339
+
340
+

+ 233 - 0
src/xt_pages/qcd/checkStatistical.vue Ver arquivo

@@ -0,0 +1,233 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <el-tabs v-model="tabActiveName" @tab-click="handleTabClick" style="margin-bottom:10px">
8
+        <el-tab-pane label="质控达标统计配置" name="control"></el-tab-pane>
9
+        <el-tab-pane label="检验检查统计配置" name="query"></el-tab-pane>
10
+      </el-tabs>
11
+      <el-row :gutter="20">
12
+        <el-col :span="2" :offset="22">
13
+          <el-button type="primary" class="newadd" @click="newDialog = true">新增</el-button>
14
+        </el-col>
15
+      </el-row>
16
+      <div class="configTable">
17
+        <el-table :data="tableData" border style="width: 100%">
18
+          <el-table-column prop="date" label="日期" width="180"></el-table-column>
19
+          <el-table-column prop="name" label="姓名" width="180"></el-table-column>
20
+          <el-table-column prop="address" label="地址"></el-table-column>
21
+          <el-table-column label="操作" width="180">
22
+            <template slot-scope="scope">
23
+              <el-button size="mini" type="primary" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
24
+              <el-button size="mini" type="danger" @click="handleDelete(scope.$index, scope.row)">删除</el-button>
25
+            </template>
26
+          </el-table-column>
27
+        </el-table>
28
+      </div>
29
+
30
+      <el-dialog title="新增" :visible.sync="newDialog">
31
+        <el-form :model="form">
32
+          <el-form-item label="检查大项" :label-width="formLabelWidth">
33
+            <el-select v-model="form.region" placeholder="请选择活动区域">
34
+              <el-option label="区域一" value="shanghai"></el-option>
35
+              <el-option label="区域二" value="beijing"></el-option>
36
+            </el-select>
37
+          </el-form-item>
38
+          <el-form-item label="检查频次(天)" :label-width="formLabelWidth">
39
+            <el-input style="width:200px" v-model="form.name"></el-input>
40
+          </el-form-item>
41
+          <el-form-item label="排序" :label-width="formLabelWidth">
42
+            <el-input style="width:200px" v-model="form.name"></el-input>
43
+          </el-form-item>
44
+        </el-form>
45
+        <div slot="footer" class="dialog-footer">
46
+          <el-button @click="newDialog = false">取 消</el-button>
47
+          <el-button type="primary" @click="newDialog = false">确 定</el-button>
48
+        </div>
49
+      </el-dialog>
50
+      <el-dialog title="编辑" :visible.sync="editDialog">
51
+        <el-form :model="form">
52
+          <el-form-item label="检查大项" :label-width="formLabelWidth">
53
+            <el-select v-model="form.region" placeholder="请选择活动区域">
54
+              <el-option label="区域一" value="shanghai"></el-option>
55
+              <el-option label="区域二" value="beijing"></el-option>
56
+            </el-select>
57
+          </el-form-item>
58
+          <el-form-item label="检查频次(天)" :label-width="formLabelWidth">
59
+            <el-input style="width:200px" v-model="form.name"></el-input>
60
+          </el-form-item>
61
+          <el-form-item label="排序" :label-width="formLabelWidth">
62
+            <el-input style="width:200px" v-model="form.name"></el-input>
63
+          </el-form-item>
64
+        </el-form>
65
+        <div slot="footer" class="dialog-footer">
66
+          <el-button @click="editDialog = false">取 消</el-button>
67
+          <el-button type="primary" @click="editDialog = false">确 定</el-button>
68
+        </div>
69
+      </el-dialog>
70
+    </div>
71
+  </div>
72
+</template>
73
+
74
+
75
+
76
+<script>
77
+import { GetOICData } from "@/api/qcd";
78
+import PieChart from "../qcd/components/BarChart";
79
+import { uParseTime } from "@/utils/tools";
80
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
81
+export default {
82
+  name: "dialysisTotal",
83
+  data() {
84
+    return {
85
+      crumbs: [
86
+        { path: false, name: "科室质控" },
87
+        { path: false, name: "统计配置" },
88
+        { path: false, name: "检验检查统计配置" }
89
+      ],
90
+      tabActiveName: "query",
91
+      tableData: [
92
+        {
93
+          date: "2016-05-02",
94
+          name: "王小虎",
95
+          address: "上海市普陀区金沙江路 1518 弄"
96
+        },
97
+        {
98
+          date: "2016-05-04",
99
+          name: "王小虎",
100
+          address: "上海市普陀区金沙江路 1517 弄"
101
+        },
102
+        {
103
+          date: "2016-05-01",
104
+          name: "王小虎",
105
+          address: "上海市普陀区金沙江路 1519 弄"
106
+        },
107
+        {
108
+          date: "2016-05-03",
109
+          name: "王小虎",
110
+          address: "上海市普陀区金沙江路 1516 弄"
111
+        }
112
+      ],
113
+      newDialog: false,
114
+      editDialog: false,
115
+      formLabelWidth: "120px",
116
+      form: {
117
+        name: "",
118
+        region: "",
119
+        date1: "",
120
+        date2: "",
121
+        delivery: false,
122
+        type: [],
123
+        resource: "",
124
+        desc: ""
125
+      }
126
+    };
127
+  },
128
+  created() {},
129
+  methods: {
130
+    handleTabClick(tab, event) {
131
+      if (this.tabActiveName == "control") {
132
+        this.$router.push({ path: "/qcd/patientanalysis/statisticalConfig" });
133
+      }
134
+    },
135
+    handleEdit() {
136
+      this.editDialog = true;
137
+    }
138
+  },
139
+  components: {
140
+    PieChart,
141
+    BreadCrumb
142
+  }
143
+};
144
+</script>
145
+<style lang="scss">
146
+#oictable ::-webkit-scrollbar {
147
+  height: 15px;
148
+}
149
+.configTable {
150
+  .el-table td,
151
+  .el-table th {
152
+    text-align: center;
153
+  }
154
+}
155
+</style>
156
+
157
+ <style rel="stylesheet/scss" lang="scss" scoped>
158
+.newadd {
159
+  margin-bottom: 10px;
160
+}
161
+// .app-container {
162
+//   //   margin: 20px;
163
+//   font-size: 15px;
164
+//   .filter-container {
165
+//     padding-bottom: 5px;
166
+//   }
167
+//   .cqd-dataTitle {
168
+//     color: #303133;
169
+//     font-size: 14px;
170
+//     border-bottom: 2px #e4e7ed solid;
171
+//     height: 36px;
172
+//     line-height: 36px;
173
+//     margin: 0 0 25px 0;
174
+//     position: relative;
175
+//   }
176
+//   .cqd-dataTitle::before {
177
+//     position: absolute;
178
+//     left: 0;
179
+//     bottom: -2px;
180
+//     content: "";
181
+//     width: 42px;
182
+//     height: 2px;
183
+//     background: #409eff;
184
+//   }
185
+//   .search-component {
186
+//     width: 500px;
187
+//     .searchBox {
188
+//       width: 300px;
189
+//       height: 36px;
190
+//       line-height: 36px;
191
+//       padding-left: 15px;
192
+//       border: 1px #dcdfe6 solid;
193
+//       border-right: none;
194
+//       outline: none;
195
+//       float: left;
196
+//       border-radius: 6px 0 0 6px;
197
+//       font-size: 14px;
198
+//       color: #333;
199
+//       background: #fff;
200
+//       box-shadow: 3px 3px 4px rgba(135, 135, 135, 0.05);
201
+//     }
202
+//     .searchBtn {
203
+//       background-color: #409eff;
204
+//       color: #fff;
205
+//       font-size: 15px;
206
+//       text-align: center;
207
+//       height: 36px;
208
+//       line-height: 36px;
209
+//       float: left;
210
+//       outline: none;
211
+//       width: 70px;
212
+//       border: none;
213
+//       border-radius: 0 6px 6px 0;
214
+//       font-family: "Microsoft Yahei";
215
+//       cursor: pointer;
216
+//     }
217
+//   }
218
+//   .amount {
219
+//     font-weight: normal;
220
+//     padding: 10px 0 0 0;
221
+//     color: #606266;
222
+//     font-size: 14px;
223
+//     span {
224
+//       color: #ef2525;
225
+//       font-family: "Arial";
226
+//       padding: 0 2px;
227
+//     }
228
+//   }
229
+// }
230
+//
231
+</style>
232
+
233
+

+ 66 - 60
src/xt_pages/qcd/components/BarChart.vue Ver arquivo

@@ -3,117 +3,123 @@
3 3
 </template>
4 4
 
5 5
 <script>
6
-import echarts from 'echarts'
7
-require('echarts/theme/macarons') // echarts theme
8
-import { debounce } from '@/utils'
6
+import echarts from "echarts";
7
+require("echarts/theme/macarons"); // echarts theme
8
+import { debounce } from "@/utils";
9 9
 
10
-const animationDuration = 6000
10
+const animationDuration = 6000;
11 11
 
12 12
 export default {
13 13
   props: {
14 14
     className: {
15 15
       type: String,
16
-      default: 'chart'
16
+      default: "chart"
17 17
     },
18 18
     width: {
19 19
       type: String,
20
-      default: '100%'
20
+      default: "100%"
21 21
     },
22 22
     height: {
23 23
       type: String,
24
-      default: '380px'
24
+      default: "380px"
25 25
     },
26
-    title:{
26
+    title: {
27 27
       type: String,
28
-      default: 'chart'
28
+      default: "chart"
29 29
     },
30
-    options:{
31
-      type:Object,
32
-      default:function(){
33
-        return {}
30
+    options: {
31
+      type: Object,
32
+      default: function() {
33
+        return {};
34 34
       }
35 35
     }
36 36
   },
37 37
   data() {
38 38
     return {
39 39
       chart: null,
40
-      chartOptions:{},
41
-    }
40
+      chartOptions: {}
41
+    };
42 42
   },
43 43
   mounted() {
44
-    this.initChart()
44
+    this.initChart();
45 45
     this.__resizeHanlder = debounce(() => {
46 46
       if (this.chart) {
47
-        this.chart.resize() 
47
+        this.chart.resize();
48 48
       }
49
-    }, 100)
50
-    window.addEventListener('resize', this.__resizeHanlder)
49
+    }, 100);
50
+    window.addEventListener("resize", this.__resizeHanlder);
51 51
   },
52 52
   beforeDestroy() {
53 53
     if (!this.chart) {
54
-      return
54
+      return;
55 55
     }
56
-    window.removeEventListener('resize', this.__resizeHanlder)
57
-    this.chart.dispose()
58
-    this.chart = null
59
-  },
60
-  created(){
56
+    window.removeEventListener("resize", this.__resizeHanlder);
57
+    this.chart.dispose();
58
+    this.chart = null;
61 59
   },
62
-  watch:{
63
-    "options":function(){
60
+  created() {},
61
+  watch: {
62
+    options: function() {
64 63
       this.chartOptions = this.options;
65
-      this.initChart()
64
+      this.initChart();
66 65
       this.__resizeHanlder = debounce(() => {
67 66
         if (this.chart) {
68
-          this.chart.resize() 
67
+          this.chart.resize();
69 68
         }
70
-      }, 100)
71
-      window.addEventListener('resize', this.__resizeHanlder)
69
+      }, 100);
70
+      window.addEventListener("resize", this.__resizeHanlder);
72 71
     }
73 72
   },
74 73
   methods: {
75 74
     initChart() {
76 75
       console.log("this.chartOptions", this.chartOptions);
77
-      this.chart = echarts.init(this.$el, 'macarons')
76
+      this.chart = echarts.init(this.$el, "macarons");
78 77
       this.chart.setOption({
79 78
         title: {
80
-            text: this.title,
79
+          text: this.title
81 80
         },
82 81
         tooltip: {
83
-          trigger: 'axis',
84
-          axisPointer: { // 坐标轴指示器,坐标轴触发有效
85
-            type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
82
+          trigger: "axis",
83
+          axisPointer: {
84
+            // 坐标轴指示器,坐标轴触发有效
85
+            type: "shadow" // 默认为直线,可选为:'line' | 'shadow'
86 86
           }
87 87
         },
88 88
         grid: {
89
-          left: '2%',
90
-          right: '2%',
91
-          bottom: '3%',
89
+          left: "2%",
90
+          right: "2%",
91
+          bottom: "3%",
92 92
           containLabel: true
93 93
         },
94
-        xAxis: [{
95
-          type: 'category',
96
-          data:  this.chartOptions.xAxis,
97
-          axisTick: {
98
-            alignWithLabel: true
94
+        xAxis: [
95
+          {
96
+            type: "category",
97
+            data: this.chartOptions.xAxis,
98
+            axisTick: {
99
+              alignWithLabel: true
100
+            }
101
+          }
102
+        ],
103
+        yAxis: [
104
+          {
105
+            type: "value",
106
+            axisTick: {
107
+              show: false
108
+            }
99 109
           }
100
-        }],
101
-        yAxis: [{
102
-          type: 'value',
103
-          axisTick: {
104
-            show: false
110
+        ],
111
+        series: [
112
+          {
113
+            name: "",
114
+            type: "bar",
115
+            stack: "vistors",
116
+            barWidth: "60%",
117
+            data: this.chartOptions.series,
118
+            animationDuration
105 119
           }
106
-        }],
107
-        series: [{
108
-          name: '',
109
-          type: 'bar',
110
-          stack: 'vistors',
111
-          barWidth: '60%',
112
-          data: this.chartOptions.series,
113
-          animationDuration
114
-        }]
115
-      })
120
+        ]
121
+      });
116 122
     }
117 123
   }
118
-}
124
+};
119 125
 </script>

+ 142 - 59
src/xt_pages/qcd/components/LineChart.vue Ver arquivo

@@ -3,23 +3,23 @@
3 3
 </template>
4 4
 
5 5
 <script>
6
-import echarts from 'echarts'
7
-require('echarts/theme/macarons') // echarts theme
8
-import { debounce } from '@/utils'
6
+import echarts from "echarts";
7
+require("echarts/theme/macarons"); // echarts theme
8
+import { debounce } from "@/utils";
9 9
 
10 10
 export default {
11 11
   props: {
12 12
     className: {
13 13
       type: String,
14
-      default: 'chart'
14
+      default: "chart"
15 15
     },
16 16
     width: {
17 17
       type: String,
18
-      default: '100%'
18
+      default: "100%"
19 19
     },
20 20
     height: {
21 21
       type: String,
22
-      default: '380px'
22
+      default: "230px"
23 23
     },
24 24
     autoResize: {
25 25
       type: Boolean,
@@ -28,125 +28,208 @@ export default {
28 28
     chartData: {
29 29
       type: Object
30 30
     },
31
-    title:{
31
+    title: {
32 32
       type: String,
33
-      default: 'chart'
33
+      default: "chart"
34 34
     },
35
-    options:{
36
-      type:Object,
37
-      default:function(){
38
-        return {}
35
+    options: {
36
+      type: Object,
37
+      default: function() {
38
+        return {};
39 39
       }
40 40
     }
41 41
   },
42 42
   data() {
43 43
     return {
44 44
       chart: null,
45
-      chartOptions:{
46
-        xAxis:[],
47
-        legend:[],
48
-        series:[],
49
-      },
50
-      
51
-    }
45
+      chartOptions: {
46
+        xAxis: [],
47
+        legend: [],
48
+        series: []
49
+      }
50
+    };
52 51
   },
53 52
   mounted() {
54
-    this.initChart()
53
+    this.initChart();
55 54
     if (this.autoResize) {
56 55
       this.__resizeHanlder = debounce(() => {
57 56
         if (this.chart) {
58
-          this.chart.resize()
57
+          this.chart.resize();
59 58
         }
60
-      }, 100)
61
-      window.addEventListener('resize', this.__resizeHanlder)
59
+      }, 100);
60
+      window.addEventListener("resize", this.__resizeHanlder);
62 61
     }
63 62
 
64 63
     // 监听侧边栏的变化
65
-    const sidebarElm = document.getElementsByClassName('sidebar-container')[0]
66
-    sidebarElm.addEventListener('transitionend', this.__resizeHanlder)
64
+    const sidebarElm = document.getElementsByClassName("sidebar-container")[0];
65
+    sidebarElm.addEventListener("transitionend", this.__resizeHanlder);
67 66
   },
68 67
   beforeDestroy() {
69 68
     if (!this.chart) {
70
-      return
69
+      return;
71 70
     }
72 71
     if (this.autoResize) {
73
-      window.removeEventListener('resize', this.__resizeHanlder)
72
+      window.removeEventListener("resize", this.__resizeHanlder);
74 73
     }
75 74
 
76
-    const sidebarElm = document.getElementsByClassName('sidebar-container')[0]
77
-    sidebarElm.removeEventListener('transitionend', this.__resizeHanlder)
75
+    const sidebarElm = document.getElementsByClassName("sidebar-container")[0];
76
+    sidebarElm.removeEventListener("transitionend", this.__resizeHanlder);
78 77
 
79
-    this.chart.dispose()
80
-    this.chart = null
78
+    this.chart.dispose();
79
+    this.chart = null;
81 80
   },
82 81
   watch: {
83
-    
84
-    "options":function(){
82
+    options: function() {
85 83
       this.chartOptions = this.options;
86
-      this.initChart()
84
+      this.initChart();
87 85
       this.__resizeHanlder = debounce(() => {
88 86
         if (this.chart) {
89
-          this.chart.resize() 
87
+          this.chart.resize();
90 88
         }
91
-      }, 100)
92
-      window.addEventListener('resize', this.__resizeHanlder)
89
+      }, 100);
90
+      window.addEventListener("resize", this.__resizeHanlder);
93 91
     },
94
-    
95 92
 
96 93
     chartData: {
97 94
       deep: true,
98 95
       handler(val) {
99
-        this.setOptions(val)
96
+        this.setOptions(val);
100 97
       }
101 98
     }
102 99
   },
103
-  created(){
100
+  created() {
104 101
     this.chartOptions = this.options;
105 102
     console.log("this.chartOptions", this.chartOptions, this.options);
106 103
   },
107 104
   methods: {
105
+    // setOptions({ expectedData, actualData } = {}) {
106
+    //   this.chart.setOption({
107
+    //     title: {
108
+    //         text: this.title,
109
+    //     },
110
+    //     xAxis: {
111
+    //       data: this.chartOptions.xAxis,
112
+    //       boundaryGap: false,
113
+    //       axisTick: {
114
+    //         show: false
115
+    //       }
116
+    //     },
117
+    //     grid: {
118
+    //       left: 50,
119
+    //       right: 50,
120
+    //       bottom: 20,
121
+    //       top: 30,
122
+    //       containLabel: true
123
+    //     },
124
+    //     tooltip: {
125
+    //       trigger: 'axis',
126
+    //       axisPointer: {
127
+    //         type: 'cross'
128
+    //       },
129
+    //       padding: [5, 10]
130
+    //     },
131
+    //     yAxis: {
132
+    //       axisTick: {
133
+    //         show: false
134
+    //       }
135
+    //     },
136
+    //     legend: {
137
+    //       data: this.chartOptions.legend,
138
+    //     },
139
+    //     series: this.chartOptions.series,
140
+    //   })
141
+    // },
108 142
     setOptions({ expectedData, actualData } = {}) {
109 143
       this.chart.setOption({
110
-        title: {
111
-            text: this.title,
112
-        },
144
+        // title: {
145
+        //   text: this.title
146
+        // },
113 147
         xAxis: {
114
-          data: this.chartOptions.xAxis,
115
-          boundaryGap: false,
148
+          data: this.chartOptions.xAxis.data,
149
+          // boundaryGap: false
116 150
           axisTick: {
117
-            show: false
151
+            show: true
152
+          },
153
+          axisLine: {
154
+            lineStyle: {
155
+              color: "pink" //x轴颜色
156
+            }
157
+          },
158
+          axisLabel: {
159
+            interval: 0,
160
+            formatter: function(value) {
161
+              var ret = ""; //拼接加\n返回的类目项
162
+              var maxLength = 8; //每项显示文字个数
163
+              var valLength = value.length; //X轴类目项的文字个数
164
+              var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数
165
+              if (rowN > 1) {
166
+                //如果类目项的文字大于3,
167
+                for (var i = 0; i < rowN; i++) {
168
+                  var temp = ""; //每次截取的字符串
169
+                  var start = i * maxLength; //开始截取的位置
170
+                  var end = start + maxLength; //结束截取的位置
171
+                  //这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧
172
+                  temp = value.substring(start, end) + "\n";
173
+                  ret += temp; //凭借最终的字符串
174
+                }
175
+                return ret;
176
+              } else {
177
+                return value;
178
+              }
179
+            }
118 180
           }
119 181
         },
120 182
         grid: {
121
-          left: 50,
183
+          left: 0,
122 184
           right: 50,
123
-          bottom: 20,
185
+          bottom: 10,
124 186
           top: 30,
125 187
           containLabel: true
126 188
         },
127 189
         tooltip: {
128
-          trigger: 'axis',
190
+          trigger: "axis",
129 191
           axisPointer: {
130
-            type: 'cross'
192
+            type: "cross"
131 193
           },
132 194
           padding: [5, 10]
133 195
         },
134 196
         yAxis: {
135 197
           axisTick: {
136
-            show: false
198
+            show: true
199
+          },
200
+          axisLine: {
201
+            lineStyle: {
202
+              color: "pink" //y轴颜色
203
+            }
137 204
           }
138 205
         },
139
-        legend: {
140
-          data: this.chartOptions.legend,
141
-        },
142
-        series: this.chartOptions.series,
143
-      })
206
+        // dataZoom: [
207
+        //   {
208
+        //     //Y轴固定,让内容滚动
209
+        //     type: "slider",
210
+        //     show: false,
211
+        //     xAxisIndex: [0],
212
+        //     start: 1,
213
+        //     end: 80, //设置X轴刻度之间的间隔(根据数据量来调整)
214
+        //     zoomLock: true //锁定区域禁止缩放(鼠标滚动会缩放,所以禁止)
215
+        //   },
216
+        //   {
217
+        //     type: "inside",
218
+        //     xAxisIndex: [0],
219
+        //     start: 1,
220
+        //     end: 80,
221
+        //     zoomLock: true //锁定区域禁止缩放
222
+        //   }
223
+        // ],
224
+        legend: this.chartOptions.legend,
225
+        series: this.chartOptions.series
226
+      });
144 227
     },
145 228
     initChart() {
146
-      this.chart = echarts.init(this.$el, 'macarons')
229
+      this.chart = echarts.init(this.$el, "macarons");
147 230
       this.chart.clear();
148
-      this.setOptions(this.chartData)
231
+      this.setOptions(this.chartData);
149 232
     }
150 233
   }
151
-}
234
+};
152 235
 </script>

+ 9 - 2
src/xt_pages/qcd/dialysisTotal.vue Ver arquivo

@@ -298,8 +298,15 @@ export default {
298 298
         }
299 299
       });
300 300
     },
301
-    changeTime() {
302
-      this.getList();
301
+    changeTime(val) {
302
+      var time =
303
+        this.getTimestamp(val) - this.getTimestamp(this.listQuery.end_time);
304
+      if (time > 0) {
305
+        this.$message.error("结束时间不能小于开始时间");
306
+        this.listQuery.start_time = "";
307
+      } else {
308
+        this.getList();
309
+      }
303 310
     },
304 311
     changeEndTime(val) {
305 312
       var time =

+ 0 - 0
src/xt_pages/qcd/indicatorControlAnalysis.vue Ver arquivo


+ 70 - 0
src/xt_pages/qcd/indicatorControlAnalysis/analysis.vue Ver arquivo

@@ -0,0 +1,70 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <div class="page_analysis">
8
+        <new-nav activeName="analysis"></new-nav>
9
+        <div class="cell clearfix">
10
+          <label class="title">
11
+            <span class="name">转归状态</span> :
12
+          </label>
13
+          <div class="time">
14
+            <ul class>
15
+              <li
16
+                :class="item.state == wayType ? 'active' : ''"
17
+                @click="chooseWay(item.state)"
18
+                v-for="item in way"
19
+                :key="item.value"
20
+              >{{ item.label }}</li>
21
+            </ul>
22
+          </div>
23
+        </div>
24
+        <div v-if="wayType == 0">
25
+          <office></office>
26
+        </div>
27
+        <div v-if="wayType == 1">
28
+          <personal></personal>
29
+        </div>
30
+      </div>
31
+    </div>
32
+  </div>
33
+</template>
34
+
35
+
36
+<script>
37
+import NewNav from "../indicatorControlAnalysis/components/NewNav";
38
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
39
+import LineChart from "../../qcd/components/LineChart";
40
+import office from "../indicatorControlAnalysis/components/office";
41
+import personal from "../indicatorControlAnalysis/components/personal";
42
+export default {
43
+  components: {
44
+    LineChart,
45
+    BreadCrumb,
46
+    office,
47
+    personal,
48
+    NewNav
49
+  },
50
+  data() {
51
+    return {
52
+      crumbs: [
53
+        { path: false, name: "科室质控" },
54
+        { path: false, name: "指标评估统计" },
55
+        { path: false, name: "化验指标统计" }
56
+      ],
57
+      way: [
58
+        { value: 0, label: "科室", state: 0 },
59
+        { value: 1, label: "个人", state: 1 }
60
+      ],
61
+      wayType: 0
62
+    };
63
+  },
64
+  methods: {
65
+    chooseWay(way) {
66
+      this.wayType = way;
67
+    }
68
+  }
69
+};
70
+</script>

+ 277 - 0
src/xt_pages/qcd/indicatorControlAnalysis/analysisDetails.vue Ver arquivo

@@ -0,0 +1,277 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <div class="page_analysisDetails">
8
+        <div class="cell clearfix" style="margin:0">
9
+          <el-form :inline="true" :model="listQuery">
10
+            <el-form-item label>
11
+              <el-input v-model.trim="listQuery.search" placeholder="姓名/透析号" style="width:150px"></el-input>
12
+              <el-button type="primary" @click="onSearch" icon="el-icon-search">搜索</el-button>
13
+            </el-form-item>
14
+          </el-form>
15
+        </div>
16
+        <el-container>
17
+          <div style="width:150px">
18
+            <div class="tableTitle">患者列表</div>
19
+            <el-table :data="tableData" border style="width: 100%;" height="500">
20
+              <el-table-column prop="date" label="日期" width="70"></el-table-column>
21
+              <el-table-column prop="name" label="姓名" width="80"></el-table-column>
22
+            </el-table>
23
+          </div>
24
+          <div class="containerRight" style="flex:1;overflow: hidden">
25
+            <div class="cell clearfix">
26
+              <label class="title" style="text-align:left">
27
+                <span class="name">统计方式</span> :
28
+              </label>
29
+              <div class="time">
30
+                <ul class>
31
+                  <li
32
+                    :class="item.state == monthType ? 'active' : ''"
33
+                    @click="chooseMonth(item.state)"
34
+                    v-for="item in month"
35
+                    :key="item.value"
36
+                  >{{ item.label }}</li>
37
+                </ul>
38
+              </div>
39
+              <label class="title">
40
+                <span class="name">日期查询</span> :
41
+              </label>
42
+              <el-date-picker
43
+                v-model="listQuery.start_time"
44
+                prefix-icon="el-icon-date"
45
+                @change="changeTime"
46
+                :editable="false"
47
+                type="date"
48
+                style="max-width:160px"
49
+                placeholder="选择日期时间"
50
+                align="right"
51
+                format="yyyy-MM-dd"
52
+                value-format="yyyy-MM-dd"
53
+              ></el-date-picker>
54
+              <span class>-</span>
55
+              <el-date-picker
56
+                v-model="listQuery.end_time"
57
+                prefix-icon="el-icon-date"
58
+                @change="changeEndTime"
59
+                :editable="false"
60
+                type="date"
61
+                style="max-width:160px"
62
+                placeholder="选择日期时间"
63
+                align="right"
64
+                format="yyyy-MM-dd"
65
+                value-format="yyyy-MM-dd"
66
+              ></el-date-picker>
67
+            </div>
68
+            <div class="tableTitle">指标趋势</div>
69
+            <div>
70
+              <line-chart :options="chart"></line-chart>
71
+            </div>
72
+          </div>
73
+        </el-container>
74
+      </div>
75
+    </div>
76
+  </div>
77
+</template>
78
+
79
+<script>
80
+import echarts from "echarts";
81
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
82
+import LineChart from "../../qcd/components/LineChart";
83
+export default {
84
+  components: {
85
+    LineChart,
86
+    BreadCrumb
87
+  },
88
+  data() {
89
+    return {
90
+      crumbs: [
91
+        { path: false, name: "科室质控" },
92
+        { path: false, name: "指标评估统计" },
93
+        { path: false, name: "化验指标统计详情" }
94
+      ],
95
+      tableData: [
96
+        {
97
+          date: "2016",
98
+          name: "王小虎"
99
+        },
100
+        {
101
+          date: "2016",
102
+          name: "王小虎"
103
+        },
104
+        {
105
+          date: "2016",
106
+          name: "王小虎"
107
+        },
108
+        {
109
+          date: "2016",
110
+          name: "王小虎"
111
+        },
112
+        {
113
+          date: "2016",
114
+          name: "王小虎"
115
+        },
116
+        {
117
+          date: "2016",
118
+          name: "王小虎"
119
+        },
120
+        {
121
+          date: "2016",
122
+          name: "王小虎"
123
+        },
124
+        {
125
+          date: "2016",
126
+          name: "王小虎"
127
+        },
128
+        {
129
+          date: "2016",
130
+          name: "王小虎"
131
+        },
132
+        {
133
+          date: "2016",
134
+          name: "王小虎"
135
+        },
136
+        {
137
+          date: "2016",
138
+          name: "王小虎"
139
+        },
140
+        {
141
+          date: "2016",
142
+          name: "王小虎"
143
+        }
144
+      ],
145
+      listQuery: {
146
+        start_time: "",
147
+        end_time: "",
148
+        page: 1,
149
+        limit: 10
150
+      },
151
+      month: [
152
+        { value: 0, label: "本月", state: 0 },
153
+        { value: 1, label: "近三个月", state: 1 },
154
+        { value: 2, label: "近半年", state: 2 },
155
+        { value: 3, label: "近一年", state: 3 }
156
+      ],
157
+      monthType: 0,
158
+      chart: {
159
+        title: {
160
+          text: "ECharts 入门示例"
161
+        },
162
+        tooltip: {},
163
+        legend: {
164
+          data: ["次数"],
165
+          left: 0
166
+        },
167
+        xAxis: {
168
+          data: ["1", "2", "3", "4", "5", "6", "7", "8", "9"]
169
+        },
170
+        yAxis: {
171
+          axisLabel: {
172
+            formatter: "{value} %"
173
+          },
174
+          show: false
175
+        },
176
+        series: [
177
+          {
178
+            name: "次数",
179
+            type: "line",
180
+            data: [
181
+              "78.57",
182
+              "50",
183
+              "80",
184
+              "93.33",
185
+              "92.86",
186
+              "100",
187
+              "12",
188
+              "77",
189
+              "37"
190
+            ],
191
+            barWidth: 30,
192
+            label: {
193
+              normal: {
194
+                show: true,
195
+                position: "top",
196
+                formatter: "{c}次"
197
+              }
198
+            },
199
+            //配置样式
200
+            itemStyle: {
201
+              //通常情况下:
202
+
203
+              //每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
204
+              normal: {
205
+                color: function(params) {
206
+                  //我这边就两个柱子,大体就两个柱子颜色渐变,所以数组只有两个值,多个颜色就多个值
207
+                  var colorList = [
208
+                    ["#A9E0F3", "#9FBDFC"],
209
+                    ["#A9E0F3", "#9FBDFC"],
210
+                    ["#A9E0F3", "#9FBDFC"],
211
+
212
+                    ["#FFD7C0", "#FF9994"],
213
+                    ["#FFD7C0", "#FF9994"],
214
+                    ["#FFD7C0", "#FF9994"],
215
+                    ["#D7C3FD", "#B3A8F7"],
216
+                    ["#D7C3FD", "#B3A8F7"],
217
+                    ["#D7C3FD", "#B3A8F7"]
218
+                  ];
219
+
220
+                  var index = params.dataIndex;
221
+                  if (params.dataIndex >= colorList.length) {
222
+                    index = params.dataIndex % colorList.length;
223
+                  }
224
+
225
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
226
+                    { offset: 0, color: colorList[index][0] },
227
+                    // { offset: 0.5, color: colorList[index][1] },
228
+                    { offset: 1, color: colorList[index][1] }
229
+                  ]);
230
+                },
231
+                barBorderRadius: [5, 5, 0, 0] //柱状角成椭圆形
232
+              },
233
+
234
+              //鼠标悬停时:
235
+              emphasis: {
236
+                shadowBlur: 10,
237
+                shadowOffsetX: 0,
238
+                shadowColor: "rgba(0, 0, 0, 0.5)"
239
+              }
240
+            }
241
+          }
242
+        ]
243
+      }
244
+    };
245
+  },
246
+  methods: {
247
+    chooseMonth(month) {
248
+      this.monthType = month;
249
+    }
250
+  }
251
+};
252
+</script>
253
+
254
+<style lang="scss" scoped>
255
+.containerRight {
256
+  padding-left: 10px;
257
+}
258
+.tableTitle {
259
+  font-size: 16px;
260
+  color: #000;
261
+  font-weight: bold;
262
+  margin-bottom: 10px;
263
+  margin-top: 8px;
264
+}
265
+</style>
266
+
267
+
268
+<style lang="scss">
269
+.page_analysisDetails {
270
+  .cell {
271
+    text-align: center;
272
+  }
273
+  .el-form-item {
274
+    margin-bottom: 0;
275
+  }
276
+}
277
+</style>

+ 397 - 0
src/xt_pages/qcd/indicatorControlAnalysis/bloodPressure.vue Ver arquivo

@@ -0,0 +1,397 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <div class="page_bloodPressure">
8
+        <new-nav activeName="bloodPressure"></new-nav>
9
+        <div class="cell clearfix">
10
+          <el-form :inline="true" :model="listQuery">
11
+            <el-form-item label>
12
+              <el-input v-model.trim="listQuery.search" placeholder="姓名/透析号" style="width:110px"></el-input>
13
+              <el-button type="primary" @click="onSearch" icon="el-icon-search">搜索</el-button>
14
+            </el-form-item>
15
+          </el-form>
16
+          <el-select
17
+            v-model="value"
18
+            placeholder="请选择"
19
+            @change="chooseType"
20
+            style="width:110px;margin-right:10px"
21
+          >
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-select v-model="value" placeholder="请选择" style="width:110px;margin-right:10px">
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-select
38
+            v-model="value"
39
+            placeholder="请选择"
40
+            @change="chooseType"
41
+            style="width:110px;margin-right:10px"
42
+          >
43
+            <el-option
44
+              v-for="item in options"
45
+              :key="item.value"
46
+              :label="item.label"
47
+              :value="item.value"
48
+            ></el-option>
49
+          </el-select>
50
+          <label class="title">
51
+            <span class="name">日期查询</span> :
52
+          </label>
53
+          <el-date-picker
54
+            v-model="listQuery.start_time"
55
+            prefix-icon="el-icon-date"
56
+            @change="changeTime"
57
+            :editable="false"
58
+            style="width: 150px;"
59
+            type="date"
60
+            placeholder="选择日期时间"
61
+            align="right"
62
+            format="yyyy-MM-dd"
63
+            value-format="yyyy-MM-dd"
64
+          ></el-date-picker>
65
+          <span class>-</span>
66
+          <el-date-picker
67
+            v-model="listQuery.end_time"
68
+            prefix-icon="el-icon-date"
69
+            @change="changeEndTime"
70
+            :editable="false"
71
+            style="width: 150px;"
72
+            type="date"
73
+            placeholder="选择日期时间"
74
+            align="right"
75
+            format="yyyy-MM-dd"
76
+            value-format="yyyy-MM-dd"
77
+          ></el-date-picker>
78
+        </div>
79
+        <el-container>
80
+          <div style="width:150px">
81
+            <div class="tableTitle">患者列表</div>
82
+            <el-table :data="tableData" border style="width: 100%;" height="500">
83
+              <el-table-column prop="date" label="日期" width="70"></el-table-column>
84
+              <el-table-column prop="name" label="姓名" width="80"></el-table-column>
85
+            </el-table>
86
+          </div>
87
+          <div style="padding-left:10px;flex:1">
88
+            <div class="tableTitle">指标趋势</div>
89
+            <div>
90
+              <line-chart :options="chart"></line-chart>
91
+            </div>
92
+            <div class="cell clearfix" style="margin:0;margin-bottom:10px">
93
+              <div class="tableTitle" style="margin:0 20px 0 0;">统计表</div>
94
+              <el-input v-model="input" placeholder="收缩压" style="width: 80px;"></el-input>&nbsp;-&nbsp;
95
+              <el-input v-model="input" placeholder="收缩压" style="width: 80px;"></el-input>&nbsp;/&nbsp;
96
+              <el-input v-model="input" placeholder="舒张压" style="width: 80px;"></el-input>&nbsp;-&nbsp;
97
+              <el-input v-model="input" placeholder="舒张压" style="width: 80px;"></el-input>
98
+              <el-button type="primary">查询</el-button>
99
+            </div>
100
+            <div>
101
+              <el-table :data="tableData1" style="width: 100%" border>
102
+                <el-table-column fixed prop="date" label="日期"></el-table-column>
103
+                <el-table-column prop="name" label="姓名"></el-table-column>
104
+                <el-table-column prop="province" label="省份"></el-table-column>
105
+                <el-table-column prop="city" label="市区"></el-table-column>
106
+                <el-table-column prop="address" label="地址"></el-table-column>
107
+                <el-table-column prop="zip" label="邮编"></el-table-column>
108
+                <el-table-column label="操作" width="100">
109
+                  <template slot-scope="scope">
110
+                    <el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
111
+                  </template>
112
+                </el-table-column>
113
+              </el-table>
114
+
115
+              <el-pagination
116
+                align="right"
117
+                @size-change="handleSizeChange"
118
+                @current-change="handleCurrentChange"
119
+                :current-page="listQuery.page"
120
+                :page-sizes="[10, 20, 50, 100]"
121
+                :page-size="10"
122
+                background
123
+                style="margin-top:20px;"
124
+                layout="total, sizes, prev, pager, next, jumper"
125
+                :total="total"
126
+              ></el-pagination>
127
+            </div>
128
+          </div>
129
+        </el-container>
130
+      </div>
131
+    </div>
132
+  </div>
133
+</template>
134
+
135
+
136
+<script>
137
+import echarts from "echarts";
138
+import NewNav from "../indicatorControlAnalysis/components/NewNav";
139
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
140
+import LineChart from "../../qcd/components/LineChart";
141
+export default {
142
+  components: {
143
+    LineChart,
144
+    BreadCrumb,
145
+    NewNav
146
+  },
147
+  data() {
148
+    return {
149
+      crumbs: [
150
+        { path: false, name: "科室质控" },
151
+        { path: false, name: "指标评估统计" },
152
+        { path: false, name: "患者血压统计" }
153
+      ],
154
+      listQuery: {
155
+        start_time: "",
156
+        end_time: "",
157
+        page: 1,
158
+        limit: 10
159
+      },
160
+      tableData: [
161
+        {
162
+          date: "2016",
163
+          name: "王小虎"
164
+        },
165
+        {
166
+          date: "2016",
167
+          name: "王小虎"
168
+        },
169
+        {
170
+          date: "2016",
171
+          name: "王小虎"
172
+        },
173
+        {
174
+          date: "2016",
175
+          name: "王小虎"
176
+        },
177
+        {
178
+          date: "2016",
179
+          name: "王小虎"
180
+        },
181
+        {
182
+          date: "2016",
183
+          name: "王小虎"
184
+        },
185
+        {
186
+          date: "2016",
187
+          name: "王小虎"
188
+        },
189
+        {
190
+          date: "2016",
191
+          name: "王小虎"
192
+        },
193
+        {
194
+          date: "2016",
195
+          name: "王小虎"
196
+        },
197
+        {
198
+          date: "2016",
199
+          name: "王小虎"
200
+        },
201
+        {
202
+          date: "2016",
203
+          name: "王小虎"
204
+        },
205
+        {
206
+          date: "2016",
207
+          name: "王小虎"
208
+        }
209
+      ],
210
+      tableData1: [
211
+        {
212
+          date: "2016-05-03",
213
+          name: "王小虎",
214
+          province: "上海",
215
+          city: "普陀区",
216
+          address: "上海市普陀区金沙江路 1518 弄",
217
+          zip: 200333
218
+        },
219
+        {
220
+          date: "2016-05-02",
221
+          name: "王小虎",
222
+          province: "上海",
223
+          city: "普陀区",
224
+          address: "上海市普陀区金沙江路 1518 弄",
225
+          zip: 200333
226
+        },
227
+        {
228
+          date: "2016-05-04",
229
+          name: "王小虎",
230
+          province: "上海",
231
+          city: "普陀区",
232
+          address: "上海市普陀区金沙江路 1518 弄",
233
+          zip: 200333
234
+        },
235
+        {
236
+          date: "2016-05-01",
237
+          name: "王小虎",
238
+          province: "上海",
239
+          city: "普陀区",
240
+          address: "上海市普陀区金沙江路 1518 弄",
241
+          zip: 200333
242
+        },
243
+        {
244
+          date: "2016-05-08",
245
+          name: "王小虎",
246
+          province: "上海",
247
+          city: "普陀区",
248
+          address: "上海市普陀区金沙江路 1518 弄",
249
+          zip: 200333
250
+        },
251
+        {
252
+          date: "2016-05-06",
253
+          name: "王小虎",
254
+          province: "上海",
255
+          city: "普陀区",
256
+          address: "上海市普陀区金沙江路 1518 弄",
257
+          zip: 200333
258
+        },
259
+        {
260
+          date: "2016-05-07",
261
+          name: "王小虎",
262
+          province: "上海",
263
+          city: "普陀区",
264
+          address: "上海市普陀区金沙江路 1518 弄",
265
+          zip: 200333
266
+        },
267
+        {
268
+          date: "2016-05-08",
269
+          name: "王小虎",
270
+          province: "上海",
271
+          city: "普陀区",
272
+          address: "上海市普陀区金沙江路 1518 弄",
273
+          zip: 200333
274
+        },
275
+        {
276
+          date: "2016-05-06",
277
+          name: "王小虎",
278
+          province: "上海",
279
+          city: "普陀区",
280
+          address: "上海市普陀区金沙江路 1518 弄",
281
+          zip: 200333
282
+        },
283
+        {
284
+          date: "2016-05-07",
285
+          name: "王小虎",
286
+          province: "上海",
287
+          city: "普陀区",
288
+          address: "上海市普陀区金沙江路 1518 弄",
289
+          zip: 200333
290
+        }
291
+      ],
292
+      chart: {
293
+        title: {
294
+          text: "ECharts 入门示例"
295
+        },
296
+        tooltip: {},
297
+        legend: {
298
+          data: ["次数"],
299
+          left: 0
300
+        },
301
+        xAxis: {
302
+          data: ["达标", "未达标"]
303
+        },
304
+        yAxis: {
305
+          axisLabel: {
306
+            formatter: "{value} %"
307
+          },
308
+          show: false
309
+        },
310
+        series: [
311
+          {
312
+            name: "次数",
313
+            type: "bar",
314
+            data: ["78.57", "50"],
315
+            barWidth: 30,
316
+            label: {
317
+              normal: {
318
+                show: true,
319
+                position: "top",
320
+                formatter: "{c}次"
321
+              }
322
+            },
323
+            //配置样式
324
+            itemStyle: {
325
+              //通常情况下:
326
+
327
+              //每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
328
+              normal: {
329
+                color: function(params) {
330
+                  //我这边就两个柱子,大体就两个柱子颜色渐变,所以数组只有两个值,多个颜色就多个值
331
+                  var colorList = [
332
+                    ["#A9E0F3", "#9FBDFC"],
333
+
334
+                    ["#FFD7C0", "#FF9994"]
335
+                  ];
336
+
337
+                  var index = params.dataIndex;
338
+                  if (params.dataIndex >= colorList.length) {
339
+                    index = params.dataIndex % colorList.length;
340
+                  }
341
+
342
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
343
+                    { offset: 0, color: colorList[index][0] },
344
+                    // { offset: 0.5, color: colorList[index][1] },
345
+                    { offset: 1, color: colorList[index][1] }
346
+                  ]);
347
+                },
348
+                barBorderRadius: [5, 5, 0, 0] //柱状角成椭圆形
349
+              },
350
+
351
+              //鼠标悬停时:
352
+              emphasis: {
353
+                shadowBlur: 10,
354
+                shadowOffsetX: 0,
355
+                shadowColor: "rgba(0, 0, 0, 0.5)"
356
+              }
357
+            }
358
+          }
359
+        ]
360
+      }
361
+    };
362
+  },
363
+  methods: {
364
+    chooseWay(way) {
365
+      this.wayType = way;
366
+    },
367
+    handleClick(row) {
368
+      console.log(row);
369
+      this.$router.push({
370
+        path: "/qcd/indicatorControlAnalysis/bloodPressureDetails"
371
+      });
372
+    }
373
+  }
374
+};
375
+</script>
376
+
377
+<style lang="scss" scoped>
378
+.tableTitle {
379
+  font-size: 16px;
380
+  color: #000;
381
+  font-weight: bold;
382
+  margin-bottom: 10px;
383
+}
384
+</style>
385
+<style lang="scss">
386
+.page_bloodPressure {
387
+  .el-button--medium {
388
+    padding: 10px 8px;
389
+  }
390
+  .el-form-item {
391
+    margin-bottom: 0;
392
+  }
393
+  .cell {
394
+    text-align: center;
395
+  }
396
+}
397
+</style>

+ 368 - 0
src/xt_pages/qcd/indicatorControlAnalysis/bloodPressureDetails.vue Ver arquivo

@@ -0,0 +1,368 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <div class="page_bloodPressureDetails">
8
+        <div class="cell clearfix" style="margin:0">
9
+          <el-form :inline="true" :model="listQuery">
10
+            <el-form-item label>
11
+              <el-input v-model.trim="listQuery.search" placeholder="姓名/透析号" style="width:150px"></el-input>
12
+              <el-button type="primary" @click="onSearch" icon="el-icon-search">搜索</el-button>
13
+            </el-form-item>
14
+          </el-form>
15
+        </div>
16
+        <el-container>
17
+          <div style="width:150px">
18
+            <div class="tableTitle">患者列表</div>
19
+            <el-table :data="tableData" border style="width: 100%;" height="500">
20
+              <el-table-column prop="date" label="日期" width="70"></el-table-column>
21
+              <el-table-column prop="name" label="姓名" width="80"></el-table-column>
22
+            </el-table>
23
+          </div>
24
+          <div class="containerRight" style="flex:1;overflow: hidden">
25
+            <div class="cell clearfix">
26
+              <label class="title" style="text-align:left">
27
+                <span class="name">血压阶段</span> :
28
+              </label>
29
+              <el-select
30
+                v-model="value"
31
+                placeholder="请选择"
32
+                @change="chooseType"
33
+                style="width:110px;margin-right:10px"
34
+              >
35
+                <el-option
36
+                  v-for="item in options"
37
+                  :key="item.value"
38
+                  :label="item.label"
39
+                  :value="item.value"
40
+                ></el-option>
41
+              </el-select>
42
+              <label class="title">
43
+                <span class="name">日期查询</span> :
44
+              </label>
45
+              <el-date-picker
46
+                v-model="listQuery.start_time"
47
+                prefix-icon="el-icon-date"
48
+                @change="changeTime"
49
+                :editable="false"
50
+                type="date"
51
+                style="max-width:160px"
52
+                placeholder="选择日期时间"
53
+                align="right"
54
+                format="yyyy-MM-dd"
55
+                value-format="yyyy-MM-dd"
56
+              ></el-date-picker>
57
+              <span class>-</span>
58
+              <el-date-picker
59
+                v-model="listQuery.end_time"
60
+                prefix-icon="el-icon-date"
61
+                @change="changeEndTime"
62
+                :editable="false"
63
+                type="date"
64
+                style="max-width:160px"
65
+                placeholder="选择日期时间"
66
+                align="right"
67
+                format="yyyy-MM-dd"
68
+                value-format="yyyy-MM-dd"
69
+              ></el-date-picker>
70
+            </div>
71
+            <div class="tableTitle">指标趋势</div>
72
+            <div>
73
+              <line-chart :options="chart"></line-chart>
74
+            </div>
75
+            <div class="tableTitle">统计表</div>
76
+            <div>
77
+              <el-table :data="tableData1" style="width: 100%" border>
78
+                <el-table-column fixed prop="date" label="日期"></el-table-column>
79
+                <el-table-column prop="name" label="姓名"></el-table-column>
80
+                <el-table-column prop="province" label="省份"></el-table-column>
81
+                <el-table-column prop="city" label="市区"></el-table-column>
82
+              </el-table>
83
+
84
+              <el-pagination
85
+                align="right"
86
+                @size-change="handleSizeChange"
87
+                @current-change="handleCurrentChange"
88
+                :current-page="listQuery.page"
89
+                :page-sizes="[10, 20, 50, 100]"
90
+                :page-size="10"
91
+                background
92
+                style="margin-top:20px;"
93
+                layout="total, sizes, prev, pager, next, jumper"
94
+                :total="total"
95
+              ></el-pagination>
96
+            </div>
97
+          </div>
98
+        </el-container>
99
+      </div>
100
+    </div>
101
+  </div>
102
+</template>
103
+
104
+<script>
105
+import echarts from "echarts";
106
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
107
+import LineChart from "../../qcd/components/LineChart";
108
+export default {
109
+  components: {
110
+    LineChart,
111
+    BreadCrumb
112
+  },
113
+  data() {
114
+    return {
115
+      crumbs: [
116
+        { path: false, name: "科室质控" },
117
+        { path: false, name: "患者血压详情" }
118
+      ],
119
+      tableData: [
120
+        {
121
+          date: "2016",
122
+          name: "王小虎"
123
+        },
124
+        {
125
+          date: "2016",
126
+          name: "王小虎"
127
+        },
128
+        {
129
+          date: "2016",
130
+          name: "王小虎"
131
+        },
132
+        {
133
+          date: "2016",
134
+          name: "王小虎"
135
+        },
136
+        {
137
+          date: "2016",
138
+          name: "王小虎"
139
+        },
140
+        {
141
+          date: "2016",
142
+          name: "王小虎"
143
+        },
144
+        {
145
+          date: "2016",
146
+          name: "王小虎"
147
+        },
148
+        {
149
+          date: "2016",
150
+          name: "王小虎"
151
+        },
152
+        {
153
+          date: "2016",
154
+          name: "王小虎"
155
+        },
156
+        {
157
+          date: "2016",
158
+          name: "王小虎"
159
+        },
160
+        {
161
+          date: "2016",
162
+          name: "王小虎"
163
+        },
164
+        {
165
+          date: "2016",
166
+          name: "王小虎"
167
+        }
168
+      ],
169
+      listQuery: {
170
+        start_time: "",
171
+        end_time: "",
172
+        page: 1,
173
+        limit: 10
174
+      },
175
+      chart: {
176
+        title: {
177
+          text: "ECharts 入门示例"
178
+        },
179
+        tooltip: {},
180
+        legend: {
181
+          data: ["收缩压", "舒张压"],
182
+          left: 0
183
+        },
184
+        xAxis: {
185
+          data: ["1", "2", "3", "4", "5", "6", "7", "8", "9"]
186
+        },
187
+        yAxis: {
188
+          axisLabel: {
189
+            formatter: "{value} %"
190
+          },
191
+          show: false
192
+        },
193
+        series: [
194
+          {
195
+            name: "收缩压",
196
+            type: "line",
197
+            data: [
198
+              "78.57",
199
+              "50",
200
+              "80",
201
+              "93.33",
202
+              "92.86",
203
+              "100",
204
+              "12",
205
+              "77",
206
+              "37"
207
+            ],
208
+            barWidth: 30,
209
+            label: {
210
+              normal: {
211
+                show: true,
212
+                position: "top",
213
+                formatter: "{c}次"
214
+              }
215
+            },
216
+            //配置样式
217
+            itemStyle: {
218
+              normal: {
219
+                color: "#5b98ff", //折点颜色
220
+                lineStyle: {
221
+                  color: "#5b98ff" //折线颜色
222
+                }
223
+              }
224
+            }
225
+          },
226
+          {
227
+            name: "舒张压",
228
+            type: "line",
229
+            data: ["10", "20", "30", "53.33", "42.86", "100", "60", "27", "97"],
230
+            barWidth: 30,
231
+            label: {
232
+              normal: {
233
+                show: true,
234
+                position: "top",
235
+                formatter: "{c}次"
236
+              }
237
+            },
238
+            //配置样式
239
+            itemStyle: {
240
+              normal: {
241
+                color: "#dd7383", //折点颜色
242
+                lineStyle: {
243
+                  color: "#dd7383" //折线颜色
244
+                }
245
+              }
246
+            }
247
+          }
248
+        ]
249
+      },
250
+      tableData1: [
251
+        {
252
+          date: "2016-05-03",
253
+          name: "王小虎",
254
+          province: "上海",
255
+          city: "普陀区",
256
+          address: "上海市普陀区金沙江路 1518 弄",
257
+          zip: 200333
258
+        },
259
+        {
260
+          date: "2016-05-02",
261
+          name: "王小虎",
262
+          province: "上海",
263
+          city: "普陀区",
264
+          address: "上海市普陀区金沙江路 1518 弄",
265
+          zip: 200333
266
+        },
267
+        {
268
+          date: "2016-05-04",
269
+          name: "王小虎",
270
+          province: "上海",
271
+          city: "普陀区",
272
+          address: "上海市普陀区金沙江路 1518 弄",
273
+          zip: 200333
274
+        },
275
+        {
276
+          date: "2016-05-01",
277
+          name: "王小虎",
278
+          province: "上海",
279
+          city: "普陀区",
280
+          address: "上海市普陀区金沙江路 1518 弄",
281
+          zip: 200333
282
+        },
283
+        {
284
+          date: "2016-05-08",
285
+          name: "王小虎",
286
+          province: "上海",
287
+          city: "普陀区",
288
+          address: "上海市普陀区金沙江路 1518 弄",
289
+          zip: 200333
290
+        },
291
+        {
292
+          date: "2016-05-06",
293
+          name: "王小虎",
294
+          province: "上海",
295
+          city: "普陀区",
296
+          address: "上海市普陀区金沙江路 1518 弄",
297
+          zip: 200333
298
+        },
299
+        {
300
+          date: "2016-05-07",
301
+          name: "王小虎",
302
+          province: "上海",
303
+          city: "普陀区",
304
+          address: "上海市普陀区金沙江路 1518 弄",
305
+          zip: 200333
306
+        },
307
+        {
308
+          date: "2016-05-08",
309
+          name: "王小虎",
310
+          province: "上海",
311
+          city: "普陀区",
312
+          address: "上海市普陀区金沙江路 1518 弄",
313
+          zip: 200333
314
+        },
315
+        {
316
+          date: "2016-05-06",
317
+          name: "王小虎",
318
+          province: "上海",
319
+          city: "普陀区",
320
+          address: "上海市普陀区金沙江路 1518 弄",
321
+          zip: 200333
322
+        },
323
+        {
324
+          date: "2016-05-07",
325
+          name: "王小虎",
326
+          province: "上海",
327
+          city: "普陀区",
328
+          address: "上海市普陀区金沙江路 1518 弄",
329
+          zip: 200333
330
+        }
331
+      ]
332
+    };
333
+  },
334
+  methods: {
335
+    chooseMonth(month) {
336
+      this.monthType = month;
337
+    },
338
+    clickQuality(index) {
339
+      this.quality = index;
340
+    }
341
+  }
342
+};
343
+</script>
344
+
345
+<style lang="scss" scoped>
346
+.containerRight {
347
+  padding-left: 10px;
348
+}
349
+.tableTitle {
350
+  font-size: 16px;
351
+  color: #000;
352
+  font-weight: bold;
353
+  margin-bottom: 10px;
354
+  margin-top: 8px;
355
+}
356
+</style>
357
+
358
+
359
+<style lang="scss">
360
+.page_bloodPressureDetails {
361
+  .cell {
362
+    text-align: center;
363
+  }
364
+  .el-form-item {
365
+    margin-bottom: 0;
366
+  }
367
+}
368
+</style>

+ 35 - 0
src/xt_pages/qcd/indicatorControlAnalysis/components/NewNav.vue Ver arquivo

@@ -0,0 +1,35 @@
1
+<template>
2
+  <el-tabs v-model="tabActiveName" @tab-click="handleTabClick" style="margin-bottom:10px">
3
+    <el-tab-pane label="化验指标统计" name="analysis"></el-tab-pane>
4
+    <el-tab-pane label="透析过程指标统计" name="process"></el-tab-pane>
5
+    <el-tab-pane label="透析监测信息统计" name="monitor"></el-tab-pane>
6
+    <el-tab-pane label="患者血压统计" name="bloodPressure"></el-tab-pane>
7
+    <el-tab-pane label="患者体重统计" name="weight"></el-tab-pane>
8
+  </el-tabs>
9
+</template>
10
+<script>
11
+export default {
12
+  props: {
13
+    activeName: {
14
+      type: String,
15
+      default: "analysis"
16
+    }
17
+  },
18
+  data() {
19
+    return {
20
+      tabActiveName: "analysis"
21
+    };
22
+  },
23
+  methods: {
24
+    handleTabClick(tab, event) {
25
+      this.$router.push({
26
+        path: "/qcd/indicatorControlAnalysis/" + this.tabActiveName
27
+      });
28
+    }
29
+  },
30
+  created() {
31
+    this.tabActiveName = this.activeName;
32
+  }
33
+};
34
+</script>
35
+

+ 337 - 0
src/xt_pages/qcd/indicatorControlAnalysis/components/office.vue Ver arquivo

@@ -0,0 +1,337 @@
1
+<template>
2
+  <div class="page_office">
3
+    <div class="cell clearfix">
4
+      <el-select v-model="value" placeholder="请选择" style="width:120px;margin-right:20px">
5
+        <el-option
6
+          v-for="item in options"
7
+          :key="item.value"
8
+          :label="item.label"
9
+          :value="item.value"
10
+        ></el-option>
11
+      </el-select>
12
+      <el-select
13
+        v-model="value"
14
+        placeholder="请选择"
15
+        @change="chooseType"
16
+        style="width:120px;margin-right:20px"
17
+      >
18
+        <el-option
19
+          v-for="item in options"
20
+          :key="item.value"
21
+          :label="item.label"
22
+          :value="item.value"
23
+        ></el-option>
24
+      </el-select>
25
+      <el-select v-model="value" placeholder="请选择" style="width:120px;margin-right:20px">
26
+        <el-option
27
+          v-for="item in options"
28
+          :key="item.value"
29
+          :label="item.label"
30
+          :value="item.value"
31
+        ></el-option>
32
+      </el-select>
33
+      <el-select
34
+        v-model="value"
35
+        placeholder="请选择"
36
+        @change="chooseType"
37
+        style="width:120px;margin-right:20px"
38
+      >
39
+        <el-option
40
+          v-for="item in options"
41
+          :key="item.value"
42
+          :label="item.label"
43
+          :value="item.value"
44
+        ></el-option>
45
+      </el-select>
46
+      <label class="title">
47
+        <span class="name">日期查询</span> :
48
+      </label>
49
+      <el-date-picker
50
+        v-model="listQuery.start_time"
51
+        prefix-icon="el-icon-date"
52
+        @change="changeTime"
53
+        :editable="false"
54
+        style="width: 196px;"
55
+        type="date"
56
+        placeholder="选择日期时间"
57
+        align="right"
58
+        format="yyyy-MM-dd"
59
+        value-format="yyyy-MM-dd"
60
+      ></el-date-picker>
61
+      <span class>-</span>
62
+      <el-date-picker
63
+        v-model="listQuery.end_time"
64
+        prefix-icon="el-icon-date"
65
+        @change="changeEndTime"
66
+        :editable="false"
67
+        style="width: 196px;"
68
+        type="date"
69
+        placeholder="选择日期时间"
70
+        align="right"
71
+        format="yyyy-MM-dd"
72
+        value-format="yyyy-MM-dd"
73
+      ></el-date-picker>
74
+    </div>
75
+    <div class="tableTitle">统计图</div>
76
+    <div>
77
+      <line-chart :options="chart"></line-chart>
78
+    </div>
79
+    <div class="tableTitle">统计表</div>
80
+    <div>
81
+      <el-table :data="tableData" style="width: 100%" border>
82
+        <el-table-column fixed prop="date" label="日期"></el-table-column>
83
+        <el-table-column prop="name" label="姓名"></el-table-column>
84
+        <el-table-column prop="province" label="省份"></el-table-column>
85
+        <el-table-column prop="city" label="市区"></el-table-column>
86
+        <el-table-column prop="address" label="地址"></el-table-column>
87
+        <el-table-column prop="zip" label="邮编"></el-table-column>
88
+        <el-table-column label="操作">
89
+          <template slot-scope="scope">
90
+            <el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
91
+          </template>
92
+        </el-table-column>
93
+      </el-table>
94
+
95
+      <el-pagination
96
+        align="right"
97
+        @size-change="handleSizeChange"
98
+        @current-change="handleCurrentChange"
99
+        :current-page="listQuery.page"
100
+        :page-sizes="[10, 20, 50, 100]"
101
+        :page-size="10"
102
+        background
103
+        style="margin-top:20px;"
104
+        layout="total, sizes, prev, pager, next, jumper"
105
+        :total="total"
106
+      ></el-pagination>
107
+    </div>
108
+  </div>
109
+</template>
110
+
111
+
112
+<script>
113
+import echarts from "echarts";
114
+import LineChart from "../../components/LineChart";
115
+export default {
116
+  components: {
117
+    LineChart
118
+  },
119
+  data() {
120
+    return {
121
+      listQuery: {
122
+        start_time: "",
123
+        end_time: "",
124
+        page: 1,
125
+        limit: 10
126
+      },
127
+      options: [
128
+        {
129
+          value: "选项1",
130
+          label: "黄金糕"
131
+        },
132
+        {
133
+          value: "选项2",
134
+          label: "双皮奶"
135
+        },
136
+        {
137
+          value: "选项3",
138
+          label: "蚵仔煎"
139
+        },
140
+        {
141
+          value: "选项4",
142
+          label: "龙须面"
143
+        },
144
+        {
145
+          value: "选项5",
146
+          label: "北京烤鸭"
147
+        }
148
+      ],
149
+      value: "请选项",
150
+      tableData: [
151
+        {
152
+          date: "2016-05-03",
153
+          name: "王小虎",
154
+          province: "上海",
155
+          city: "普陀区",
156
+          address: "上海市普陀区金沙江路 1518 弄",
157
+          zip: 200333
158
+        },
159
+        {
160
+          date: "2016-05-02",
161
+          name: "王小虎",
162
+          province: "上海",
163
+          city: "普陀区",
164
+          address: "上海市普陀区金沙江路 1518 弄",
165
+          zip: 200333
166
+        },
167
+        {
168
+          date: "2016-05-04",
169
+          name: "王小虎",
170
+          province: "上海",
171
+          city: "普陀区",
172
+          address: "上海市普陀区金沙江路 1518 弄",
173
+          zip: 200333
174
+        },
175
+        {
176
+          date: "2016-05-01",
177
+          name: "王小虎",
178
+          province: "上海",
179
+          city: "普陀区",
180
+          address: "上海市普陀区金沙江路 1518 弄",
181
+          zip: 200333
182
+        },
183
+        {
184
+          date: "2016-05-08",
185
+          name: "王小虎",
186
+          province: "上海",
187
+          city: "普陀区",
188
+          address: "上海市普陀区金沙江路 1518 弄",
189
+          zip: 200333
190
+        },
191
+        {
192
+          date: "2016-05-06",
193
+          name: "王小虎",
194
+          province: "上海",
195
+          city: "普陀区",
196
+          address: "上海市普陀区金沙江路 1518 弄",
197
+          zip: 200333
198
+        },
199
+        {
200
+          date: "2016-05-07",
201
+          name: "王小虎",
202
+          province: "上海",
203
+          city: "普陀区",
204
+          address: "上海市普陀区金沙江路 1518 弄",
205
+          zip: 200333
206
+        },
207
+        {
208
+          date: "2016-05-08",
209
+          name: "王小虎",
210
+          province: "上海",
211
+          city: "普陀区",
212
+          address: "上海市普陀区金沙江路 1518 弄",
213
+          zip: 200333
214
+        },
215
+        {
216
+          date: "2016-05-06",
217
+          name: "王小虎",
218
+          province: "上海",
219
+          city: "普陀区",
220
+          address: "上海市普陀区金沙江路 1518 弄",
221
+          zip: 200333
222
+        },
223
+        {
224
+          date: "2016-05-07",
225
+          name: "王小虎",
226
+          province: "上海",
227
+          city: "普陀区",
228
+          address: "上海市普陀区金沙江路 1518 弄",
229
+          zip: 200333
230
+        }
231
+      ],
232
+      chart: {
233
+        title: {
234
+          text: "ECharts 入门示例"
235
+        },
236
+        tooltip: {},
237
+        legend: {
238
+          data: ["次数"],
239
+          left: 0
240
+        },
241
+        xAxis: {
242
+          data: ["达标", "未达标"]
243
+        },
244
+        yAxis: {
245
+          axisLabel: {
246
+            formatter: "{value} %"
247
+          },
248
+          show: false
249
+        },
250
+        series: [
251
+          {
252
+            name: "次数",
253
+            type: "bar",
254
+            data: ["78.57", "50"],
255
+            barWidth: 30,
256
+            label: {
257
+              normal: {
258
+                show: true,
259
+                position: "top",
260
+                formatter: "{c}次"
261
+              }
262
+            },
263
+            //配置样式
264
+            itemStyle: {
265
+              //通常情况下:
266
+
267
+              //每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
268
+              normal: {
269
+                color: function(params) {
270
+                  //我这边就两个柱子,大体就两个柱子颜色渐变,所以数组只有两个值,多个颜色就多个值
271
+                  var colorList = [
272
+                    ["#A9E0F3", "#9FBDFC"],
273
+
274
+                    ["#FFD7C0", "#FF9994"]
275
+                  ];
276
+
277
+                  var index = params.dataIndex;
278
+                  if (params.dataIndex >= colorList.length) {
279
+                    index = params.dataIndex % colorList.length;
280
+                  }
281
+
282
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
283
+                    { offset: 0, color: colorList[index][0] },
284
+                    // { offset: 0.5, color: colorList[index][1] },
285
+                    { offset: 1, color: colorList[index][1] }
286
+                  ]);
287
+                },
288
+                barBorderRadius: [5, 5, 0, 0] //柱状角成椭圆形
289
+              },
290
+
291
+              //鼠标悬停时:
292
+              emphasis: {
293
+                shadowBlur: 10,
294
+                shadowOffsetX: 0,
295
+                shadowColor: "rgba(0, 0, 0, 0.5)"
296
+              }
297
+            }
298
+          }
299
+        ]
300
+      }
301
+    };
302
+  },
303
+  methods: {
304
+    changeTime() {},
305
+    changeEndTime(val) {
306
+      var time =
307
+        this.getTimestamp(val) - this.getTimestamp(this.listQuery.start_time);
308
+      if (time < 0) {
309
+        this.$message.error("结束时间不能小于开始时间");
310
+        this.listQuery.end_time = "";
311
+      } else {
312
+      }
313
+    },
314
+    handleClick(row) {
315
+      console.log(row);
316
+      this.$router.push({ path: "/qcd/analysisDetails" });
317
+    }
318
+  }
319
+};
320
+</script>
321
+
322
+
323
+<style lang="scss" scoped>
324
+.tableTitle {
325
+  font-size: 16px;
326
+  color: #000;
327
+  font-weight: bold;
328
+  margin-bottom: 10px;
329
+}
330
+</style>
331
+<style lang="scss">
332
+.page_office {
333
+  .cell {
334
+    text-align: center;
335
+  }
336
+}
337
+</style>

+ 371 - 0
src/xt_pages/qcd/indicatorControlAnalysis/components/personal.vue Ver arquivo

@@ -0,0 +1,371 @@
1
+<template>
2
+  <div class="page_personal">
3
+    <div class="cell clearfix">
4
+      <el-form :inline="true" :model="listQuery">
5
+        <el-form-item label>
6
+          <el-input v-model.trim="listQuery.search" placeholder="姓名/透析号" style="width:110px"></el-input>
7
+          <el-button type="primary" @click="onSearch" icon="el-icon-search">搜索</el-button>
8
+        </el-form-item>
9
+      </el-form>
10
+      <el-select v-model="value" placeholder="请选择" style="width:110px;margin-right:10px">
11
+        <el-option
12
+          v-for="item in options"
13
+          :key="item.value"
14
+          :label="item.label"
15
+          :value="item.value"
16
+        ></el-option>
17
+      </el-select>
18
+      <el-select
19
+        v-model="value"
20
+        placeholder="请选择"
21
+        @change="chooseType"
22
+        style="width:110px;margin-right:10px"
23
+      >
24
+        <el-option
25
+          v-for="item in options"
26
+          :key="item.value"
27
+          :label="item.label"
28
+          :value="item.value"
29
+        ></el-option>
30
+      </el-select>
31
+      <el-select v-model="value" placeholder="请选择" style="width:110px;margin-right:10px">
32
+        <el-option
33
+          v-for="item in options"
34
+          :key="item.value"
35
+          :label="item.label"
36
+          :value="item.value"
37
+        ></el-option>
38
+      </el-select>
39
+      <el-select
40
+        v-model="value"
41
+        placeholder="请选择"
42
+        @change="chooseType"
43
+        style="width:110px;margin-right:10px"
44
+      >
45
+        <el-option
46
+          v-for="item in options"
47
+          :key="item.value"
48
+          :label="item.label"
49
+          :value="item.value"
50
+        ></el-option>
51
+      </el-select>
52
+      <label class="title">
53
+        <span class="name">日期查询</span> :
54
+      </label>
55
+      <el-date-picker
56
+        v-model="listQuery.start_time"
57
+        prefix-icon="el-icon-date"
58
+        @change="changeTime"
59
+        :editable="false"
60
+        style="width: 150px;"
61
+        type="date"
62
+        placeholder="选择日期时间"
63
+        align="right"
64
+        format="yyyy-MM-dd"
65
+        value-format="yyyy-MM-dd"
66
+      ></el-date-picker>
67
+      <span class>-</span>
68
+      <el-date-picker
69
+        v-model="listQuery.end_time"
70
+        prefix-icon="el-icon-date"
71
+        @change="changeEndTime"
72
+        :editable="false"
73
+        style="width: 150px;"
74
+        type="date"
75
+        placeholder="选择日期时间"
76
+        align="right"
77
+        format="yyyy-MM-dd"
78
+        value-format="yyyy-MM-dd"
79
+      ></el-date-picker>
80
+    </div>
81
+    <el-container>
82
+      <div style="width:150px">
83
+        <div class="tableTitle">患者列表</div>
84
+        <el-table :data="tableData" border style="width: 100%;" height="500">
85
+          <el-table-column prop="date" label="日期" width="70"></el-table-column>
86
+          <el-table-column prop="name" label="姓名" width="80"></el-table-column>
87
+        </el-table>
88
+      </div>
89
+      <div style="padding-left:10px;flex:1">
90
+        <div class="tableTitle">统计图</div>
91
+        <div>
92
+          <line-chart :options="chart"></line-chart>
93
+        </div>
94
+        <div class="tableTitle">指标趋势</div>
95
+        <div>
96
+          <div>
97
+            <line-chart :options="chart1"></line-chart>
98
+          </div>
99
+        </div>
100
+        <div></div>
101
+      </div>
102
+    </el-container>
103
+  </div>
104
+</template>
105
+
106
+
107
+<script>
108
+import echarts from "echarts";
109
+import LineChart from "../../components/LineChart";
110
+export default {
111
+  components: {
112
+    LineChart
113
+  },
114
+  data() {
115
+    return {
116
+      listQuery: {
117
+        start_time: "",
118
+        end_time: "",
119
+        page: 1,
120
+        limit: 10
121
+      },
122
+      options: [
123
+        {
124
+          value: "选项1",
125
+          label: "黄金糕"
126
+        },
127
+        {
128
+          value: "选项2",
129
+          label: "双皮奶"
130
+        },
131
+        {
132
+          value: "选项3",
133
+          label: "蚵仔煎"
134
+        },
135
+        {
136
+          value: "选项4",
137
+          label: "龙须面"
138
+        },
139
+        {
140
+          value: "选项5",
141
+          label: "北京烤鸭"
142
+        }
143
+      ],
144
+      value: "请选项",
145
+      tableData: [
146
+        {
147
+          date: "2016",
148
+          name: "王小虎"
149
+        },
150
+        {
151
+          date: "2016",
152
+          name: "王小虎"
153
+        },
154
+        {
155
+          date: "2016",
156
+          name: "王小虎"
157
+        },
158
+        {
159
+          date: "2016",
160
+          name: "王小虎"
161
+        },
162
+        {
163
+          date: "2016",
164
+          name: "王小虎"
165
+        },
166
+        {
167
+          date: "2016",
168
+          name: "王小虎"
169
+        },
170
+        {
171
+          date: "2016",
172
+          name: "王小虎"
173
+        },
174
+        {
175
+          date: "2016",
176
+          name: "王小虎"
177
+        },
178
+        {
179
+          date: "2016",
180
+          name: "王小虎"
181
+        },
182
+        {
183
+          date: "2016",
184
+          name: "王小虎"
185
+        },
186
+        {
187
+          date: "2016",
188
+          name: "王小虎"
189
+        },
190
+        {
191
+          date: "2016",
192
+          name: "王小虎"
193
+        }
194
+      ],
195
+      chart: {
196
+        title: {
197
+          text: "ECharts 入门示例"
198
+        },
199
+        tooltip: {},
200
+        legend: {
201
+          data: ["次数"],
202
+          left: 0
203
+        },
204
+        xAxis: {
205
+          data: ["达标", "未达标"]
206
+        },
207
+        yAxis: {
208
+          axisLabel: {
209
+            formatter: "{value} %"
210
+          },
211
+          show: false
212
+        },
213
+        series: [
214
+          {
215
+            name: "次数",
216
+            type: "bar",
217
+            data: ["78.57", "50"],
218
+            barWidth: 30,
219
+            label: {
220
+              normal: {
221
+                show: true,
222
+                position: "top",
223
+                formatter: "{c}次"
224
+              }
225
+            },
226
+            //配置样式
227
+            itemStyle: {
228
+              //通常情况下:
229
+
230
+              //每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
231
+              normal: {
232
+                color: function(params) {
233
+                  //我这边就两个柱子,大体就两个柱子颜色渐变,所以数组只有两个值,多个颜色就多个值
234
+                  var colorList = [
235
+                    ["#A9E0F3", "#9FBDFC"],
236
+
237
+                    ["#FFD7C0", "#FF9994"]
238
+                  ];
239
+
240
+                  var index = params.dataIndex;
241
+                  if (params.dataIndex >= colorList.length) {
242
+                    index = params.dataIndex % colorList.length;
243
+                  }
244
+
245
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
246
+                    { offset: 0, color: colorList[index][0] },
247
+                    // { offset: 0.5, color: colorList[index][1] },
248
+                    { offset: 1, color: colorList[index][1] }
249
+                  ]);
250
+                },
251
+                barBorderRadius: [5, 5, 0, 0] //柱状角成椭圆形
252
+              },
253
+
254
+              //鼠标悬停时:
255
+              emphasis: {
256
+                shadowBlur: 10,
257
+                shadowOffsetX: 0,
258
+                shadowColor: "rgba(0, 0, 0, 0.5)"
259
+              }
260
+            }
261
+          }
262
+        ]
263
+      },
264
+      chart1: {
265
+        title: {
266
+          text: "ECharts 入门示例"
267
+        },
268
+        tooltip: {},
269
+        legend: {
270
+          data: ["次数"],
271
+          left: 0
272
+        },
273
+        xAxis: {
274
+          data: ["达标", "未达标"]
275
+        },
276
+        yAxis: {
277
+          axisLabel: {
278
+            formatter: "{value} %"
279
+          },
280
+          show: false
281
+        },
282
+        series: [
283
+          {
284
+            name: "次数",
285
+            type: "line",
286
+            data: ["78.57", "50"],
287
+            barWidth: 30,
288
+            label: {
289
+              normal: {
290
+                show: true,
291
+                position: "top",
292
+                formatter: "{c}次"
293
+              }
294
+            },
295
+            //配置样式
296
+            itemStyle: {
297
+              //通常情况下:
298
+
299
+              //每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
300
+              normal: {
301
+                color: function(params) {
302
+                  //我这边就两个柱子,大体就两个柱子颜色渐变,所以数组只有两个值,多个颜色就多个值
303
+                  var colorList = [
304
+                    ["#A9E0F3", "#9FBDFC"],
305
+
306
+                    ["#FFD7C0", "#FF9994"]
307
+                  ];
308
+
309
+                  var index = params.dataIndex;
310
+                  if (params.dataIndex >= colorList.length) {
311
+                    index = params.dataIndex % colorList.length;
312
+                  }
313
+
314
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
315
+                    { offset: 0, color: colorList[index][0] },
316
+                    // { offset: 0.5, color: colorList[index][1] },
317
+                    { offset: 1, color: colorList[index][1] }
318
+                  ]);
319
+                },
320
+                barBorderRadius: [5, 5, 0, 0] //柱状角成椭圆形
321
+              },
322
+
323
+              //鼠标悬停时:
324
+              emphasis: {
325
+                shadowBlur: 10,
326
+                shadowOffsetX: 0,
327
+                shadowColor: "rgba(0, 0, 0, 0.5)"
328
+              }
329
+            }
330
+          }
331
+        ]
332
+      }
333
+    };
334
+  },
335
+  methods: {
336
+    changeTime() {},
337
+    changeEndTime(val) {
338
+      var time =
339
+        this.getTimestamp(val) - this.getTimestamp(this.listQuery.start_time);
340
+      if (time < 0) {
341
+        this.$message.error("结束时间不能小于开始时间");
342
+        this.listQuery.end_time = "";
343
+      } else {
344
+      }
345
+    }
346
+  }
347
+};
348
+</script>
349
+
350
+
351
+<style lang="scss" scoped>
352
+.tableTitle {
353
+  font-size: 16px;
354
+  color: #000;
355
+  font-weight: bold;
356
+  margin-bottom: 10px;
357
+}
358
+</style>
359
+<style lang="scss">
360
+.page_personal {
361
+  .cell {
362
+    text-align: center;
363
+  }
364
+  .el-button--medium {
365
+    padding: 10px 8px;
366
+  }
367
+  .el-form-item {
368
+    margin-bottom: 0;
369
+  }
370
+}
371
+</style>

+ 384 - 0
src/xt_pages/qcd/indicatorControlAnalysis/monitor.vue Ver arquivo

@@ -0,0 +1,384 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <div class="page_monitor">
8
+        <new-nav activeName="monitor"></new-nav>
9
+        <div class="cell clearfix">
10
+          <el-form :inline="true" :model="listQuery">
11
+            <el-form-item label>
12
+              <el-input v-model.trim="listQuery.search" placeholder="姓名/透析号" style="width:110px"></el-input>
13
+              <el-button type="primary" @click="onSearch" icon="el-icon-search">搜索</el-button>
14
+            </el-form-item>
15
+          </el-form>
16
+          <el-select v-model="value" placeholder="请选择" style="width:110px;margin-right:10px">
17
+            <el-option
18
+              v-for="item in options"
19
+              :key="item.value"
20
+              :label="item.label"
21
+              :value="item.value"
22
+            ></el-option>
23
+          </el-select>
24
+          <el-select
25
+            v-model="value"
26
+            placeholder="请选择"
27
+            @change="chooseType"
28
+            style="width:110px;margin-right:10px"
29
+          >
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-select v-model="value" placeholder="请选择" style="width:110px;margin-right:10px">
38
+            <el-option
39
+              v-for="item in options"
40
+              :key="item.value"
41
+              :label="item.label"
42
+              :value="item.value"
43
+            ></el-option>
44
+          </el-select>
45
+          <el-select
46
+            v-model="value"
47
+            placeholder="请选择"
48
+            @change="chooseType"
49
+            style="width:110px;margin-right:10px"
50
+          >
51
+            <el-option
52
+              v-for="item in options"
53
+              :key="item.value"
54
+              :label="item.label"
55
+              :value="item.value"
56
+            ></el-option>
57
+          </el-select>
58
+          <label class="title">
59
+            <span class="name">日期查询</span> :
60
+          </label>
61
+          <el-date-picker
62
+            v-model="listQuery.start_time"
63
+            prefix-icon="el-icon-date"
64
+            @change="changeTime"
65
+            :editable="false"
66
+            style="width: 150px;"
67
+            type="date"
68
+            placeholder="选择日期时间"
69
+            align="right"
70
+            format="yyyy-MM-dd"
71
+            value-format="yyyy-MM-dd"
72
+          ></el-date-picker>
73
+          <span class>-</span>
74
+          <el-date-picker
75
+            v-model="listQuery.end_time"
76
+            prefix-icon="el-icon-date"
77
+            @change="changeEndTime"
78
+            :editable="false"
79
+            style="width: 150px;"
80
+            type="date"
81
+            placeholder="选择日期时间"
82
+            align="right"
83
+            format="yyyy-MM-dd"
84
+            value-format="yyyy-MM-dd"
85
+          ></el-date-picker>
86
+        </div>
87
+        <el-container>
88
+          <div style="width:150px">
89
+            <div class="tableTitle">患者列表</div>
90
+            <el-table :data="tableData" border style="width: 100%;" height="500">
91
+              <el-table-column prop="date" label="日期" width="70"></el-table-column>
92
+              <el-table-column prop="name" label="姓名" width="80"></el-table-column>
93
+            </el-table>
94
+          </div>
95
+          <div style="padding-left:10px;flex:1">
96
+            <div class="tableTitle">指标趋势</div>
97
+            <div>
98
+              <line-chart :options="chart"></line-chart>
99
+            </div>
100
+            <div class="tableTitle">统计表</div>
101
+            <div>
102
+              <el-table :data="tableData1" style="width: 100%" border>
103
+                <el-table-column fixed prop="date" label="日期"></el-table-column>
104
+                <el-table-column prop="name" label="姓名"></el-table-column>
105
+                <el-table-column prop="province" label="省份"></el-table-column>
106
+                <el-table-column prop="city" label="市区"></el-table-column>
107
+                <el-table-column prop="address" label="地址"></el-table-column>
108
+                <el-table-column prop="zip" label="邮编"></el-table-column>
109
+              </el-table>
110
+
111
+              <el-pagination
112
+                align="right"
113
+                @size-change="handleSizeChange"
114
+                @current-change="handleCurrentChange"
115
+                :current-page="listQuery.page"
116
+                :page-sizes="[10, 20, 50, 100]"
117
+                :page-size="10"
118
+                background
119
+                style="margin-top:20px;"
120
+                layout="total, sizes, prev, pager, next, jumper"
121
+                :total="total"
122
+              ></el-pagination>
123
+            </div>
124
+          </div>
125
+        </el-container>
126
+      </div>
127
+    </div>
128
+  </div>
129
+</template>
130
+
131
+
132
+<script>
133
+import echarts from "echarts";
134
+import NewNav from "../indicatorControlAnalysis/components/NewNav";
135
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
136
+import LineChart from "../../qcd/components/LineChart";
137
+export default {
138
+  components: {
139
+    LineChart,
140
+    BreadCrumb,
141
+    NewNav
142
+  },
143
+  data() {
144
+    return {
145
+      crumbs: [
146
+        { path: false, name: "科室质控" },
147
+        { path: false, name: "指标评估统计" },
148
+        { path: false, name: "透析监测信息统计" }
149
+      ],
150
+      listQuery: {
151
+        start_time: "",
152
+        end_time: "",
153
+        page: 1,
154
+        limit: 10
155
+      },
156
+      tableData: [
157
+        {
158
+          date: "2016",
159
+          name: "王小虎"
160
+        },
161
+        {
162
+          date: "2016",
163
+          name: "王小虎"
164
+        },
165
+        {
166
+          date: "2016",
167
+          name: "王小虎"
168
+        },
169
+        {
170
+          date: "2016",
171
+          name: "王小虎"
172
+        },
173
+        {
174
+          date: "2016",
175
+          name: "王小虎"
176
+        },
177
+        {
178
+          date: "2016",
179
+          name: "王小虎"
180
+        },
181
+        {
182
+          date: "2016",
183
+          name: "王小虎"
184
+        },
185
+        {
186
+          date: "2016",
187
+          name: "王小虎"
188
+        },
189
+        {
190
+          date: "2016",
191
+          name: "王小虎"
192
+        },
193
+        {
194
+          date: "2016",
195
+          name: "王小虎"
196
+        },
197
+        {
198
+          date: "2016",
199
+          name: "王小虎"
200
+        },
201
+        {
202
+          date: "2016",
203
+          name: "王小虎"
204
+        }
205
+      ],
206
+      tableData1: [
207
+        {
208
+          date: "2016-05-03",
209
+          name: "王小虎",
210
+          province: "上海",
211
+          city: "普陀区",
212
+          address: "上海市普陀区金沙江路 1518 弄",
213
+          zip: 200333
214
+        },
215
+        {
216
+          date: "2016-05-02",
217
+          name: "王小虎",
218
+          province: "上海",
219
+          city: "普陀区",
220
+          address: "上海市普陀区金沙江路 1518 弄",
221
+          zip: 200333
222
+        },
223
+        {
224
+          date: "2016-05-04",
225
+          name: "王小虎",
226
+          province: "上海",
227
+          city: "普陀区",
228
+          address: "上海市普陀区金沙江路 1518 弄",
229
+          zip: 200333
230
+        },
231
+        {
232
+          date: "2016-05-01",
233
+          name: "王小虎",
234
+          province: "上海",
235
+          city: "普陀区",
236
+          address: "上海市普陀区金沙江路 1518 弄",
237
+          zip: 200333
238
+        },
239
+        {
240
+          date: "2016-05-08",
241
+          name: "王小虎",
242
+          province: "上海",
243
+          city: "普陀区",
244
+          address: "上海市普陀区金沙江路 1518 弄",
245
+          zip: 200333
246
+        },
247
+        {
248
+          date: "2016-05-06",
249
+          name: "王小虎",
250
+          province: "上海",
251
+          city: "普陀区",
252
+          address: "上海市普陀区金沙江路 1518 弄",
253
+          zip: 200333
254
+        },
255
+        {
256
+          date: "2016-05-07",
257
+          name: "王小虎",
258
+          province: "上海",
259
+          city: "普陀区",
260
+          address: "上海市普陀区金沙江路 1518 弄",
261
+          zip: 200333
262
+        },
263
+        {
264
+          date: "2016-05-08",
265
+          name: "王小虎",
266
+          province: "上海",
267
+          city: "普陀区",
268
+          address: "上海市普陀区金沙江路 1518 弄",
269
+          zip: 200333
270
+        },
271
+        {
272
+          date: "2016-05-06",
273
+          name: "王小虎",
274
+          province: "上海",
275
+          city: "普陀区",
276
+          address: "上海市普陀区金沙江路 1518 弄",
277
+          zip: 200333
278
+        },
279
+        {
280
+          date: "2016-05-07",
281
+          name: "王小虎",
282
+          province: "上海",
283
+          city: "普陀区",
284
+          address: "上海市普陀区金沙江路 1518 弄",
285
+          zip: 200333
286
+        }
287
+      ],
288
+      chart: {
289
+        title: {
290
+          text: "ECharts 入门示例"
291
+        },
292
+        tooltip: {},
293
+        legend: {
294
+          data: ["次数"],
295
+          left: 0
296
+        },
297
+        xAxis: {
298
+          data: ["达标", "未达标"]
299
+        },
300
+        yAxis: {
301
+          axisLabel: {
302
+            formatter: "{value} %"
303
+          },
304
+          show: false
305
+        },
306
+        series: [
307
+          {
308
+            name: "次数",
309
+            type: "line",
310
+            data: ["78.57", "50"],
311
+            barWidth: 30,
312
+            label: {
313
+              normal: {
314
+                show: true,
315
+                position: "top",
316
+                formatter: "{c}次"
317
+              }
318
+            },
319
+            //配置样式
320
+            itemStyle: {
321
+              //通常情况下:
322
+
323
+              //每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
324
+              normal: {
325
+                color: function(params) {
326
+                  //我这边就两个柱子,大体就两个柱子颜色渐变,所以数组只有两个值,多个颜色就多个值
327
+                  var colorList = [
328
+                    ["#A9E0F3", "#9FBDFC"],
329
+
330
+                    ["#FFD7C0", "#FF9994"]
331
+                  ];
332
+
333
+                  var index = params.dataIndex;
334
+                  if (params.dataIndex >= colorList.length) {
335
+                    index = params.dataIndex % colorList.length;
336
+                  }
337
+
338
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
339
+                    { offset: 0, color: colorList[index][0] },
340
+                    // { offset: 0.5, color: colorList[index][1] },
341
+                    { offset: 1, color: colorList[index][1] }
342
+                  ]);
343
+                },
344
+                barBorderRadius: [5, 5, 0, 0] //柱状角成椭圆形
345
+              },
346
+
347
+              //鼠标悬停时:
348
+              emphasis: {
349
+                shadowBlur: 10,
350
+                shadowOffsetX: 0,
351
+                shadowColor: "rgba(0, 0, 0, 0.5)"
352
+              }
353
+            }
354
+          }
355
+        ]
356
+      }
357
+    };
358
+  },
359
+  methods: {
360
+    chooseWay(way) {
361
+      this.wayType = way;
362
+    }
363
+  }
364
+};
365
+</script>
366
+
367
+<style lang="scss" scoped>
368
+.tableTitle {
369
+  font-size: 16px;
370
+  color: #000;
371
+  font-weight: bold;
372
+  margin-bottom: 10px;
373
+}
374
+</style>
375
+<style lang="scss">
376
+.page_monitor {
377
+  .el-button--medium {
378
+    padding: 10px 8px;
379
+  }
380
+  .el-form-item {
381
+    margin-bottom: 0;
382
+  }
383
+}
384
+</style>

+ 384 - 0
src/xt_pages/qcd/indicatorControlAnalysis/process.vue Ver arquivo

@@ -0,0 +1,384 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <div class="page_process">
8
+        <new-nav activeName="process"></new-nav>
9
+        <div class="cell clearfix">
10
+          <el-form :inline="true" :model="listQuery">
11
+            <el-form-item label>
12
+              <el-input v-model.trim="listQuery.search" placeholder="姓名/透析号" style="width:110px"></el-input>
13
+              <el-button type="primary" @click="onSearch" icon="el-icon-search">搜索</el-button>
14
+            </el-form-item>
15
+          </el-form>
16
+          <el-select v-model="value" placeholder="请选择" style="width:110px;margin-right:10px">
17
+            <el-option
18
+              v-for="item in options"
19
+              :key="item.value"
20
+              :label="item.label"
21
+              :value="item.value"
22
+            ></el-option>
23
+          </el-select>
24
+          <el-select
25
+            v-model="value"
26
+            placeholder="请选择"
27
+            @change="chooseType"
28
+            style="width:110px;margin-right:10px"
29
+          >
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-select v-model="value" placeholder="请选择" style="width:110px;margin-right:10px">
38
+            <el-option
39
+              v-for="item in options"
40
+              :key="item.value"
41
+              :label="item.label"
42
+              :value="item.value"
43
+            ></el-option>
44
+          </el-select>
45
+          <el-select
46
+            v-model="value"
47
+            placeholder="请选择"
48
+            @change="chooseType"
49
+            style="width:110px;margin-right:10px"
50
+          >
51
+            <el-option
52
+              v-for="item in options"
53
+              :key="item.value"
54
+              :label="item.label"
55
+              :value="item.value"
56
+            ></el-option>
57
+          </el-select>
58
+          <label class="title">
59
+            <span class="name">日期查询</span> :
60
+          </label>
61
+          <el-date-picker
62
+            v-model="listQuery.start_time"
63
+            prefix-icon="el-icon-date"
64
+            @change="changeTime"
65
+            :editable="false"
66
+            style="width: 150px;"
67
+            type="date"
68
+            placeholder="选择日期时间"
69
+            align="right"
70
+            format="yyyy-MM-dd"
71
+            value-format="yyyy-MM-dd"
72
+          ></el-date-picker>
73
+          <span class>-</span>
74
+          <el-date-picker
75
+            v-model="listQuery.end_time"
76
+            prefix-icon="el-icon-date"
77
+            @change="changeEndTime"
78
+            :editable="false"
79
+            style="width: 150px;"
80
+            type="date"
81
+            placeholder="选择日期时间"
82
+            align="right"
83
+            format="yyyy-MM-dd"
84
+            value-format="yyyy-MM-dd"
85
+          ></el-date-picker>
86
+        </div>
87
+        <el-container>
88
+          <div style="width:150px">
89
+            <div class="tableTitle">患者列表</div>
90
+            <el-table :data="tableData" border style="width: 100%;" height="500">
91
+              <el-table-column prop="date" label="日期" width="70"></el-table-column>
92
+              <el-table-column prop="name" label="姓名" width="80"></el-table-column>
93
+            </el-table>
94
+          </div>
95
+          <div style="padding-left:10px;flex:1">
96
+            <div class="tableTitle">指标趋势</div>
97
+            <div>
98
+              <line-chart :options="chart"></line-chart>
99
+            </div>
100
+            <div class="tableTitle">统计表</div>
101
+            <div>
102
+              <el-table :data="tableData1" style="width: 100%" border>
103
+                <el-table-column fixed prop="date" label="日期"></el-table-column>
104
+                <el-table-column prop="name" label="姓名"></el-table-column>
105
+                <el-table-column prop="province" label="省份"></el-table-column>
106
+                <el-table-column prop="city" label="市区"></el-table-column>
107
+                <el-table-column prop="address" label="地址"></el-table-column>
108
+                <el-table-column prop="zip" label="邮编"></el-table-column>
109
+              </el-table>
110
+
111
+              <el-pagination
112
+                align="right"
113
+                @size-change="handleSizeChange"
114
+                @current-change="handleCurrentChange"
115
+                :current-page="listQuery.page"
116
+                :page-sizes="[10, 20, 50, 100]"
117
+                :page-size="10"
118
+                background
119
+                style="margin-top:20px;"
120
+                layout="total, sizes, prev, pager, next, jumper"
121
+                :total="total"
122
+              ></el-pagination>
123
+            </div>
124
+          </div>
125
+        </el-container>
126
+      </div>
127
+    </div>
128
+  </div>
129
+</template>
130
+
131
+
132
+<script>
133
+import echarts from "echarts";
134
+import NewNav from "../indicatorControlAnalysis/components/NewNav";
135
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
136
+import LineChart from "../../qcd/components/LineChart";
137
+export default {
138
+  components: {
139
+    LineChart,
140
+    BreadCrumb,
141
+    NewNav
142
+  },
143
+  data() {
144
+    return {
145
+      crumbs: [
146
+        { path: false, name: "科室质控" },
147
+        { path: false, name: "指标评估统计" },
148
+        { path: false, name: "透析过程指标统计" }
149
+      ],
150
+      listQuery: {
151
+        start_time: "",
152
+        end_time: "",
153
+        page: 1,
154
+        limit: 10
155
+      },
156
+      tableData: [
157
+        {
158
+          date: "2016",
159
+          name: "王小虎"
160
+        },
161
+        {
162
+          date: "2016",
163
+          name: "王小虎"
164
+        },
165
+        {
166
+          date: "2016",
167
+          name: "王小虎"
168
+        },
169
+        {
170
+          date: "2016",
171
+          name: "王小虎"
172
+        },
173
+        {
174
+          date: "2016",
175
+          name: "王小虎"
176
+        },
177
+        {
178
+          date: "2016",
179
+          name: "王小虎"
180
+        },
181
+        {
182
+          date: "2016",
183
+          name: "王小虎"
184
+        },
185
+        {
186
+          date: "2016",
187
+          name: "王小虎"
188
+        },
189
+        {
190
+          date: "2016",
191
+          name: "王小虎"
192
+        },
193
+        {
194
+          date: "2016",
195
+          name: "王小虎"
196
+        },
197
+        {
198
+          date: "2016",
199
+          name: "王小虎"
200
+        },
201
+        {
202
+          date: "2016",
203
+          name: "王小虎"
204
+        }
205
+      ],
206
+      tableData1: [
207
+        {
208
+          date: "2016-05-03",
209
+          name: "王小虎",
210
+          province: "上海",
211
+          city: "普陀区",
212
+          address: "上海市普陀区金沙江路 1518 弄",
213
+          zip: 200333
214
+        },
215
+        {
216
+          date: "2016-05-02",
217
+          name: "王小虎",
218
+          province: "上海",
219
+          city: "普陀区",
220
+          address: "上海市普陀区金沙江路 1518 弄",
221
+          zip: 200333
222
+        },
223
+        {
224
+          date: "2016-05-04",
225
+          name: "王小虎",
226
+          province: "上海",
227
+          city: "普陀区",
228
+          address: "上海市普陀区金沙江路 1518 弄",
229
+          zip: 200333
230
+        },
231
+        {
232
+          date: "2016-05-01",
233
+          name: "王小虎",
234
+          province: "上海",
235
+          city: "普陀区",
236
+          address: "上海市普陀区金沙江路 1518 弄",
237
+          zip: 200333
238
+        },
239
+        {
240
+          date: "2016-05-08",
241
+          name: "王小虎",
242
+          province: "上海",
243
+          city: "普陀区",
244
+          address: "上海市普陀区金沙江路 1518 弄",
245
+          zip: 200333
246
+        },
247
+        {
248
+          date: "2016-05-06",
249
+          name: "王小虎",
250
+          province: "上海",
251
+          city: "普陀区",
252
+          address: "上海市普陀区金沙江路 1518 弄",
253
+          zip: 200333
254
+        },
255
+        {
256
+          date: "2016-05-07",
257
+          name: "王小虎",
258
+          province: "上海",
259
+          city: "普陀区",
260
+          address: "上海市普陀区金沙江路 1518 弄",
261
+          zip: 200333
262
+        },
263
+        {
264
+          date: "2016-05-08",
265
+          name: "王小虎",
266
+          province: "上海",
267
+          city: "普陀区",
268
+          address: "上海市普陀区金沙江路 1518 弄",
269
+          zip: 200333
270
+        },
271
+        {
272
+          date: "2016-05-06",
273
+          name: "王小虎",
274
+          province: "上海",
275
+          city: "普陀区",
276
+          address: "上海市普陀区金沙江路 1518 弄",
277
+          zip: 200333
278
+        },
279
+        {
280
+          date: "2016-05-07",
281
+          name: "王小虎",
282
+          province: "上海",
283
+          city: "普陀区",
284
+          address: "上海市普陀区金沙江路 1518 弄",
285
+          zip: 200333
286
+        }
287
+      ],
288
+      chart: {
289
+        title: {
290
+          text: "ECharts 入门示例"
291
+        },
292
+        tooltip: {},
293
+        legend: {
294
+          data: ["次数"],
295
+          left: 0
296
+        },
297
+        xAxis: {
298
+          data: ["达标", "未达标"]
299
+        },
300
+        yAxis: {
301
+          axisLabel: {
302
+            formatter: "{value} %"
303
+          },
304
+          show: false
305
+        },
306
+        series: [
307
+          {
308
+            name: "次数",
309
+            type: "line",
310
+            data: ["78.57", "50"],
311
+            barWidth: 30,
312
+            label: {
313
+              normal: {
314
+                show: true,
315
+                position: "top",
316
+                formatter: "{c}次"
317
+              }
318
+            },
319
+            //配置样式
320
+            itemStyle: {
321
+              //通常情况下:
322
+
323
+              //每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
324
+              normal: {
325
+                color: function(params) {
326
+                  //我这边就两个柱子,大体就两个柱子颜色渐变,所以数组只有两个值,多个颜色就多个值
327
+                  var colorList = [
328
+                    ["#A9E0F3", "#9FBDFC"],
329
+
330
+                    ["#FFD7C0", "#FF9994"]
331
+                  ];
332
+
333
+                  var index = params.dataIndex;
334
+                  if (params.dataIndex >= colorList.length) {
335
+                    index = params.dataIndex % colorList.length;
336
+                  }
337
+
338
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
339
+                    { offset: 0, color: colorList[index][0] },
340
+                    // { offset: 0.5, color: colorList[index][1] },
341
+                    { offset: 1, color: colorList[index][1] }
342
+                  ]);
343
+                },
344
+                barBorderRadius: [5, 5, 0, 0] //柱状角成椭圆形
345
+              },
346
+
347
+              //鼠标悬停时:
348
+              emphasis: {
349
+                shadowBlur: 10,
350
+                shadowOffsetX: 0,
351
+                shadowColor: "rgba(0, 0, 0, 0.5)"
352
+              }
353
+            }
354
+          }
355
+        ]
356
+      }
357
+    };
358
+  },
359
+  methods: {
360
+    chooseWay(way) {
361
+      this.wayType = way;
362
+    }
363
+  }
364
+};
365
+</script>
366
+
367
+<style lang="scss" scoped>
368
+.tableTitle {
369
+  font-size: 16px;
370
+  color: #000;
371
+  font-weight: bold;
372
+  margin-bottom: 10px;
373
+}
374
+</style>
375
+<style lang="scss">
376
+.page_process {
377
+  .el-button--medium {
378
+    padding: 10px 8px;
379
+  }
380
+  .el-form-item {
381
+    margin-bottom: 0;
382
+  }
383
+}
384
+</style>

+ 390 - 0
src/xt_pages/qcd/indicatorControlAnalysis/weight.vue Ver arquivo

@@ -0,0 +1,390 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <div class="page_weight">
8
+        <new-nav activeName="weight"></new-nav>
9
+        <div class="cell clearfix">
10
+          <el-form :inline="true" :model="listQuery">
11
+            <el-form-item label>
12
+              <el-input v-model.trim="listQuery.search" placeholder="姓名/透析号" style="width:110px"></el-input>
13
+              <el-button type="primary" @click="onSearch" icon="el-icon-search">搜索</el-button>
14
+            </el-form-item>
15
+          </el-form>
16
+          <el-select
17
+            v-model="value"
18
+            placeholder="请选择"
19
+            @change="chooseType"
20
+            style="width:110px;margin-right:10px"
21
+          >
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-select v-model="value" placeholder="请选择" style="width:110px;margin-right:10px">
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-select
38
+            v-model="value"
39
+            placeholder="请选择"
40
+            @change="chooseType"
41
+            style="width:110px;margin-right:10px"
42
+          >
43
+            <el-option
44
+              v-for="item in options"
45
+              :key="item.value"
46
+              :label="item.label"
47
+              :value="item.value"
48
+            ></el-option>
49
+          </el-select>
50
+          <label class="title">
51
+            <span class="name">日期查询</span> :
52
+          </label>
53
+          <el-date-picker
54
+            v-model="listQuery.start_time"
55
+            prefix-icon="el-icon-date"
56
+            @change="changeTime"
57
+            :editable="false"
58
+            style="width: 150px;"
59
+            type="date"
60
+            placeholder="选择日期时间"
61
+            align="right"
62
+            format="yyyy-MM-dd"
63
+            value-format="yyyy-MM-dd"
64
+          ></el-date-picker>
65
+          <span class>-</span>
66
+          <el-date-picker
67
+            v-model="listQuery.end_time"
68
+            prefix-icon="el-icon-date"
69
+            @change="changeEndTime"
70
+            :editable="false"
71
+            style="width: 150px;"
72
+            type="date"
73
+            placeholder="选择日期时间"
74
+            align="right"
75
+            format="yyyy-MM-dd"
76
+            value-format="yyyy-MM-dd"
77
+          ></el-date-picker>
78
+        </div>
79
+        <el-container>
80
+          <div style="width:150px">
81
+            <div class="tableTitle">患者列表</div>
82
+            <el-table :data="tableData" border style="width: 100%;" height="500">
83
+              <el-table-column prop="date" label="日期" width="70"></el-table-column>
84
+              <el-table-column prop="name" label="姓名" width="80"></el-table-column>
85
+            </el-table>
86
+          </div>
87
+          <div style="padding-left:10px;flex:1">
88
+            <div class="tableTitle">指标趋势</div>
89
+            <div>
90
+              <line-chart :options="chart"></line-chart>
91
+            </div>
92
+            <div class="tableTitle">统计表</div>
93
+            <div>
94
+              <el-table :data="tableData1" style="width: 100%" border>
95
+                <el-table-column fixed prop="date" label="日期"></el-table-column>
96
+                <el-table-column prop="name" label="姓名"></el-table-column>
97
+                <el-table-column prop="province" label="省份"></el-table-column>
98
+                <el-table-column prop="city" label="市区"></el-table-column>
99
+                <el-table-column prop="address" label="地址"></el-table-column>
100
+                <el-table-column prop="zip" label="邮编"></el-table-column>
101
+                <el-table-column label="操作" width="100">
102
+                  <template slot-scope="scope">
103
+                    <el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
104
+                  </template>
105
+                </el-table-column>
106
+              </el-table>
107
+
108
+              <el-pagination
109
+                align="right"
110
+                @size-change="handleSizeChange"
111
+                @current-change="handleCurrentChange"
112
+                :current-page="listQuery.page"
113
+                :page-sizes="[10, 20, 50, 100]"
114
+                :page-size="10"
115
+                background
116
+                style="margin-top:20px;"
117
+                layout="total, sizes, prev, pager, next, jumper"
118
+                :total="total"
119
+              ></el-pagination>
120
+            </div>
121
+          </div>
122
+        </el-container>
123
+      </div>
124
+    </div>
125
+  </div>
126
+</template>
127
+
128
+
129
+<script>
130
+import echarts from "echarts";
131
+import NewNav from "../indicatorControlAnalysis/components/NewNav";
132
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
133
+import LineChart from "../../qcd/components/LineChart";
134
+export default {
135
+  components: {
136
+    LineChart,
137
+    BreadCrumb,
138
+    NewNav
139
+  },
140
+  data() {
141
+    return {
142
+      crumbs: [
143
+        { path: false, name: "科室质控" },
144
+        { path: false, name: "指标评估统计" },
145
+        { path: false, name: "患者血压统计" }
146
+      ],
147
+      listQuery: {
148
+        start_time: "",
149
+        end_time: "",
150
+        page: 1,
151
+        limit: 10
152
+      },
153
+      tableData: [
154
+        {
155
+          date: "2016",
156
+          name: "王小虎"
157
+        },
158
+        {
159
+          date: "2016",
160
+          name: "王小虎"
161
+        },
162
+        {
163
+          date: "2016",
164
+          name: "王小虎"
165
+        },
166
+        {
167
+          date: "2016",
168
+          name: "王小虎"
169
+        },
170
+        {
171
+          date: "2016",
172
+          name: "王小虎"
173
+        },
174
+        {
175
+          date: "2016",
176
+          name: "王小虎"
177
+        },
178
+        {
179
+          date: "2016",
180
+          name: "王小虎"
181
+        },
182
+        {
183
+          date: "2016",
184
+          name: "王小虎"
185
+        },
186
+        {
187
+          date: "2016",
188
+          name: "王小虎"
189
+        },
190
+        {
191
+          date: "2016",
192
+          name: "王小虎"
193
+        },
194
+        {
195
+          date: "2016",
196
+          name: "王小虎"
197
+        },
198
+        {
199
+          date: "2016",
200
+          name: "王小虎"
201
+        }
202
+      ],
203
+      tableData1: [
204
+        {
205
+          date: "2016-05-03",
206
+          name: "王小虎",
207
+          province: "上海",
208
+          city: "普陀区",
209
+          address: "上海市普陀区金沙江路 1518 弄",
210
+          zip: 200333
211
+        },
212
+        {
213
+          date: "2016-05-02",
214
+          name: "王小虎",
215
+          province: "上海",
216
+          city: "普陀区",
217
+          address: "上海市普陀区金沙江路 1518 弄",
218
+          zip: 200333
219
+        },
220
+        {
221
+          date: "2016-05-04",
222
+          name: "王小虎",
223
+          province: "上海",
224
+          city: "普陀区",
225
+          address: "上海市普陀区金沙江路 1518 弄",
226
+          zip: 200333
227
+        },
228
+        {
229
+          date: "2016-05-01",
230
+          name: "王小虎",
231
+          province: "上海",
232
+          city: "普陀区",
233
+          address: "上海市普陀区金沙江路 1518 弄",
234
+          zip: 200333
235
+        },
236
+        {
237
+          date: "2016-05-08",
238
+          name: "王小虎",
239
+          province: "上海",
240
+          city: "普陀区",
241
+          address: "上海市普陀区金沙江路 1518 弄",
242
+          zip: 200333
243
+        },
244
+        {
245
+          date: "2016-05-06",
246
+          name: "王小虎",
247
+          province: "上海",
248
+          city: "普陀区",
249
+          address: "上海市普陀区金沙江路 1518 弄",
250
+          zip: 200333
251
+        },
252
+        {
253
+          date: "2016-05-07",
254
+          name: "王小虎",
255
+          province: "上海",
256
+          city: "普陀区",
257
+          address: "上海市普陀区金沙江路 1518 弄",
258
+          zip: 200333
259
+        },
260
+        {
261
+          date: "2016-05-08",
262
+          name: "王小虎",
263
+          province: "上海",
264
+          city: "普陀区",
265
+          address: "上海市普陀区金沙江路 1518 弄",
266
+          zip: 200333
267
+        },
268
+        {
269
+          date: "2016-05-06",
270
+          name: "王小虎",
271
+          province: "上海",
272
+          city: "普陀区",
273
+          address: "上海市普陀区金沙江路 1518 弄",
274
+          zip: 200333
275
+        },
276
+        {
277
+          date: "2016-05-07",
278
+          name: "王小虎",
279
+          province: "上海",
280
+          city: "普陀区",
281
+          address: "上海市普陀区金沙江路 1518 弄",
282
+          zip: 200333
283
+        }
284
+      ],
285
+      chart: {
286
+        title: {
287
+          text: "ECharts 入门示例"
288
+        },
289
+        tooltip: {},
290
+        legend: {
291
+          data: ["次数"],
292
+          left: 0
293
+        },
294
+        xAxis: {
295
+          data: ["达标", "未达标"]
296
+        },
297
+        yAxis: {
298
+          axisLabel: {
299
+            formatter: "{value} %"
300
+          },
301
+          show: false
302
+        },
303
+        series: [
304
+          {
305
+            name: "次数",
306
+            type: "bar",
307
+            data: ["78.57", "50"],
308
+            barWidth: 30,
309
+            label: {
310
+              normal: {
311
+                show: true,
312
+                position: "top",
313
+                formatter: "{c}次"
314
+              }
315
+            },
316
+            //配置样式
317
+            itemStyle: {
318
+              //通常情况下:
319
+
320
+              //每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
321
+              normal: {
322
+                color: function(params) {
323
+                  //我这边就两个柱子,大体就两个柱子颜色渐变,所以数组只有两个值,多个颜色就多个值
324
+                  var colorList = [
325
+                    ["#A9E0F3", "#9FBDFC"],
326
+
327
+                    ["#FFD7C0", "#FF9994"]
328
+                  ];
329
+
330
+                  var index = params.dataIndex;
331
+                  if (params.dataIndex >= colorList.length) {
332
+                    index = params.dataIndex % colorList.length;
333
+                  }
334
+
335
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
336
+                    { offset: 0, color: colorList[index][0] },
337
+                    // { offset: 0.5, color: colorList[index][1] },
338
+                    { offset: 1, color: colorList[index][1] }
339
+                  ]);
340
+                },
341
+                barBorderRadius: [5, 5, 0, 0] //柱状角成椭圆形
342
+              },
343
+
344
+              //鼠标悬停时:
345
+              emphasis: {
346
+                shadowBlur: 10,
347
+                shadowOffsetX: 0,
348
+                shadowColor: "rgba(0, 0, 0, 0.5)"
349
+              }
350
+            }
351
+          }
352
+        ]
353
+      }
354
+    };
355
+  },
356
+  methods: {
357
+    chooseWay(way) {
358
+      this.wayType = way;
359
+    },
360
+    handleClick(row) {
361
+      console.log(row);
362
+      this.$router.push({
363
+        path: "/qcd/indicatorControlAnalysis/weightDetails"
364
+      });
365
+    }
366
+  }
367
+};
368
+</script>
369
+
370
+<style lang="scss" scoped>
371
+.tableTitle {
372
+  font-size: 16px;
373
+  color: #000;
374
+  font-weight: bold;
375
+  margin-bottom: 10px;
376
+}
377
+</style>
378
+<style lang="scss">
379
+.page_weight {
380
+  .el-button--medium {
381
+    padding: 10px 8px;
382
+  }
383
+  .el-form-item {
384
+    margin-bottom: 0;
385
+  }
386
+  .cell {
387
+    text-align: center;
388
+  }
389
+}
390
+</style>

+ 368 - 0
src/xt_pages/qcd/indicatorControlAnalysis/weightDetails.vue Ver arquivo

@@ -0,0 +1,368 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <div class="page_weightDetails">
8
+        <div class="cell clearfix" style="margin:0">
9
+          <el-form :inline="true" :model="listQuery">
10
+            <el-form-item label>
11
+              <el-input v-model.trim="listQuery.search" placeholder="姓名/透析号" style="width:150px"></el-input>
12
+              <el-button type="primary" @click="onSearch" icon="el-icon-search">搜索</el-button>
13
+            </el-form-item>
14
+          </el-form>
15
+        </div>
16
+        <el-container>
17
+          <div style="width:150px">
18
+            <div class="tableTitle">患者列表</div>
19
+            <el-table :data="tableData" border style="width: 100%;" height="500">
20
+              <el-table-column prop="date" label="日期" width="70"></el-table-column>
21
+              <el-table-column prop="name" label="姓名" width="80"></el-table-column>
22
+            </el-table>
23
+          </div>
24
+          <div class="containerRight" style="flex:1;overflow: hidden">
25
+            <div class="cell clearfix">
26
+              <label class="title" style="text-align:left">
27
+                <span class="name">血压阶段</span> :
28
+              </label>
29
+              <el-select
30
+                v-model="value"
31
+                placeholder="请选择"
32
+                @change="chooseType"
33
+                style="width:110px;margin-right:10px"
34
+              >
35
+                <el-option
36
+                  v-for="item in options"
37
+                  :key="item.value"
38
+                  :label="item.label"
39
+                  :value="item.value"
40
+                ></el-option>
41
+              </el-select>
42
+              <label class="title">
43
+                <span class="name">日期查询</span> :
44
+              </label>
45
+              <el-date-picker
46
+                v-model="listQuery.start_time"
47
+                prefix-icon="el-icon-date"
48
+                @change="changeTime"
49
+                :editable="false"
50
+                type="date"
51
+                style="max-width:160px"
52
+                placeholder="选择日期时间"
53
+                align="right"
54
+                format="yyyy-MM-dd"
55
+                value-format="yyyy-MM-dd"
56
+              ></el-date-picker>
57
+              <span class>-</span>
58
+              <el-date-picker
59
+                v-model="listQuery.end_time"
60
+                prefix-icon="el-icon-date"
61
+                @change="changeEndTime"
62
+                :editable="false"
63
+                type="date"
64
+                style="max-width:160px"
65
+                placeholder="选择日期时间"
66
+                align="right"
67
+                format="yyyy-MM-dd"
68
+                value-format="yyyy-MM-dd"
69
+              ></el-date-picker>
70
+            </div>
71
+            <div class="tableTitle">指标趋势</div>
72
+            <div>
73
+              <line-chart :options="chart"></line-chart>
74
+            </div>
75
+            <div class="tableTitle">统计表</div>
76
+            <div>
77
+              <el-table :data="tableData1" style="width: 100%" border>
78
+                <el-table-column fixed prop="date" label="日期"></el-table-column>
79
+                <el-table-column prop="name" label="姓名"></el-table-column>
80
+                <el-table-column prop="province" label="省份"></el-table-column>
81
+                <el-table-column prop="city" label="市区"></el-table-column>
82
+              </el-table>
83
+
84
+              <el-pagination
85
+                align="right"
86
+                @size-change="handleSizeChange"
87
+                @current-change="handleCurrentChange"
88
+                :current-page="listQuery.page"
89
+                :page-sizes="[10, 20, 50, 100]"
90
+                :page-size="10"
91
+                background
92
+                style="margin-top:20px;"
93
+                layout="total, sizes, prev, pager, next, jumper"
94
+                :total="total"
95
+              ></el-pagination>
96
+            </div>
97
+          </div>
98
+        </el-container>
99
+      </div>
100
+    </div>
101
+  </div>
102
+</template>
103
+
104
+<script>
105
+import echarts from "echarts";
106
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
107
+import LineChart from "../../qcd/components/LineChart";
108
+export default {
109
+  components: {
110
+    LineChart,
111
+    BreadCrumb
112
+  },
113
+  data() {
114
+    return {
115
+      crumbs: [
116
+        { path: false, name: "科室质控" },
117
+        { path: false, name: "患者血压详情" }
118
+      ],
119
+      tableData: [
120
+        {
121
+          date: "2016",
122
+          name: "王小虎"
123
+        },
124
+        {
125
+          date: "2016",
126
+          name: "王小虎"
127
+        },
128
+        {
129
+          date: "2016",
130
+          name: "王小虎"
131
+        },
132
+        {
133
+          date: "2016",
134
+          name: "王小虎"
135
+        },
136
+        {
137
+          date: "2016",
138
+          name: "王小虎"
139
+        },
140
+        {
141
+          date: "2016",
142
+          name: "王小虎"
143
+        },
144
+        {
145
+          date: "2016",
146
+          name: "王小虎"
147
+        },
148
+        {
149
+          date: "2016",
150
+          name: "王小虎"
151
+        },
152
+        {
153
+          date: "2016",
154
+          name: "王小虎"
155
+        },
156
+        {
157
+          date: "2016",
158
+          name: "王小虎"
159
+        },
160
+        {
161
+          date: "2016",
162
+          name: "王小虎"
163
+        },
164
+        {
165
+          date: "2016",
166
+          name: "王小虎"
167
+        }
168
+      ],
169
+      listQuery: {
170
+        start_time: "",
171
+        end_time: "",
172
+        page: 1,
173
+        limit: 10
174
+      },
175
+      chart: {
176
+        title: {
177
+          text: "ECharts 入门示例"
178
+        },
179
+        tooltip: {},
180
+        legend: {
181
+          data: ["透前体重", "透后体重"],
182
+          left: 0
183
+        },
184
+        xAxis: {
185
+          data: ["1", "2", "3", "4", "5", "6", "7", "8", "9"]
186
+        },
187
+        yAxis: {
188
+          axisLabel: {
189
+            formatter: "{value} %"
190
+          },
191
+          show: false
192
+        },
193
+        series: [
194
+          {
195
+            name: "透前体重",
196
+            type: "line",
197
+            data: [
198
+              "78.57",
199
+              "50",
200
+              "80",
201
+              "93.33",
202
+              "92.86",
203
+              "100",
204
+              "12",
205
+              "77",
206
+              "37"
207
+            ],
208
+            barWidth: 30,
209
+            label: {
210
+              normal: {
211
+                show: true,
212
+                position: "top",
213
+                formatter: "{c}次"
214
+              }
215
+            },
216
+            //配置样式
217
+            itemStyle: {
218
+              normal: {
219
+                color: "#5b98ff", //折点颜色
220
+                lineStyle: {
221
+                  color: "#5b98ff" //折线颜色
222
+                }
223
+              }
224
+            }
225
+          },
226
+          {
227
+            name: "透后体重",
228
+            type: "line",
229
+            data: ["10", "20", "30", "53.33", "42.86", "100", "60", "27", "97"],
230
+            barWidth: 30,
231
+            label: {
232
+              normal: {
233
+                show: true,
234
+                position: "top",
235
+                formatter: "{c}次"
236
+              }
237
+            },
238
+            //配置样式
239
+            itemStyle: {
240
+              normal: {
241
+                color: "#dd7383", //折点颜色
242
+                lineStyle: {
243
+                  color: "#dd7383" //折线颜色
244
+                }
245
+              }
246
+            }
247
+          }
248
+        ]
249
+      },
250
+      tableData1: [
251
+        {
252
+          date: "2016-05-03",
253
+          name: "王小虎",
254
+          province: "上海",
255
+          city: "普陀区",
256
+          address: "上海市普陀区金沙江路 1518 弄",
257
+          zip: 200333
258
+        },
259
+        {
260
+          date: "2016-05-02",
261
+          name: "王小虎",
262
+          province: "上海",
263
+          city: "普陀区",
264
+          address: "上海市普陀区金沙江路 1518 弄",
265
+          zip: 200333
266
+        },
267
+        {
268
+          date: "2016-05-04",
269
+          name: "王小虎",
270
+          province: "上海",
271
+          city: "普陀区",
272
+          address: "上海市普陀区金沙江路 1518 弄",
273
+          zip: 200333
274
+        },
275
+        {
276
+          date: "2016-05-01",
277
+          name: "王小虎",
278
+          province: "上海",
279
+          city: "普陀区",
280
+          address: "上海市普陀区金沙江路 1518 弄",
281
+          zip: 200333
282
+        },
283
+        {
284
+          date: "2016-05-08",
285
+          name: "王小虎",
286
+          province: "上海",
287
+          city: "普陀区",
288
+          address: "上海市普陀区金沙江路 1518 弄",
289
+          zip: 200333
290
+        },
291
+        {
292
+          date: "2016-05-06",
293
+          name: "王小虎",
294
+          province: "上海",
295
+          city: "普陀区",
296
+          address: "上海市普陀区金沙江路 1518 弄",
297
+          zip: 200333
298
+        },
299
+        {
300
+          date: "2016-05-07",
301
+          name: "王小虎",
302
+          province: "上海",
303
+          city: "普陀区",
304
+          address: "上海市普陀区金沙江路 1518 弄",
305
+          zip: 200333
306
+        },
307
+        {
308
+          date: "2016-05-08",
309
+          name: "王小虎",
310
+          province: "上海",
311
+          city: "普陀区",
312
+          address: "上海市普陀区金沙江路 1518 弄",
313
+          zip: 200333
314
+        },
315
+        {
316
+          date: "2016-05-06",
317
+          name: "王小虎",
318
+          province: "上海",
319
+          city: "普陀区",
320
+          address: "上海市普陀区金沙江路 1518 弄",
321
+          zip: 200333
322
+        },
323
+        {
324
+          date: "2016-05-07",
325
+          name: "王小虎",
326
+          province: "上海",
327
+          city: "普陀区",
328
+          address: "上海市普陀区金沙江路 1518 弄",
329
+          zip: 200333
330
+        }
331
+      ]
332
+    };
333
+  },
334
+  methods: {
335
+    chooseMonth(month) {
336
+      this.monthType = month;
337
+    },
338
+    clickQuality(index) {
339
+      this.quality = index;
340
+    }
341
+  }
342
+};
343
+</script>
344
+
345
+<style lang="scss" scoped>
346
+.containerRight {
347
+  padding-left: 10px;
348
+}
349
+.tableTitle {
350
+  font-size: 16px;
351
+  color: #000;
352
+  font-weight: bold;
353
+  margin-bottom: 10px;
354
+  margin-top: 8px;
355
+}
356
+</style>
357
+
358
+
359
+<style lang="scss">
360
+.page_weightDetails {
361
+  .cell {
362
+    text-align: center;
363
+  }
364
+  .el-form-item {
365
+    margin-bottom: 0;
366
+  }
367
+}
368
+</style>

+ 0 - 0
src/xt_pages/qcd/officesControlAnalysis.vue Ver arquivo


+ 261 - 0
src/xt_pages/qcd/officesControlAnalysis/project.vue Ver arquivo

@@ -0,0 +1,261 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <el-tabs v-model="activeName" @tab-click="handleClick">
8
+        <el-tab-pane label="按时间分组" name="first"></el-tab-pane>
9
+        <el-tab-pane label="按项目分组" name="second"></el-tab-pane>
10
+      </el-tabs>
11
+      <div class="cell clearfix">
12
+        <el-select v-model="value" placeholder="请选择" style="width:120px;margin-right:20px">
13
+          <el-option
14
+            v-for="item in options"
15
+            :key="item.value"
16
+            :label="item.label"
17
+            :value="item.value"
18
+          ></el-option>
19
+        </el-select>
20
+        <el-select v-model="type" placeholder="请选择" @change="chooseType" style="margin-right:20px">
21
+          <el-option
22
+            v-for="item in options1"
23
+            :key="item.value"
24
+            :label="item.label"
25
+            :value="item.value"
26
+          ></el-option>
27
+        </el-select>
28
+        <el-select v-model="value" placeholder="请选择" style="width:120px;margin-right:20px">
29
+          <el-option
30
+            v-for="item in options"
31
+            :key="item.value"
32
+            :label="item.label"
33
+            :value="item.value"
34
+          ></el-option>
35
+        </el-select>
36
+      </div>
37
+
38
+      <div class="cell clearfix">
39
+        <p class="chartTitle">统计图</p>
40
+      </div>
41
+      <div>
42
+        <line-chart :options="chart"></line-chart>
43
+      </div>
44
+      <div class="cell clearfix">
45
+        <p class="point"></p>
46
+        <p class="pointTitle">指标正常范围值</p>
47
+      </div>
48
+      <div class="cell clearfix newDisplay">
49
+        <span class="index">钙(2.25-2.75)</span>
50
+        <span class="index">钙(2.25-2.75)</span>
51
+        <span class="index">钙(2.25-2.75)</span>
52
+        <span class="index">钙(2.25-2.75)</span>
53
+        <span class="index">钙(2.25-2.75)</span>
54
+        <span class="index">钙(2.25-2.75)</span>
55
+        <span class="index">钙(2.25-2.75)</span>
56
+        <span class="index">钙(2.25-2.75)</span>
57
+        <span class="index">钙(2.25-2.75)</span>
58
+        <span class="index">钙(2.25-2.75)</span>
59
+        <span class="index">钙(2.25-2.75)</span>
60
+        <span class="index">钙(2.25-2.75)</span>
61
+        <span class="index">钙(2.25-2.75)</span>
62
+        <span class="index">钙(2.25-2.75)</span>
63
+        <span class="index">钙(2.25-2.75)</span>
64
+        <span class="index">钙(2.25-2.75)</span>
65
+        <span class="index">钙(2.25-2.75)</span>
66
+        <span class="index">钙(2.25-2.75)</span>
67
+      </div>
68
+    </div>
69
+  </div>
70
+</template>
71
+
72
+<script>
73
+import echarts from "echarts";
74
+import { GetOICData } from "@/api/qcd";
75
+import LineChart from "../../qcd/components/LineChart";
76
+import { uParseTime } from "@/utils/tools";
77
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
78
+export default {
79
+  components: {
80
+    LineChart,
81
+    BreadCrumb
82
+  },
83
+  data() {
84
+    return {
85
+      activeName: "second",
86
+      crumbs: [
87
+        { path: false, name: "科室质控" },
88
+        { path: false, name: "科室质控达标统计" },
89
+        { path: false, name: "按项目分组" }
90
+      ],
91
+      options: [
92
+        {
93
+          value: "选项1",
94
+          label: "黄金糕"
95
+        },
96
+        {
97
+          value: "选项2",
98
+          label: "双皮奶"
99
+        },
100
+        {
101
+          value: "选项3",
102
+          label: "蚵仔煎"
103
+        },
104
+        {
105
+          value: "选项4",
106
+          label: "龙须面"
107
+        },
108
+        {
109
+          value: "选项5",
110
+          label: "北京烤鸭"
111
+        }
112
+      ],
113
+      value: "请选项",
114
+      options1: [
115
+        {
116
+          value: "按季度对比统计",
117
+          label: "按季度对比统计"
118
+        },
119
+        {
120
+          value: "按月份对比统计",
121
+          label: "按月份对比统计"
122
+        }
123
+      ],
124
+      type: "按季度对比统计",
125
+      chart: {
126
+        title: {
127
+          text: "ECharts 入门示例"
128
+        },
129
+        tooltip: {},
130
+        legend: {
131
+          data: ["次数"],
132
+          left: 0
133
+        },
134
+        xAxis: {
135
+          data: ["1", "2", "3", "4", "5", "6", "7", "8", "9"]
136
+        },
137
+        yAxis: {
138
+          axisLabel: {
139
+            formatter: "{value} %"
140
+          },
141
+          show: false
142
+        },
143
+        series: [
144
+          {
145
+            name: "次数",
146
+            type: "line",
147
+            data: [
148
+              "78.57",
149
+              "50",
150
+              "80",
151
+              "93.33",
152
+              "92.86",
153
+              "100",
154
+              "12",
155
+              "77",
156
+              "37"
157
+            ],
158
+            barWidth: 30,
159
+            label: {
160
+              normal: {
161
+                show: true,
162
+                position: "top",
163
+                formatter: "{c}次"
164
+              }
165
+            },
166
+            //配置样式
167
+            itemStyle: {
168
+              //通常情况下:
169
+
170
+              //每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
171
+              normal: {
172
+                color: function(params) {
173
+                  //我这边就两个柱子,大体就两个柱子颜色渐变,所以数组只有两个值,多个颜色就多个值
174
+                  var colorList = [
175
+                    ["#A9E0F3", "#9FBDFC"],
176
+                    ["#A9E0F3", "#9FBDFC"],
177
+                    ["#A9E0F3", "#9FBDFC"],
178
+
179
+                    ["#FFD7C0", "#FF9994"],
180
+                    ["#FFD7C0", "#FF9994"],
181
+                    ["#FFD7C0", "#FF9994"],
182
+                    ["#D7C3FD", "#B3A8F7"],
183
+                    ["#D7C3FD", "#B3A8F7"],
184
+                    ["#D7C3FD", "#B3A8F7"]
185
+                  ];
186
+
187
+                  var index = params.dataIndex;
188
+                  if (params.dataIndex >= colorList.length) {
189
+                    index = params.dataIndex % colorList.length;
190
+                  }
191
+
192
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
193
+                    { offset: 0, color: colorList[index][0] },
194
+                    // { offset: 0.5, color: colorList[index][1] },
195
+                    { offset: 1, color: colorList[index][1] }
196
+                  ]);
197
+                },
198
+                barBorderRadius: [5, 5, 0, 0] //柱状角成椭圆形
199
+              },
200
+
201
+              //鼠标悬停时:
202
+              emphasis: {
203
+                shadowBlur: 10,
204
+                shadowOffsetX: 0,
205
+                shadowColor: "rgba(0, 0, 0, 0.5)"
206
+              }
207
+            }
208
+          }
209
+        ]
210
+      }
211
+    };
212
+  },
213
+  methods: {
214
+    handleClick() {
215
+      if (this.activeName == "first") {
216
+        this.$router.push({ path: "/qcd/officesControlAnalysis/time" });
217
+      }
218
+    },
219
+    chooseType(val) {
220
+      console.log(val);
221
+      this.type = val;
222
+    }
223
+  }
224
+};
225
+</script>
226
+
227
+<style lang="scss" scoped>
228
+.newLi {
229
+  li {
230
+    background: #f5f5f6;
231
+  }
232
+}
233
+.chartTitle {
234
+  font-size: 16px;
235
+  font-weight: bold;
236
+  color: #000000;
237
+}
238
+.point {
239
+  width: 13px;
240
+  height: 13px;
241
+  background: linear-gradient(
242
+    0deg,
243
+    rgba(169, 224, 243, 1),
244
+    rgba(159, 189, 252, 1)
245
+  );
246
+  border-radius: 7px;
247
+  margin-right: 8px;
248
+}
249
+.pointTitle {
250
+  font-size: 13px;
251
+}
252
+.index {
253
+  color: #a09ba3;
254
+  font-size: 13px;
255
+  margin-right: 36px;
256
+  margin-bottom: 20px;
257
+}
258
+.newDisplay {
259
+  flex-wrap: wrap;
260
+}
261
+</style>

+ 356 - 0
src/xt_pages/qcd/officesControlAnalysis/time.vue Ver arquivo

@@ -0,0 +1,356 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <el-tabs v-model="activeName" @tab-click="handleClick">
8
+        <el-tab-pane label="按时间分组" name="first"></el-tab-pane>
9
+        <el-tab-pane label="按项目分组" name="second"></el-tab-pane>
10
+      </el-tabs>
11
+      <div class="cell clearfix">
12
+        <el-select v-model="value" placeholder="请选择" style="width:120px;margin-right:20px">
13
+          <el-option
14
+            v-for="item in options"
15
+            :key="item.value"
16
+            :label="item.label"
17
+            :value="item.value"
18
+          ></el-option>
19
+        </el-select>
20
+        <el-select v-model="type" placeholder="请选择" @change="chooseType" style="margin-right:20px">
21
+          <el-option
22
+            v-for="item in options1"
23
+            :key="item.value"
24
+            :label="item.label"
25
+            :value="item.value"
26
+          ></el-option>
27
+        </el-select>
28
+        <div v-if="type == '自定义'">
29
+          <label class="title">
30
+            <span class="name">日期查询</span> :
31
+          </label>
32
+          <el-date-picker
33
+            v-model="listQuery.start_time"
34
+            prefix-icon="el-icon-date"
35
+            @change="changeTime"
36
+            :editable="false"
37
+            style="width: 196px;"
38
+            type="date"
39
+            placeholder="选择日期时间"
40
+            align="right"
41
+            format="yyyy-MM-dd"
42
+            value-format="yyyy-MM-dd"
43
+          ></el-date-picker>
44
+          <span class>-</span>
45
+          <el-date-picker
46
+            v-model="listQuery.end_time"
47
+            prefix-icon="el-icon-date"
48
+            @change="changeEndTime"
49
+            :editable="false"
50
+            style="width: 196px;"
51
+            type="date"
52
+            placeholder="选择日期时间"
53
+            align="right"
54
+            format="yyyy-MM-dd"
55
+            value-format="yyyy-MM-dd"
56
+          ></el-date-picker>
57
+        </div>
58
+      </div>
59
+      <div class="cell clearfix">
60
+        <div class="time newLi" v-if="type == '按季度对比统计'">
61
+          <ul class>
62
+            <li
63
+              :class="item.state == quarterType ? 'active' : ''"
64
+              @click="chooseQuarter(item.state)"
65
+              v-for="item in quarter"
66
+              :key="item.value"
67
+            >{{ item.label }}</li>
68
+          </ul>
69
+        </div>
70
+        <div class="time newLi" v-if="type == '按月份对比统计'">
71
+          <ul class>
72
+            <li
73
+              :class="item.state == monthType ? 'active' : ''"
74
+              @click="chooseMonth(item.state)"
75
+              v-for="item in month"
76
+              :key="item.value"
77
+            >{{ item.label }}</li>
78
+          </ul>
79
+        </div>
80
+      </div>
81
+      <div class="cell clearfix">
82
+        <p class="chartTitle">统计图</p>
83
+      </div>
84
+      <div>
85
+        <line-chart :options="chart"></line-chart>
86
+      </div>
87
+      <div class="cell clearfix">
88
+        <p class="point"></p>
89
+        <p class="pointTitle">指标正常范围值</p>
90
+      </div>
91
+      <div class="cell clearfix newDisplay">
92
+        <span class="index">钙(2.25-2.75)</span>
93
+        <span class="index">钙(2.25-2.75)</span>
94
+        <span class="index">钙(2.25-2.75)</span>
95
+        <span class="index">钙(2.25-2.75)</span>
96
+        <span class="index">钙(2.25-2.75)</span>
97
+        <span class="index">钙(2.25-2.75)</span>
98
+        <span class="index">钙(2.25-2.75)</span>
99
+        <span class="index">钙(2.25-2.75)</span>
100
+        <span class="index">钙(2.25-2.75)</span>
101
+        <span class="index">钙(2.25-2.75)</span>
102
+        <span class="index">钙(2.25-2.75)</span>
103
+        <span class="index">钙(2.25-2.75)</span>
104
+        <span class="index">钙(2.25-2.75)</span>
105
+        <span class="index">钙(2.25-2.75)</span>
106
+        <span class="index">钙(2.25-2.75)</span>
107
+        <span class="index">钙(2.25-2.75)</span>
108
+        <span class="index">钙(2.25-2.75)</span>
109
+        <span class="index">钙(2.25-2.75)</span>
110
+      </div>
111
+    </div>
112
+  </div>
113
+</template>
114
+
115
+<script>
116
+import echarts from "echarts";
117
+import { GetOICData } from "@/api/qcd";
118
+import LineChart from "../../qcd/components/LineChart";
119
+import { uParseTime } from "@/utils/tools";
120
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
121
+export default {
122
+  components: {
123
+    LineChart,
124
+    BreadCrumb
125
+  },
126
+  data() {
127
+    return {
128
+      activeName: "first",
129
+      crumbs: [
130
+        { path: false, name: "科室质控" },
131
+        { path: false, name: "科室质控达标统计" },
132
+        { path: false, name: "按时间分组" }
133
+      ],
134
+      listQuery: {
135
+        start_time: "",
136
+        end_time: "",
137
+        page: 1,
138
+        limit: 10
139
+      },
140
+      options: [
141
+        {
142
+          value: "选项1",
143
+          label: "黄金糕"
144
+        },
145
+        {
146
+          value: "选项2",
147
+          label: "双皮奶"
148
+        },
149
+        {
150
+          value: "选项3",
151
+          label: "蚵仔煎"
152
+        },
153
+        {
154
+          value: "选项4",
155
+          label: "龙须面"
156
+        },
157
+        {
158
+          value: "选项5",
159
+          label: "北京烤鸭"
160
+        }
161
+      ],
162
+      value: "请选项",
163
+      options1: [
164
+        {
165
+          value: "按季度对比统计",
166
+          label: "按季度对比统计"
167
+        },
168
+        {
169
+          value: "按月份对比统计",
170
+          label: "按月份对比统计"
171
+        },
172
+        {
173
+          value: "自定义",
174
+          label: "自定义"
175
+        }
176
+      ],
177
+      type: "按季度对比统计",
178
+      quarter: [
179
+        { value: 0, label: "第一季度", state: 0 },
180
+        { value: 1, label: "第二季度", state: 1 },
181
+        { value: 2, label: "第三季度", state: 2 },
182
+        { value: 3, label: "第四季度", state: 3 }
183
+      ],
184
+      quarterType: 0,
185
+      month: [
186
+        { value: 0, label: "一月", state: 0 },
187
+        { value: 1, label: "二月", state: 1 },
188
+        { value: 2, label: "三月", state: 2 },
189
+        { value: 3, label: "四月", state: 3 },
190
+        { value: 4, label: "五月", state: 4 },
191
+        { value: 5, label: "六月", state: 5 },
192
+        { value: 6, label: "七月", state: 6 },
193
+        { value: 7, label: "八月", state: 7 },
194
+        { value: 8, label: "九月", state: 8 },
195
+        { value: 9, label: "十月", state: 9 },
196
+        { value: 10, label: "十一月", state: 10 },
197
+        { value: 11, label: "十二月", state: 11 }
198
+      ],
199
+      monthType: 0,
200
+      chart: {
201
+        title: {
202
+          text: "ECharts 入门示例"
203
+        },
204
+        tooltip: {},
205
+        legend: {
206
+          data: ["次数"],
207
+          left: 0
208
+        },
209
+        xAxis: {
210
+          data: ["1", "2", "3", "4", "5", "6", "7", "8", "9"]
211
+        },
212
+        yAxis: {
213
+          axisLabel: {
214
+            formatter: "{value} %"
215
+          },
216
+          show: false
217
+        },
218
+        series: [
219
+          {
220
+            name: "次数",
221
+            type: "bar",
222
+            data: [
223
+              "78.57",
224
+              "50",
225
+              "80",
226
+              "93.33",
227
+              "92.86",
228
+              "100",
229
+              "12",
230
+              "77",
231
+              "37"
232
+            ],
233
+            barWidth: 30,
234
+            label: {
235
+              normal: {
236
+                show: true,
237
+                position: "top",
238
+                formatter: "{c}次"
239
+              }
240
+            },
241
+            //配置样式
242
+            itemStyle: {
243
+              //通常情况下:
244
+
245
+              //每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
246
+              normal: {
247
+                color: function(params) {
248
+                  //我这边就两个柱子,大体就两个柱子颜色渐变,所以数组只有两个值,多个颜色就多个值
249
+                  var colorList = [
250
+                    ["#A9E0F3", "#9FBDFC"],
251
+                    ["#A9E0F3", "#9FBDFC"],
252
+                    ["#A9E0F3", "#9FBDFC"],
253
+
254
+                    ["#FFD7C0", "#FF9994"],
255
+                    ["#FFD7C0", "#FF9994"],
256
+                    ["#FFD7C0", "#FF9994"],
257
+                    ["#D7C3FD", "#B3A8F7"],
258
+                    ["#D7C3FD", "#B3A8F7"],
259
+                    ["#D7C3FD", "#B3A8F7"]
260
+                  ];
261
+
262
+                  var index = params.dataIndex;
263
+                  if (params.dataIndex >= colorList.length) {
264
+                    index = params.dataIndex % colorList.length;
265
+                  }
266
+
267
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
268
+                    { offset: 0, color: colorList[index][0] },
269
+                    // { offset: 0.5, color: colorList[index][1] },
270
+                    { offset: 1, color: colorList[index][1] }
271
+                  ]);
272
+                },
273
+                barBorderRadius: [5, 5, 0, 0] //柱状角成椭圆形
274
+              },
275
+
276
+              //鼠标悬停时:
277
+              emphasis: {
278
+                shadowBlur: 10,
279
+                shadowOffsetX: 0,
280
+                shadowColor: "rgba(0, 0, 0, 0.5)"
281
+              }
282
+            }
283
+          }
284
+        ]
285
+      }
286
+    };
287
+  },
288
+  methods: {
289
+    handleClick() {
290
+      if (this.activeName == "second") {
291
+        this.$router.push({ path: "/qcd/officesControlAnalysis/project" });
292
+      }
293
+    },
294
+    changeTime() {},
295
+    changeEndTime(val) {
296
+      var time =
297
+        this.getTimestamp(val) - this.getTimestamp(this.listQuery.start_time);
298
+      if (time < 0) {
299
+        this.$message.error("结束时间不能小于开始时间");
300
+        this.listQuery.end_time = "";
301
+      } else {
302
+      }
303
+    },
304
+    selectLapseTo(state) {
305
+      this.stateType = state;
306
+      this.listQuery.state = state;
307
+    },
308
+    chooseType(val) {
309
+      console.log(val);
310
+      this.type = val;
311
+    },
312
+    chooseQuarter(quarter) {
313
+      this.quarterType = quarter;
314
+    },
315
+    chooseMonth(month) {
316
+      this.monthType = month;
317
+    }
318
+  }
319
+};
320
+</script>
321
+
322
+<style lang="scss" scoped>
323
+.newLi {
324
+  li {
325
+    background: #f5f5f6;
326
+  }
327
+}
328
+.chartTitle {
329
+  font-size: 16px;
330
+  font-weight: bold;
331
+  color: #000000;
332
+}
333
+.point {
334
+  width: 13px;
335
+  height: 13px;
336
+  background: linear-gradient(
337
+    0deg,
338
+    rgba(169, 224, 243, 1),
339
+    rgba(159, 189, 252, 1)
340
+  );
341
+  border-radius: 7px;
342
+  margin-right: 8px;
343
+}
344
+.pointTitle {
345
+  font-size: 13px;
346
+}
347
+.index {
348
+  color: #a09ba3;
349
+  font-size: 13px;
350
+  margin-right: 36px;
351
+  margin-bottom: 20px;
352
+}
353
+.newDisplay {
354
+  flex-wrap: wrap;
355
+}
356
+</style>

+ 9 - 2
src/xt_pages/qcd/outcomeIndicators/control.vue Ver arquivo

@@ -373,8 +373,15 @@ export default {
373 373
         }
374 374
       });
375 375
     },
376
-    changeTime() {
377
-      this.getList();
376
+    changeTime(val) {
377
+      var time =
378
+        this.getTimestamp(val) - this.getTimestamp(this.listQuery.end_time);
379
+      if (time > 0) {
380
+        this.$message.error("结束时间不能小于开始时间");
381
+        this.listQuery.start_time = "";
382
+      } else {
383
+        this.getList();
384
+      }
378 385
     },
379 386
     changeEndTime(val) {
380 387
       var time =

+ 9 - 2
src/xt_pages/qcd/patientAnalysis/total.vue Ver arquivo

@@ -280,8 +280,15 @@ export default {
280 280
         }
281 281
       });
282 282
     },
283
-    changeTime() {
284
-      this.getList();
283
+    changeTime(val) {
284
+      var time =
285
+        this.getTimestamp(val) - this.getTimestamp(this.listQuery.end_time);
286
+      if (time > 0) {
287
+        this.$message.error("结束时间不能小于开始时间");
288
+        this.listQuery.start_time = "";
289
+      } else {
290
+        this.getList();
291
+      }
285 292
     },
286 293
     changeEndTime(val) {
287 294
       var time =

+ 348 - 0
src/xt_pages/qcd/patientComplianceDetails.vue Ver arquivo

@@ -0,0 +1,348 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <div class="page_patientComplianceDetails">
8
+        <div class="cell clearfix" style="margin:0">
9
+          <el-form :inline="true" :model="listQuery">
10
+            <el-form-item label>
11
+              <el-input v-model.trim="listQuery.search" placeholder="姓名/透析号" style="width:150px"></el-input>
12
+              <el-button type="primary" @click="onSearch" icon="el-icon-search">搜索</el-button>
13
+            </el-form-item>
14
+          </el-form>
15
+        </div>
16
+        <el-container>
17
+          <div style="width:150px">
18
+            <div class="tableTitle">患者列表</div>
19
+            <el-table :data="tableData" border style="width: 100%;" height="500">
20
+              <el-table-column prop="date" label="日期" width="70"></el-table-column>
21
+              <el-table-column prop="name" label="姓名" width="80"></el-table-column>
22
+            </el-table>
23
+          </div>
24
+          <div class="containerRight" style="flex:1;overflow: hidden">
25
+            <div class="cell clearfix">
26
+              <label class="title" style="text-align:left">
27
+                <span class="name">统计方式</span> :
28
+              </label>
29
+              <div class="time">
30
+                <ul class>
31
+                  <li
32
+                    :class="item.state == monthType ? 'active' : ''"
33
+                    @click="chooseMonth(item.state)"
34
+                    v-for="item in month"
35
+                    :key="item.value"
36
+                  >{{ item.label }}</li>
37
+                </ul>
38
+              </div>
39
+              <label class="title">
40
+                <span class="name">日期查询</span> :
41
+              </label>
42
+              <el-date-picker
43
+                v-model="listQuery.start_time"
44
+                prefix-icon="el-icon-date"
45
+                @change="changeTime"
46
+                :editable="false"
47
+                type="date"
48
+                style="max-width:160px"
49
+                placeholder="选择日期时间"
50
+                align="right"
51
+                format="yyyy-MM-dd"
52
+                value-format="yyyy-MM-dd"
53
+              ></el-date-picker>
54
+              <span class>-</span>
55
+              <el-date-picker
56
+                v-model="listQuery.end_time"
57
+                prefix-icon="el-icon-date"
58
+                @change="changeEndTime"
59
+                :editable="false"
60
+                type="date"
61
+                style="max-width:160px"
62
+                placeholder="选择日期时间"
63
+                align="right"
64
+                format="yyyy-MM-dd"
65
+                value-format="yyyy-MM-dd"
66
+              ></el-date-picker>
67
+            </div>
68
+            <div class="tableTitle">指标监控</div>
69
+            <div style="width:100%;overflow-x:auto">
70
+              <div class="qualityBox">
71
+                <div
72
+                  class="qualityOne"
73
+                  v-for="(item,index) in arr"
74
+                  :key="index"
75
+                  :class="quality == index ? 'active' : ''"
76
+                  @click="clickQuality(index)"
77
+                >
78
+                  <p>{{ item }}</p>
79
+                  <i class="iconfont icon-gantanhao gth" v-if="index % 2 == 0"></i>
80
+                  <i class="iconfont icon-gou gou" v-else></i>
81
+                </div>
82
+              </div>
83
+            </div>
84
+            <div class="tableTitle">指标趋势</div>
85
+            <div>
86
+              <line-chart :options="chart"></line-chart>
87
+            </div>
88
+          </div>
89
+        </el-container>
90
+      </div>
91
+    </div>
92
+  </div>
93
+</template>
94
+
95
+<script>
96
+import echarts from "echarts";
97
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
98
+import LineChart from "../qcd/components/LineChart";
99
+export default {
100
+  components: {
101
+    LineChart,
102
+    BreadCrumb
103
+  },
104
+  data() {
105
+    return {
106
+      crumbs: [
107
+        { path: false, name: "科室质控" },
108
+        { path: false, name: "患者达标详情" }
109
+      ],
110
+      tableData: [
111
+        {
112
+          date: "2016",
113
+          name: "王小虎"
114
+        },
115
+        {
116
+          date: "2016",
117
+          name: "王小虎"
118
+        },
119
+        {
120
+          date: "2016",
121
+          name: "王小虎"
122
+        },
123
+        {
124
+          date: "2016",
125
+          name: "王小虎"
126
+        },
127
+        {
128
+          date: "2016",
129
+          name: "王小虎"
130
+        },
131
+        {
132
+          date: "2016",
133
+          name: "王小虎"
134
+        },
135
+        {
136
+          date: "2016",
137
+          name: "王小虎"
138
+        },
139
+        {
140
+          date: "2016",
141
+          name: "王小虎"
142
+        },
143
+        {
144
+          date: "2016",
145
+          name: "王小虎"
146
+        },
147
+        {
148
+          date: "2016",
149
+          name: "王小虎"
150
+        },
151
+        {
152
+          date: "2016",
153
+          name: "王小虎"
154
+        },
155
+        {
156
+          date: "2016",
157
+          name: "王小虎"
158
+        }
159
+      ],
160
+      listQuery: {
161
+        start_time: "",
162
+        end_time: "",
163
+        page: 1,
164
+        limit: 10
165
+      },
166
+      month: [
167
+        { value: 0, label: "本月", state: 0 },
168
+        { value: 1, label: "近三个月", state: 1 },
169
+        { value: 2, label: "近半年", state: 2 },
170
+        { value: 3, label: "近一年", state: 3 }
171
+      ],
172
+      monthType: 0,
173
+      arr: ["钙", "磷", "钙萨达撒所多", "磷", "钙", "磷", "钙", "磷"],
174
+      quality: 0,
175
+      chart: {
176
+        title: {
177
+          text: "ECharts 入门示例"
178
+        },
179
+        tooltip: {},
180
+        legend: {
181
+          data: ["次数"],
182
+          left: 0
183
+        },
184
+        xAxis: {
185
+          data: ["1", "2", "3", "4", "5", "6", "7", "8", "9"]
186
+        },
187
+        yAxis: {
188
+          axisLabel: {
189
+            formatter: "{value} %"
190
+          },
191
+          show: false
192
+        },
193
+        series: [
194
+          {
195
+            name: "次数",
196
+            type: "line",
197
+            data: [
198
+              "78.57",
199
+              "50",
200
+              "80",
201
+              "93.33",
202
+              "92.86",
203
+              "100",
204
+              "12",
205
+              "77",
206
+              "37"
207
+            ],
208
+            barWidth: 30,
209
+            label: {
210
+              normal: {
211
+                show: true,
212
+                position: "top",
213
+                formatter: "{c}次"
214
+              }
215
+            },
216
+            //配置样式
217
+            itemStyle: {
218
+              //通常情况下:
219
+
220
+              //每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
221
+              normal: {
222
+                color: function(params) {
223
+                  //我这边就两个柱子,大体就两个柱子颜色渐变,所以数组只有两个值,多个颜色就多个值
224
+                  var colorList = [
225
+                    ["#A9E0F3", "#9FBDFC"],
226
+                    ["#A9E0F3", "#9FBDFC"],
227
+                    ["#A9E0F3", "#9FBDFC"],
228
+
229
+                    ["#FFD7C0", "#FF9994"],
230
+                    ["#FFD7C0", "#FF9994"],
231
+                    ["#FFD7C0", "#FF9994"],
232
+                    ["#D7C3FD", "#B3A8F7"],
233
+                    ["#D7C3FD", "#B3A8F7"],
234
+                    ["#D7C3FD", "#B3A8F7"]
235
+                  ];
236
+
237
+                  var index = params.dataIndex;
238
+                  if (params.dataIndex >= colorList.length) {
239
+                    index = params.dataIndex % colorList.length;
240
+                  }
241
+
242
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
243
+                    { offset: 0, color: colorList[index][0] },
244
+                    // { offset: 0.5, color: colorList[index][1] },
245
+                    { offset: 1, color: colorList[index][1] }
246
+                  ]);
247
+                },
248
+                barBorderRadius: [5, 5, 0, 0] //柱状角成椭圆形
249
+              },
250
+
251
+              //鼠标悬停时:
252
+              emphasis: {
253
+                shadowBlur: 10,
254
+                shadowOffsetX: 0,
255
+                shadowColor: "rgba(0, 0, 0, 0.5)"
256
+              }
257
+            }
258
+          }
259
+        ]
260
+      }
261
+    };
262
+  },
263
+  methods: {
264
+    chooseMonth(month) {
265
+      this.monthType = month;
266
+    },
267
+    clickQuality(index) {
268
+      this.quality = index;
269
+    }
270
+  }
271
+};
272
+</script>
273
+
274
+<style lang="scss" scoped>
275
+.containerRight {
276
+  padding-left: 10px;
277
+}
278
+.tableTitle {
279
+  font-size: 16px;
280
+  color: #000;
281
+  font-weight: bold;
282
+  margin-bottom: 10px;
283
+  margin-top: 8px;
284
+}
285
+.qualityBox {
286
+  display: flex;
287
+  flex-wrap: nowrap;
288
+  min-width: 1800px;
289
+  .qualityOne {
290
+    width: 4.5rem;
291
+    height: 4.5rem;
292
+    border-radius: 0.3125rem;
293
+    border: 1px solid rgba(229, 229, 229, 1);
294
+    display: flex;
295
+    align-items: center;
296
+    flex-direction: column;
297
+    margin-right: 0.875rem;
298
+    cursor: pointer;
299
+    //   justify-content: space-around;
300
+    .gth {
301
+      color: #ff974a;
302
+      font-size: 1.25rem;
303
+    }
304
+    .gou {
305
+      color: #5cd924;
306
+      font-size: 1.25rem;
307
+    }
308
+    p {
309
+      width: 100%;
310
+      margin-top: 1.25rem;
311
+      margin-bottom: 0.625rem;
312
+      font-weight: bold;
313
+      color: #666666;
314
+      font-size: 0.875rem;
315
+      text-align: center;
316
+      white-space: nowrap;
317
+      overflow: hidden;
318
+      text-overflow: ellipsis;
319
+    }
320
+  }
321
+  .active {
322
+    background: #5b98ff;
323
+    p {
324
+      color: #fff;
325
+    }
326
+    .gth {
327
+      color: #fff;
328
+      font-size: 1.25rem;
329
+    }
330
+    .gou {
331
+      color: #fff;
332
+      font-size: 1.25rem;
333
+    }
334
+  }
335
+}
336
+</style>
337
+
338
+
339
+<style lang="scss">
340
+.page_patientComplianceDetails {
341
+  .cell {
342
+    text-align: center;
343
+  }
344
+  .el-form-item {
345
+    margin-bottom: 0;
346
+  }
347
+}
348
+</style>

+ 287 - 0
src/xt_pages/qcd/patientControlAnalysis.vue Ver arquivo

@@ -0,0 +1,287 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <div class="page_patientControlAnalysis">
8
+        <div class="cell clearfix">
9
+          <el-form :inline="true" :model="listQuery">
10
+            <el-form-item label>
11
+              <el-input v-model.trim="listQuery.search" placeholder="姓名/透析号" style="width: 200px;"></el-input>
12
+              <el-button type="primary" @click="onSearch" icon="el-icon-search">搜索</el-button>
13
+            </el-form-item>
14
+          </el-form>
15
+          <el-select v-model="value" placeholder="请选择" style="margin-right:20px;width:100px">
16
+            <el-option
17
+              v-for="item in options"
18
+              :key="item.value"
19
+              :label="item.label"
20
+              :value="item.value"
21
+            ></el-option>
22
+          </el-select>
23
+          <el-select v-model="value" placeholder="请选择" style="margin-right:20px;width:100px">
24
+            <el-option
25
+              v-for="item in options"
26
+              :key="item.value"
27
+              :label="item.label"
28
+              :value="item.value"
29
+            ></el-option>
30
+          </el-select>
31
+          <label class="title">
32
+            <span class="name">日期查询</span> :
33
+          </label>
34
+          <el-date-picker
35
+            v-model="listQuery.start_time"
36
+            prefix-icon="el-icon-date"
37
+            @change="changeTime"
38
+            :editable="false"
39
+            style="width: 196px;"
40
+            type="date"
41
+            placeholder="选择日期时间"
42
+            align="right"
43
+            format="yyyy-MM-dd"
44
+            value-format="yyyy-MM-dd"
45
+          ></el-date-picker>
46
+          <span class>-</span>
47
+          <el-date-picker
48
+            v-model="listQuery.end_time"
49
+            prefix-icon="el-icon-date"
50
+            @change="changeEndTime"
51
+            :editable="false"
52
+            style="width: 196px;"
53
+            type="date"
54
+            placeholder="选择日期时间"
55
+            align="right"
56
+            format="yyyy-MM-dd"
57
+            value-format="yyyy-MM-dd"
58
+          ></el-date-picker>
59
+        </div>
60
+        <div class="cell clearfix">
61
+          <p class="chartTitle">统计图</p>
62
+        </div>
63
+        <div>
64
+          <line-chart :options="chart"></line-chart>
65
+        </div>
66
+        <div class="cell clearfix">
67
+          <p class="chartTitle">统计表</p>
68
+        </div>
69
+        <div>
70
+          <el-table :data="tableData" border style="width: 100%">
71
+            <el-table-column fixed prop="date" label="日期" width="150"></el-table-column>
72
+            <el-table-column prop="name" label="姓名" width="120"></el-table-column>
73
+            <el-table-column prop="province" label="省份" width="120"></el-table-column>
74
+            <el-table-column prop="city" label="市区" width="120"></el-table-column>
75
+            <el-table-column prop="address" label="地址" width="300"></el-table-column>
76
+            <el-table-column prop="zip" label="邮编" width="120"></el-table-column>
77
+            <el-table-column fixed="right" label="操作" width="100">
78
+              <template slot-scope="scope">
79
+                <el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
80
+              </template>
81
+            </el-table-column>
82
+          </el-table>
83
+
84
+          <el-pagination
85
+            align="right"
86
+            @size-change="handleSizeChange"
87
+            @current-change="handleCurrentChange"
88
+            :current-page="listQuery.page"
89
+            :page-sizes="[10, 20, 50, 100]"
90
+            :page-size="10"
91
+            background
92
+            style="margin-top:20px;"
93
+            layout="total, sizes, prev, pager, next, jumper"
94
+            :total="total"
95
+          ></el-pagination>
96
+        </div>
97
+      </div>
98
+    </div>
99
+  </div>
100
+</template>
101
+
102
+<script>
103
+import echarts from "echarts";
104
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
105
+import LineChart from "../qcd/components/LineChart";
106
+export default {
107
+  components: {
108
+    LineChart,
109
+    BreadCrumb
110
+  },
111
+  data() {
112
+    return {
113
+      crumbs: [
114
+        { path: false, name: "科室质控" },
115
+        { path: false, name: "患者质控达标统计" }
116
+      ],
117
+      listQuery: {
118
+        start_time: "",
119
+        end_time: "",
120
+        page: 1,
121
+        limit: 10
122
+      },
123
+      options: [
124
+        {
125
+          value: "选项1",
126
+          label: "黄金糕"
127
+        },
128
+        {
129
+          value: "选项2",
130
+          label: "双皮奶"
131
+        },
132
+        {
133
+          value: "选项3",
134
+          label: "蚵仔煎"
135
+        },
136
+        {
137
+          value: "选项4",
138
+          label: "龙须面"
139
+        },
140
+        {
141
+          value: "选项5",
142
+          label: "北京烤鸭"
143
+        }
144
+      ],
145
+      value: "",
146
+      chart: {
147
+        title: {
148
+          text: "ECharts 入门示例"
149
+        },
150
+        tooltip: {},
151
+        legend: {
152
+          data: ["次数"],
153
+          left: 0
154
+        },
155
+        xAxis: {
156
+          data: ["达标", "未达标"]
157
+        },
158
+        yAxis: {
159
+          axisLabel: {
160
+            formatter: "{value} %"
161
+          },
162
+          show: false
163
+        },
164
+        series: [
165
+          {
166
+            name: "次数",
167
+            type: "bar",
168
+            data: ["78.57", "50"],
169
+            barWidth: 30,
170
+            label: {
171
+              normal: {
172
+                show: true,
173
+                position: "top",
174
+                formatter: "{c}次"
175
+              }
176
+            },
177
+            //配置样式
178
+            itemStyle: {
179
+              //通常情况下:
180
+
181
+              //每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
182
+              normal: {
183
+                color: function(params) {
184
+                  //我这边就两个柱子,大体就两个柱子颜色渐变,所以数组只有两个值,多个颜色就多个值
185
+                  var colorList = [
186
+                    ["#A9E0F3", "#9FBDFC"],
187
+
188
+                    ["#FFD7C0", "#FF9994"]
189
+                  ];
190
+
191
+                  var index = params.dataIndex;
192
+                  if (params.dataIndex >= colorList.length) {
193
+                    index = params.dataIndex % colorList.length;
194
+                  }
195
+
196
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
197
+                    { offset: 0, color: colorList[index][0] },
198
+                    // { offset: 0.5, color: colorList[index][1] },
199
+                    { offset: 1, color: colorList[index][1] }
200
+                  ]);
201
+                },
202
+                barBorderRadius: [5, 5, 0, 0] //柱状角成椭圆形
203
+              },
204
+
205
+              //鼠标悬停时:
206
+              emphasis: {
207
+                shadowBlur: 10,
208
+                shadowOffsetX: 0,
209
+                shadowColor: "rgba(0, 0, 0, 0.5)"
210
+              }
211
+            }
212
+          }
213
+        ]
214
+      },
215
+      tableData: [
216
+        {
217
+          date: "2016-05-02",
218
+          name: "王小虎",
219
+          province: "上海",
220
+          city: "普陀区",
221
+          address: "上海市普陀区金沙江路 1518 弄",
222
+          zip: 200333
223
+        },
224
+        {
225
+          date: "2016-05-04",
226
+          name: "王小虎",
227
+          province: "上海",
228
+          city: "普陀区",
229
+          address: "上海市普陀区金沙江路 1517 弄",
230
+          zip: 200333
231
+        },
232
+        {
233
+          date: "2016-05-01",
234
+          name: "王小虎",
235
+          province: "上海",
236
+          city: "普陀区",
237
+          address: "上海市普陀区金沙江路 1519 弄",
238
+          zip: 200333
239
+        },
240
+        {
241
+          date: "2016-05-03",
242
+          name: "王小虎",
243
+          province: "上海",
244
+          city: "普陀区",
245
+          address: "上海市普陀区金沙江路 1516 弄",
246
+          zip: 200333
247
+        }
248
+      ]
249
+    };
250
+  },
251
+  methods: {
252
+    changeTime() {},
253
+    changeEndTime(val) {
254
+      var time =
255
+        this.getTimestamp(val) - this.getTimestamp(this.listQuery.start_time);
256
+      if (time < 0) {
257
+        this.$message.error("结束时间不能小于开始时间");
258
+        this.listQuery.end_time = "";
259
+      } else {
260
+      }
261
+    },
262
+    handleClick(row) {
263
+      console.log(row);
264
+      this.$router.push({ path: "/qcd/patientComplianceDetails" });
265
+    }
266
+  }
267
+};
268
+</script>
269
+
270
+<style lang="scss" scoped>
271
+.page_patientControlAnalysis {
272
+  .pointTitle {
273
+    font-size: 13px;
274
+  }
275
+}
276
+</style>
277
+
278
+<style lang="scss">
279
+.page_patientControlAnalysis {
280
+  .el-form-item {
281
+    margin-bottom: 0;
282
+  }
283
+  .cell {
284
+    text-align: center;
285
+  }
286
+}
287
+</style>

+ 9 - 2
src/xt_pages/qcd/processIndicators.vue Ver arquivo

@@ -318,8 +318,15 @@ export default {
318 318
         }
319 319
       });
320 320
     },
321
-    changeTime() {
322
-      this.getList();
321
+    changeTime(val) {
322
+      var time =
323
+        this.getTimestamp(val) - this.getTimestamp(this.listQuery.end_time);
324
+      if (time > 0) {
325
+        this.$message.error("结束时间不能小于开始时间");
326
+        this.listQuery.start_time = "";
327
+      } else {
328
+        this.getList();
329
+      }
323 330
     },
324 331
     changeEndTime(val) {
325 332
       var time =

+ 272 - 0
src/xt_pages/qcd/statisticalConfiguration.vue Ver arquivo

@@ -0,0 +1,272 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <el-tabs v-model="tabActiveName" @tab-click="handleTabClick" style="margin-bottom:10px">
8
+        <el-tab-pane label="质控达标统计配置" name="control"></el-tab-pane>
9
+        <el-tab-pane label="检验检查统计配置" name="query"></el-tab-pane>
10
+      </el-tabs>
11
+      <el-row :gutter="20">
12
+        <el-col :span="2" :offset="22">
13
+          <el-button type="primary" class="newadd" @click="newDialog = true">新增</el-button>
14
+        </el-col>
15
+      </el-row>
16
+      <div class="configTable">
17
+        <el-table :data="tableData" border style="width: 100%">
18
+          <el-table-column prop="date" label="日期" width="180"></el-table-column>
19
+          <el-table-column prop="name" label="姓名" width="180"></el-table-column>
20
+          <el-table-column prop="address" label="地址"></el-table-column>
21
+          <el-table-column label="操作" width="180">
22
+            <template slot-scope="scope">
23
+              <el-button size="mini" type="primary" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
24
+              <el-button size="mini" type="danger" @click="handleDelete(scope.$index, scope.row)">删除</el-button>
25
+            </template>
26
+          </el-table-column>
27
+        </el-table>
28
+      </div>
29
+
30
+      <el-dialog title="新增" :visible.sync="newDialog">
31
+        <el-form :model="form" ref="form">
32
+          <el-form-item label="检查大项" :label-width="formLabelWidth">
33
+            <el-select v-model="form.inspectionMajor" placeholder="请选择活动区域">
34
+               <el-option
35
+                  v-for="patient in InspectionMajor"
36
+                  :key="patient.id"
37
+                  :value="patient.id"
38
+                  :label="patient.name"
39
+                  >
40
+               </el-option>
41
+            </el-select>
42
+          </el-form-item>
43
+          <el-form-item label="检查小项" :label-width="formLabelWidth">
44
+            <el-select v-model="form.inspectionMinor" placeholder="请选择活动区域">
45
+                <el-option
46
+                  v-for="patient in InspectionMinor"
47
+                  :key="patient.id"
48
+                  :value="patient.id"
49
+                  :label="patient.name"
50
+                  >
51
+                </el-option>
52
+            </el-select>
53
+          </el-form-item>
54
+          <el-form-item label="指控范围" :label-width="formLabelWidth">
55
+            <el-input style="width:200px" v-model="form.min_range"></el-input>&nbsp;
56
+            -
57
+            <el-input style="width:200px" v-model="form.large_range"></el-input>
58
+          </el-form-item>
59
+          <el-form-item label="排序" :label-width="formLabelWidth">
60
+            <el-input style="width:200px" v-model="form.sort"></el-input>
61
+          </el-form-item>
62
+        </el-form>
63
+        <div slot="footer" class="dialog-footer">
64
+          <el-button @click="newDialog = false">取 消</el-button>
65
+          <el-button type="primary" @click="newDialog = false">保存</el-button>
66
+        </div>
67
+      </el-dialog>
68
+      <el-dialog title="编辑" :visible.sync="editDialog">
69
+        <el-form :model="form">
70
+          <el-form-item label="检查大项" :label-width="formLabelWidth">
71
+            <el-select v-model="form.inspectionMajor" placeholder="请选择活动区域">
72
+              <el-option
73
+                  v-for="patient in InspectionMajor"
74
+                  :key="patient.id"
75
+                  :value="patient.id"
76
+                  :label="patient.name"
77
+                  >
78
+               </el-option>
79
+            </el-select>
80
+          </el-form-item>
81
+          <el-form-item label="检查小项" :label-width="formLabelWidth">
82
+            <el-select v-model="form.inspectionMinor" placeholder="请选择活动区域">
83
+               <el-option
84
+                  v-for="patient in InspectionMinor"
85
+                  :key="patient.id"
86
+                  :value="patient.id"
87
+                  :label="patient.name"
88
+                  >
89
+                </el-option>
90
+            </el-select>
91
+          </el-form-item>
92
+          <el-form-item label="指控范围" :label-width="formLabelWidth">
93
+            <el-input style="width:200px" v-model="form.min_range"></el-input>&nbsp;
94
+            -
95
+            <el-input style="width:200px" v-model="form.large_range"></el-input>
96
+          </el-form-item>
97
+          <el-form-item label="排序" :label-width="formLabelWidth">
98
+            <el-input style="width:200px" v-model="form.sort"></el-input>
99
+          </el-form-item>
100
+        </el-form>
101
+        <div slot="footer" class="dialog-footer">
102
+          <el-button @click="editDialog = false">取 消</el-button>
103
+          <el-button type="primary" @click="editDialog = false">保存</el-button>
104
+        </div>
105
+      </el-dialog>
106
+    </div>
107
+  </div>
108
+</template>
109
+
110
+
111
+
112
+<script>
113
+import { GetOICData } from "@/api/qcd";
114
+import PieChart from "../qcd/components/BarChart";
115
+import { uParseTime } from "@/utils/tools";
116
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
117
+export default {
118
+  name: "dialysisTotal",
119
+  data() {
120
+    return {
121
+      crumbs: [
122
+        { path: false, name: "科室质控" },
123
+        { path: false, name: "统计配置" },
124
+        { path: false, name: "质控达标统计配置" }
125
+      ],
126
+      tabActiveName: "control",
127
+      InspectionMajor:[],
128
+      InspectionMinor:[],
129
+      tableData: [
130
+        {
131
+          date: "2016-05-02",
132
+          name: "王小虎",
133
+          address: "上海市普陀区金沙江路 1518 弄"
134
+        },
135
+        {
136
+          date: "2016-05-04",
137
+          name: "王小虎",
138
+          address: "上海市普陀区金沙江路 1517 弄"
139
+        },
140
+        {
141
+          date: "2016-05-01",
142
+          name: "王小虎",
143
+          address: "上海市普陀区金沙江路 1519 弄"
144
+        },
145
+        {
146
+          date: "2016-05-03",
147
+          name: "王小虎",
148
+          address: "上海市普陀区金沙江路 1516 弄"
149
+        }
150
+      ],
151
+      newDialog: false,
152
+      editDialog: false,
153
+      formLabelWidth: "120px",
154
+      form: {
155
+        inspectionMajor: "",
156
+        inspectionMinor: "",
157
+        min_range: "",
158
+        large_range: "",
159
+        sort:"",
160
+        delivery: false,
161
+        type: [],
162
+        resource: "",
163
+        desc: ""
164
+      }
165
+    };
166
+  },
167
+  created() {},
168
+  methods: {
169
+    handleTabClick(tab, event) {
170
+      if (this.tabActiveName == "query") {
171
+        this.$router.push({ path: "/qcd/patientanalysis/checkStatistical" });
172
+      }
173
+    },
174
+    handleEdit() {
175
+      this.editDialog = true;
176
+    }
177
+  },
178
+  components: {
179
+    PieChart,
180
+    BreadCrumb
181
+  }
182
+};
183
+</script>
184
+<style lang="scss">
185
+#oictable ::-webkit-scrollbar {
186
+  height: 15px;
187
+}
188
+.configTable {
189
+  .el-table td,
190
+  .el-table th {
191
+    text-align: center;
192
+  }
193
+}
194
+</style>
195
+
196
+ <style rel="stylesheet/scss" lang="scss" scoped>
197
+.newadd {
198
+  margin-bottom: 10px;
199
+}
200
+// .app-container {
201
+//   //   margin: 20px;
202
+//   font-size: 15px;
203
+//   .filter-container {
204
+//     padding-bottom: 5px;
205
+//   }
206
+//   .cqd-dataTitle {
207
+//     color: #303133;
208
+//     font-size: 14px;
209
+//     border-bottom: 2px #e4e7ed solid;
210
+//     height: 36px;
211
+//     line-height: 36px;
212
+//     margin: 0 0 25px 0;
213
+//     position: relative;
214
+//   }
215
+//   .cqd-dataTitle::before {
216
+//     position: absolute;
217
+//     left: 0;
218
+//     bottom: -2px;
219
+//     content: "";
220
+//     width: 42px;
221
+//     height: 2px;
222
+//     background: #409eff;
223
+//   }
224
+//   .search-component {
225
+//     width: 500px;
226
+//     .searchBox {
227
+//       width: 300px;
228
+//       height: 36px;
229
+//       line-height: 36px;
230
+//       padding-left: 15px;
231
+//       border: 1px #dcdfe6 solid;
232
+//       border-right: none;
233
+//       outline: none;
234
+//       float: left;
235
+//       border-radius: 6px 0 0 6px;
236
+//       font-size: 14px;
237
+//       color: #333;
238
+//       background: #fff;
239
+//       box-shadow: 3px 3px 4px rgba(135, 135, 135, 0.05);
240
+//     }
241
+//     .searchBtn {
242
+//       background-color: #409eff;
243
+//       color: #fff;
244
+//       font-size: 15px;
245
+//       text-align: center;
246
+//       height: 36px;
247
+//       line-height: 36px;
248
+//       float: left;
249
+//       outline: none;
250
+//       width: 70px;
251
+//       border: none;
252
+//       border-radius: 0 6px 6px 0;
253
+//       font-family: "Microsoft Yahei";
254
+//       cursor: pointer;
255
+//     }
256
+//   }
257
+//   .amount {
258
+//     font-weight: normal;
259
+//     padding: 10px 0 0 0;
260
+//     color: #606266;
261
+//     font-size: 14px;
262
+//     span {
263
+//       color: #ef2525;
264
+//       font-family: "Arial";
265
+//       padding: 0 2px;
266
+//     }
267
+//   }
268
+// }
269
+//
270
+</style>
271
+
272
+

+ 27 - 0
src/xt_pages/qcd/treatmentControlAnalysis.vue Ver arquivo

@@ -0,0 +1,27 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container"></div>
7
+  </div>
8
+</template>
9
+
10
+<script>
11
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
12
+import LineChart from "../qcd/components/LineChart";
13
+export default {
14
+  components: {
15
+    LineChart,
16
+    BreadCrumb
17
+  },
18
+  data() {
19
+    return {
20
+      crumbs: [
21
+        { path: false, name: "科室质控" },
22
+        { path: false, name: "患者质控达标统计" }
23
+      ]
24
+    };
25
+  }
26
+};
27
+</script>

+ 86 - 0
src/xt_pages/qcd/treatmentControlAnalysis/check.vue Ver arquivo

@@ -0,0 +1,86 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <div class="page_treatment">
8
+        <el-tabs v-model="activeName" @tab-click="handleClick">
9
+          <el-tab-pane label="患者透析次数统计" name="first"></el-tab-pane>
10
+          <el-tab-pane label="患者检验检查统计" name="second"></el-tab-pane>
11
+        </el-tabs>
12
+        <div class="cell clearfix">
13
+          <label class="title">
14
+            <span class="name">转归状态</span> :
15
+          </label>
16
+          <div class="time">
17
+            <ul class>
18
+              <li
19
+                :class="item.state == wayType ? 'active' : ''"
20
+                @click="chooseWay(item.state)"
21
+                v-for="item in way"
22
+                :key="item.value"
23
+              >{{ item.label }}</li>
24
+            </ul>
25
+          </div>
26
+        </div>
27
+        <div v-if="wayType == 0">
28
+          <check-personal></check-personal>
29
+        </div>
30
+        <div v-if="wayType == 1">
31
+          <check-all></check-all>
32
+        </div>
33
+      </div>
34
+    </div>
35
+  </div>
36
+</template>
37
+
38
+<script>
39
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
40
+import LineChart from "../../qcd/components/LineChart";
41
+import CheckPersonal from "../treatmentControlAnalysis/components/CheckPersonal";
42
+import CheckAll from "../treatmentControlAnalysis/components/CheckAll";
43
+export default {
44
+  components: {
45
+    LineChart,
46
+    BreadCrumb,
47
+    CheckPersonal,
48
+    CheckAll
49
+  },
50
+  data() {
51
+    return {
52
+      crumbs: [
53
+        { path: false, name: "科室质控" },
54
+        { path: false, name: "治疗信息统计" },
55
+        { path: false, name: "患者透析次数统计" }
56
+      ],
57
+      activeName: "second",
58
+      way: [
59
+        { value: 0, label: "统计个人", state: 0 },
60
+        { value: 1, label: "统计全部", state: 1 }
61
+      ],
62
+      wayType: 0
63
+    };
64
+  },
65
+  methods: {
66
+    handleClick() {
67
+      if (this.activeName == "first") {
68
+        this.$router.push({ path: "/qcd/treatmentControlAnalysis/time" });
69
+      }
70
+    },
71
+    chooseWay(way) {
72
+      this.wayType = way;
73
+    }
74
+  }
75
+};
76
+</script>
77
+
78
+
79
+
80
+<style lang="scss">
81
+.page_treatment {
82
+  .el-form-item {
83
+    margin-bottom: 0;
84
+  }
85
+}
86
+</style>

+ 293 - 0
src/xt_pages/qcd/treatmentControlAnalysis/components/CheckAll.vue Ver arquivo

@@ -0,0 +1,293 @@
1
+<template>
2
+  <div class="page_checkAll">
3
+    <div class="cell clearfix">
4
+      <el-form :inline="true" :model="listQuery">
5
+        <el-form-item label>
6
+          <el-input v-model.trim="listQuery.search" placeholder="姓名/透析号" style="width:150px"></el-input>
7
+          <el-button type="primary" @click="onSearch" icon="el-icon-search">搜索</el-button>
8
+        </el-form-item>
9
+      </el-form>
10
+      <el-select v-model="value" placeholder="请选择" style="width:120px;margin-right:20px">
11
+        <el-option
12
+          v-for="item in options"
13
+          :key="item.value"
14
+          :label="item.label"
15
+          :value="item.value"
16
+        ></el-option>
17
+      </el-select>
18
+      <el-select
19
+        v-model="value"
20
+        placeholder="请选择"
21
+        @change="chooseType"
22
+        style="width:120px;margin-right:20px"
23
+      >
24
+        <el-option
25
+          v-for="item in options"
26
+          :key="item.value"
27
+          :label="item.label"
28
+          :value="item.value"
29
+        ></el-option>
30
+      </el-select>
31
+      <label class="title">
32
+        <span class="name">日期查询</span> :
33
+      </label>
34
+      <el-date-picker
35
+        v-model="listQuery.start_time"
36
+        prefix-icon="el-icon-date"
37
+        @change="changeTime"
38
+        :editable="false"
39
+        style="width: 196px;"
40
+        type="date"
41
+        placeholder="选择日期时间"
42
+        align="right"
43
+        format="yyyy-MM-dd"
44
+        value-format="yyyy-MM-dd"
45
+      ></el-date-picker>
46
+      <span class>-</span>
47
+      <el-date-picker
48
+        v-model="listQuery.end_time"
49
+        prefix-icon="el-icon-date"
50
+        @change="changeEndTime"
51
+        :editable="false"
52
+        style="width: 196px;"
53
+        type="date"
54
+        placeholder="选择日期时间"
55
+        align="right"
56
+        format="yyyy-MM-dd"
57
+        value-format="yyyy-MM-dd"
58
+      ></el-date-picker>
59
+    </div>
60
+    <el-container>
61
+      <div style="width:150px">
62
+        <div class="tableTitle">患者列表</div>
63
+        <el-table :data="tableData" border style="width: 100%;" height="500">
64
+          <el-table-column prop="date" label="日期" width="70"></el-table-column>
65
+          <el-table-column prop="name" label="姓名" width="80"></el-table-column>
66
+        </el-table>
67
+      </div>
68
+      <div style="padding-left:10px;flex:1">
69
+        <div class="tableTitle">统计表</div>
70
+        <el-table :data="tableData1" style="width: 100%" border>
71
+          <el-table-column fixed prop="date" label="日期"></el-table-column>
72
+          <el-table-column prop="name" label="姓名"></el-table-column>
73
+          <el-table-column prop="province" label="省份"></el-table-column>
74
+          <el-table-column prop="city" label="市区"></el-table-column>
75
+          <el-table-column prop="address" label="地址"></el-table-column>
76
+          <el-table-column prop="zip" label="邮编"></el-table-column>
77
+        </el-table>
78
+
79
+        <el-pagination
80
+          align="right"
81
+          @size-change="handleSizeChange"
82
+          @current-change="handleCurrentChange"
83
+          :current-page="listQuery.page"
84
+          :page-sizes="[10, 20, 50, 100]"
85
+          :page-size="10"
86
+          background
87
+          style="margin-top:20px;"
88
+          layout="total, sizes, prev, pager, next, jumper"
89
+          :total="total"
90
+        ></el-pagination>
91
+      </div>
92
+    </el-container>
93
+  </div>
94
+</template>
95
+
96
+
97
+<script>
98
+export default {
99
+  data() {
100
+    return {
101
+      listQuery: {
102
+        start_time: "",
103
+        end_time: "",
104
+        page: 1,
105
+        limit: 10
106
+      },
107
+      options: [
108
+        {
109
+          value: "选项1",
110
+          label: "黄金糕"
111
+        },
112
+        {
113
+          value: "选项2",
114
+          label: "双皮奶"
115
+        },
116
+        {
117
+          value: "选项3",
118
+          label: "蚵仔煎"
119
+        },
120
+        {
121
+          value: "选项4",
122
+          label: "龙须面"
123
+        },
124
+        {
125
+          value: "选项5",
126
+          label: "北京烤鸭"
127
+        }
128
+      ],
129
+      value: "请选项",
130
+      tableData: [
131
+        {
132
+          date: "2016",
133
+          name: "王小虎"
134
+        },
135
+        {
136
+          date: "2016",
137
+          name: "王小虎"
138
+        },
139
+        {
140
+          date: "2016",
141
+          name: "王小虎"
142
+        },
143
+        {
144
+          date: "2016",
145
+          name: "王小虎"
146
+        },
147
+        {
148
+          date: "2016",
149
+          name: "王小虎"
150
+        },
151
+        {
152
+          date: "2016",
153
+          name: "王小虎"
154
+        },
155
+        {
156
+          date: "2016",
157
+          name: "王小虎"
158
+        },
159
+        {
160
+          date: "2016",
161
+          name: "王小虎"
162
+        },
163
+        {
164
+          date: "2016",
165
+          name: "王小虎"
166
+        },
167
+        {
168
+          date: "2016",
169
+          name: "王小虎"
170
+        },
171
+        {
172
+          date: "2016",
173
+          name: "王小虎"
174
+        },
175
+        {
176
+          date: "2016",
177
+          name: "王小虎"
178
+        }
179
+      ],
180
+      tableData1: [
181
+        {
182
+          date: "2016-05-03",
183
+          name: "王小虎",
184
+          province: "上海",
185
+          city: "普陀区",
186
+          address: "上海市普陀区金沙江路 1518 弄",
187
+          zip: 200333
188
+        },
189
+        {
190
+          date: "2016-05-02",
191
+          name: "王小虎",
192
+          province: "上海",
193
+          city: "普陀区",
194
+          address: "上海市普陀区金沙江路 1518 弄",
195
+          zip: 200333
196
+        },
197
+        {
198
+          date: "2016-05-04",
199
+          name: "王小虎",
200
+          province: "上海",
201
+          city: "普陀区",
202
+          address: "上海市普陀区金沙江路 1518 弄",
203
+          zip: 200333
204
+        },
205
+        {
206
+          date: "2016-05-01",
207
+          name: "王小虎",
208
+          province: "上海",
209
+          city: "普陀区",
210
+          address: "上海市普陀区金沙江路 1518 弄",
211
+          zip: 200333
212
+        },
213
+        {
214
+          date: "2016-05-08",
215
+          name: "王小虎",
216
+          province: "上海",
217
+          city: "普陀区",
218
+          address: "上海市普陀区金沙江路 1518 弄",
219
+          zip: 200333
220
+        },
221
+        {
222
+          date: "2016-05-06",
223
+          name: "王小虎",
224
+          province: "上海",
225
+          city: "普陀区",
226
+          address: "上海市普陀区金沙江路 1518 弄",
227
+          zip: 200333
228
+        },
229
+        {
230
+          date: "2016-05-07",
231
+          name: "王小虎",
232
+          province: "上海",
233
+          city: "普陀区",
234
+          address: "上海市普陀区金沙江路 1518 弄",
235
+          zip: 200333
236
+        },
237
+        {
238
+          date: "2016-05-08",
239
+          name: "王小虎",
240
+          province: "上海",
241
+          city: "普陀区",
242
+          address: "上海市普陀区金沙江路 1518 弄",
243
+          zip: 200333
244
+        },
245
+        {
246
+          date: "2016-05-06",
247
+          name: "王小虎",
248
+          province: "上海",
249
+          city: "普陀区",
250
+          address: "上海市普陀区金沙江路 1518 弄",
251
+          zip: 200333
252
+        },
253
+        {
254
+          date: "2016-05-07",
255
+          name: "王小虎",
256
+          province: "上海",
257
+          city: "普陀区",
258
+          address: "上海市普陀区金沙江路 1518 弄",
259
+          zip: 200333
260
+        }
261
+      ]
262
+    };
263
+  },
264
+  methods: {
265
+    changeTime() {},
266
+    changeEndTime(val) {
267
+      var time =
268
+        this.getTimestamp(val) - this.getTimestamp(this.listQuery.start_time);
269
+      if (time < 0) {
270
+        this.$message.error("结束时间不能小于开始时间");
271
+        this.listQuery.end_time = "";
272
+      } else {
273
+      }
274
+    }
275
+  }
276
+};
277
+</script>
278
+
279
+<style lang="scss" scoped>
280
+.tableTitle {
281
+  font-size: 16px;
282
+  color: #000;
283
+  font-weight: bold;
284
+  margin-bottom: 10px;
285
+}
286
+</style>
287
+<style lang="scss">
288
+.page_checkAll {
289
+  .cell {
290
+    text-align: center;
291
+  }
292
+}
293
+</style>

+ 284 - 0
src/xt_pages/qcd/treatmentControlAnalysis/components/CheckPersonal.vue Ver arquivo

@@ -0,0 +1,284 @@
1
+<template>
2
+  <div class="page_checkPersonal">
3
+    <div class="cell clearfix">
4
+      <el-form :inline="true" :model="listQuery">
5
+        <el-form-item label>
6
+          <el-input v-model.trim="listQuery.search" placeholder="姓名/透析号" style="width:150px"></el-input>
7
+          <el-button type="primary" @click="onSearch" icon="el-icon-search">搜索</el-button>
8
+        </el-form-item>
9
+      </el-form>
10
+      <el-select v-model="value" placeholder="请选择" style="width:120px;margin-right:20px">
11
+        <el-option
12
+          v-for="item in options"
13
+          :key="item.value"
14
+          :label="item.label"
15
+          :value="item.value"
16
+        ></el-option>
17
+      </el-select>
18
+      <el-select
19
+        v-model="value"
20
+        placeholder="请选择"
21
+        @change="chooseType"
22
+        style="width:120px;margin-right:20px"
23
+      >
24
+        <el-option
25
+          v-for="item in options"
26
+          :key="item.value"
27
+          :label="item.label"
28
+          :value="item.value"
29
+        ></el-option>
30
+      </el-select>
31
+      <label class="title">
32
+        <span class="name">日期查询</span> :
33
+      </label>
34
+      <el-date-picker
35
+        v-model="listQuery.start_time"
36
+        prefix-icon="el-icon-date"
37
+        @change="changeTime"
38
+        :editable="false"
39
+        style="width: 196px;"
40
+        type="date"
41
+        placeholder="选择日期时间"
42
+        align="right"
43
+        format="yyyy-MM-dd"
44
+        value-format="yyyy-MM-dd"
45
+      ></el-date-picker>
46
+      <span class>-</span>
47
+      <el-date-picker
48
+        v-model="listQuery.end_time"
49
+        prefix-icon="el-icon-date"
50
+        @change="changeEndTime"
51
+        :editable="false"
52
+        style="width: 196px;"
53
+        type="date"
54
+        placeholder="选择日期时间"
55
+        align="right"
56
+        format="yyyy-MM-dd"
57
+        value-format="yyyy-MM-dd"
58
+      ></el-date-picker>
59
+    </div>
60
+    <el-container>
61
+      <div style="width:150px">
62
+        <div class="tableTitle">患者列表</div>
63
+        <el-table :data="tableData" border style="width: 100%;" height="500">
64
+          <el-table-column prop="date" label="日期" width="70"></el-table-column>
65
+          <el-table-column prop="name" label="姓名" width="80"></el-table-column>
66
+        </el-table>
67
+      </div>
68
+      <div style="padding-left:10px;flex:1">
69
+        <div class="tableTitle">统计图</div>
70
+        <div>
71
+          <line-chart :options="chart"></line-chart>
72
+        </div>
73
+      </div>
74
+    </el-container>
75
+  </div>
76
+</template>
77
+
78
+
79
+<script>
80
+import echarts from "echarts";
81
+import LineChart from "../../components/LineChart";
82
+export default {
83
+  components: {
84
+    LineChart
85
+  },
86
+  data() {
87
+    return {
88
+      listQuery: {
89
+        start_time: "",
90
+        end_time: "",
91
+        page: 1,
92
+        limit: 10
93
+      },
94
+      options: [
95
+        {
96
+          value: "选项1",
97
+          label: "黄金糕"
98
+        },
99
+        {
100
+          value: "选项2",
101
+          label: "双皮奶"
102
+        },
103
+        {
104
+          value: "选项3",
105
+          label: "蚵仔煎"
106
+        },
107
+        {
108
+          value: "选项4",
109
+          label: "龙须面"
110
+        },
111
+        {
112
+          value: "选项5",
113
+          label: "北京烤鸭"
114
+        }
115
+      ],
116
+      value: "请选项",
117
+      tableData: [
118
+        {
119
+          date: "2016",
120
+          name: "王小虎"
121
+        },
122
+        {
123
+          date: "2016",
124
+          name: "王小虎"
125
+        },
126
+        {
127
+          date: "2016",
128
+          name: "王小虎"
129
+        },
130
+        {
131
+          date: "2016",
132
+          name: "王小虎"
133
+        },
134
+        {
135
+          date: "2016",
136
+          name: "王小虎"
137
+        },
138
+        {
139
+          date: "2016",
140
+          name: "王小虎"
141
+        },
142
+        {
143
+          date: "2016",
144
+          name: "王小虎"
145
+        },
146
+        {
147
+          date: "2016",
148
+          name: "王小虎"
149
+        },
150
+        {
151
+          date: "2016",
152
+          name: "王小虎"
153
+        },
154
+        {
155
+          date: "2016",
156
+          name: "王小虎"
157
+        },
158
+        {
159
+          date: "2016",
160
+          name: "王小虎"
161
+        },
162
+        {
163
+          date: "2016",
164
+          name: "王小虎"
165
+        }
166
+      ],
167
+      chart: {
168
+        title: {
169
+          text: "ECharts 入门示例"
170
+        },
171
+        tooltip: {},
172
+        legend: {
173
+          data: ["次数"],
174
+          left: 0
175
+        },
176
+        xAxis: {
177
+          data: ["1", "2", "3", "4", "5", "6", "7", "8", "9"]
178
+        },
179
+        yAxis: {
180
+          axisLabel: {
181
+            formatter: "{value} %"
182
+          },
183
+          show: false
184
+        },
185
+        series: [
186
+          {
187
+            name: "次数",
188
+            type: "bar",
189
+            data: [
190
+              "78.57",
191
+              "50",
192
+              "80",
193
+              "93.33",
194
+              "92.86",
195
+              "100",
196
+              "12",
197
+              "77",
198
+              "37"
199
+            ],
200
+            barWidth: 30,
201
+            label: {
202
+              normal: {
203
+                show: true,
204
+                position: "top",
205
+                formatter: "{c}次"
206
+              }
207
+            },
208
+            //配置样式
209
+            itemStyle: {
210
+              //通常情况下:
211
+
212
+              //每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
213
+              normal: {
214
+                color: function(params) {
215
+                  //我这边就两个柱子,大体就两个柱子颜色渐变,所以数组只有两个值,多个颜色就多个值
216
+                  var colorList = [
217
+                    ["#A9E0F3", "#9FBDFC"],
218
+                    ["#A9E0F3", "#9FBDFC"],
219
+                    ["#A9E0F3", "#9FBDFC"],
220
+
221
+                    ["#FFD7C0", "#FF9994"],
222
+                    ["#FFD7C0", "#FF9994"],
223
+                    ["#FFD7C0", "#FF9994"],
224
+                    ["#D7C3FD", "#B3A8F7"],
225
+                    ["#D7C3FD", "#B3A8F7"],
226
+                    ["#D7C3FD", "#B3A8F7"]
227
+                  ];
228
+
229
+                  var index = params.dataIndex;
230
+                  if (params.dataIndex >= colorList.length) {
231
+                    index = params.dataIndex % colorList.length;
232
+                  }
233
+
234
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
235
+                    { offset: 0, color: colorList[index][0] },
236
+                    // { offset: 0.5, color: colorList[index][1] },
237
+                    { offset: 1, color: colorList[index][1] }
238
+                  ]);
239
+                },
240
+                barBorderRadius: [5, 5, 0, 0] //柱状角成椭圆形
241
+              },
242
+
243
+              //鼠标悬停时:
244
+              emphasis: {
245
+                shadowBlur: 10,
246
+                shadowOffsetX: 0,
247
+                shadowColor: "rgba(0, 0, 0, 0.5)"
248
+              }
249
+            }
250
+          }
251
+        ]
252
+      }
253
+    };
254
+  },
255
+  methods: {
256
+    changeTime() {},
257
+    changeEndTime(val) {
258
+      var time =
259
+        this.getTimestamp(val) - this.getTimestamp(this.listQuery.start_time);
260
+      if (time < 0) {
261
+        this.$message.error("结束时间不能小于开始时间");
262
+        this.listQuery.end_time = "";
263
+      } else {
264
+      }
265
+    }
266
+  }
267
+};
268
+</script>
269
+
270
+<style lang="scss" scoped>
271
+.tableTitle {
272
+  font-size: 16px;
273
+  color: #000;
274
+  font-weight: bold;
275
+  margin-bottom: 10px;
276
+}
277
+</style>
278
+<style lang="scss">
279
+.page_checkPersonal {
280
+  .cell {
281
+    text-align: center;
282
+  }
283
+}
284
+</style>

+ 306 - 0
src/xt_pages/qcd/treatmentControlAnalysis/components/TimeAll.vue Ver arquivo

@@ -0,0 +1,306 @@
1
+<template>
2
+  <div class="page_timeAll">
3
+    <div class="cell clearfix">
4
+      <el-select v-model="value" placeholder="请选择" style="width:120px;margin-right:20px">
5
+        <el-option
6
+          v-for="item in options"
7
+          :key="item.value"
8
+          :label="item.label"
9
+          :value="item.value"
10
+        ></el-option>
11
+      </el-select>
12
+      <el-select
13
+        v-model="value"
14
+        placeholder="请选择"
15
+        @change="chooseType"
16
+        style="width:120px;margin-right:20px"
17
+      >
18
+        <el-option
19
+          v-for="item in options"
20
+          :key="item.value"
21
+          :label="item.label"
22
+          :value="item.value"
23
+        ></el-option>
24
+      </el-select>
25
+      <label class="title">
26
+        <span class="name">日期查询</span> :
27
+      </label>
28
+      <el-date-picker
29
+        v-model="listQuery.start_time"
30
+        prefix-icon="el-icon-date"
31
+        @change="changeTime"
32
+        :editable="false"
33
+        style="width: 196px;"
34
+        type="date"
35
+        placeholder="选择日期时间"
36
+        align="right"
37
+        format="yyyy-MM-dd"
38
+        value-format="yyyy-MM-dd"
39
+      ></el-date-picker>
40
+      <span class>-</span>
41
+      <el-date-picker
42
+        v-model="listQuery.end_time"
43
+        prefix-icon="el-icon-date"
44
+        @change="changeEndTime"
45
+        :editable="false"
46
+        style="width: 196px;"
47
+        type="date"
48
+        placeholder="选择日期时间"
49
+        align="right"
50
+        format="yyyy-MM-dd"
51
+        value-format="yyyy-MM-dd"
52
+      ></el-date-picker>
53
+    </div>
54
+    <div class="tableTitle">统计图</div>
55
+    <div>
56
+      <line-chart :options="chart"></line-chart>
57
+    </div>
58
+    <div class="tableTitle">统计表</div>
59
+    <div>
60
+      <el-table :data="tableData" style="width: 100%" border>
61
+        <el-table-column fixed prop="date" label="日期"></el-table-column>
62
+        <el-table-column prop="name" label="姓名"></el-table-column>
63
+        <el-table-column prop="province" label="省份"></el-table-column>
64
+        <el-table-column prop="city" label="市区"></el-table-column>
65
+        <el-table-column prop="address" label="地址"></el-table-column>
66
+        <el-table-column prop="zip" label="邮编"></el-table-column>
67
+      </el-table>
68
+
69
+      <el-pagination
70
+        align="right"
71
+        @size-change="handleSizeChange"
72
+        @current-change="handleCurrentChange"
73
+        :current-page="listQuery.page"
74
+        :page-sizes="[10, 20, 50, 100]"
75
+        :page-size="10"
76
+        background
77
+        style="margin-top:20px;"
78
+        layout="total, sizes, prev, pager, next, jumper"
79
+        :total="total"
80
+      ></el-pagination>
81
+    </div>
82
+  </div>
83
+</template>
84
+
85
+<script>
86
+import echarts from "echarts";
87
+import LineChart from "../../components/LineChart";
88
+export default {
89
+  components: {
90
+    LineChart
91
+  },
92
+  data() {
93
+    return {
94
+      listQuery: {
95
+        start_time: "",
96
+        end_time: "",
97
+        page: 1,
98
+        limit: 10
99
+      },
100
+      options: [
101
+        {
102
+          value: "选项1",
103
+          label: "黄金糕"
104
+        },
105
+        {
106
+          value: "选项2",
107
+          label: "双皮奶"
108
+        },
109
+        {
110
+          value: "选项3",
111
+          label: "蚵仔煎"
112
+        },
113
+        {
114
+          value: "选项4",
115
+          label: "龙须面"
116
+        },
117
+        {
118
+          value: "选项5",
119
+          label: "北京烤鸭"
120
+        }
121
+      ],
122
+      value: "请选项",
123
+      tableData: [
124
+        {
125
+          date: "2016-05-03",
126
+          name: "王小虎",
127
+          province: "上海",
128
+          city: "普陀区",
129
+          address: "上海市普陀区金沙江路 1518 弄",
130
+          zip: 200333
131
+        },
132
+        {
133
+          date: "2016-05-02",
134
+          name: "王小虎",
135
+          province: "上海",
136
+          city: "普陀区",
137
+          address: "上海市普陀区金沙江路 1518 弄",
138
+          zip: 200333
139
+        },
140
+        {
141
+          date: "2016-05-04",
142
+          name: "王小虎",
143
+          province: "上海",
144
+          city: "普陀区",
145
+          address: "上海市普陀区金沙江路 1518 弄",
146
+          zip: 200333
147
+        },
148
+        {
149
+          date: "2016-05-01",
150
+          name: "王小虎",
151
+          province: "上海",
152
+          city: "普陀区",
153
+          address: "上海市普陀区金沙江路 1518 弄",
154
+          zip: 200333
155
+        },
156
+        {
157
+          date: "2016-05-08",
158
+          name: "王小虎",
159
+          province: "上海",
160
+          city: "普陀区",
161
+          address: "上海市普陀区金沙江路 1518 弄",
162
+          zip: 200333
163
+        },
164
+        {
165
+          date: "2016-05-06",
166
+          name: "王小虎",
167
+          province: "上海",
168
+          city: "普陀区",
169
+          address: "上海市普陀区金沙江路 1518 弄",
170
+          zip: 200333
171
+        },
172
+        {
173
+          date: "2016-05-07",
174
+          name: "王小虎",
175
+          province: "上海",
176
+          city: "普陀区",
177
+          address: "上海市普陀区金沙江路 1518 弄",
178
+          zip: 200333
179
+        },
180
+        {
181
+          date: "2016-05-08",
182
+          name: "王小虎",
183
+          province: "上海",
184
+          city: "普陀区",
185
+          address: "上海市普陀区金沙江路 1518 弄",
186
+          zip: 200333
187
+        },
188
+        {
189
+          date: "2016-05-06",
190
+          name: "王小虎",
191
+          province: "上海",
192
+          city: "普陀区",
193
+          address: "上海市普陀区金沙江路 1518 弄",
194
+          zip: 200333
195
+        },
196
+        {
197
+          date: "2016-05-07",
198
+          name: "王小虎",
199
+          province: "上海",
200
+          city: "普陀区",
201
+          address: "上海市普陀区金沙江路 1518 弄",
202
+          zip: 200333
203
+        }
204
+      ],
205
+      chart: {
206
+        title: {
207
+          text: "ECharts 入门示例"
208
+        },
209
+        tooltip: {},
210
+        legend: {
211
+          data: ["次数"],
212
+          left: 0
213
+        },
214
+        xAxis: {
215
+          data: ["达标", "未达标"]
216
+        },
217
+        yAxis: {
218
+          axisLabel: {
219
+            formatter: "{value} %"
220
+          },
221
+          show: false
222
+        },
223
+        series: [
224
+          {
225
+            name: "次数",
226
+            type: "bar",
227
+            data: ["78.57", "50"],
228
+            barWidth: 30,
229
+            label: {
230
+              normal: {
231
+                show: true,
232
+                position: "top",
233
+                formatter: "{c}次"
234
+              }
235
+            },
236
+            //配置样式
237
+            itemStyle: {
238
+              //通常情况下:
239
+
240
+              //每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
241
+              normal: {
242
+                color: function(params) {
243
+                  //我这边就两个柱子,大体就两个柱子颜色渐变,所以数组只有两个值,多个颜色就多个值
244
+                  var colorList = [
245
+                    ["#A9E0F3", "#9FBDFC"],
246
+
247
+                    ["#FFD7C0", "#FF9994"]
248
+                  ];
249
+
250
+                  var index = params.dataIndex;
251
+                  if (params.dataIndex >= colorList.length) {
252
+                    index = params.dataIndex % colorList.length;
253
+                  }
254
+
255
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
256
+                    { offset: 0, color: colorList[index][0] },
257
+                    // { offset: 0.5, color: colorList[index][1] },
258
+                    { offset: 1, color: colorList[index][1] }
259
+                  ]);
260
+                },
261
+                barBorderRadius: [5, 5, 0, 0] //柱状角成椭圆形
262
+              },
263
+
264
+              //鼠标悬停时:
265
+              emphasis: {
266
+                shadowBlur: 10,
267
+                shadowOffsetX: 0,
268
+                shadowColor: "rgba(0, 0, 0, 0.5)"
269
+              }
270
+            }
271
+          }
272
+        ]
273
+      }
274
+    };
275
+  },
276
+  methods: {
277
+    changeTime() {},
278
+    changeEndTime(val) {
279
+      var time =
280
+        this.getTimestamp(val) - this.getTimestamp(this.listQuery.start_time);
281
+      if (time < 0) {
282
+        this.$message.error("结束时间不能小于开始时间");
283
+        this.listQuery.end_time = "";
284
+      } else {
285
+      }
286
+    }
287
+  }
288
+};
289
+</script>
290
+
291
+<style lang="scss" scoped>
292
+.tableTitle {
293
+  font-size: 16px;
294
+  color: #000;
295
+  font-weight: bold;
296
+  margin-bottom: 10px;
297
+}
298
+</style>
299
+
300
+<style lang="scss">
301
+.page_timeAll {
302
+  .cell {
303
+    text-align: center;
304
+  }
305
+}
306
+</style>

+ 293 - 0
src/xt_pages/qcd/treatmentControlAnalysis/components/TimePersonal.vue Ver arquivo

@@ -0,0 +1,293 @@
1
+<template>
2
+  <div class="page_timePersonal">
3
+    <div class="cell clearfix">
4
+      <el-form :inline="true" :model="listQuery">
5
+        <el-form-item label>
6
+          <el-input v-model.trim="listQuery.search" placeholder="姓名/透析号" style="width:150px"></el-input>
7
+          <el-button type="primary" @click="onSearch" icon="el-icon-search">搜索</el-button>
8
+        </el-form-item>
9
+      </el-form>
10
+      <el-select v-model="value" placeholder="请选择" style="width:120px;margin-right:20px">
11
+        <el-option
12
+          v-for="item in options"
13
+          :key="item.value"
14
+          :label="item.label"
15
+          :value="item.value"
16
+        ></el-option>
17
+      </el-select>
18
+      <el-select
19
+        v-model="value"
20
+        placeholder="请选择"
21
+        @change="chooseType"
22
+        style="width:120px;margin-right:20px"
23
+      >
24
+        <el-option
25
+          v-for="item in options"
26
+          :key="item.value"
27
+          :label="item.label"
28
+          :value="item.value"
29
+        ></el-option>
30
+      </el-select>
31
+      <label class="title">
32
+        <span class="name">日期查询</span> :
33
+      </label>
34
+      <el-date-picker
35
+        v-model="listQuery.start_time"
36
+        prefix-icon="el-icon-date"
37
+        @change="changeTime"
38
+        :editable="false"
39
+        style="width: 196px;"
40
+        type="date"
41
+        placeholder="选择日期时间"
42
+        align="right"
43
+        format="yyyy-MM-dd"
44
+        value-format="yyyy-MM-dd"
45
+      ></el-date-picker>
46
+      <span class>-</span>
47
+      <el-date-picker
48
+        v-model="listQuery.end_time"
49
+        prefix-icon="el-icon-date"
50
+        @change="changeEndTime"
51
+        :editable="false"
52
+        style="width: 196px;"
53
+        type="date"
54
+        placeholder="选择日期时间"
55
+        align="right"
56
+        format="yyyy-MM-dd"
57
+        value-format="yyyy-MM-dd"
58
+      ></el-date-picker>
59
+    </div>
60
+    <el-container>
61
+      <div style="width:150px">
62
+        <div class="tableTitle">患者列表</div>
63
+        <el-table :data="tableData" border style="width: 100%;" height="500">
64
+          <el-table-column prop="date" label="日期" width="70"></el-table-column>
65
+          <el-table-column prop="name" label="姓名" width="80"></el-table-column>
66
+        </el-table>
67
+      </div>
68
+      <div style="padding-left:10px;flex:1">
69
+        <div class="tableTitle">统计表</div>
70
+        <el-table :data="tableData1" style="width: 100%" border>
71
+          <el-table-column fixed prop="date" label="日期"></el-table-column>
72
+          <el-table-column prop="name" label="姓名"></el-table-column>
73
+          <el-table-column prop="province" label="省份"></el-table-column>
74
+          <el-table-column prop="city" label="市区"></el-table-column>
75
+          <el-table-column prop="address" label="地址"></el-table-column>
76
+          <el-table-column prop="zip" label="邮编"></el-table-column>
77
+        </el-table>
78
+
79
+        <el-pagination
80
+          align="right"
81
+          @size-change="handleSizeChange"
82
+          @current-change="handleCurrentChange"
83
+          :current-page="listQuery.page"
84
+          :page-sizes="[10, 20, 50, 100]"
85
+          :page-size="10"
86
+          background
87
+          style="margin-top:20px;"
88
+          layout="total, sizes, prev, pager, next, jumper"
89
+          :total="total"
90
+        ></el-pagination>
91
+      </div>
92
+    </el-container>
93
+  </div>
94
+</template>
95
+
96
+
97
+<script>
98
+export default {
99
+  data() {
100
+    return {
101
+      listQuery: {
102
+        start_time: "",
103
+        end_time: "",
104
+        page: 1,
105
+        limit: 10
106
+      },
107
+      options: [
108
+        {
109
+          value: "选项1",
110
+          label: "黄金糕"
111
+        },
112
+        {
113
+          value: "选项2",
114
+          label: "双皮奶"
115
+        },
116
+        {
117
+          value: "选项3",
118
+          label: "蚵仔煎"
119
+        },
120
+        {
121
+          value: "选项4",
122
+          label: "龙须面"
123
+        },
124
+        {
125
+          value: "选项5",
126
+          label: "北京烤鸭"
127
+        }
128
+      ],
129
+      value: "请选项",
130
+      tableData: [
131
+        {
132
+          date: "2016",
133
+          name: "王小虎"
134
+        },
135
+        {
136
+          date: "2016",
137
+          name: "王小虎"
138
+        },
139
+        {
140
+          date: "2016",
141
+          name: "王小虎"
142
+        },
143
+        {
144
+          date: "2016",
145
+          name: "王小虎"
146
+        },
147
+        {
148
+          date: "2016",
149
+          name: "王小虎"
150
+        },
151
+        {
152
+          date: "2016",
153
+          name: "王小虎"
154
+        },
155
+        {
156
+          date: "2016",
157
+          name: "王小虎"
158
+        },
159
+        {
160
+          date: "2016",
161
+          name: "王小虎"
162
+        },
163
+        {
164
+          date: "2016",
165
+          name: "王小虎"
166
+        },
167
+        {
168
+          date: "2016",
169
+          name: "王小虎"
170
+        },
171
+        {
172
+          date: "2016",
173
+          name: "王小虎"
174
+        },
175
+        {
176
+          date: "2016",
177
+          name: "王小虎"
178
+        }
179
+      ],
180
+      tableData1: [
181
+        {
182
+          date: "2016-05-03",
183
+          name: "王小虎",
184
+          province: "上海",
185
+          city: "普陀区",
186
+          address: "上海市普陀区金沙江路 1518 弄",
187
+          zip: 200333
188
+        },
189
+        {
190
+          date: "2016-05-02",
191
+          name: "王小虎",
192
+          province: "上海",
193
+          city: "普陀区",
194
+          address: "上海市普陀区金沙江路 1518 弄",
195
+          zip: 200333
196
+        },
197
+        {
198
+          date: "2016-05-04",
199
+          name: "王小虎",
200
+          province: "上海",
201
+          city: "普陀区",
202
+          address: "上海市普陀区金沙江路 1518 弄",
203
+          zip: 200333
204
+        },
205
+        {
206
+          date: "2016-05-01",
207
+          name: "王小虎",
208
+          province: "上海",
209
+          city: "普陀区",
210
+          address: "上海市普陀区金沙江路 1518 弄",
211
+          zip: 200333
212
+        },
213
+        {
214
+          date: "2016-05-08",
215
+          name: "王小虎",
216
+          province: "上海",
217
+          city: "普陀区",
218
+          address: "上海市普陀区金沙江路 1518 弄",
219
+          zip: 200333
220
+        },
221
+        {
222
+          date: "2016-05-06",
223
+          name: "王小虎",
224
+          province: "上海",
225
+          city: "普陀区",
226
+          address: "上海市普陀区金沙江路 1518 弄",
227
+          zip: 200333
228
+        },
229
+        {
230
+          date: "2016-05-07",
231
+          name: "王小虎",
232
+          province: "上海",
233
+          city: "普陀区",
234
+          address: "上海市普陀区金沙江路 1518 弄",
235
+          zip: 200333
236
+        },
237
+        {
238
+          date: "2016-05-08",
239
+          name: "王小虎",
240
+          province: "上海",
241
+          city: "普陀区",
242
+          address: "上海市普陀区金沙江路 1518 弄",
243
+          zip: 200333
244
+        },
245
+        {
246
+          date: "2016-05-06",
247
+          name: "王小虎",
248
+          province: "上海",
249
+          city: "普陀区",
250
+          address: "上海市普陀区金沙江路 1518 弄",
251
+          zip: 200333
252
+        },
253
+        {
254
+          date: "2016-05-07",
255
+          name: "王小虎",
256
+          province: "上海",
257
+          city: "普陀区",
258
+          address: "上海市普陀区金沙江路 1518 弄",
259
+          zip: 200333
260
+        }
261
+      ]
262
+    };
263
+  },
264
+  methods: {
265
+    changeTime() {},
266
+    changeEndTime(val) {
267
+      var time =
268
+        this.getTimestamp(val) - this.getTimestamp(this.listQuery.start_time);
269
+      if (time < 0) {
270
+        this.$message.error("结束时间不能小于开始时间");
271
+        this.listQuery.end_time = "";
272
+      } else {
273
+      }
274
+    }
275
+  }
276
+};
277
+</script>
278
+
279
+<style lang="scss" scoped>
280
+.tableTitle {
281
+  font-size: 16px;
282
+  color: #000;
283
+  font-weight: bold;
284
+  margin-bottom: 10px;
285
+}
286
+</style>
287
+<style lang="scss">
288
+.page_timePersonal {
289
+  .cell {
290
+    text-align: center;
291
+  }
292
+}
293
+</style>

+ 86 - 0
src/xt_pages/qcd/treatmentControlAnalysis/time.vue Ver arquivo

@@ -0,0 +1,86 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <div class="page_treatment">
8
+        <el-tabs v-model="activeName" @tab-click="handleClick">
9
+          <el-tab-pane label="患者透析次数统计" name="first"></el-tab-pane>
10
+          <el-tab-pane label="患者检验检查统计" name="second"></el-tab-pane>
11
+        </el-tabs>
12
+        <div class="cell clearfix">
13
+          <label class="title">
14
+            <span class="name">转归状态</span> :
15
+          </label>
16
+          <div class="time">
17
+            <ul class>
18
+              <li
19
+                :class="item.state == wayType ? 'active' : ''"
20
+                @click="chooseWay(item.state)"
21
+                v-for="item in way"
22
+                :key="item.value"
23
+              >{{ item.label }}</li>
24
+            </ul>
25
+          </div>
26
+        </div>
27
+        <div v-if="wayType == 0">
28
+          <time-personal></time-personal>
29
+        </div>
30
+        <div v-if="wayType == 1">
31
+          <time-all></time-all>
32
+        </div>
33
+      </div>
34
+    </div>
35
+  </div>
36
+</template>
37
+
38
+<script>
39
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
40
+import LineChart from "../../qcd/components/LineChart";
41
+import TimePersonal from "../treatmentControlAnalysis/components/TimePersonal";
42
+import TimeAll from "../treatmentControlAnalysis/components/TimeAll";
43
+export default {
44
+  components: {
45
+    LineChart,
46
+    BreadCrumb,
47
+    TimePersonal,
48
+    TimeAll
49
+  },
50
+  data() {
51
+    return {
52
+      crumbs: [
53
+        { path: false, name: "科室质控" },
54
+        { path: false, name: "治疗信息统计" },
55
+        { path: false, name: "患者透析次数统计" }
56
+      ],
57
+      activeName: "first",
58
+      way: [
59
+        { value: 0, label: "统计个人", state: 0 },
60
+        { value: 1, label: "统计全部", state: 1 }
61
+      ],
62
+      wayType: 0
63
+    };
64
+  },
65
+  methods: {
66
+    handleClick() {
67
+      if (this.activeName == "second") {
68
+        this.$router.push({ path: "/qcd/treatmentControlAnalysis/check" });
69
+      }
70
+    },
71
+    chooseWay(way) {
72
+      this.wayType = way;
73
+    }
74
+  }
75
+};
76
+</script>
77
+
78
+
79
+
80
+<style lang="scss">
81
+.page_treatment {
82
+  .el-form-item {
83
+    margin-bottom: 0;
84
+  }
85
+}
86
+</style>

+ 0 - 0
src/xt_pages/qcd/workAnalysis.vue Ver arquivo


+ 329 - 0
src/xt_pages/qcd/workAnalysis/doctor.vue Ver arquivo

@@ -0,0 +1,329 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <div class="page_workAnalysis">
8
+        <el-tabs v-model="activeName" @tab-click="handleClick">
9
+          <el-tab-pane label="医生" name="first"></el-tab-pane>
10
+          <el-tab-pane label="护士" name="second"></el-tab-pane>
11
+        </el-tabs>
12
+        <div class="cell clearfix">
13
+          <el-select v-model="value" placeholder="请选择" style="width:120px;margin-right:20px">
14
+            <el-option
15
+              v-for="item in options"
16
+              :key="item.value"
17
+              :label="item.label"
18
+              :value="item.value"
19
+            ></el-option>
20
+          </el-select>
21
+          <el-select
22
+            v-model="value"
23
+            placeholder="请选择"
24
+            @change="chooseType"
25
+            style="width:120px;margin-right:20px"
26
+          >
27
+            <el-option
28
+              v-for="item in options"
29
+              :key="item.value"
30
+              :label="item.label"
31
+              :value="item.value"
32
+            ></el-option>
33
+          </el-select>
34
+          <label class="title">
35
+            <span class="name">日期查询</span> :
36
+          </label>
37
+          <el-date-picker
38
+            v-model="listQuery.start_time"
39
+            prefix-icon="el-icon-date"
40
+            @change="changeTime"
41
+            :editable="false"
42
+            style="width: 196px;"
43
+            type="date"
44
+            placeholder="选择日期时间"
45
+            align="right"
46
+            format="yyyy-MM-dd"
47
+            value-format="yyyy-MM-dd"
48
+          ></el-date-picker>
49
+          <span class>-</span>
50
+          <el-date-picker
51
+            v-model="listQuery.end_time"
52
+            prefix-icon="el-icon-date"
53
+            @change="changeEndTime"
54
+            :editable="false"
55
+            style="width: 196px;"
56
+            type="date"
57
+            placeholder="选择日期时间"
58
+            align="right"
59
+            format="yyyy-MM-dd"
60
+            value-format="yyyy-MM-dd"
61
+          ></el-date-picker>
62
+        </div>
63
+        <div class="tableTitle">统计图</div>
64
+        <div>
65
+          <line-chart :options="chart"></line-chart>
66
+        </div>
67
+        <div class="tableTitle">统计表</div>
68
+        <div>
69
+          <el-table :data="tableData" style="width: 100%" border show-summary>
70
+            <el-table-column fixed prop="date" label="日期"></el-table-column>
71
+            <el-table-column prop="name" label="姓名"></el-table-column>
72
+            <el-table-column prop="province" label="省份"></el-table-column>
73
+            <el-table-column prop="city" label="市区"></el-table-column>
74
+            <el-table-column prop="address" label="地址"></el-table-column>
75
+            <el-table-column prop="zip" label="邮编"></el-table-column>
76
+          </el-table>
77
+
78
+          <el-pagination
79
+            align="right"
80
+            @size-change="handleSizeChange"
81
+            @current-change="handleCurrentChange"
82
+            :current-page="listQuery.page"
83
+            :page-sizes="[10, 20, 50, 100]"
84
+            :page-size="10"
85
+            background
86
+            style="margin-top:20px;"
87
+            layout="total, sizes, prev, pager, next, jumper"
88
+            :total="total"
89
+          ></el-pagination>
90
+        </div>
91
+      </div>
92
+    </div>
93
+  </div>
94
+</template>
95
+
96
+<script>
97
+import echarts from "echarts";
98
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
99
+import LineChart from "../../qcd/components/LineChart";
100
+export default {
101
+  components: {
102
+    BreadCrumb,
103
+    LineChart
104
+  },
105
+  data() {
106
+    return {
107
+      crumbs: [
108
+        { path: false, name: "科室质控" },
109
+        { path: false, name: "工作量分析统计" },
110
+        { path: false, name: "医生" }
111
+      ],
112
+      activeName: "first",
113
+      listQuery: {
114
+        start_time: "",
115
+        end_time: "",
116
+        page: 1,
117
+        limit: 10
118
+      },
119
+      options: [
120
+        {
121
+          value: "选项1",
122
+          label: "黄金糕"
123
+        },
124
+        {
125
+          value: "选项2",
126
+          label: "双皮奶"
127
+        },
128
+        {
129
+          value: "选项3",
130
+          label: "蚵仔煎"
131
+        },
132
+        {
133
+          value: "选项4",
134
+          label: "龙须面"
135
+        },
136
+        {
137
+          value: "选项5",
138
+          label: "北京烤鸭"
139
+        }
140
+      ],
141
+      value: "请选项",
142
+      tableData: [
143
+        {
144
+          date: "2016-05-03",
145
+          name: "王小虎",
146
+          province: "上海",
147
+          city: "普陀区",
148
+          address: "上海市普陀区金沙江路 1518 弄",
149
+          zip: 200333
150
+        },
151
+        {
152
+          date: "2016-05-02",
153
+          name: "王小虎",
154
+          province: "上海",
155
+          city: "普陀区",
156
+          address: "上海市普陀区金沙江路 1518 弄",
157
+          zip: 200333
158
+        },
159
+        {
160
+          date: "2016-05-04",
161
+          name: "王小虎",
162
+          province: "上海",
163
+          city: "普陀区",
164
+          address: "上海市普陀区金沙江路 1518 弄",
165
+          zip: 200333
166
+        },
167
+        {
168
+          date: "2016-05-01",
169
+          name: "王小虎",
170
+          province: "上海",
171
+          city: "普陀区",
172
+          address: "上海市普陀区金沙江路 1518 弄",
173
+          zip: 200333
174
+        },
175
+        {
176
+          date: "2016-05-08",
177
+          name: "王小虎",
178
+          province: "上海",
179
+          city: "普陀区",
180
+          address: "上海市普陀区金沙江路 1518 弄",
181
+          zip: 200333
182
+        },
183
+        {
184
+          date: "2016-05-06",
185
+          name: "王小虎",
186
+          province: "上海",
187
+          city: "普陀区",
188
+          address: "上海市普陀区金沙江路 1518 弄",
189
+          zip: 200333
190
+        },
191
+        {
192
+          date: "2016-05-07",
193
+          name: "王小虎",
194
+          province: "上海",
195
+          city: "普陀区",
196
+          address: "上海市普陀区金沙江路 1518 弄",
197
+          zip: 200333
198
+        },
199
+        {
200
+          date: "2016-05-08",
201
+          name: "王小虎",
202
+          province: "上海",
203
+          city: "普陀区",
204
+          address: "上海市普陀区金沙江路 1518 弄",
205
+          zip: 200333
206
+        },
207
+        {
208
+          date: "2016-05-06",
209
+          name: "王小虎",
210
+          province: "上海",
211
+          city: "普陀区",
212
+          address: "上海市普陀区金沙江路 1518 弄",
213
+          zip: 200333
214
+        },
215
+        {
216
+          date: "2016-05-07",
217
+          name: "王小虎",
218
+          province: "上海",
219
+          city: "普陀区",
220
+          address: "上海市普陀区金沙江路 1518 弄",
221
+          zip: 200333
222
+        }
223
+      ],
224
+      chart: {
225
+        title: {
226
+          text: "ECharts 入门示例"
227
+        },
228
+        tooltip: {},
229
+        legend: {
230
+          data: ["次数"],
231
+          left: 0
232
+        },
233
+        xAxis: {
234
+          data: ["达标", "未达标"]
235
+        },
236
+        yAxis: {
237
+          axisLabel: {
238
+            formatter: "{value} %"
239
+          },
240
+          show: false
241
+        },
242
+        series: [
243
+          {
244
+            name: "次数",
245
+            type: "bar",
246
+            data: ["78.57", "50"],
247
+            barWidth: 30,
248
+            label: {
249
+              normal: {
250
+                show: true,
251
+                position: "top",
252
+                formatter: "{c}次"
253
+              }
254
+            },
255
+            //配置样式
256
+            itemStyle: {
257
+              //通常情况下:
258
+
259
+              //每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
260
+              normal: {
261
+                color: function(params) {
262
+                  //我这边就两个柱子,大体就两个柱子颜色渐变,所以数组只有两个值,多个颜色就多个值
263
+                  var colorList = [
264
+                    ["#A9E0F3", "#9FBDFC"],
265
+
266
+                    ["#FFD7C0", "#FF9994"]
267
+                  ];
268
+
269
+                  var index = params.dataIndex;
270
+                  if (params.dataIndex >= colorList.length) {
271
+                    index = params.dataIndex % colorList.length;
272
+                  }
273
+
274
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
275
+                    { offset: 0, color: colorList[index][0] },
276
+                    // { offset: 0.5, color: colorList[index][1] },
277
+                    { offset: 1, color: colorList[index][1] }
278
+                  ]);
279
+                },
280
+                barBorderRadius: [5, 5, 0, 0] //柱状角成椭圆形
281
+              },
282
+
283
+              //鼠标悬停时:
284
+              emphasis: {
285
+                shadowBlur: 10,
286
+                shadowOffsetX: 0,
287
+                shadowColor: "rgba(0, 0, 0, 0.5)"
288
+              }
289
+            }
290
+          }
291
+        ]
292
+      }
293
+    };
294
+  },
295
+  methods: {
296
+    changeTime() {},
297
+    changeEndTime(val) {
298
+      var time =
299
+        this.getTimestamp(val) - this.getTimestamp(this.listQuery.start_time);
300
+      if (time < 0) {
301
+        this.$message.error("结束时间不能小于开始时间");
302
+        this.listQuery.end_time = "";
303
+      } else {
304
+      }
305
+    },
306
+    handleClick() {
307
+      if (this.activeName == "second") {
308
+        this.$router.push({ path: "/qcd/workAnalysis/nurse" });
309
+      }
310
+    }
311
+  }
312
+};
313
+</script>
314
+
315
+<style lang="scss" scoped>
316
+.tableTitle {
317
+  font-size: 16px;
318
+  color: #000;
319
+  font-weight: bold;
320
+  margin-bottom: 10px;
321
+}
322
+</style>
323
+<style lang="scss">
324
+.page_workAnalysis {
325
+  .cell {
326
+    text-align: center;
327
+  }
328
+}
329
+</style>

+ 322 - 0
src/xt_pages/qcd/workAnalysis/nurse.vue Ver arquivo

@@ -0,0 +1,322 @@
1
+<template>
2
+  <div class="main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+    </div>
6
+    <div class="app-container">
7
+      <div class="page_workAnalysis">
8
+        <el-tabs v-model="activeName" @tab-click="handleClick">
9
+          <el-tab-pane label="医生" name="first"></el-tab-pane>
10
+          <el-tab-pane label="护士" name="second"></el-tab-pane>
11
+        </el-tabs>
12
+        <div class="cell clearfix">
13
+          <el-select v-model="value" placeholder="请选择" style="width:120px;margin-right:20px">
14
+            <el-option
15
+              v-for="item in options"
16
+              :key="item.value"
17
+              :label="item.label"
18
+              :value="item.value"
19
+            ></el-option>
20
+          </el-select>
21
+          <el-select
22
+            v-model="value"
23
+            placeholder="请选择"
24
+            @change="chooseType"
25
+            style="width:120px;margin-right:20px"
26
+          >
27
+            <el-option
28
+              v-for="item in options"
29
+              :key="item.value"
30
+              :label="item.label"
31
+              :value="item.value"
32
+            ></el-option>
33
+          </el-select>
34
+          <label class="title">
35
+            <span class="name">日期查询</span> :
36
+          </label>
37
+          <el-date-picker
38
+            v-model="listQuery.start_time"
39
+            prefix-icon="el-icon-date"
40
+            @change="changeTime"
41
+            :editable="false"
42
+            style="width: 196px;"
43
+            type="date"
44
+            placeholder="选择日期时间"
45
+            align="right"
46
+            format="yyyy-MM-dd"
47
+            value-format="yyyy-MM-dd"
48
+          ></el-date-picker>
49
+          <span class>-</span>
50
+          <el-date-picker
51
+            v-model="listQuery.end_time"
52
+            prefix-icon="el-icon-date"
53
+            @change="changeEndTime"
54
+            :editable="false"
55
+            style="width: 196px;"
56
+            type="date"
57
+            placeholder="选择日期时间"
58
+            align="right"
59
+            format="yyyy-MM-dd"
60
+            value-format="yyyy-MM-dd"
61
+          ></el-date-picker>
62
+        </div>
63
+        <div class="tableTitle">统计图</div>
64
+        <div>
65
+          <line-chart :options="chart"></line-chart>
66
+        </div>
67
+        <div class="tableTitle">统计表</div>
68
+        <div>
69
+          <el-table :data="tableData" style="width: 100%" border show-summary>
70
+            <el-table-column fixed prop="date" label="日期"></el-table-column>
71
+            <el-table-column prop="name" label="姓名"></el-table-column>
72
+            <el-table-column prop="province" label="省份"></el-table-column>
73
+            <el-table-column prop="city" label="市区"></el-table-column>
74
+            <el-table-column prop="address" label="地址"></el-table-column>
75
+            <el-table-column prop="zip" label="邮编"></el-table-column>
76
+          </el-table>
77
+
78
+          <el-pagination
79
+            align="right"
80
+            @size-change="handleSizeChange"
81
+            @current-change="handleCurrentChange"
82
+            :current-page="listQuery.page"
83
+            :page-sizes="[10, 20, 50, 100]"
84
+            :page-size="10"
85
+            background
86
+            style="margin-top:20px;"
87
+            layout="total, sizes, prev, pager, next, jumper"
88
+            :total="total"
89
+          ></el-pagination>
90
+        </div>
91
+      </div>
92
+    </div>
93
+  </div>
94
+</template>
95
+
96
+<script>
97
+import echarts from "echarts";
98
+import BreadCrumb from "@/xt_pages/components/bread-crumb";
99
+import LineChart from "../../qcd/components/LineChart";
100
+export default {
101
+  components: {
102
+    BreadCrumb,
103
+    LineChart
104
+  },
105
+  data() {
106
+    return {
107
+      crumbs: [
108
+        { path: false, name: "科室质控" },
109
+        { path: false, name: "工作量分析统计" },
110
+        { path: false, name: "护士" }
111
+      ],
112
+      activeName: "second",
113
+      listQuery: {
114
+        start_time: "",
115
+        end_time: "",
116
+        page: 1,
117
+        limit: 10
118
+      },
119
+      options: [
120
+        {
121
+          value: "选项1",
122
+          label: "黄金糕"
123
+        },
124
+        {
125
+          value: "选项2",
126
+          label: "双皮奶"
127
+        },
128
+        {
129
+          value: "选项3",
130
+          label: "蚵仔煎"
131
+        },
132
+        {
133
+          value: "选项4",
134
+          label: "龙须面"
135
+        },
136
+        {
137
+          value: "选项5",
138
+          label: "北京烤鸭"
139
+        }
140
+      ],
141
+      value: "请选项",
142
+      tableData: [
143
+        {
144
+          date: "2016-05-03",
145
+          name: "王小虎",
146
+          province: "上海",
147
+          city: "普陀区",
148
+          address: "上海市普陀区金沙江路 1518 弄",
149
+          zip: 200333
150
+        },
151
+        {
152
+          date: "2016-05-02",
153
+          name: "王小虎",
154
+          province: "上海",
155
+          city: "普陀区",
156
+          address: "上海市普陀区金沙江路 1518 弄",
157
+          zip: 200333
158
+        },
159
+        {
160
+          date: "2016-05-04",
161
+          name: "王小虎",
162
+          province: "上海",
163
+          city: "普陀区",
164
+          address: "上海市普陀区金沙江路 1518 弄",
165
+          zip: 200333
166
+        },
167
+        {
168
+          date: "2016-05-01",
169
+          name: "王小虎",
170
+          province: "上海",
171
+          city: "普陀区",
172
+          address: "上海市普陀区金沙江路 1518 弄",
173
+          zip: 200333
174
+        },
175
+        {
176
+          date: "2016-05-08",
177
+          name: "王小虎",
178
+          province: "上海",
179
+          city: "普陀区",
180
+          address: "上海市普陀区金沙江路 1518 弄",
181
+          zip: 200333
182
+        },
183
+        {
184
+          date: "2016-05-06",
185
+          name: "王小虎",
186
+          province: "上海",
187
+          city: "普陀区",
188
+          address: "上海市普陀区金沙江路 1518 弄",
189
+          zip: 200333
190
+        },
191
+        {
192
+          date: "2016-05-07",
193
+          name: "王小虎",
194
+          province: "上海",
195
+          city: "普陀区",
196
+          address: "上海市普陀区金沙江路 1518 弄",
197
+          zip: 200333
198
+        },
199
+        {
200
+          date: "2016-05-08",
201
+          name: "王小虎",
202
+          province: "上海",
203
+          city: "普陀区",
204
+          address: "上海市普陀区金沙江路 1518 弄",
205
+          zip: 200333
206
+        },
207
+        {
208
+          date: "2016-05-06",
209
+          name: "王小虎",
210
+          province: "上海",
211
+          city: "普陀区",
212
+          address: "上海市普陀区金沙江路 1518 弄",
213
+          zip: 200333
214
+        },
215
+        {
216
+          date: "2016-05-07",
217
+          name: "王小虎",
218
+          province: "上海",
219
+          city: "普陀区",
220
+          address: "上海市普陀区金沙江路 1518 弄",
221
+          zip: 200333
222
+        }
223
+      ],
224
+      chart: {
225
+        title: {
226
+          text: "ECharts 入门示例"
227
+        },
228
+        tooltip: {},
229
+        legend: {
230
+          data: ["次数"],
231
+          left: 0
232
+        },
233
+        xAxis: {
234
+          data: ["达标", "未达标"]
235
+        },
236
+        yAxis: {
237
+          axisLabel: {
238
+            formatter: "{value} %"
239
+          },
240
+          show: false
241
+        },
242
+        series: [
243
+          {
244
+            name: "次数",
245
+            type: "bar",
246
+            data: ["78.57", "50"],
247
+            barWidth: 30,
248
+            label: {
249
+              normal: {
250
+                show: true,
251
+                position: "top",
252
+                formatter: "{c}次"
253
+              }
254
+            },
255
+            //配置样式
256
+            itemStyle: {
257
+              //通常情况下:
258
+
259
+              //每个柱子的颜色即为colorList数组里的每一项,如果柱子数目多于colorList的长度,则柱子颜色循环使用该数组
260
+              normal: {
261
+                color: function(params) {
262
+                  //我这边就两个柱子,大体就两个柱子颜色渐变,所以数组只有两个值,多个颜色就多个值
263
+                  var colorList = [
264
+                    ["#A9E0F3", "#9FBDFC"],
265
+
266
+                    ["#FFD7C0", "#FF9994"]
267
+                  ];
268
+
269
+                  var index = params.dataIndex;
270
+                  if (params.dataIndex >= colorList.length) {
271
+                    index = params.dataIndex % colorList.length;
272
+                  }
273
+
274
+                  return new echarts.graphic.LinearGradient(0, 0, 0, 1, [
275
+                    { offset: 0, color: colorList[index][0] },
276
+                    // { offset: 0.5, color: colorList[index][1] },
277
+                    { offset: 1, color: colorList[index][1] }
278
+                  ]);
279
+                },
280
+                barBorderRadius: [5, 5, 0, 0] //柱状角成椭圆形
281
+              },
282
+
283
+              //鼠标悬停时:
284
+              emphasis: {
285
+                shadowBlur: 10,
286
+                shadowOffsetX: 0,
287
+                shadowColor: "rgba(0, 0, 0, 0.5)"
288
+              }
289
+            }
290
+          }
291
+        ]
292
+      }
293
+    };
294
+  },
295
+  methods: {
296
+    changeTime() {},
297
+    changeEndTime(val) {
298
+      var time =
299
+        this.getTimestamp(val) - this.getTimestamp(this.listQuery.start_time);
300
+      if (time < 0) {
301
+        this.$message.error("结束时间不能小于开始时间");
302
+        this.listQuery.end_time = "";
303
+      } else {
304
+      }
305
+    },
306
+    handleClick() {
307
+      if (this.activeName == "first") {
308
+        this.$router.push({ path: "/qcd/workAnalysis/doctor" });
309
+      }
310
+    }
311
+  }
312
+};
313
+</script>
314
+
315
+<style lang="scss" scoped>
316
+.tableTitle {
317
+  font-size: 16px;
318
+  color: #000;
319
+  font-weight: bold;
320
+  margin-bottom: 10px;
321
+}
322
+</style>

+ 7 - 0
src/xt_pages/stock/cancelStockOrder.vue Ver arquivo

@@ -336,6 +336,13 @@ export default {
336 336
       this.GetCancelStock();
337 337
     },
338 338
     startTimeChange(val) {
339
+      var time = this.getTimestamp(val) - this.getTimestamp(this.end_time);
340
+      if (time > 0) {
341
+        this.$message.error("结束时间不能小于开始时间");
342
+        this.start_time = "";
343
+      } else {
344
+        this.GetCancelStock();
345
+      }
339 346
       this.GetCancelStock();
340 347
     },
341 348
     endTimeChange(val) {

Diferenças do arquivo suprimidas por serem muito extensas
+ 636 - 543
src/xt_pages/stock/cancelStockOrderAdd.vue


+ 7 - 1
src/xt_pages/stock/detail/cancelStockDetail.vue Ver arquivo

@@ -378,7 +378,13 @@ export default {
378 378
       this.GetCancelStock();
379 379
     },
380 380
     startTimeChange(val) {
381
-      this.GetCancelStock();
381
+      var time = this.getTimestamp(val) - this.getTimestamp(this.end_time);
382
+      if (time > 0) {
383
+        this.$message.error("结束时间不能小于开始时间");
384
+        this.start_time = "";
385
+      } else {
386
+        this.GetCancelStock();
387
+      }
382 388
     },
383 389
     endTimeChange(val) {
384 390
       var time = this.getTimestamp(val) - this.getTimestamp(this.start_time);

+ 7 - 1
src/xt_pages/stock/detail/salesReturnDetail.vue Ver arquivo

@@ -377,7 +377,13 @@ export default {
377 377
       this.GetCancelStock();
378 378
     },
379 379
     startTimeChange(val) {
380
-      this.GetCancelStock();
380
+      var time = this.getTimestamp(val) - this.getTimestamp(this.end_time);
381
+      if (time > 0) {
382
+        this.$message.error("结束时间不能小于开始时间");
383
+        this.start_time = "";
384
+      } else {
385
+        this.GetCancelStock();
386
+      }
381 387
     },
382 388
     endTimeChange(val) {
383 389
       var time = this.getTimestamp(val) - this.getTimestamp(this.start_time);

+ 7 - 1
src/xt_pages/stock/detail/stockInDetail.vue Ver arquivo

@@ -419,7 +419,13 @@ export default {
419 419
       this.GetCancelStock();
420 420
     },
421 421
     startTimeChange(val) {
422
-      this.GetCancelStock();
422
+      var time = this.getTimestamp(val) - this.getTimestamp(this.end_time);
423
+      if (time > 0) {
424
+        this.$message.error("结束时间不能小于开始时间");
425
+        this.start_time = "";
426
+      } else {
427
+        this.GetCancelStock();
428
+      }
423 429
     },
424 430
     endTimeChange(val) {
425 431
       var time = this.getTimestamp(val) - this.getTimestamp(this.start_time);

+ 7 - 1
src/xt_pages/stock/detail/stockOutDetail.vue Ver arquivo

@@ -401,7 +401,13 @@ export default {
401 401
       this.GetCancelStock();
402 402
     },
403 403
     startTimeChange(val) {
404
-      this.GetCancelStock();
404
+      var time = this.getTimestamp(val) - this.getTimestamp(this.end_time);
405
+      if (time > 0) {
406
+        this.$message.error("结束时间不能小于开始时间");
407
+        this.start_time = "";
408
+      } else {
409
+        this.GetCancelStock();
410
+      }
405 411
     },
406 412
     endTimeChange(val) {
407 413
       var time = this.getTimestamp(val) - this.getTimestamp(this.start_time);

+ 7 - 1
src/xt_pages/stock/otherCancelStockOrder.vue Ver arquivo

@@ -334,7 +334,13 @@ export default {
334 334
       this.GetCancelStock();
335 335
     },
336 336
     startTimeChange(val) {
337
-      this.GetCancelStock();
337
+      var time = this.getTimestamp(val) - this.getTimestamp(this.end_time);
338
+      if (time > 0) {
339
+        this.$message.error("结束时间不能小于开始时间");
340
+        this.start_time = "";
341
+      } else {
342
+        this.GetCancelStock();
343
+      }
338 344
     },
339 345
     endTimeChange(val) {
340 346
       var time = this.getTimestamp(val) - this.getTimestamp(this.start_time);

+ 8 - 2
src/xt_pages/stock/otherSalesReturnOrder.vue Ver arquivo

@@ -340,8 +340,14 @@ export default {
340 340
       this.GetSalesReturn();
341 341
     },
342 342
     startTimeChange(val) {
343
-      this.startTime = this.getTimestamp(val);
344
-      this.GetSalesReturn();
343
+      var time = this.getTimestamp(val) - this.getTimestamp(this.end_time);
344
+      if (time > 0) {
345
+        this.$message.error("结束时间不能小于开始时间");
346
+        this.start_time = "";
347
+      } else {
348
+        this.startTime = this.getTimestamp(val);
349
+        this.GetSalesReturn();
350
+      }
345 351
     },
346 352
     endTimeChange(val) {
347 353
       var time = this.getTimestamp(val) - this.getTimestamp(this.start_time);

+ 7 - 1
src/xt_pages/stock/otherStockInOrder.vue Ver arquivo

@@ -450,7 +450,13 @@ export default {
450 450
       this.GetWarehouse();
451 451
     },
452 452
     startTimeChange(val) {
453
-      this.GetWarehouse();
453
+      var time = this.getTimestamp(val) - this.getTimestamp(this.end_time);
454
+      if (time > 0) {
455
+        this.$message.error("结束时间不能小于开始时间");
456
+        this.start_time = "";
457
+      } else {
458
+        this.GetWarehouse();
459
+      }
454 460
     },
455 461
     endTimeChange(val) {
456 462
       var time = this.getTimestamp(val) - this.getTimestamp(this.start_time);

+ 7 - 1
src/xt_pages/stock/otherStockOutOrder.vue Ver arquivo

@@ -333,7 +333,13 @@ export default {
333 333
       this.GetWarehouseOut();
334 334
     },
335 335
     startTimeChange(val) {
336
-      this.GetWarehouseOut();
336
+      var time = this.getTimestamp(val) - this.getTimestamp(this.end_time);
337
+      if (time > 0) {
338
+        this.$message.error("结束时间不能小于开始时间");
339
+        this.start_time = "";
340
+      } else {
341
+        this.GetWarehouseOut();
342
+      }
337 343
     },
338 344
     endTimeChange(val) {
339 345
       var time = this.getTimestamp(val) - this.getTimestamp(this.start_time);

+ 7 - 0
src/xt_pages/stock/salesReturnOrder.vue Ver arquivo

@@ -335,6 +335,13 @@ export default {
335 335
       this.GetSalesReturn();
336 336
     },
337 337
     startTimeChange(val) {
338
+      var time = this.getTimestamp(val) - this.getTimestamp(this.end_time);
339
+      if (time > 0) {
340
+        this.$message.error("结束时间不能小于开始时间");
341
+        this.start_time = "";
342
+      } else {
343
+        this.GetSalesReturn();
344
+      }
338 345
       this.GetSalesReturn();
339 346
     },
340 347
     endTimeChange(val) {

+ 383 - 312
src/xt_pages/stock/stockDetail.vue Ver arquivo

@@ -1,36 +1,76 @@
1 1
 <template>
2
-
3 2
   <div class="main-contain">
4 3
     <div class="position">
5
-      <bread-crumb :crumbs='crumbs'></bread-crumb>
6
-      <el-button size="small" @click="AddNewOrder" class="filter-item" style="float:right;" type="primary"
7
-                 icon="el-icon-circle-plus-outline">新增
4
+      <bread-crumb :crumbs="crumbs"></bread-crumb>
5
+      <el-button
6
+        size="small"
7
+        @click="AddNewOrder"
8
+        class="filter-item"
9
+        style="float:right;"
10
+        type="primary"
11
+        icon="el-icon-circle-plus-outline"
12
+        >新增
8 13
       </el-button>
9 14
     </div>
10 15
 
11 16
     <div class="app-container">
12
-
13
-
14
-      <div class="cell clearfix" >
15
-        <el-input size="small" style="width: 400px;" class="filter-item" v-model.trim="searchKey" placeholder="单据编码/制单人/厂商"/>
16
-        <el-button size="small" class="filter-item" type="primary" icon="el-icon-search" @click="search">搜索</el-button>
17
+      <div class="cell clearfix">
18
+        <el-input
19
+          size="small"
20
+          style="width: 400px;"
21
+          class="filter-item"
22
+          v-model.trim="searchKey"
23
+          placeholder="单据编码/制单人/厂商"
24
+        />
25
+        <el-button
26
+          size="small"
27
+          class="filter-item"
28
+          type="primary"
29
+          icon="el-icon-search"
30
+          @click="search"
31
+          >搜索</el-button
32
+        >
17 33
       </div>
18 34
 
19 35
       <div class="cell clearfix">
20 36
         <label class="title"><span class="name">日期查询</span> : </label>
21
-        <el-date-picker v-model="start_time" prefix-icon="el-icon-date" :editable="false" style="width: 196px;"
22
-                        type="date" placeholder="选择日期时间" align="right" format="yyyy-MM-dd"
23
-                        value-format="yyyy-MM-dd" @change="startTimeChange"></el-date-picker>
37
+        <el-date-picker
38
+          v-model="start_time"
39
+          prefix-icon="el-icon-date"
40
+          :editable="false"
41
+          style="width: 196px;"
42
+          type="date"
43
+          placeholder="选择日期时间"
44
+          align="right"
45
+          format="yyyy-MM-dd"
46
+          value-format="yyyy-MM-dd"
47
+          @change="startTimeChange"
48
+        ></el-date-picker>
24 49
         <span class="cellLine"> - </span>
25
-        <el-date-picker v-model="end_time" prefix-icon="el-icon-date" :editable="false" style="width: 196px;"
26
-                        type="date" placeholder="选择日期时间" align="right" format="yyyy-MM-dd"
27
-                        value-format="yyyy-MM-dd" @change="endTimeChange"></el-date-picker>
50
+        <el-date-picker
51
+          v-model="end_time"
52
+          prefix-icon="el-icon-date"
53
+          :editable="false"
54
+          style="width: 196px;"
55
+          type="date"
56
+          placeholder="选择日期时间"
57
+          align="right"
58
+          format="yyyy-MM-dd"
59
+          value-format="yyyy-MM-dd"
60
+          @change="endTimeChange"
61
+        ></el-date-picker>
28 62
       </div>
29 63
 
30 64
       <div class="filter-container" style="margin-top: 10px">
31
-        <el-checkbox style="width: 30px" v-model="checked" @change="changeAllSelected">全选</el-checkbox>
32
-        <el-button size="small" icon="el-icon-delete" @click="batchDelete">删除</el-button>
33
-
65
+        <el-checkbox
66
+          style="width: 30px"
67
+          v-model="checked"
68
+          @change="changeAllSelected"
69
+          >全选</el-checkbox
70
+        >
71
+        <el-button size="small" icon="el-icon-delete" @click="batchDelete"
72
+          >删除</el-button
73
+        >
34 74
       </div>
35 75
 
36 76
       <el-row :gutter="12" style="margin-top: 10px">
@@ -41,58 +81,51 @@
41 81
           highlight-current-row
42 82
           ref="multipleTable"
43 83
           @selection-change="select"
44
-          :header-cell-style="{ backgroundColor: 'rgb(245, 247, 250)'}"
45
-
84
+          :header-cell-style="{ backgroundColor: 'rgb(245, 247, 250)' }"
46 85
         >
47
-
48
-
49
-
50 86
           <el-table-column label="单据编号" align="center">
51 87
             <template slot-scope="scope">
52
-              {{scope.row.warehousing_order}}
88
+              {{ scope.row.warehousing_order }}
53 89
             </template>
54 90
           </el-table-column>
55 91
 
56 92
           <el-table-column label="商品类型" align="center">
57 93
             <template slot-scope="scope">
58
-              {{specificationName(scope.row.good_id)}}
94
+              {{ specificationName(scope.row.good_id) }}
59 95
             </template>
60 96
           </el-table-column>
61 97
 
62
-
63 98
           <el-table-column label="单据类型" align="center">
64 99
             <template slot-scope="scope">
65
-              {{getTypeName(scope.row)}}
100
+              {{ getTypeName(scope.row) }}
66 101
             </template>
67 102
           </el-table-column>
68 103
 
69 104
           <el-table-column label="操作时间" align="center">
70 105
             <template slot-scope="scope">
71
-              {{ scope.row.warehousing_time | parseTime('{y}-{m}-{d}')}}
106
+              {{ scope.row.warehousing_time | parseTime("{y}-{m}-{d}") }}
72 107
             </template>
73 108
           </el-table-column>
74 109
           <el-table-column label="制单人" align="center">
75 110
             <template slot-scope="scope">
76
-              {{getXuserName(scope.row.creater)}}
77
-
111
+              {{ getXuserName(scope.row.creater) }}
78 112
             </template>
79 113
           </el-table-column>
80 114
           <el-table-column label="单价" align="center">
81 115
             <template slot-scope="scope">
82
-              {{scope.row.price}}
116
+              {{ scope.row.price }}
83 117
             </template>
84 118
           </el-table-column>
85 119
           <el-table-column label="数量" align="center">
86 120
             <template slot-scope="scope">
87
-              {{scope.row.warehousing_count}}
121
+              {{ scope.row.warehousing_count }}
88 122
             </template>
89 123
           </el-table-column>
90 124
           <el-table-column label="总价" align="center">
91 125
             <template slot-scope="scope">
92
-              {{scope.row.price *  scope.row.warehousing_count}}
126
+              {{ scope.row.price * scope.row.warehousing_count }}
93 127
             </template>
94 128
           </el-table-column>
95
-
96 129
         </el-table>
97 130
 
98 131
         <el-pagination
@@ -103,347 +136,385 @@
103 136
           background
104 137
           style="margin-top:20px;float: right"
105 138
           layout="total, sizes, prev, pager, next, jumper"
106
-          :total="total">
139
+          :total="total"
140
+        >
107 141
         </el-pagination>
108
-
109 142
       </el-row>
110 143
     </div>
111 144
   </div>
112 145
 </template>
113 146
 
114 147
 <script>
115
-  import { uParseTime } from '@/utils/tools'
116
-  import { fetchAllAdminUsers, fetchAllDoctorAndNurse } from '@/api/doctor'
117
-  import { deleteCancelStock, GetAllConfig, getStockDetail } from '@/api/stock'
118
-  import BreadCrumb from '../components/bread-crumb'
119
-
120
-  export default {
121
-    name: 'salesReturnOrder',
122
-    components: { BreadCrumb },
123
-    created() {
124
-      var year = new Date().getFullYear()
125
-      var month = new Date().getMonth() + 1
126
-      var day = new Date().getDate()
127
-      if (parseInt(month) < 10) {
128
-        month = '0' + month
129
-      }
130
-      if (parseInt(day) < 10) {
131
-        day = '0' + day
132
-      }
133
-      const endTime = year + '-' + month + '-' + day
134
-      this.end_time = endTime
135
-
136
-      var year = new Date().getFullYear()
137
-      var month = new Date().getMonth()
138
-      var day = new Date().getDate()
139
-      if (parseInt(month) < 10) {
140
-        month = '0' + month
148
+import { uParseTime } from "@/utils/tools";
149
+import { fetchAllAdminUsers, fetchAllDoctorAndNurse } from "@/api/doctor";
150
+import { deleteCancelStock, GetAllConfig, getStockDetail } from "@/api/stock";
151
+import BreadCrumb from "../components/bread-crumb";
152
+
153
+export default {
154
+  name: "salesReturnOrder",
155
+  components: { BreadCrumb },
156
+  created() {
157
+    var year = new Date().getFullYear();
158
+    var month = new Date().getMonth() + 1;
159
+    var day = new Date().getDate();
160
+    if (parseInt(month) < 10) {
161
+      month = "0" + month;
162
+    }
163
+    if (parseInt(day) < 10) {
164
+      day = "0" + day;
165
+    }
166
+    const endTime = year + "-" + month + "-" + day;
167
+    this.end_time = endTime;
168
+
169
+    var year = new Date().getFullYear();
170
+    var month = new Date().getMonth();
171
+    var day = new Date().getDate();
172
+    if (parseInt(month) < 10) {
173
+      month = "0" + month;
174
+    }
175
+    if (parseInt(day) < 10) {
176
+      day = "0" + day;
177
+    }
178
+    const startTime = year + "-" + month + "-" + day;
179
+    this.start_time = startTime;
180
+    this.GetCancelStock();
181
+    this.GetConfigInfo();
182
+    this.fetchAllAdminUsers();
183
+  },
184
+  data() {
185
+    return {
186
+      crumbs: [
187
+        { path: false, name: "库存管理" },
188
+        { path: "/stock/detail", name: "出入库明细查询" }
189
+      ],
190
+      searchKey: "",
191
+      type: 1,
192
+      page: 1,
193
+      limit: 7,
194
+      checked: false,
195
+      total: 0,
196
+      pageTotal: 0,
197
+      pageSelect: 0,
198
+      adminUserOptions: [],
199
+      multipleSelection: [],
200
+      signAndWeighBoxPatients: "sign-and-weigh-box-patients",
201
+      start_time: "",
202
+      cancelStockDate: [],
203
+      end_time: "",
204
+      goodType: [],
205
+      goodInfo: [],
206
+      manufacturer: [],
207
+      selectedTableData: [],
208
+      dealer: []
209
+    };
210
+  },
211
+  methods: {
212
+    getTypeName: function(row) {
213
+      let name = "";
214
+      let name2 = "";
215
+      if (row.type == 1) {
216
+        name = "耗材";
217
+      } else if (row.type == 2) {
218
+        name = "其他";
141 219
       }
142
-      if (parseInt(day) < 10) {
143
-        day = '0' + day
220
+      if (row.types == 1) {
221
+        name2 = "入库单";
222
+      } else if (row.types == 2) {
223
+        name2 = "出库单";
224
+      } else if (row.types == 3) {
225
+        name2 = "退货单";
226
+      } else if (row.types == 4) {
227
+        name2 = "退库单";
144 228
       }
145
-      const startTime = year + '-' + month + '-' + day
146
-      this.start_time = startTime
147
-      this.GetCancelStock()
148
-      this.GetConfigInfo()
149
-      this.fetchAllAdminUsers()
229
+      return name + name2;
150 230
     },
151
-    data() {
152
-      return {
153
-        crumbs: [
154
-          { path: false, name: '库存管理' },
155
-          { path: '/stock/detail', name: '出入库明细查询' }
156
-        ],
157
-        searchKey: '',
158
-        type: 1,
159
-        page: 1,
160
-        limit: 7,
161
-        checked: false,
162
-        total: 0,
163
-        pageTotal: 0,
164
-        pageSelect: 0,
165
-        adminUserOptions: [],
166
-        multipleSelection: [],
167
-        signAndWeighBoxPatients: 'sign-and-weigh-box-patients',
168
-        start_time: '',
169
-        cancelStockDate: [],
170
-        end_time: '',
171
-        goodType: [],
172
-        goodInfo: [],
173
-        manufacturer: [],
174
-        selectedTableData: [],
175
-        dealer: []
176
-
231
+    specificationName: function(good_info_id) {
232
+      let name = "";
233
+      for (let i = 0; i < this.goodInfo.length; i++) {
234
+        if (this.goodInfo[i].id == good_info_id) {
235
+          name = this.goodInfo[i].specification_name;
236
+        }
177 237
       }
238
+      return name;
178 239
     },
179
-    methods: {
180
-      getTypeName: function(row) {
181
-        let name = ''
182
-        let name2 = ''
183
-        if (row.type == 1) {
184
-          name = '耗材'
185
-        } else if (row.type == 2) {
186
-          name = '其他'
187
-        }
188
-        if (row.types == 1) {
189
-          name2 = '入库单'
190
-        } else if (row.types == 2) {
191
-          name2 = '出库单'
192
-        } else if (row.types == 3) {
193
-          name2 = '退货单'
194
-        } else if (row.types == 4) {
195
-          name2 = '退库单'
196
-        }
197
-        return name + name2
198
-      },
199
-      specificationName: function(good_info_id) {
200
-        let name = ''
201
-        for (let i = 0; i < this.goodInfo.length; i++) {
202
-          if (this.goodInfo[i].id == good_info_id) {
203
-            name = this.goodInfo[i].specification_name
204
-          }
205
-        }
206
-        return name
207
-      },
208
-      search: function() {
209
-        const Params = {
210
-          page: this.page,
211
-          limit: this.limit,
212
-          start_time: this.start_time,
213
-          end_time: this.end_time,
214
-          type: this.type,
215
-          keywords: this.searchKey
216
-        }
217
-        this.cancelStockDate = []
218
-        getStockDetail(Params).then(response => {
219
-          if (response.data.state == 0) {
220
-            this.$message.error(response.data.msg)
221
-            return false
222
-          } else {
223
-            this.total = response.data.data.total
224
-            for (let i = 0; i < response.data.data.list.length; i++) {
225
-              this.cancelStockDate.push(response.data.data.list[i])
226
-            }
240
+    search: function() {
241
+      const Params = {
242
+        page: this.page,
243
+        limit: this.limit,
244
+        start_time: this.start_time,
245
+        end_time: this.end_time,
246
+        type: this.type,
247
+        keywords: this.searchKey
248
+      };
249
+      this.cancelStockDate = [];
250
+      getStockDetail(Params).then(response => {
251
+        if (response.data.state == 0) {
252
+          this.$message.error(response.data.msg);
253
+          return false;
254
+        } else {
255
+          this.total = response.data.data.total;
256
+          for (let i = 0; i < response.data.data.list.length; i++) {
257
+            this.cancelStockDate.push(response.data.data.list[i]);
227 258
           }
228
-        })
229
-      },
230
-      AddNewOrder: function() {
231
-        this.$router.push({ name: 'cancelStockOrderAdd', query: { type: this.type }})
232
-      },
233
-      GetCancelStock: function() {
234
-        const Params = {
235
-          page: this.page,
236
-          limit: this.limit,
237
-          start_time: this.start_time,
238
-          end_time: this.end_time,
239
-          type: this.type
240 259
         }
241
-        this.cancelStockDate = []
242
-        getStockDetail(Params).then(response => {
243
-          if (response.data.state == 0) {
244
-            this.$message.error(response.data.msg)
245
-            return false
246
-          } else {
247
-            this.total = response.data.data.total
248
-            for (let i = 0; i < response.data.data.list.length; i++) {
249
-              this.cancelStockDate.push(response.data.data.list[i])
250
-            }
260
+      });
261
+    },
262
+    AddNewOrder: function() {
263
+      this.$router.push({
264
+        name: "cancelStockOrderAdd",
265
+        query: { type: this.type }
266
+      });
267
+    },
268
+    GetCancelStock: function() {
269
+      const Params = {
270
+        page: this.page,
271
+        limit: this.limit,
272
+        start_time: this.start_time,
273
+        end_time: this.end_time,
274
+        type: this.type
275
+      };
276
+      this.cancelStockDate = [];
277
+      getStockDetail(Params).then(response => {
278
+        if (response.data.state == 0) {
279
+          this.$message.error(response.data.msg);
280
+          return false;
281
+        } else {
282
+          this.total = response.data.data.total;
283
+          for (let i = 0; i < response.data.data.list.length; i++) {
284
+            this.cancelStockDate.push(response.data.data.list[i]);
251 285
           }
252
-        })
253
-      }, getXuserName(id) {
254
-        if (id <= 0) {
255
-          return ''
256 286
         }
257
-        var name = ''
258
-        if (this.adminUserOptions == null || typeof (this.adminUserOptions.length) === 'undefined') {
259
-          return name
260
-        }
261
-        var leng = this.adminUserOptions.length
262
-        if (leng == 0) {
263
-          return name
264
-        }
265
-        for (let index = 0; index < leng; index++) {
266
-          if (this.adminUserOptions[index].id == id) {
267
-            name = this.adminUserOptions[index].name
268
-            break
269
-          }
287
+      });
288
+    },
289
+    getXuserName(id) {
290
+      if (id <= 0) {
291
+        return "";
292
+      }
293
+      var name = "";
294
+      if (
295
+        this.adminUserOptions == null ||
296
+        typeof this.adminUserOptions.length === "undefined"
297
+      ) {
298
+        return name;
299
+      }
300
+      var leng = this.adminUserOptions.length;
301
+      if (leng == 0) {
302
+        return name;
303
+      }
304
+      for (let index = 0; index < leng; index++) {
305
+        if (this.adminUserOptions[index].id == id) {
306
+          name = this.adminUserOptions[index].name;
307
+          break;
270 308
         }
271
-        return name
272
-      }, fetchAllAdminUsers() {
273
-        fetchAllAdminUsers().then(response => {
274
-          console.log(response)
275
-          if (response.data.state == 1) {
276
-            this.adminUserOptions = response.data.data.users
277
-            var alen = this.adminUserOptions.length
278
-            for (let index = 0; index < alen; index++) {
279
-              if (this.adminUserOptions[index].user_type == 2) {
280
-                // this.doctorOptions.push(this.adminUserOptions[index]);
281
-              }
309
+      }
310
+      return name;
311
+    },
312
+    fetchAllAdminUsers() {
313
+      fetchAllAdminUsers().then(response => {
314
+        console.log(response);
315
+        if (response.data.state == 1) {
316
+          this.adminUserOptions = response.data.data.users;
317
+          var alen = this.adminUserOptions.length;
318
+          for (let index = 0; index < alen; index++) {
319
+            if (this.adminUserOptions[index].user_type == 2) {
320
+              // this.doctorOptions.push(this.adminUserOptions[index]);
282 321
             }
283 322
           }
284
-        })
285
-      }, handleSelectionChange: function(val) {
286
-        this.multipleSelection = val
287
-      }, handleSizeChange(val) {
288
-        this.limit = val
289
-        this.GetWarehouse()
290
-      }, handleCurrentChange(val) {
291
-        this.page = val
292
-        this.GetWarehouse()
293
-      }, startTimeChange(val) {
294
-        this.GetWarehouse()
295
-      }, endTimeChange(val) {
296
-        this.GetWarehouse()
297
-      }, calculate: function(val) {
298
-        return Math.round(parseFloat(val) * 100) / 100
299
-      }, GetConfigInfo: function() {
300
-        GetAllConfig().then(response => {
301
-          if (response.data.state == 0) {
302
-            this.$message.error(response.data.msg)
303
-            return false
304
-          } else {
305
-            this.manufacturer = response.data.data.manufacturer
306
-            this.dealer = response.data.data.dealer
307
-            this.goodInfo = response.data.data.goodInfo
308
-          }
309
-        })
310
-      }, getManufactuerName: function(manufacturer_id) {
311
-        for (let i = 0; i < this.manufacturer.length; i++) {
312
-          if (this.manufacturer[i].id == manufacturer_id) {
313
-            return this.manufacturer[i].manufacturer_name
314
-          }
315 323
         }
316
-      }, getDealerName: function(dealer_id) {
317
-        for (let i = 0; i < this.dealer.length; i++) {
318
-          if (this.dealer[i].id == dealer_id) {
319
-            return this.dealer[i].dealer_name
320
-          }
324
+      });
325
+    },
326
+    handleSelectionChange: function(val) {
327
+      this.multipleSelection = val;
328
+    },
329
+    handleSizeChange(val) {
330
+      this.limit = val;
331
+      this.GetWarehouse();
332
+    },
333
+    handleCurrentChange(val) {
334
+      this.page = val;
335
+      this.GetWarehouse();
336
+    },
337
+    startTimeChange(val) {
338
+      var time = this.getTimestamp(val) - this.getTimestamp(this.end_time);
339
+      console.log("time是-----", time);
340
+      if (time > 0) {
341
+        this.$message.error("结束时间不能小于开始时间");
342
+        this.start_time = "";
343
+      } else {
344
+        this.GetWarehouse();
345
+      }
346
+    },
347
+    endTimeChange(val) {
348
+      var time = this.getTimestamp(val) - this.getTimestamp(this.start_time);
349
+      if (time < 0) {
350
+        this.$message.error("结束时间不能小于开始时间");
351
+        this.end_time = "";
352
+      } else {
353
+        this.GetWarehouse();
354
+      }
355
+    },
356
+    getTimestamp(time) {
357
+      // 把时间日期转成时间戳
358
+      return new Date(time).getTime() / 1000;
359
+    },
360
+    calculate: function(val) {
361
+      return Math.round(parseFloat(val) * 100) / 100;
362
+    },
363
+    GetConfigInfo: function() {
364
+      GetAllConfig().then(response => {
365
+        if (response.data.state == 0) {
366
+          this.$message.error(response.data.msg);
367
+          return false;
368
+        } else {
369
+          this.manufacturer = response.data.data.manufacturer;
370
+          this.dealer = response.data.data.dealer;
371
+          this.goodInfo = response.data.data.goodInfo;
321 372
         }
322
-      }, handleEdit: function(index, row) {
323
-        this.$router.push({ name: 'cancelStockDetail', query: { id: row.id, type: this.type }})
324
-      }, handleDelete: function(index, row) {
325
-        const ids = []
326
-        ids.push(row.id)
327
-        const idStr = ids.join(',')
328
-
329
-        const params = {
330
-          ids: idStr
373
+      });
374
+    },
375
+    getManufactuerName: function(manufacturer_id) {
376
+      for (let i = 0; i < this.manufacturer.length; i++) {
377
+        if (this.manufacturer[i].id == manufacturer_id) {
378
+          return this.manufacturer[i].manufacturer_name;
331 379
         }
332
-
333
-        this.$confirm('确认删除出库退库单记录?', '删除出库退库单记录', {
334
-          confirmButtonText: '确定',
335
-          cancelButtonText: '取消',
336
-          type: 'warning'
337
-        }).then(() => {
380
+      }
381
+    },
382
+    getDealerName: function(dealer_id) {
383
+      for (let i = 0; i < this.dealer.length; i++) {
384
+        if (this.dealer[i].id == dealer_id) {
385
+          return this.dealer[i].dealer_name;
386
+        }
387
+      }
388
+    },
389
+    handleEdit: function(index, row) {
390
+      this.$router.push({
391
+        name: "cancelStockDetail",
392
+        query: { id: row.id, type: this.type }
393
+      });
394
+    },
395
+    handleDelete: function(index, row) {
396
+      const ids = [];
397
+      ids.push(row.id);
398
+      const idStr = ids.join(",");
399
+
400
+      const params = {
401
+        ids: idStr
402
+      };
403
+
404
+      this.$confirm("确认删除出库退库单记录?", "删除出库退库单记录", {
405
+        confirmButtonText: "确定",
406
+        cancelButtonText: "取消",
407
+        type: "warning"
408
+      })
409
+        .then(() => {
338 410
           deleteCancelStock(params).then(response => {
339 411
             if (response.data.state == 0) {
340
-              this.$message.error(response.data.msg)
341
-              return false
412
+              this.$message.error(response.data.msg);
413
+              return false;
342 414
             } else {
343 415
               this.$notify({
344
-                title: '成功',
345
-                message: '删除成功',
346
-                type: 'success',
416
+                title: "成功",
417
+                message: "删除成功",
418
+                type: "success",
347 419
                 duration: 2000
348
-              })
420
+              });
349 421
               for (let i = 0; i < ids.length; i++) {
350 422
                 for (let y = 0; y < this.cancelStockDate.length; y++) {
351 423
                   if (ids[i] == this.cancelStockDate[y].id) {
352
-                    this.cancelStockDate.splice(y, 1)
424
+                    this.cancelStockDate.splice(y, 1);
353 425
                   }
354 426
                 }
355 427
               }
356 428
             }
357
-          })
358
-        }).catch(() => {
429
+          });
359 430
         })
360
-      }, changeAllSelected: function(val) {
361
-        if (val) {
362
-          this.$refs.multipleTable.toggleAllSelection()
363
-        } else {
364
-          this.$refs.multipleTable.clearSelection()
365
-        }
366
-      }, select(selection) {
367
-        this.selectedTableData = selection
368
-      }, batchDelete() {
369
-        if (this.selectedTableData.length <= 0) {
370
-          this.$message.error('请选择要删除的记录')
371
-          return
372
-        }
373
-        const ids = []
374
-        for (let i = 0; i < this.selectedTableData.length; i++) {
375
-          ids.push(this.selectedTableData[i].id)
376
-        }
377
-        const idStr = ids.join(',')
378
-        const params = {
379
-          ids: idStr
380
-        }
381
-        this.$confirm('确认删除出库退库单记录?', '删除出库退库单记录', {
382
-          confirmButtonText: '确定',
383
-          cancelButtonText: '取消',
384
-          type: 'warning'
385
-        }).then(() => {
431
+        .catch(() => {});
432
+    },
433
+    changeAllSelected: function(val) {
434
+      if (val) {
435
+        this.$refs.multipleTable.toggleAllSelection();
436
+      } else {
437
+        this.$refs.multipleTable.clearSelection();
438
+      }
439
+    },
440
+    select(selection) {
441
+      this.selectedTableData = selection;
442
+    },
443
+    batchDelete() {
444
+      if (this.selectedTableData.length <= 0) {
445
+        this.$message.error("请选择要删除的记录");
446
+        return;
447
+      }
448
+      const ids = [];
449
+      for (let i = 0; i < this.selectedTableData.length; i++) {
450
+        ids.push(this.selectedTableData[i].id);
451
+      }
452
+      const idStr = ids.join(",");
453
+      const params = {
454
+        ids: idStr
455
+      };
456
+      this.$confirm("确认删除出库退库单记录?", "删除出库退库单记录", {
457
+        confirmButtonText: "确定",
458
+        cancelButtonText: "取消",
459
+        type: "warning"
460
+      })
461
+        .then(() => {
386 462
           deleteCancelStock(params).then(response => {
387 463
             if (response.data.state == 0) {
388
-              this.$message.error(response.data.msg)
389
-              return false
464
+              this.$message.error(response.data.msg);
465
+              return false;
390 466
             } else {
391 467
               this.$notify({
392
-                title: '成功',
393
-                message: '删除成功',
394
-                type: 'success',
468
+                title: "成功",
469
+                message: "删除成功",
470
+                type: "success",
395 471
                 duration: 2000
396
-              })
472
+              });
397 473
 
398 474
               for (let i = 0; i < ids.length; i++) {
399 475
                 for (let y = 0; y < this.cancelStockDate.length; y++) {
400 476
                   if (ids[i] == this.cancelStockDate[y].id) {
401
-                    this.cancelStockDate.splice(y, 1)
477
+                    this.cancelStockDate.splice(y, 1);
402 478
                   }
403 479
                 }
404 480
               }
405 481
             }
406
-          })
407
-        }).catch(() => {
482
+          });
408 483
         })
409
-      }
484
+        .catch(() => {});
410 485
     }
411 486
   }
487
+};
412 488
 </script>
413 489
 
414 490
 <style rel="stylesheet/css" lang="scss" scoped>
415
-  .information {
416
-    border: 1px #dcdfe6 solid;
417
-    padding: 30px 20px 30px 20px;
491
+.information {
492
+  border: 1px #dcdfe6 solid;
493
+  padding: 30px 20px 30px 20px;
418 494
 
419 495
   .border {
420 496
     border-bottom: 1px #dcdfe6 solid;
421 497
     margin: 0px 0 20px 0;
422 498
   }
499
+}
423 500
 
424
-  }
425
-
426
-
427
-  .edit_separater {
428
-    border-top: 1px solid rgb(233, 233, 233);
429
-    margin-top: 15px;
430
-    margin-bottom: 15px;
431
-  }
432
-
501
+.edit_separater {
502
+  border-top: 1px solid rgb(233, 233, 233);
503
+  margin-top: 15px;
504
+  margin-bottom: 15px;
505
+}
433 506
 </style>
434 507
 
435 508
 <style>
436
-  .sign-and-weigh-box .sign-and-weigh-box-patients .cell {
437
-    font-size: 12px;
438
-  }
439
-
440
-  .sign-and-weigh-box .sign-and-weigh-box-patients .current-row > td {
441
-    background: #6fb5fa;
442
-  }
443
-
444
-  .count {
445
-    color: #bd2c00;
509
+.sign-and-weigh-box .sign-and-weigh-box-patients .cell {
510
+  font-size: 12px;
511
+}
446 512
 
447
-  }
513
+.sign-and-weigh-box .sign-and-weigh-box-patients .current-row > td {
514
+  background: #6fb5fa;
515
+}
448 516
 
517
+.count {
518
+  color: #bd2c00;
519
+}
449 520
 </style>

+ 8 - 1
src/xt_pages/stock/stockInOrder.vue Ver arquivo

@@ -480,7 +480,14 @@ export default {
480 480
       this.GetWarehouse();
481 481
     },
482 482
     startTimeChange(val) {
483
-      this.startTime = this.getTimestamp(val);
483
+      var time = this.getTimestamp(val) - this.getTimestamp(this.end_time);
484
+      if (time > 0) {
485
+        this.$message.error("结束时间不能小于开始时间");
486
+        this.start_time = "";
487
+      } else {
488
+        this.startTime = this.getTimestamp(val);
489
+        this.GetWarehouse();
490
+      }
484 491
     },
485 492
     endTimeChange(val) {
486 493
       var time = this.getTimestamp(val) - this.getTimestamp(this.start_time);

+ 7 - 0
src/xt_pages/stock/stockOutOrder.vue Ver arquivo

@@ -332,6 +332,13 @@ export default {
332 332
       this.GetWarehouseOut();
333 333
     },
334 334
     startTimeChange(val) {
335
+      var time = this.getTimestamp(val) - this.getTimestamp(this.end_time);
336
+      if (time > 0) {
337
+        this.$message.error("结束时间不能小于开始时间");
338
+        this.start_time = "";
339
+      } else {
340
+        this.GetWarehouseOut();
341
+      }
335 342
       this.GetWarehouseOut();
336 343
     },
337 344
     endTimeChange(val) {

Diferenças do arquivo suprimidas por serem muito extensas
+ 497 - 423
src/xt_pages/stock/stockOutOrderAdd.vue


+ 0 - 0
src/xt_pages/user/components/PatientForm.vue Ver arquivo


Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff