Browse Source

提交代码

陈少旭 1 year ago
parent
commit
e882e00afe
32 changed files with 4599 additions and 280 deletions
  1. 24 0
      src/api/his/his.js
  2. 2 1
      src/lang/zh.js
  3. 5 0
      src/router/modules/hospitalRecord.js
  4. 420 0
      src/xt_pages/hospitalStation/batchStatementTemplate/hospitalBatchPrint.vue
  5. 73 20
      src/xt_pages/hospitalStation/chargeDetailManagement.vue
  6. 13 13
      src/xt_pages/hospitalStation/components/chargeDialog.vue
  7. 4 4
      src/xt_pages/hospitalStation/components/deskPrescription.vue
  8. 45 3
      src/xt_pages/hospitalStation/components/inquiriesDetail.vue
  9. 419 0
      src/xt_pages/hospitalStation/components/registerDialog9504.vue
  10. 462 0
      src/xt_pages/hospitalStation/hospitalBatchStatementPrint.vue
  11. 647 0
      src/xt_pages/hospitalStation/inHospitalHistory.vue
  12. 11 8
      src/xt_pages/hospitalStation/index.vue
  13. 2 0
      src/xt_pages/hospitalStation/pastInquiries.vue
  14. 552 0
      src/xt_pages/hospitalStation/pastQuiriesPrint/hospitalAllListPrint.vue
  15. 406 0
      src/xt_pages/hospitalStation/pastQuiriesPrint/hospitalAllListPrintOne.vue
  16. 396 0
      src/xt_pages/hospitalStation/pastQuiriesPrint/hospitalListPrint.vue
  17. 318 0
      src/xt_pages/hospitalStation/pastQuiriesPrint/hospitalListPrintOne.vue
  18. 3 0
      src/xt_pages/hospitalStation/statementPrint.vue
  19. 52 5
      src/xt_pages/hospitalStation/summary.vue
  20. 13 13
      src/xt_pages/outpatientCharges/components/chargeDialog.vue
  21. 12 8
      src/xt_pages/outpatientCharges/components/registerDialog.vue
  22. 498 83
      src/xt_pages/outpatientCharges/components/registerDialog9504.vue
  23. 2 2
      src/xt_pages/outpatientCharges/listPrint.vue
  24. 24 3
      src/xt_pages/outpatientCharges/outpatientChargesManagement.vue
  25. 6 6
      src/xt_pages/outpatientCharges/statementPrint.vue
  26. 21 11
      src/xt_pages/outpatientCharges/statementTemplate/printOne.vue
  27. 11 10
      src/xt_pages/outpatientDoctorStation/components/deskPrescription.vue
  28. 25 1
      src/xt_pages/outpatientDoctorStation/doctorDesk.vue
  29. 3 3
      src/xt_pages/outpatientDoctorStation/modeTemplateDetail.vue
  30. 2 2
      src/xt_pages/outpatientDoctorStation/prescriptionTemplatedetail.vue
  31. 42 0
      src/xt_pages/outpatientTool/components/detailStatistics.vue
  32. 86 84
      src/xt_pages/outpatientTool/components/settle.vue

+ 24 - 0
src/api/his/his.js View File

@@ -754,6 +754,30 @@ export function getBatchSettleAccount(params) {
754 754
 
755 755
 
756 756
 
757
+export function getHospitalUnChargeList(params) {
758
+  return request({
759
+    url: "/api/his/prescription/list",
760
+    method: "get",
761
+    params:params,
762
+  });
763
+}
764
+
765
+
766
+export function getHospitalUnChargeSummary(params) {
767
+  return request({
768
+    url: "/api/his/prescription/summary",
769
+    method: "get",
770
+    params:params,
771
+  });
772
+}
773
+
774
+export function getInHospitalHistory(params){
775
+  return request({
776
+    url:"/api/hospital/inhopitalcheck/list",
777
+    method:"get",
778
+    params:params
779
+  })
780
+}
757 781
 
758 782
 
759 783
 

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

@@ -291,7 +291,8 @@ export default {
291 291
     faPiao: '发票设置',
292 292
     chargeDetailManagement: '收费明细',
293 293
     yidiClear: '异地清分',
294
-    zeroSummary: '零用明细汇总'
294
+    zeroSummary: '零用明细汇总',
295
+    hospitalhistory: '住院历史'
295 296
   },
296 297
   navbar: {
297 298
     logOut: '退出登录',

+ 5 - 0
src/router/modules/hospitalRecord.js View File

@@ -17,6 +17,11 @@ export default {
17 17
       component: () => import('@/xt_pages/hospitalStation/index'),
18 18
       name: 'hospitalIndex',
19 19
       meta: { title: 'hospitalIndex', noCache: true }
20
+    }, {
21
+      path: '/hospitalRecord/history',
22
+      component: () => import('@/xt_pages/hospitalStation/inHospitalHistory'),
23
+      name: 'hospitalhistory',
24
+      meta: { title: 'hospitalhistory', noCache: true }
20 25
     },
21 26
 
22 27
   ]

+ 420 - 0
src/xt_pages/hospitalStation/batchStatementTemplate/hospitalBatchPrint.vue View File

@@ -0,0 +1,420 @@
1
+<template>
2
+  <div id="statement-print" class="statement-print">
3
+    <div  v-for="(info,index) in infos">
4
+    <div class="statementTitle">广东省社会医疗保险医疗费用结算单</div>
5
+    <table class="statementTable" border="1">
6
+      <tr>
7
+        <td width="80">机构名称</td>
8
+        <td colspan="4">{{info.fixmedins_name}}</td>
9
+        <td width="80">机构编码</td>
10
+        <td colspan="4">{{info.fixmedins_code}}</td>
11
+        <td width="100">医保结算级别</td>
12
+        <td width="100" v-if="info.hosp_lv == '1'">三级特等</td>
13
+        <td width="100" v-if="info.hosp_lv == '2'">三级甲等</td>
14
+        <td width="100" v-if="info.hosp_lv == '3'">三级乙等</td>
15
+        <td width="100" v-if="info.hosp_lv == '4'">三级丙等</td>
16
+        <td width="100" v-if="info.hosp_lv == '5'">二级甲等</td>
17
+        <td width="100" v-if="info.hosp_lv == '6'">二级乙等</td>
18
+        <td width="100" v-if="info.hosp_lv == '7'">二级丙等</td>
19
+        <td width="100" v-if="info.hosp_lv == '8'">一级甲等</td>
20
+        <td width="100" v-if="info.hosp_lv == '9'">一级乙等</td>
21
+        <td width="100" v-if="info.hosp_lv == '10'">一级丙等</td>
22
+        <td width="100" v-if="info.hosp_lv == '11'">无等级</td>
23
+        <td width="100" v-else></td>
24
+
25
+      </tr>
26
+      <tr>
27
+        <td width="90">就医登记号</td>
28
+        <td colspan="11">{{info.mdtrt_id}}</td>
29
+      </tr>
30
+      <tr>
31
+        <td width="80">姓名</td>
32
+        <td width="80">{{info.psn_name}}</td>
33
+        <td width="80">性别</td>
34
+        <td width="50" v-if="info.gend == '1'">男</td>
35
+        <td width="50" v-if="info.gend == '2'">女</td>
36
+
37
+        <td width="80">出生日期</td>
38
+        <td width="100">{{info.brdy}}</td>
39
+        <td width="90">个人电脑号</td>
40
+        <td width="110">{{info.psn_no}}</td>
41
+        <td width="80">人员类别</td>
42
+        <td colspan="3" v-if="info.psn_type == '11'">在职</td>
43
+        <td colspan="3" v-if="info.psn_type == '1101'">职工在职</td>
44
+        <td colspan="3" v-if="info.psn_type == '1102'">公务员在职</td>
45
+        <td colspan="3" v-if="info.psn_type == '1103'">灵活就业人员在职</td>
46
+        <td colspan="3" v-if="info.psn_type == '1160'">地方其他扩展人员</td>
47
+
48
+
49
+        <td colspan="3" v-if="info.psn_type == '12'">退休人员</td>
50
+        <td colspan="3" v-if="info.psn_type == '1201'">职工退休</td>
51
+        <td colspan="3" v-if="info.psn_type == '1202'">公务员退休</td>
52
+        <td colspan="3" v-if="info.psn_type == '1203'">灵活就业人员退休</td>
53
+        <td colspan="3" v-if="info.psn_type == '1260'">地方其他扩展人员</td>
54
+
55
+
56
+        <td colspan="3" v-if="info.psn_type == '13'">离休</td>
57
+        <td colspan="3" v-if="info.psn_type == '1300'">离休人员</td>
58
+        <td colspan="3" v-if="info.psn_type == '1360'">地方其他扩展人员</td>
59
+
60
+        <td colspan="3" v-if="info.psn_type == '14'">居民(未成年)</td>
61
+        <td colspan="3" v-if="info.psn_type == '1401'">新生儿</td>
62
+        <td colspan="3" v-if="info.psn_type == '1402'">学龄前儿童</td>
63
+        <td colspan="3" v-if="info.psn_type == '1403'">中小学生</td>
64
+        <td colspan="3" v-if="info.psn_type == '1404'">大学生</td>
65
+        <td colspan="3" v-if="info.psn_type == '1405'">未成年(未入学)</td>
66
+
67
+
68
+        <td colspan="3" v-if="info.psn_type == '15'">居民(成年)</td>
69
+        <td colspan="3" v-if="info.psn_type == '1501'">普通居民(成年)</td>
70
+        <td colspan="3" v-if="info.psn_type == '1560'">地方其他扩展身份</td>
71
+
72
+        <td colspan="3" v-if="info.psn_type == '16'">居民(老年)</td>
73
+
74
+
75
+
76
+      </tr>
77
+      <tr>
78
+        <td>单位名称</td>
79
+        <td colspan="5">{{info.emp_name}}</td>
80
+        <td width="80">联系电话</td>
81
+        <td width="110">{{info.patient.phone}}</td>
82
+        <td width="80">身份证号</td>
83
+        <td colspan="3">{{info.certno}}</td>
84
+      </tr>
85
+      <tr>
86
+        <td>住院号</td>
87
+        <td>{{info.number}}</td>
88
+        <td>科别</td>
89
+        <td width="100"></td>
90
+        <td>床号</td>
91
+        <td></td>
92
+        <td>入院日期</td>
93
+        <td>{{info.begndate}}</td>
94
+        <td>出院日期</td>
95
+        <td width="100">{{info.enddate}}</td>
96
+        <td>住院天数</td>
97
+        <td>{{getDay(info.begndate,info.enddate)}}</td>
98
+
99
+      </tr>
100
+      <tr>
101
+        <td>险种</td>
102
+        <td colspan="2" v-if="info.insutype == '310'">职工基本医疗保险</td>
103
+        <td colspan="2" v-if="info.insutype == '320'">公务员医疗补助</td>
104
+        <td colspan="2" v-if="info.insutype == '330'">大额医疗费用补助</td>
105
+        <td colspan="2" v-if="info.insutype == '340'">离休人员医疗保障</td>
106
+        <td colspan="2" v-if="info.insutype == '390'">城乡居民基本医疗保险</td>
107
+        <td colspan="2" v-if="info.insutype == '392'">城乡居民大病医疗保险</td>
108
+        <td colspan="2" v-if="info.insutype == '510'">生育保险</td>
109
+        <td>入院第一诊断</td>
110
+        <td colspan="3">{{info.diagnosis}}</td>
111
+        <td>出院第一诊断</td>
112
+        <td colspan="4">{{info.diagnosis}}</td>
113
+
114
+
115
+      </tr>
116
+      <tr>
117
+        <td>业务类别</td>
118
+        <td colspan="5" style="text-align:left;padding-left:10px;" v-if="info.med_type == '11'">普通门诊</td>
119
+        <td colspan="5" style="text-align:left;padding-left:10px;" v-if="info.med_type == '12'">门诊挂号</td>
120
+        <td colspan="5" style="text-align:left;padding-left:10px;" v-if="info.med_type == '13'">急诊</td>
121
+        <td colspan="5" style="text-align:left;padding-left:10px;" v-if="info.med_type == '14'">门诊慢性病</td>
122
+        <td colspan="5" style="text-align:left;padding-left:10px;" v-if="info.med_type == '15'">门诊统筹</td>
123
+        <!--        <td colspan="5" style="text-align:left;padding-left:10px;" v-if="info.med_type == '16'">门诊慢性病</td>-->
124
+        <td colspan="5" style="text-align:left;padding-left:10px;" v-if="info.med_type == '21'">普通住院</td>
125
+
126
+        <td>结算时间</td>
127
+        <td colspan="5" style="text-align:left;padding-left:10px;">{{info.setl_time.split(' ')[0]}}</td>
128
+      </tr>
129
+      <tr>
130
+        <td colspan="12" style="text-align:left;padding-left:10px;">
131
+          本次就医:总费用{{info.medfee_sumamt}}元,基金支付{{info.fund_pay_sumamt}}元,个人支付{{info.psn_pay}}元。
132
+          (起付线 {{info.act_pay_dedc}}元, 先自付 {{info.preselfpay_amt}}元, 段内自付 {{(info.psn_pay - info.preselfpay_amt).toFixed(2)}} )
133
+
134
+        </td>
135
+      </tr>
136
+      <tr>
137
+        <td>费用名称</td>
138
+        <td colspan="2">总费用</td>
139
+        <td>自费</td>
140
+        <td colspan="2">部分项目自付</td>
141
+        <td>费用名称</td>
142
+        <td colspan="2">总费用</td>
143
+        <td>自费</td>
144
+        <td colspan="2">部分项目自付</td>
145
+      </tr>
146
+      <tr>
147
+        <td>床位费</td>
148
+        <td colspan="2" style="text-align:right;padding-right:10px;">{{info.bed_cost_total}}</td>
149
+        <td style="text-align:right;padding-right:10px;">{{info.bed_cost_self_total}}</td>
150
+        <td colspan="2" style="text-align:right;padding-right:10px;">{{info.bed_cost_part_self_total}}</td>
151
+        <td>西成药</td>
152
+        <td colspan="2" style="text-align:right;padding-right:10px;">{{info.western_medicine_cost_total}}</td>
153
+        <td style="text-align:right;padding-right:10px;">{{info.western_medicine_cost_self_total}}</td>
154
+        <td colspan="2" style="text-align:right;padding-right:10px;">{{info.western_medicine_cost_part_self_total}}</td>
155
+      </tr>
156
+      <tr>
157
+        <td>中药费</td>
158
+        <td colspan="2" style="text-align:right;padding-right:10px;">0</td>
159
+        <td style="text-align:right;padding-right:10px;">0</td>
160
+        <td colspan="2" style="text-align:right;padding-right:10px;">0</td>
161
+        <td>中成药</td>
162
+        <td colspan="2" style="text-align:right;padding-right:10px;">{{info.chinese_traditional_medicine_cost_total}}
163
+        </td>
164
+        <td style="text-align:right;padding-right:10px;">{{info.chinese_traditional_medicine_cost_self_total}}</td>
165
+        <td colspan="2" style="text-align:right;padding-right:10px;">
166
+          {{info.chinese_traditional_medicine_cost_part_self_total}}
167
+        </td>
168
+      </tr>
169
+      <tr>
170
+        <td>中草药</td>
171
+        <td colspan="2" style="text-align:right;padding-right:10px;">0</td>
172
+        <td style="text-align:right;padding-right:10px;">0</td>
173
+        <td colspan="2" style="text-align:right;padding-right:10px;">0</td>
174
+        <td>检查费</td>
175
+        <td colspan="2" style="text-align:right;padding-right:10px;">{{info.check_cost_total}}</td>
176
+        <td style="text-align:right;padding-right:10px;">{{info.check_cost_self_total}}</td>
177
+        <td colspan="2" style="text-align:right;padding-right:10px;">{{info.check_cost_part_self_total}}</td>
178
+      </tr>
179
+      <tr>
180
+        <td>治疗费</td>
181
+        <td colspan="2" style="text-align:right;padding-right:10px;">{{info.treat_cost_total}}</td>
182
+        <td style="text-align:right;padding-right:10px;">{{info.treat_cost_self_total}}</td>
183
+        <td colspan="2" style="text-align:right;padding-right:10px;">{{info.treat_cost_part_self_total}}</td>
184
+        <td>放射费</td>
185
+        <td colspan="2" style="text-align:right;padding-right:10px;">0</td>
186
+        <td style="text-align:right;padding-right:10px;">0</td>
187
+        <td colspan="2" style="text-align:right;padding-right:10px;">0</td>
188
+      </tr>
189
+      <tr>
190
+        <td>手术费</td>
191
+        <td colspan="2" style="text-align:right;padding-right:10px;">{{info.operation_cost_total}}</td>
192
+        <td style="text-align:right;padding-right:10px;">{{info.operation_cost_self_total}}</td>
193
+        <td colspan="2" style="text-align:right;padding-right:10px;">{{info.operation_cost_part_self_total}}</td>
194
+        <td>化验费</td>
195
+        <td colspan="2" style="text-align:right;padding-right:10px;">{{info.laboratory_cost_total}}</td>
196
+        <td style="text-align:right;padding-right:10px;">{{info.laboratory_cost_self_total}}</td>
197
+        <td colspan="2" style="text-align:right;padding-right:10px;">{{info.laboratory_cost_part_self_total}}</td>
198
+      </tr>
199
+      <tr>
200
+        <td>输血费</td>
201
+        <td colspan="2" style="text-align:right;padding-right:10px;">0</td>
202
+        <td style="text-align:right;padding-right:10px;">0</td>
203
+        <td colspan="2" style="text-align:right;padding-right:10px;">0</td>
204
+        <td>输氧费</td>
205
+        <td colspan="2" style="text-align:right;padding-right:10px;">0</td>
206
+        <td style="text-align:right;padding-right:10px;">0</td>
207
+        <td colspan="2" style="text-align:right;padding-right:10px;">0</td>
208
+      </tr>
209
+      <tr>
210
+        <td>其他</td>
211
+        <td colspan="2" style="text-align:right;padding-right:10px;">{{info.other_cost_total}}</td>
212
+        <td style="text-align:right;padding-right:10px;">{{info.other_cost_self_total}}</td>
213
+        <td colspan="2" style="text-align:right;padding-right:10px;">{{info.other_cost_part_self_total}}</td>
214
+        <td>麻醉费</td>
215
+        <td colspan="2" style="text-align:right;padding-right:10px;">0</td>
216
+        <td style="text-align:right;padding-right:10px;">0</td>
217
+        <td colspan="2" style="text-align:right;padding-right:10px;">0</td>
218
+      </tr>
219
+      <tr>
220
+        <td>材料费</td>
221
+        <td colspan="2" style="text-align:right;padding-right:10px;">{{info.material_cost_total}}</td>
222
+        <td style="text-align:right;padding-right:10px;">{{info.material_cost_self_total}}</td>
223
+        <td colspan="2" style="text-align:right;padding-right:10px;">{{info.material_cost_part_self_total}}</td>
224
+        <td>特殊检查费</td>
225
+        <td colspan="2" style="text-align:right;padding-right:10px;">0</td>
226
+        <td style="text-align:right;padding-right:10px;">0</td>
227
+        <td colspan="2" style="text-align:right;padding-right:10px;">0</td>
228
+      </tr>
229
+      <tr>
230
+        <td>特殊治疗费</td>
231
+        <td colspan="2" style="text-align:right;padding-right:10px;">0</td>
232
+        <td style="text-align:right;padding-right:10px;">0</td>
233
+        <td colspan="2" style="text-align:right;padding-right:10px;">0</td>
234
+        <td style="text-align:right;padding-right:10px;"></td>
235
+        <td colspan="2" style="text-align:right;padding-right:10px;"></td>
236
+        <td style="text-align:right;padding-right:10px;"></td>
237
+        <td colspan="2" style="text-align:right;padding-right:10px;"></td>
238
+      </tr>
239
+      <tr>
240
+        <td>合计</td>
241
+        <td colspan="2" style="text-align:right;padding-right:10px;">{{(parseFloat(info.bed_cost_total) +
242
+          parseFloat(info.operation_cost_total) + parseFloat(info.other_cost_total) +
243
+          parseFloat(info.material_cost_total) + parseFloat(info.western_medicine_cost_total) +
244
+          parseFloat(info.chinese_traditional_medicine_cost_total) + parseFloat(info.check_cost_total) +
245
+          parseFloat(info.laboratory_cost_total) + parseFloat(info.treat_cost_total)).toFixed(2) }}
246
+        </td>
247
+        <td style="text-align:right;padding-right:10px;">{{(parseFloat(info.bed_cost_self_total )+
248
+          parseFloat(info.operation_cost_self_total) + parseFloat(info.other_cost_self_total) +
249
+          parseFloat(info.material_cost_self_total) + parseFloat(info.western_medicine_cost_self_total) +
250
+          parseFloat(info.chinese_traditional_medicine_cost_self_total) + parseFloat(info.check_cost_self_total) +
251
+          parseFloat(info.laboratory_cost_self_total) + parseFloat(info.treat_cost_self_total)).toFixed(2)}}
252
+        </td>
253
+        <td colspan="2" style="text-align:right;padding-right:10px;">{{(parseFloat(info.bed_cost_part_self_total) +
254
+          parseFloat(info.operation_cost_part_self_total) + parseFloat(info.other_cost_part_self_total) +
255
+          parseFloat(info.material_cost_part_self_total) + parseFloat(info.western_medicine_cost_part_self_total) +
256
+          parseFloat(info.chinese_traditional_medicine_cost_part_self_total) +
257
+          parseFloat(info.check_cost_part_self_total) + parseFloat(info.laboratory_cost_part_self_total) +
258
+          parseFloat(info.treat_cost_part_self_total)).toFixed(2)}}
259
+        </td>
260
+        <td style="text-align:right;padding-right:10px;"></td>
261
+        <td colspan="2" style="text-align:right;padding-right:10px;"></td>
262
+        <td style="text-align:right;padding-right:10px;"></td>
263
+        <td colspan="2" style="text-align:right;padding-right:10px;"></td>
264
+      </tr>
265
+      <tr>
266
+        <td colspan="3" style="text-align:left;padding-left:10px;">基本医疗保险统筹基金支付</td>
267
+        <td colspan="3">{{info.hifp_pay}}</td>
268
+        <td colspan="3" style="text-align:left;padding-left:10px;">大额基金支付</td>
269
+        <td colspan="3">{{info.hifob_pay}}</td>
270
+      </tr>
271
+      <tr>
272
+        <td colspan="3" style="text-align:left;padding-left:10px;">大病基金支付</td>
273
+        <td colspan="3">{{info.hifmi_pay}}</td>
274
+        <td colspan="3" style="text-align:left;padding-left:10px;">补充保险基金支付</td>
275
+        <td colspan="3">{{info.hifes_pay}}</td>
276
+      </tr>
277
+      <tr>
278
+        <td colspan="3" style="text-align:left;padding-left:10px;">医疗救助基金支付</td>
279
+        <td colspan="3">{{info.maf_pay}}</td>
280
+        <td colspan="3" style="text-align:left;padding-left:10px;">公务员基金支付</td>
281
+        <td colspan="3">{{info.cvlserv_pay}}</td>
282
+      </tr>
283
+
284
+      <tr>
285
+        <td colspan="3" style="text-align:left;padding-left:10px;">其他基金支付</td>
286
+        <td colspan="3">{{info.oth_pay}}</td>
287
+        <td colspan="3" style="text-align:left;padding-left:10px;">个人账户支付</td>
288
+        <td colspan="3">{{info.acct_pay}}</td>
289
+      </tr>
290
+      <tr>
291
+        <td>收款人:</td>
292
+        <td colspan="2">{{info.charge_admin.user_name}}</td>
293
+        <td>审核人:</td>
294
+        <td colspan="2">{{info.p_admin.user_name}}</td>
295
+        <td>制单人:</td>
296
+        <td colspan="2">{{info.p_admin.user_name}}</td>
297
+        <td>打印日期</td>
298
+        <td colspan="2">{{getNowTime()}}</td>
299
+      </tr>
300
+      <tr>
301
+        <td colspan="12" style="text-align:left;padding-left:10px;line-height:20px;">
302
+          注: 1、部分项目自付金额是指基本医疗保险范围内的项目需参保人先按规定比例自付的金额。<br/>
303
+          &ensp;&ensp;&ensp;2、此表由医院打印。<br/>
304
+          &ensp;&ensp;&ensp;3、此表一式两份,医院、参保人各一份。
305
+        </td>
306
+      </tr>
307
+      <tr>
308
+        <td colspan="12" style="text-align:left;padding-left:10px;">
309
+          病人家属签字:
310
+        </td>
311
+      </tr>
312
+    </table>
313
+  </div>
314
+  </div>
315
+</template>
316
+<script>
317
+
318
+export default {
319
+  name: 'hospitalBatchPrint',
320
+  props: {
321
+    infos:{
322
+      type: Array,
323
+      default: function() {
324
+        return []
325
+      }
326
+    },
327
+    info: {
328
+      type: Object,
329
+      default: function() {
330
+        return {}
331
+      }
332
+    }, p_admin: {
333
+      type: Object,
334
+      default: function() {
335
+        return {}
336
+      }
337
+    }, charge_admin: {
338
+      type: Object,
339
+      default: function() {
340
+        return {}
341
+      },
342
+    },his: {
343
+      type: Object,
344
+      default: function() {
345
+        return {}
346
+      },
347
+    },his_record: {
348
+      type: Object,
349
+      default: function() {
350
+        return {}
351
+      },
352
+    },patient:{
353
+      type: Object,
354
+      default: function() {
355
+        return {}
356
+      },
357
+
358
+    }
359
+  },methods:{
360
+    getDay(dateString1,dateString2){
361
+      var  startDate = Date.parse(dateString1);
362
+      var  endDate = Date.parse(dateString2);
363
+      if (startDate>endDate){
364
+        return 0;
365
+      }
366
+      if (startDate==endDate){
367
+        return 1;
368
+      }
369
+      var days=(endDate - startDate)/(1*24*60*60*1000);
370
+      return  days+1;
371
+
372
+    },
373
+    getNowTime: function () {
374
+      let dateTime;
375
+      let yy = new Date().getFullYear();
376
+      let mm = new Date().getMonth() + 1;
377
+      let dd = new Date().getDate();
378
+      // let hh = new Date().getHours();
379
+      // let mf = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes()
380
+      //   :
381
+      //   new Date().getMinutes();
382
+      // let ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds()
383
+      //   :
384
+      //   new Date().getSeconds();
385
+      dateTime = yy + '-' + mm + '-' + dd
386
+      return dateTime
387
+    },
388
+
389
+  }
390
+}
391
+
392
+
393
+</script>
394
+
395
+
396
+<style lang="scss" scoped>
397
+.statement-print {
398
+  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 60px rgba(0, 0, 0, 0.06) inset;
399
+  -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
400
+  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
401
+  margin-bottom: 20px;
402
+  padding: 20px 10px;
403
+}
404
+
405
+.statementTitle {
406
+  font-size: 28px;
407
+  text-align: center;
408
+  font-weight: bold;
409
+  margin-bottom: 10px;
410
+}
411
+
412
+.statementTable {
413
+  width: 100%;
414
+  text-align: center;
415
+  border-collapse: collapse;
416
+  line-height: 40px;
417
+  font-size: 14px;
418
+  border-color: #000;
419
+}
420
+</style>

+ 73 - 20
src/xt_pages/hospitalStation/chargeDetailManagement.vue View File

@@ -114,6 +114,13 @@
114 114
                 type="primary">上传费用明细
115 115
             </el-button>
116 116
 
117
+            <el-button
118
+              v-if="( this.hisPatientInfo.balance_accounts_type == 2 && this.hisPatientInfo.id > 0 && this.hisPatientInfo.in_hospital_status == 1 && this.hisPatientInfo.out_hospital_status == 0 )"
119
+              size="small"
120
+              @click="open(1)"
121
+              type="primary">上传费用明细
122
+            </el-button>
123
+
117 124
 
118 125
             <el-button
119 126
                 v-if="( this.hisPatientInfo.balance_accounts_type != 2  && this.hisPatientInfo.id > 0 && this.hisPatientInfo.in_hospital_status == 1 && this.hisPatientInfo.out_hospital_status == 0)"
@@ -122,6 +129,13 @@
122 129
             >撤销明细
123 130
             </el-button>
124 131
 
132
+            <el-button
133
+              v-if="( this.hisPatientInfo.balance_accounts_type == 2  && this.hisPatientInfo.id > 0 && this.hisPatientInfo.in_hospital_status == 1 && this.hisPatientInfo.out_hospital_status == 0)"
134
+
135
+              size="small" @click="open(2)" type="primary"
136
+            >撤销明细
137
+            </el-button>
138
+
125 139
           </div>
126 140
 
127 141
         </div>
@@ -833,25 +847,27 @@ export default {
833 847
           }).catch(() => {
834 848
           })
835 849
         } else {
836
-          settle_accounts_type = 2
837
-          var that = this
838
-          this.$confirm('该操作会撤销此次入院后所有处方明细,是否继续操作?', '撤销明细', {
839
-            confirmButtonText: '确 定',
840
-            cancelButtonText: '取 消',
841
-            type: 'warning'
842
-          }).then(() => {
843 850
 
844
-            let params = {
845
-              'settle_accounts_type': settle_accounts_type,
846
-              'patient_id': that.hisPatientInfo.patient_id,
847
-              'his_patient_id': that.hisPatientInfo.id,
848
-              'record_time': that.record_date,
849
-              'order_id': that.order.id,
850
-              'admin_user_id': that.$store.getters.xt_user.user.id
851
-            }
852
-            axios.get('http://127.0.0.1:9532/zh/api/refunddetail', {
853
-              params: params
854
-            })
851
+          if (this.hisPatientInfo.balance_accounts_type != 2) {
852
+            settle_accounts_type = 2
853
+            var that = this
854
+            this.$confirm('该操作会撤销此次入院后所有处方明细,是否继续操作?', '撤销明细', {
855
+              confirmButtonText: '确 定',
856
+              cancelButtonText: '取 消',
857
+              type: 'warning'
858
+            }).then(() => {
859
+
860
+              let params = {
861
+                'settle_accounts_type': settle_accounts_type,
862
+                'patient_id': that.hisPatientInfo.patient_id,
863
+                'his_patient_id': that.hisPatientInfo.id,
864
+                'record_time': that.record_date,
865
+                'order_id': that.order.id,
866
+                'admin_user_id': that.$store.getters.xt_user.user.id
867
+              }
868
+              axios.get('http://127.0.0.1:9532/zh/api/refunddetail', {
869
+                params: params
870
+              })
855 871
                 .then(function(response) {
856 872
                   if (response.data.state == 0) {
857 873
                     that.$message.error(response.data.msg)
@@ -878,8 +894,45 @@ export default {
878 894
                 .catch(function(error) {
879 895
                 })
880 896
 
881
-          }).catch(() => {
882
-          })
897
+            }).catch(() => {
898
+            })
899
+
900
+          }else{
901
+            settle_accounts_type = 2
902
+            var that = this
903
+            this.$confirm('该操作会撤销此次入院后所有处方明细,是否继续操作?', '撤销明细', {
904
+              confirmButtonText: '确 定',
905
+              cancelButtonText: '取 消',
906
+              type: 'warning'
907
+            }).then(() => {
908
+              let params = {
909
+                'settle_accounts_type': settle_accounts_type,
910
+                'patient_id': that.hisPatientInfo.patient_id,
911
+                'his_patient_id': that.hisPatientInfo.id,
912
+                'record_time': that.record_date,
913
+                'admin_user_id': that.$store.getters.xt_user.user.id
914
+              }
915
+              refundDetail(params).then(response => {
916
+                if (response.data.state == 0) {
917
+                  this.loading = false
918
+                  this.$message.error(response.data.msg)
919
+                  return false
920
+                } else {
921
+                  that.$message.success('撤销明细成功')
922
+                  that.radio = 1
923
+                  that.getPatientList()
924
+                }
925
+              })
926
+
927
+
928
+
929
+            }).catch(() => {
930
+            })
931
+
932
+
933
+          }
934
+
935
+
883 936
 
884 937
         }
885 938
 

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

@@ -317,13 +317,13 @@
317 317
             this.form.pay_price = this.tmp_pay
318 318
             return
319 319
           }
320
-          if (parseFloat(this.form.tmp_decimal) > parseFloat(this.form.private_price)) {
321
-            // alert("押金不得大于自费金额")
322
-            this.$message.error("押金不得大于自费金额");
323
-            this.form.tmp_decimal = ""
324
-            this.form.pay_price = this.tmp_pay
325
-            return
326
-          }
320
+          // if (parseFloat(this.form.tmp_decimal) > parseFloat(this.form.private_price)) {
321
+          //   // alert("押金不得大于自费金额")
322
+          //   this.$message.error("押金不得大于自费金额");
323
+          //   this.form.tmp_decimal = ""
324
+          //   this.form.pay_price = this.tmp_pay
325
+          //   return
326
+          // }
327 327
           // this.form.private_price = parseFloat(this.form.tmp_decimal) + parseFloat(this.form.pay_price)
328 328
 
329 329
           this.form.pay_price = ((parseFloat(this.form.private_price) * 10000 - parseFloat(this.form.tmp_decimal) * 10000) / 10000).toFixed(2)
@@ -340,12 +340,12 @@
340 340
           } else {
341 341
             //储存临时付款
342 342
             this.tmp_pay = this.form.pay_price
343
-            if (parseFloat(this.form.tmp_decimal) > parseFloat(this.form.private_price)) {
344
-              this.form.tmp_decimal = 0
345
-              // alert("押金不得大于自费金额")
346
-              this.$message.error("押金不得大于自费金额");
347
-              return
348
-            }
343
+            // if (parseFloat(this.form.tmp_decimal) > parseFloat(this.form.private_price)) {
344
+            //   this.form.tmp_decimal = 0
345
+            //   // alert("押金不得大于自费金额")
346
+            //   this.$message.error("押金不得大于自费金额");
347
+            //   return
348
+            // }
349 349
             // this.form.private_price = parseFloat(this.form.tmp_decimal) + parseFloat(this.form.pay_price)
350 350
             this.tmp_pay = this.form.pay_price
351 351
             this.form.pay_price = ((parseFloat(this.form.private_price) * 10000 - parseFloat(this.form.tmp_decimal) * 10000) / 10000).toFixed(2)

+ 4 - 4
src/xt_pages/hospitalStation/components/deskPrescription.vue View File

@@ -2441,7 +2441,7 @@ export default {
2441 2441
                     if(arr.length > 0){
2442 2442
                       let objInfo = {};
2443 2443
                       arr.forEach((item, index) => {
2444
-                    
2444
+
2445 2445
                       let { id } = item.id;
2446 2446
                       if (!objInfo[id]) {
2447 2447
                           objInfo[id] = {
@@ -2504,7 +2504,7 @@ export default {
2504 2504
                      if(arr_one.length > 0){
2505 2505
                       let objInfo = {};
2506 2506
                       arr_one.forEach((item, index) => {
2507
-                     
2507
+
2508 2508
                       let { id } = item.id;
2509 2509
                       if (!objInfo[id]) {
2510 2510
                           objInfo[id] = {
@@ -3156,14 +3156,14 @@ export default {
3156 3156
       }
3157 3157
 
3158 3158
       if (this.curStatus == 1 && this.rightTab == 2) {
3159
-        this.$message.error('处方是药品,无法添加项目')
3159
+        this.$message.error('处方是药品,无法添加项目')
3160 3160
         this.teamList = []
3161 3161
         this.$refs.tables.clearSelection()
3162 3162
         return
3163 3163
       }
3164 3164
 
3165 3165
       if (this.curStatus == 2 && this.rightTab == 1) {
3166
-        this.$message.error('处方是项目,无法添加药品')
3166
+        this.$message.error('处方是项目,无法添加药品')
3167 3167
         this.curDrugs = []
3168 3168
         this.tempDrugs = []
3169 3169
         this.$refs.multipleTable.clearSelection()

+ 45 - 3
src/xt_pages/hospitalStation/components/inquiriesDetail.vue View File

@@ -10,6 +10,10 @@
10 10
     <div style="position: absolute;right:20px;z-index:99">
11 11
       <el-button v-if="activeName == 'first'" @click="open(1)" type="primary">打印</el-button>
12 12
       <el-button v-if="activeName == 'second'" @click="open(2)" type="primary">打印</el-button>
13
+
14
+      <el-button @click="open(3)" type="primary">打印清单</el-button>
15
+      <el-button @click="open(4)" type="primary">打印汇总</el-button>
16
+
13 17
     </div>
14 18
     <el-tabs v-model="activeName">
15 19
 
@@ -113,6 +117,25 @@
113 117
       <print v-if="activeName == 'first'" :paramsObj='paramsObj' :showBtn='true'></print>
114 118
       <recordPrint v-if="activeName == 'second'" :patientid="patientid" :showBtn='true'></recordPrint>
115 119
     </el-dialog>
120
+
121
+    <div >
122
+      <el-dialog
123
+        class="centerDialog"
124
+        width="900px"
125
+        title="打印"
126
+        :visible.sync="listVisible"  append-to-body>
127
+        <hospital-list-print :paramsObj='paramsObjTwo'></hospital-list-print>
128
+      </el-dialog>
129
+    </div>
130
+    <div >
131
+      <el-dialog
132
+        class="centerDialog"
133
+        width="900px"
134
+        title="打印"
135
+        :visible.sync="allListVisible"  append-to-body>
136
+        <hospital-all-list-print :paramsObj='paramsObjTwo'></hospital-all-list-print>
137
+      </el-dialog>
138
+    </div>
116 139
   </el-dialog>
117 140
 </div>
118 141
 </template>
@@ -120,7 +143,6 @@
120 143
 
121 144
 
122 145
 <script>
123
-  import { getDictionaryDataConfig} from "@/utils/data";
124 146
   import { getHisPrescriptionInfo } from '@/api/his/his'
125 147
   import NewPrescriptionTable from './newPrescriptionTable'
126 148
   import { uParseTime } from '@/utils/tools'
@@ -128,14 +150,19 @@
128 150
   import moment from 'moment';
129 151
   import print from '../print'
130 152
   import recordPrint from '../recordPrint'
153
+  import HospitalListPrint from '../pastQuiriesPrint/hospitalListPrint.vue'
154
+  import HospitalAllListPrint from '../pastQuiriesPrint/hospitalAllListPrint.vue'
131 155
 
132 156
   export default {
133
-    components: { NewPrescriptionTable,print,recordPrint },
157
+    components: { HospitalAllListPrint, HospitalListPrint, NewPrescriptionTable,print,recordPrint },
134 158
     data() {
135 159
       return {
160
+        listVisible:false,
161
+        allListVisible:false,
136 162
         visible: false,
137 163
         activeName: 'first',
138 164
         curPrescriptions: {},
165
+        paramsObjTwo:{},
139 166
         prescriptions: [],
140 167
         record_date: '',
141 168
         editableTabsValue: '处方1',
@@ -188,11 +215,26 @@
188 215
            this.innerVisible = true
189 216
           //  this.$router.push("/outpatientDoctorStation/print?record="+record_date+"&prescription_id="+prescription_id+"&ids="+ids+"&patient_id="+this.patientInfo.id)
190 217
 
191
-        }else if(index == 2){
218
+        } else if(index == 2){
192 219
           var record_date = this.format(this.case_history.sick_date);
193 220
           this.patientid = this.patientInfo.id;
194 221
           this.innerVisible = true
195 222
           // this.$router.push("/outpatientDoctorStation/recordPrint?record="+record_date+"&patient_id="+this.case_history.patient_id)
223
+        }else if(index == 3){
224
+          // var record_date = this.format(this.order.record_date);
225
+          this.patientid = this.patientInfo.id;
226
+          this.paramsObjTwo = {
227
+            record_date:this.order.record_date,
228
+            patient_id:this.patientid
229
+          }
230
+          this.listVisible = true
231
+        }else if(index == 4){
232
+          this.patientid = this.patientInfo.id;
233
+          this.paramsObjTwo = {
234
+            record_date:this.order.record_date,
235
+            patient_id:this.patientid
236
+          }
237
+          this.allListVisible = true
196 238
         }
197 239
       },
198 240
       getTimes(time,temp) {

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

@@ -104,6 +104,28 @@
104 104
             </el-form-item>
105 105
 
106 106
 
107
+          <el-form-item label="参保地:" prop="id_card_type">
108
+            <el-autocomplete
109
+              popper-class="my-autocomplete"
110
+              v-model="form.insuplc_admdvs"
111
+              :fetch-suggestions="querySearch"
112
+              placeholder="请输入内容"
113
+              @select="handleSelectTwo">
114
+              <i
115
+                class="el-icon-edit el-input__icon"
116
+                slot="suffix"
117
+                @click="handleIconClick">
118
+              </i>
119
+              <template slot-scope="{ item }">
120
+                <div class="name">{{ item.value }}</div>
121
+                <span class="addr">{{ item.address }}</span>
122
+              </template>
123
+            </el-autocomplete>
124
+          </el-form-item>
125
+
126
+
127
+
128
+
107 129
             <el-form-item label="读卡类型:" prop="id_card_type">
108 130
                 <el-select v-model="form.id_card_type" placeholder="请选择">
109 131
                     <el-option
@@ -212,6 +234,7 @@
212 234
           id: '',
213 235
           settlement_value: '',
214 236
           medical_insurance_card: '',
237
+          insuplc_admdvs:'',
215 238
           name: '',
216 239
           gender: '',
217 240
           certificates: '',
@@ -238,6 +261,384 @@
238 261
           value: 2,
239 262
           label: '身份证'
240 263
         }],
264
+        area:[
265
+          {id:110000,name:"北京市"},
266
+          {id:120000,name:"天津市"},
267
+          {id:130000,name:"河北省"},
268
+          {id:130100,name:"石家庄市"},
269
+          {id:130200,name:"唐山市"},
270
+          {id:130300,name:"秦皇岛市"},
271
+          {id:130400,name:"邯郸市"},
272
+          {id:130500,name:"邢台市"},
273
+          {id:130600,name:"保定市"},
274
+          {id:130700,name:"张家口市"},
275
+          {id:130800,name:"承德市"},
276
+          {id:130900,name:"沧州市"},
277
+          {id:131000,name:"廊坊市"},
278
+          {id:131100,name:"衡水市"},
279
+          {id:140000,name:"山西省"},
280
+          {id:140100,name:"太原市"},
281
+          {id:140200,name:"大同市"},
282
+          {id:140300,name:"阳泉市"},
283
+          {id:140400,name:"长治市"},
284
+          {id:140500,name:"晋城市"},
285
+          {id:140600,name:"朔州市"},
286
+          {id:140700,name:"晋中市"},
287
+          {id:140800,name:"运城市"},
288
+          {id:140900,name:"忻州市"},
289
+          {id:141000,name:"临汾市"},
290
+          {id:141100,name:"吕梁市"},
291
+          {id:150000,name:"内蒙古自治区"},
292
+          {id:150100,name:"呼和浩特市"},
293
+          {id:150200,name:"包头市"},
294
+          {id:150300,name:"乌海市"},
295
+          {id:150400,name:"赤峰市"},
296
+          {id:150500,name:"通辽市"},
297
+          {id:150600,name:"鄂尔多斯市"},
298
+          {id:150700,name:"呼伦贝尔市"},
299
+          {id:150800,name:"巴彦淖尔市"},
300
+          {id:150900,name:"乌兰察布市"},
301
+          {id:152200,name:"兴安盟"},
302
+          {id:152500,name:"锡林郭勒盟"},
303
+          {id:152900,name:"阿拉善盟"},
304
+          {id:210000,name:"辽宁省"},
305
+          {id:210100,name:"沈阳市"},
306
+          {id:210200,name:"大连市"},
307
+          {id:210300,name:"鞍山市"},
308
+          {id:210400,name:"抚顺市"},
309
+          {id:210500,name:"本溪市"},
310
+          {id:210600,name:"丹东市"},
311
+          {id:210700,name:"锦州市"},
312
+          {id:210800,name:"营口市"},
313
+          {id:210900,name:"阜新市"},
314
+          {id:211000,name:"辽阳市"},
315
+          {id:211100,name:"盘锦市"},
316
+          {id:211200,name:"铁岭市"},
317
+          {id:211300,name:"朝阳市"},
318
+          {id:211400,name:"葫芦岛市"},
319
+          {id:220000,name:"吉林省"},
320
+          {id:220100,name:"长春市"},
321
+          {id:220200,name:"吉林市"},
322
+          {id:220300,name:"四平市"},
323
+          {id:220400,name:"辽源市"},
324
+          {id:220500,name:"通化市"},
325
+          {id:220600,name:"白山市"},
326
+          {id:220700,name:"松原市"},
327
+          {id:220800,name:"白城市"},
328
+          {id:222400,name:"延边朝鲜族自治州"},
329
+          {id:230000,name:"黑龙江省"},
330
+          {id:230100,name:"哈尔滨市"},
331
+          {id:230200,name:"齐齐哈尔市"},
332
+          {id:230300,name:"鸡西市"},
333
+          {id:230400,name:"鹤岗市"},
334
+          {id:230500,name:"双鸭山市"},
335
+          {id:230600,name:"大庆市"},
336
+          {id:230700,name:"伊春市"},
337
+          {id:230800,name:"佳木斯市"},
338
+          {id:230900,name:"七台河市"},
339
+          {id:231000,name:"牡丹江市"},
340
+          {id:231100,name:"黑河市"},
341
+          {id:231200,name:"绥化市"},
342
+          {id:232700,name:"大兴安岭地区"},
343
+          {id:310000,name:"上海市"},
344
+          {id:320000,name:"江苏省"},
345
+          {id:320100,name:"南京市"},
346
+          {id:320200,name:"无锡市"},
347
+          {id:320300,name:"徐州市"},
348
+          {id:320400,name:"常州市"},
349
+          {id:320500,name:"苏州市"},
350
+          {id:320600,name:"南通市"},
351
+          {id:320700,name:"连云港市"},
352
+          {id:320800,name:"淮安市"},
353
+          {id:320900,name:"盐城市"},
354
+          {id:321000,name:"扬州市"},
355
+          {id:321100,name:"镇江市"},
356
+          {id:321200,name:"泰州市"},
357
+          {id:321300,name:"宿迁市"},
358
+          {id:330000,name:"浙江省"},
359
+          {id:330100,name:"杭州市"},
360
+          {id:330200,name:"宁波市"},
361
+          {id:330300,name:"温州市"},
362
+          {id:330400,name:"嘉兴市"},
363
+          {id:330500,name:"湖州市"},
364
+          {id:330600,name:"绍兴市"},
365
+          {id:330700,name:"金华市"},
366
+          {id:330800,name:"衢州市"},
367
+          {id:330900,name:"舟山市"},
368
+          {id:331000,name:"台州市"},
369
+          {id:331100,name:"丽水市"},
370
+          {id:340000,name:"安徽省"},
371
+          {id:340100,name:"合肥市"},
372
+          {id:340200,name:"芜湖市"},
373
+          {id:340300,name:"蚌埠市"},
374
+          {id:340400,name:"淮南市"},
375
+          {id:340500,name:"马鞍山市"},
376
+          {id:340600,name:"淮北市"},
377
+          {id:340700,name:"铜陵市"},
378
+          {id:340800,name:"安庆市"},
379
+          {id:341000,name:"黄山市"},
380
+          {id:341100,name:"滁州市"},
381
+          {id:341200,name:"阜阳市"},
382
+          {id:341300,name:"宿州市"},
383
+          {id:341500,name:"六安市"},
384
+          {id:341600,name:"亳州市"},
385
+          {id:341700,name:"池州市"},
386
+          {id:341800,name:"宣城市"},
387
+          {id:350000,name:"福建省"},
388
+          {id:350100,name:"福州市"},
389
+          {id:350200,name:"厦门市"},
390
+          {id:350300,name:"莆田市"},
391
+          {id:350400,name:"三明市"},
392
+          {id:350500,name:"泉州市"},
393
+          {id:350600,name:"漳州市"},
394
+          {id:350700,name:"南平市"},
395
+          {id:350800,name:"龙岩市"},
396
+          {id:350900,name:"宁德市"},
397
+          {id:360000,name:"江西省"},
398
+          {id:360100,name:"南昌市"},
399
+          {id:360200,name:"景德镇市"},
400
+          {id:360300,name:"萍乡市"},
401
+          {id:360400,name:"九江市"},
402
+          {id:360500,name:"新余市"},
403
+          {id:360600,name:"鹰潭市"},
404
+          {id:360700,name:"赣州市"},
405
+          {id:360800,name:"吉安市"},
406
+          {id:360900,name:"宜春市"},
407
+          {id:361000,name:"抚州市"},
408
+          {id:361100,name:"上饶市"},
409
+          {id:370000,name:"山东省"},
410
+          {id:370100,name:"济南市"},
411
+          {id:370200,name:"青岛市"},
412
+          {id:370300,name:"淄博市"},
413
+          {id:370400,name:"枣庄市"},
414
+          {id:370500,name:"东营市"},
415
+          {id:370600,name:"烟台市"},
416
+          {id:370700,name:"潍坊市"},
417
+          {id:370800,name:"济宁市"},
418
+          {id:370900,name:"泰安市"},
419
+          {id:371000,name:"威海市"},
420
+          {id:371100,name:"日照市"},
421
+          {id:371300,name:"临沂市"},
422
+          {id:371400,name:"德州市"},
423
+          {id:371500,name:"聊城市"},
424
+          {id:371600,name:"滨州市"},
425
+          {id:371700,name:"菏泽市"},
426
+          {id:410000,name:"河南省"},
427
+          {id:410100,name:"郑州市"},
428
+          {id:410200,name:"开封市"},
429
+          {id:410300,name:"洛阳市"},
430
+          {id:410400,name:"平顶山市"},
431
+          {id:410500,name:"安阳市"},
432
+          {id:410600,name:"鹤壁市"},
433
+          {id:410700,name:"新乡市"},
434
+          {id:410800,name:"焦作市"},
435
+          {id:410900,name:"濮阳市"},
436
+          {id:411000,name:"许昌市"},
437
+          {id:411100,name:"漯河市"},
438
+          {id:411200,name:"三门峡市"},
439
+          {id:411300,name:"南阳市"},
440
+          {id:411400,name:"商丘市"},
441
+          {id:411500,name:"信阳市"},
442
+          {id:411600,name:"周口市"},
443
+          {id:411700,name:"驻马店市"},
444
+          {id:420000,name:"湖北省"},
445
+          {id:420100,name:"武汉市"},
446
+          {id:420200,name:"黄石市"},
447
+          {id:420300,name:"十堰市"},
448
+          {id:420500,name:"宜昌市"},
449
+          {id:420600,name:"襄阳市"},
450
+          {id:420700,name:"鄂州市"},
451
+          {id:420800,name:"荆门市"},
452
+          {id:420900,name:"孝感市"},
453
+          {id:421000,name:"荆州市"},
454
+          {id:421100,name:"黄冈市"},
455
+          {id:421200,name:"咸宁市"},
456
+          {id:421300,name:"随州市"},
457
+          {id:422800,name:"恩施土家族苗族自治州"},
458
+          {id:430000,name:"湖南省"},
459
+          {id:430100,name:"长沙市"},
460
+          {id:430200,name:"株洲市"},
461
+          {id:430300,name:"湘潭市"},
462
+          {id:430400,name:"衡阳市"},
463
+          {id:430500,name:"邵阳市"},
464
+          {id:430600,name:"岳阳市"},
465
+          {id:430700,name:"常德市"},
466
+          {id:430800,name:"张家界市"},
467
+          {id:430900,name:"益阳市"},
468
+          {id:431000,name:"郴州市"},
469
+          {id:431100,name:"永州市"},
470
+          {id:431200,name:"怀化市"},
471
+          {id:431300,name:"娄底市"},
472
+          {id:433100,name:"湘西土家族苗族自治州"},
473
+          {id:440000,name:"广东省"},
474
+          {id:440100,name:"广州市"},
475
+          {id:440200,name:"韶关市"},
476
+          {id:440300,name:"深圳市"},
477
+          {id:440400,name:"珠海市"},
478
+          {id:440500,name:"汕头市"},
479
+          {id:440600,name:"佛山市"},
480
+          {id:440700,name:"江门市"},
481
+          {id:440800,name:"湛江市"},
482
+          {id:440900,name:"茂名市"},
483
+          {id:441200,name:"肇庆市"},
484
+          {id:441300,name:"惠州市"},
485
+          {id:441400,name:"梅州市"},
486
+          {id:441500,name:"汕尾市"},
487
+          {id:441600,name:"河源市"},
488
+          {id:441700,name:"阳江市"},
489
+          {id:441800,name:"清远市"},
490
+          {id:441900,name:"东莞市"},
491
+          {id:442000,name:"中山市"},
492
+          {id:445100,name:"潮州市"},
493
+          {id:445200,name:"揭阳市"},
494
+          {id:445300,name:"云浮市"},
495
+          {id:450000,name:"广西壮族自治区"},
496
+          {id:450100,name:"南宁市"},
497
+          {id:450200,name:"柳州市"},
498
+          {id:450300,name:"桂林市"},
499
+          {id:450400,name:"梧州市"},
500
+          {id:450500,name:"北海市"},
501
+          {id:450600,name:"防城港市"},
502
+          {id:450700,name:"钦州市"},
503
+          {id:450800,name:"贵港市"},
504
+          {id:450900,name:"玉林市"},
505
+          {id:451000,name:"百色市"},
506
+          {id:451100,name:"贺州市"},
507
+          {id:451200,name:"河池市"},
508
+          {id:451300,name:"来宾市"},
509
+          {id:451400,name:"崇左市"},
510
+          {id:460000,name:"海南省"},
511
+          {id:460100,name:"海口市"},
512
+          {id:460200,name:"三亚市"},
513
+          {id:460300,name:"三沙市"},
514
+          {id:460400,name:"儋州市"},
515
+          {id:500000,name:"重庆市"},
516
+          {id:510000,name:"四川省"},
517
+          {id:510100,name:"成都市"},
518
+          {id:510300,name:"自贡市"},
519
+          {id:510400,name:"攀枝花市"},
520
+          {id:510500,name:"泸州市"},
521
+          {id:510600,name:"德阳市"},
522
+          {id:510700,name:"绵阳市"},
523
+          {id:510800,name:"广元市"},
524
+          {id:510900,name:"遂宁市"},
525
+          {id:511000,name:"内江市"},
526
+          {id:511100,name:"乐山市"},
527
+          {id:511300,name:"南充市"},
528
+          {id:511400,name:"眉山市"},
529
+          {id:511500,name:"宜宾市"},
530
+          {id:511600,name:"广安市"},
531
+          {id:511700,name:"达州市"},
532
+          {id:511800,name:"雅安市"},
533
+          {id:511900,name:"巴中市"},
534
+          {id:512000,name:"资阳市"},
535
+          {id:513200,name:"阿坝藏族羌族自治州"},
536
+          {id:513300,name:"甘孜藏族自治州"},
537
+          {id:513400,name:"凉山彝族自治州"},
538
+          {id:520000,name:"贵州省"},
539
+          {id:520100,name:"贵阳市"},
540
+          {id:520200,name:"六盘水市"},
541
+          {id:520300,name:"遵义市"},
542
+          {id:520400,name:"安顺市"},
543
+          {id:520500,name:"毕节市"},
544
+          {id:520600,name:"铜仁市"},
545
+          {id:522300,name:"黔西南布依族苗族自治州"},
546
+          {id:522600,name:"黔东南苗族侗族自治州"},
547
+          {id:522700,name:"黔南布依族苗族自治州"},
548
+          {id:530000,name:"云南省"},
549
+          {id:530100,name:"昆明市"},
550
+          {id:530300,name:"曲靖市"},
551
+          {id:530400,name:"玉溪市"},
552
+          {id:530500,name:"保山市"},
553
+          {id:530600,name:"昭通市"},
554
+          {id:530700,name:"丽江市"},
555
+          {id:530800,name:"普洱市"},
556
+          {id:530900,name:"临沧市"},
557
+          {id:532300,name:"楚雄彝族自治州"},
558
+          {id:532500,name:"红河哈尼族彝族自治州"},
559
+          {id:532600,name:"文山壮族苗族自治州"},
560
+          {id:532800,name:"西双版纳傣族自治州"},
561
+          {id:532900,name:"大理白族自治州"},
562
+          {id:533100,name:"德宏傣族景颇族自治州"},
563
+          {id:533300,name:"怒江傈僳族自治州"},
564
+          {id:533400,name:"迪庆藏族自治州"},
565
+          {id:540000,name:"西藏自治区"},
566
+          {id:540100,name:"拉萨市"},
567
+          {id:540200,name:"日喀则市"},
568
+          {id:540300,name:"昌都市"},
569
+          {id:540400,name:"林芝市"},
570
+          {id:540500,name:"山南市"},
571
+          {id:540600,name:"那曲市"},
572
+          {id:542500,name:"阿里地区"},
573
+          {id:610000,name:"陕西省"},
574
+          {id:610100,name:"西安市"},
575
+          {id:610200,name:"铜川市"},
576
+          {id:610300,name:"宝鸡市"},
577
+          {id:610400,name:"咸阳市"},
578
+          {id:610500,name:"渭南市"},
579
+          {id:610600,name:"延安市"},
580
+          {id:610700,name:"汉中市"},
581
+          {id:610800,name:"榆林市"},
582
+          {id:610900,name:"安康市"},
583
+          {id:611000,name:"商洛市"},
584
+          {id:620000,name:"甘肃省"},
585
+          {id:620100,name:"兰州市"},
586
+          {id:620200,name:"嘉峪关市"},
587
+          {id:620300,name:"金昌市"},
588
+          {id:620400,name:"白银市"},
589
+          {id:620500,name:"天水市"},
590
+          {id:620600,name:"武威市"},
591
+          {id:620700,name:"张掖市"},
592
+          {id:620800,name:"平凉市"},
593
+          {id:620900,name:"酒泉市"},
594
+          {id:621000,name:"庆阳市"},
595
+          {id:621100,name:"定西市"},
596
+          {id:621200,name:"陇南市"},
597
+          {id:622900,name:"临夏回族自治州"},
598
+          {id:623000,name:"甘南藏族自治州"},
599
+          {id:630000,name:"青海省"},
600
+          {id:630100,name:"西宁市"},
601
+          {id:630200,name:"海东市"},
602
+          {id:632200,name:"海北藏族自治州"},
603
+          {id:632300,name:"黄南藏族自治州"},
604
+          {id:632500,name:"海南藏族自治州"},
605
+          {id:632600,name:"果洛藏族自治州"},
606
+          {id:632700,name:"玉树藏族自治州"},
607
+          {id:632800,name:"海西蒙古族藏族自治州"},
608
+          {id:640000,name:"宁夏回族自治区"},
609
+          {id:640100,name:"银川市"},
610
+          {id:640200,name:"石嘴山市"},
611
+          {id:640300,name:"吴忠市"},
612
+          {id:640400,name:"固原市"},
613
+          {id:640500,name:"中卫市"},
614
+          {id:650000,name:"新疆维吾尔自治区"},
615
+          {id:650100,name:"乌鲁木齐市"},
616
+          {id:650200,name:"克拉玛依市"},
617
+          {id:650400,name:"吐鲁番市"},
618
+          {id:650500,name:"哈密市"},
619
+          {id:652300,name:"昌吉回族自治州"},
620
+          {id:652700,name:"博尔塔拉蒙古自治州"},
621
+          {id:652800,name:"巴音郭楞蒙古自治州"},
622
+          {id:652900,name:"阿克苏地区"},
623
+          {id:653000,name:"克孜勒苏柯尔克孜自治州"},
624
+          {id:653100,name:"喀什地区"},
625
+          {id:653200,name:"和田地区"},
626
+          {id:654000,name:"伊犁哈萨克自治州"},
627
+          {id:654200,name:"塔城地区"},
628
+          {id:654300,name:"阿勒泰地区"},
629
+          {id:659001,name:"石河子市"},
630
+          {id:659002,name:"阿拉尔市"},
631
+          {id:659003,name:"图木舒克市"},
632
+          {id:659004,name:"五家渠市"},
633
+          {id:659005,name:"北屯市"},
634
+          {id:659006,name:"铁门关市"},
635
+          {id:659007,name:"双河市"},
636
+          {id:659008,name:"可克达拉市"},
637
+          {id:659009,name:"昆玉市"},
638
+          {id:710000,name:"台湾省"},
639
+          {id:810000,name:"香港特别行政区"},
640
+          {id:820000,name:"澳门特别行政区"}
641
+        ],
241 642
         settlement: [
242 643
           {value: 1, label: '医保'},
243 644
           {value: 2, label: '自费'},
@@ -381,6 +782,24 @@
381 782
       diagnoses: Array,
382 783
     },
383 784
     methods: {
785
+      handleIconClick(){
786
+
787
+
788
+      },
789
+      handleSelectTwo(){
790
+
791
+
792
+      },  createFilter(queryString) {
793
+        return (restaurant) => {
794
+          return (restaurant.name.indexOf(queryString) === 0 || restaurant.id.indexOf(queryString) === 0);
795
+        };
796
+      },
797
+      querySearch(queryString, cb) {
798
+        var restaurants = this.area;
799
+        var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
800
+        // 调用 callback 返回建议列表的数据
801
+        cb(results);
802
+      },
384 803
       changeDoctor() {
385 804
         for (let i = 0; i < this.doctors.length; i++) {
386 805
           if (this.doctors[i].admin_user_id == this.form.doctor) {

+ 462 - 0
src/xt_pages/hospitalStation/hospitalBatchStatementPrint.vue View File

@@ -0,0 +1,462 @@
1
+<template>
2
+  <div>
3
+    <template>
4
+      <el-button
5
+        style="position:fixed;right:25px;z-index:999"
6
+        :loading="loading"
7
+        size="small"
8
+        icon="el-icon-printer"
9
+        @click="printThisPage"
10
+        type="primary"
11
+      >打印
12
+      </el-button
13
+      >
14
+    </template>
15
+
16
+    <div class='dialysisPage' style="padding-top:40px;" v-if="this.$store.getters.xt_user.org_id == 10215 || this.$store.getters.xt_user.org_id == 0">
17
+      <hospital-batch-print :infos="infos"></hospital-batch-print>
18
+    </div>
19
+  </div>
20
+</template>
21
+
22
+<script>
23
+import { uParseTime } from '@/utils/tools'
24
+import axios from 'axios'
25
+import HospitalBatchPrint from './batchStatementTemplate/hospitalBatchPrint.vue'
26
+
27
+export default {
28
+  name: 'hospitalBatchStatementPrint',
29
+  components: {
30
+    HospitalBatchPrint,
31
+  },
32
+  props: {
33
+    paramsObj: Object
34
+  },
35
+  data() {
36
+    return {
37
+      record_date: '',
38
+      patientTableData: [],
39
+      advicePrint: [],
40
+      hisPatient: {},
41
+      patient: {},
42
+      search_input: '',
43
+      loading: false,
44
+      patient_id: 0,
45
+      prescription_id: 0,
46
+      ids: '',
47
+      info: null,
48
+      org_id: '',
49
+      list:[],
50
+      infos:[],
51
+    }
52
+  },
53
+  methods: {
54
+    getType(med_chrgitm_type) {
55
+      switch (med_chrgitm_type) {
56
+        case '01':
57
+          return '床位费'
58
+          break
59
+        case '02':
60
+          return '诊察费'
61
+
62
+          break
63
+        case '03':
64
+          return '检查费'
65
+
66
+          break
67
+        case '04':
68
+          return '化验费'
69
+          break
70
+        case '05':
71
+          return '治疗费'
72
+
73
+          break
74
+        case '06':
75
+          return '手术费'
76
+
77
+          break
78
+        case '07':
79
+          return '护理费'
80
+
81
+          break
82
+        case '08':
83
+          return '材料费'
84
+
85
+          break
86
+        case '09':
87
+          return '西药费'
88
+
89
+          break
90
+        case '10':
91
+          return '中药饮片费'
92
+
93
+          break
94
+        case '11':
95
+          return '中成药费'
96
+
97
+          break
98
+        case '12':
99
+          return '一般诊疗费'
100
+
101
+          break
102
+        case '13':
103
+          return '挂号费'
104
+
105
+          break
106
+        case '14':
107
+          return '其他费'
108
+
109
+          break
110
+
111
+      }
112
+
113
+    },
114
+    printThisPage() {
115
+      var ptime = Math.round(new Date().getTime() / 1000)
116
+      this.print_time = uParseTime(ptime, '{y}-{m}-{d} {h}:{i}')
117
+
118
+      if (this.org_id == 10265) {
119
+
120
+        const style =
121
+          '@media print {.printTitle{font-size: 22px;text-align: center;font-weight: bold;}.infoMain{display: flex;flex-wrap: wrap;padding:0 10px;margin-top:10px;}.infoMain .infoP{width: 33%;}.chargeBox{border: 1px solid #000;}.chargeUl{display:flex;justify-content: space-between;text-align: center;}.chargeUl p{line-height: 1px;}.chargeP{line-height: 1px;padding-bottom:16px;}.moneyBox{display: flex;justify-content: space-between;padding: 0 10px;background: #eeeeee;-webkit-print-color-adjust:exact;-moz-print-color-adjust:exact;-ms-print-color-adjust:exact;print-color-adjust:exact;height: 40px;align-items: center;border:1px solid #000; border-top:none}.actionBar{display: flex;justify-content: space-between; line-height: 24px;padding:0 10px;}.actionBar div{width:150px;}}';
122
+        const style1 = "@media print{#prescription-print{font-size:14px;}.title{text-align: center;font-size: 22px;font-weight: bold;}.row{display: flex;justify-content: space-between;}.under_line{border-bottom: 1px solid #999;width: 95%;text-align: center;margin-left: 2px;display: inline-block;}.inline_block{display: inline-block;}.print_page_main_content .proj_table {width: 100%;border: 1px solid;border-collapse: collapse;padding: 2px;}.print_page_main_content .proj_table tbody tr td {border: 1px solid;font-size: 14px;padding: 5px 8px;line-height: 30px;}.print_page_main_content .proj_table .inside_table {width: 100%;border: hidden; /* 解决边框冲突 */border-collapse: collapse;}.print_page_main_content .proj_table .inside_table tr td {border: 1px solid;text-align: center;font-size: 14px;padding: 6px 5px;line-height: 16px;}}";
123
+        printJS({
124
+          printable: "prescription-print",
125
+          type: "html",
126
+          style: style1,
127
+          scanStyles: false
128
+        });
129
+
130
+      } else {
131
+
132
+        const style =
133
+          '@media print {.statementTitle{font-size: 28px;text-align: center;font-weight: bold;margin-bottom: 10px;}.statementTable{width: 100%;text-align: center;border-collapse: collapse;line-height: 40px;font-size: 16px;border-color: #000;}}'
134
+        printJS({
135
+          printable: 'statement-print',
136
+          type: 'html',
137
+          style: style,
138
+          scanStyles: false
139
+        })
140
+
141
+      }
142
+
143
+      // if (this.org_template_info.template_id == 1) {
144
+      //   printJS({
145
+      //     printable: "dialysis-print-box",
146
+      //     type: "html",
147
+      //     style: style,
148
+      //     scanStyles: false
149
+      //   });
150
+      // }
151
+    },
152
+    getJiaTotal(items) {
153
+      console.log(items)
154
+      let total = 0
155
+      for (let i = 0; i < items.length; i++) {
156
+        if (items[i].chrgitm_lv == "01") {
157
+          total = parseFloat(total) + (parseFloat(items[i].cnt) * parseFloat(items[i].pric))
158
+
159
+        }
160
+      }
161
+      return total.toFixed(2)
162
+    },
163
+    getYiTotal(items) {
164
+      let total = 0
165
+      for (let i = 0; i < items.length; i++) {
166
+        if (items[i].chrgitm_lv == "02") {
167
+          total = parseFloat(total) + (parseFloat(items[i].cnt) * parseFloat(items[i].pric))
168
+
169
+          // total = Number(total) + Number((parseFloat(items[i].count) * parseFloat(items[i].price)).toFixed(2))
170
+        }
171
+      }
172
+      return total.toFixed(2)
173
+    },
174
+    getBingTotal(items) {
175
+
176
+      let total = 0
177
+      for (let i = 0; i < items.length; i++) {
178
+        if (items[i].chrgitm_lv == "03") {
179
+          total = parseFloat(total) + (parseFloat(items[i].cnt) * parseFloat(items[i].pric))
180
+
181
+          // total = Number(total) + Number((parseFloat(items[i].count) * parseFloat(items[i].price)).toFixed(2))
182
+        }
183
+      }
184
+      return total.toFixed(2)
185
+    },
186
+    getInfo(order_ids) {
187
+      var that = this
188
+      axios.get('http://127.0.0.1:9532/api/settle/query/batch', {
189
+        params: {
190
+          order_ids: order_ids,
191
+          admin_user_id: this.$store.getters.xt_user.user.id
192
+        }
193
+      })
194
+        .then(function(response) {
195
+          if (response.data.state == 0) {
196
+            this.$message.error(response.data.msg)
197
+            return false
198
+          } else {
199
+            let infos = []
200
+            for(var i  = 0; i < response.data.data.infos; i++){
201
+              var info = response.data.data.infos[i]
202
+              that.info['patient'] = info.patient
203
+              that.info['diagnosis'] = info.diagnosis
204
+              that.info['p_admin'] = info.printor_admin
205
+              that.info['charge_admin'] = info.charge_admin
206
+              that.info['fixmedins_name'] = info.org_name
207
+              that.info['fixmedins_code'] = info.org_code
208
+              that.info['order'] = info.order
209
+              that.info['date'] = info.date
210
+              that.info['number'] = info.number
211
+              that.info['order_infos'] = info.order_infos
212
+              that.info['diagnosis'] = info.diagnosis
213
+              that.info['dia_config'] = info.dia_config
214
+              that.info['doctor_info'] = info.doctor_info
215
+              that.info['bed_cost_total'] = info.bedCostTotal
216
+              that.info['bed_cost_self_total'] = info.bedCostSelfTotal
217
+              that.info['bed_cost_part_self_total'] = info.bedCostPartSelfTotal
218
+              that.info['operation_cost_total'] = info.operationCostTotal
219
+              that.info['operation_cost_self_total'] = info.operationCostSelfTotal
220
+              that.info['operation_cost_part_self_total'] = info.operationCostPartSelfTotal
221
+              that.info['other_cost_total'] = info.otherCostTotal
222
+              that.info['other_cost_self_total'] = info.otherCostSelfTotal
223
+              that.info['other_cost_part_self_total'] = info.otherCostPartSelfTotal
224
+              that.info['material_cost_total'] = info.materialCostTotal
225
+              that.info['material_cost_self_total'] = info.materialCostSelfTotal
226
+              that.info['material_cost_part_self_total'] = info.materialCostPartSelfTotal
227
+              that.info['western_medicine_cost_total'] = info.westernMedicineCostTotal
228
+              that.info['western_medicine_cost_self_total'] = info.westernMedicineCostSelfTotal
229
+              that.info['western_medicine_cost_part_self_total'] = info.westernMedicineCostPartSelfTotal
230
+              that.info['chinese_traditional_medicine_cost_total'] = info.chineseTraditionalMedicineCostTotal
231
+              that.info['chinese_traditional_medicine_cost_self_total'] = info.chineseTraditionalMedicineCostSelfTotal
232
+              that.info['chinese_traditional_medicine_cost_part_self_total'] = info.chineseTraditionalMedicineCostPartSelfTotal
233
+              that.info['check_cost_total'] = info.checkCostTotal
234
+              that.info['check_cost_self_total'] = info.checkCostSelfTotal
235
+              that.info['check_cost_part_self_total'] = info.checkCostPartSelfTotal
236
+              that.info['laboratory_cost_total'] = info.laboratoryCostTotal
237
+              that.info['laboratory_cost_self_total'] = info.laboratoryCostSelfTotal
238
+              that.info['laboratory_cost_part_self_total'] = info.laboratoryCostPartSelfTotal
239
+              that.info['treat_cost_total'] = info.treatCostTotal
240
+              that.info['treat_cost_self_total'] = info.treatCostSelfTotal
241
+              that.info['treat_cost_part_self_total'] = info.treatCostPartSelfTotal
242
+              that.info['date'] = info.date
243
+              that.info['number'] = info.number
244
+              that.info['order_infos'] = info.order_infos
245
+              that.info['diagnosis'] = info.diagnosis
246
+              that.info['his'] = info.his_hospital
247
+              infos.push(that.info)
248
+            }
249
+            that.infos = infos
250
+
251
+          }
252
+        })
253
+        .catch(function(error) {
254
+        })
255
+    }
256
+    },
257
+  created() {
258
+    this.getInfo(this.paramsObj.order_ids)
259
+    this.org_id = this.$store.getters.xt_user.org_id
260
+  },
261
+  watch: {
262
+    paramsObj: {//深度监听,可监听到对象、数组的变化
263
+      handler(val, oldVal) {
264
+        this.paramsObj = val
265
+        this.getInfo(this.paramsObj.order_ids)
266
+
267
+      },
268
+      deep: true
269
+    }
270
+  }
271
+
272
+}
273
+</script>
274
+
275
+<style>
276
+.dialysis-print-order {
277
+  width: 960px;
278
+  margin: 0 auto;
279
+}
280
+
281
+.dialysis-print-order .order-yy-name {
282
+  margin: auto;
283
+  text-align: center;
284
+  font-size: 20px;
285
+  letter-spacing: 5px;
286
+}
287
+
288
+.dialysis-print-order .order-title {
289
+  margin: auto;
290
+  font-weight: 600;
291
+  text-align: center;
292
+  font-size: 22px;
293
+  padding: 10px;
294
+}
295
+
296
+.dialysis-print-order .table-box {
297
+  width: 100%;
298
+  line-height: 23px;
299
+  font-size: 14px;
300
+}
301
+
302
+.dialysis-print-order .print-table {
303
+  width: 100%;
304
+  text-align: center;
305
+  border-collapse: collapse;
306
+  line-height: 40px;
307
+  font-size: 14px;
308
+  border-color: #000;
309
+}
310
+
311
+.dialysis-print-order .print-table-no {
312
+  width: 100%;
313
+  text-align: center;
314
+  border-collapse: collapse;
315
+  font-size: 14px;
316
+}
317
+
318
+.dialysis-print-order .under-line {
319
+  border-bottom: 1px solid #999;
320
+  width: 95%;
321
+  text-align: center;
322
+  margin-left: 2px;
323
+}
324
+
325
+.dialysis-print-order .title-box {
326
+  text-align: center;
327
+  font-size: 16px;
328
+}
329
+
330
+.dialysis-print-order .radio-lebel-box {
331
+  font-weight: 400;
332
+  cursor: pointer;
333
+}
334
+
335
+.dialysis-print-order .radio-no {
336
+  opacity: 0;
337
+  outline: none;
338
+  position: absolute;
339
+  margin: 0;
340
+  width: 0;
341
+  height: 0;
342
+  z-index: -1;
343
+}
344
+
345
+.dialysis-print-order .radio-inner {
346
+  white-space: nowrap;
347
+  cursor: pointer;
348
+  outline: none;
349
+  display: inline-block;
350
+  line-height: 1;
351
+  position: relative;
352
+  vertical-align: middle;
353
+}
354
+
355
+.dialysis-print-order .radio-fang {
356
+  display: inline-block;
357
+  position: relative;
358
+  border: 1px solid #000;
359
+  box-sizing: border-box;
360
+  width: 14px;
361
+  height: 14px;
362
+  background-color: #fff;
363
+  z-index: 1;
364
+  transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),
365
+  background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46);
366
+}
367
+
368
+.dialysis-print-order .is-checked-radio::after {
369
+  content: "√";
370
+  font-size: 15px;
371
+}
372
+
373
+.dialysis-print-order .print-table-no tr td {
374
+  padding: 8px 5px;
375
+  line-height: 25px;
376
+}
377
+
378
+.dialysis-print-order .print-table tr td {
379
+  padding: 1px 1px;
380
+  /*line-height: 25px;*/
381
+}
382
+
383
+.es-img {
384
+  height: 30px;
385
+}
386
+
387
+.advice-name {
388
+  text-align: left;
389
+}
390
+
391
+.advice-children {
392
+  display: flex;
393
+}
394
+
395
+.title-box-pro {
396
+  border: 0 #fff;
397
+  line-height: 25px;
398
+  height: 25px;
399
+  text-align: left;
400
+  padding-left: 10px !important;
401
+}
402
+
403
+.title-box-pro-tr {
404
+  border: 0 #fff;
405
+}
406
+
407
+.text-align-left {
408
+  text-align: left !important;
409
+  padding-left: 10px !important;
410
+  font-size: 14px !important;
411
+  line-height: 25px;
412
+}
413
+
414
+.print-table-tr-new td {
415
+  line-height: 20px !important;
416
+}
417
+
418
+.border-top-solid {
419
+  border: solid 1px #000;
420
+}
421
+
422
+.print-template-two tr {
423
+  line-height: 30px;
424
+}
425
+
426
+.table-box1 {
427
+  border: 1px solid #000;
428
+  width: 100%;
429
+  line-height: 30px;
430
+  font-size: 14px;
431
+  border-collapse: collapse;
432
+}
433
+
434
+.table-box1 tr {
435
+  border-bottom: 1px solid #000;
436
+}
437
+</style>
438
+
439
+<style lang="scss">
440
+
441
+.newContainer {
442
+
443
+.dialysisPage::-webkit-scrollbar {
444
+  height: 15px;
445
+}
446
+
447
+.el-date-editor {
448
+
449
+.el-input__inner {
450
+  padding-right: 0px;
451
+}
452
+
453
+}
454
+.el-table td, .el-table th {
455
+  text-align: center;
456
+}
457
+
458
+}
459
+.newContainer::-webkit-scrollbar {
460
+  height: 15px !important;
461
+}
462
+</style>

+ 647 - 0
src/xt_pages/hospitalStation/inHospitalHistory.vue View File

@@ -0,0 +1,647 @@
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
+        <!-- <el-input style="width: 180px;" v-model.trim="search_input" class="filter-item"/> -->
9
+        <el-autocomplete
10
+          style="margin:16px 5px"
11
+          popper-class="my-autocomplete"
12
+          v-model.trim="search_input"
13
+          :fetch-suggestions="querySearchAsync"
14
+          :trigger-on-focus="false"
15
+          placeholder="病人名字或者透析号"
16
+          @select="handleSelect"
17
+        >
18
+          <i class="el-icon-search el-input__icon" slot="suffix"> </i>
19
+          <template slot-scope="{ item }">
20
+            <div class="name">{{ item.name }}</div>
21
+          </template>
22
+        </el-autocomplete>
23
+        <el-button style="margin-right:10px;" class="filter-item" type="primary" icon="el-icon-search"
24
+                   @click="searchAction">搜索
25
+        </el-button>
26
+
27
+        <el-date-picker type="datetime" format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm"
28
+                        placeholder="选择时间" v-model="start_time" style="width:200px"
29
+                        @change="changeStart"
30
+        >
31
+        </el-date-picker>
32
+        -
33
+        <el-date-picker type="datetime" format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm"
34
+                        placeholder="选择时间" v-model="end_time" style="width:200px"
35
+                        @change="changeEnd"
36
+        >
37
+        </el-date-picker>
38
+
39
+      </div>
40
+      <el-table :data="tableData" border  :row-style="{ color: '#303133' }"
41
+                :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
42
+                highlight-current-row>
43
+        <el-table-column align="center" type="index" label="序号" width="60">
44
+        </el-table-column>
45
+        <el-table-column align="center" prop="dialysis_no" label="姓名" width="80">
46
+          <template slot-scope="scope">{{scope.row.name }}</template>
47
+        </el-table-column>
48
+        <el-table-column align="center" prop="name" label="证件号" width='180'>
49
+          <template slot-scope="scope">{{ scope.row.id_card_no }}</template>
50
+        </el-table-column>
51
+        <el-table-column align="center" prop="name" label="就诊号" width="80">
52
+          <template slot-scope="scope">
53
+            {{scope.row.number}}
54
+          </template>
55
+        </el-table-column>
56
+        <el-table-column align="center" prop="name" label="入院科室" width="80">
57
+          <template slot-scope="scope">{{getDepartMent(scope.row.departments)}}</template>
58
+        </el-table-column>
59
+        <el-table-column align="center" prop="name" label="入院时间" width="100">
60
+          <template slot-scope="scope">{{scope.row.in_hosptial_time}}</template>
61
+        </el-table-column>
62
+        <el-table-column align="center" prop="name" label="出院时间" width="100">
63
+          <template slot-scope="scope">{{scope.row.out_hosptial_time}}</template>
64
+        </el-table-column>
65
+        <el-table-column align="center" prop="name" label="疾病类型" width="100">
66
+          <template slot-scope="scope">{{GetSickType(scope.row.sick_type)}}</template>
67
+        </el-table-column>
68
+        <el-table-column align="center" prop="name" label="诊断" width="100">
69
+          <template slot-scope="scope">{{GetDiagnosisName(parseInt(scope.row.diagnosis))}}</template>
70
+        </el-table-column>
71
+        <el-table-column align="center" prop="name" label="医疗类别" width="100">
72
+          <template slot-scope="scope">
73
+            <div v-if="scope.row.med_type == 11">普通住院</div>
74
+            <div v-if="scope.row.med_type == 14">门诊特殊病</div>
75
+          </template>
76
+        </el-table-column>
77
+
78
+        <el-table-column align="center" prop="name" label="结算类型" width="70">
79
+          <template slot-scope="scope">{{getBanlance(scope.row.balance_accounts_type) }}</template>
80
+        </el-table-column>
81
+
82
+
83
+
84
+        <el-table-column align="center" prop="name" label="医生" width="80">
85
+          <template slot-scope="scope">{{getDoctor(scope.row.doctor) }}</template>
86
+        </el-table-column>
87
+        <el-table-column align="center" prop="name" label="状态" width="70">
88
+          <template slot-scope="scope">
89
+            <div v-if="scope.row.in_hospital_status == 1 && scope.row.out_hospital_status == 0">{{"在院"}}</div>
90
+            <div v-if="scope.row.in_hospital_status == 1 && scope.row.out_hospital_status == 1">{{"已出院"}}</div>
91
+          </template>
92
+        </el-table-column>
93
+<!--        <el-table-column align="center" prop="name" label="操作" width="180">-->
94
+<!--          <template slot-scope="scope">-->
95
+<!--            <el-button size="mini" type="primary" v-if="scope.row.status == 1"-->
96
+<!--                       @click="toReturnPatient(scope.row)">退号-->
97
+<!--            </el-button>-->
98
+<!--          </template>-->
99
+<!--        </el-table-column>-->
100
+      </el-table>
101
+
102
+      <el-pagination
103
+        @size-change="handleSizeChange"
104
+        @current-change="handleCurrentChange"
105
+        :page-sizes="[10, 50, 100]"
106
+        :page-size="10"
107
+        background
108
+        style="margin-top:20px;float: right"
109
+        layout="total, sizes, prev, pager, next, jumper"
110
+        :total="total"
111
+      >
112
+      </el-pagination>
113
+
114
+    </div>
115
+  </div>
116
+</template>
117
+
118
+<script>
119
+const moment = require('moment')
120
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
121
+import {getInHospitalHistory,getInitData} from '@/api/his/his'
122
+import { uParseTime } from '@/utils/tools'
123
+import { getDictionaryDataConfig } from '@/utils/data'
124
+import axios from 'axios'
125
+export default {
126
+  components: {
127
+    BreadCrumb
128
+  },
129
+  data() {
130
+    return {
131
+      crumbs: [
132
+        { path: false, name: '门诊挂号' },
133
+        { path: false, name: '挂号历史' }
134
+      ],
135
+      register_type: 0,
136
+      search_input: '',
137
+      value1: '',
138
+      tableData: [],
139
+      register: [
140
+        { value: 0, label: '全部' },
141
+        { value: 1, label: '普通' },
142
+        { value: 2, label: '主治' },
143
+        { value: 3, label: '主任' },
144
+        { value: 4, label: '免收诊金' },
145
+        { value: 5, label: '专家' }
146
+      ],
147
+      start_time: moment().format('YYYY-MM-DD HH:mm'),
148
+      end_time: moment().format('YYYY-MM-DD HH:mm'),
149
+      limit: 10,
150
+      page: 1,
151
+      total: 0,
152
+      departMent: [],
153
+      doctorList: [],
154
+      medicalCare: [{
155
+        id: 1,
156
+        name: '职工基本医疗保险'
157
+      }, {
158
+        id: 2,
159
+        name: '公务员医疗补助'
160
+      }, {
161
+        id: 3,
162
+        name: '大额医疗费用补助'
163
+      }, {
164
+        id: 4,
165
+        name: '离休人员医疗'
166
+      }, {
167
+        id: 5,
168
+        name: '城乡居民基本医疗保险'
169
+      }, {
170
+        id: 6,
171
+        name: '城乡居民大病医疗保险'
172
+      },
173
+        {
174
+          id: 7,
175
+          name: '生育保险'
176
+        }],
177
+      certificates: [{
178
+        value: 1,
179
+        label: '内地身份证'
180
+      }, {
181
+        value: 2,
182
+        label: '社保卡'
183
+      }, {
184
+        value: 3,
185
+        label: '护照'
186
+      }, {
187
+        value: 4,
188
+        label: '军官证'
189
+      }, {
190
+        value: 5,
191
+        label: '台胞证'
192
+      }, {
193
+        value: 6,
194
+        label: '港澳地区身份证'
195
+      }],
196
+      settlement:
197
+        [
198
+          { value: 1, label: '医保' },
199
+          { value: 2, label: '自费' },
200
+          { value: 3, label: '公费' },
201
+          { value: 4, label: '农保' },
202
+          { value: 5, label: '会员' },
203
+          { value: 6, label: '职工' },
204
+          { value: 7, label: '合同' },
205
+          {value: 8, label: '医保自费'},
206
+
207
+        ],
208
+      // medicalCare: [{
209
+      //   value: 1,
210
+      //   label: '职工基本医疗保险'
211
+      //   }, {
212
+      //   value: 2,
213
+      //   label: "公务员医疗补助"
214
+      //   },{
215
+      //   value: 3,
216
+      //   label: "大额医疗费用补助"
217
+      //   },{
218
+      //   value: 4,
219
+      //   label: "离休人员医疗"
220
+      //   },{
221
+      //   value: 5,
222
+      //   label: "城乡居民基本医疗保险"
223
+      //   },{
224
+      //   value: 6,
225
+      //   label: "城乡居民大病医疗保险"
226
+      //   },
227
+      //   {
228
+      //   value: 7,
229
+      //   label: "生育保险"
230
+      // }],
231
+      newRegister: [{
232
+        value: 1,
233
+        label: '普通'
234
+      }, {
235
+        value: 2,
236
+        label: '主治'
237
+      }, {
238
+        value: 3,
239
+        label: '主任'
240
+      }, {
241
+        value: 4,
242
+        label: '免收诊金'
243
+      }, {
244
+        value: 5,
245
+        label: '专家'
246
+      }],
247
+
248
+      tablePatient: [],
249
+      creator: '',
250
+      startUnix: '',
251
+
252
+      dialogVisible: false,
253
+      form: {},
254
+      is_Name: false,
255
+      sick:[],
256
+      diagnoses:[],
257
+    }
258
+  },
259
+  created() {
260
+    // let a = JSON.parse(localStorage.getItem("temp"))
261
+    // let arr = []
262
+    // a.map(item => {
263
+    //     if(item.org_id == this.$store.getters.xt_user.org_id){
264
+    //         item.create_time = moment(item.create_time * 1000).format('YYYY-MM-DD')
265
+    //         arr.push(item)
266
+    //     }
267
+
268
+    // })
269
+    // this.tableData = arr
270
+    //获取所有挂号号的患者
271
+
272
+    this.creator = this.$store.getters.xt_user.user.user_name
273
+    var today = moment().startOf('day').format('YYYY-MM-DD')
274
+    var todayUnix = Date.parse(today) / 1000
275
+    this.startUnix = todayUnix - 28800
276
+    this.getInitData()
277
+    this.getlist()
278
+    this.getDictionaryDataConfig()
279
+  },
280
+  methods: {
281
+    getInitData() {
282
+      getInitData().then((response) => {
283
+        if (response.data.state == 0) {
284
+          this.$message.error(response.data.msg);
285
+          return false;
286
+        } else {
287
+          this.sick = response.data.data.sick;
288
+          this.diagnoses = response.data.data.diagnose;
289
+        }
290
+      });
291
+    },GetSickType(id){
292
+      for(let i = 0;i < this.sick.length; i++){
293
+        if(this.sick[i].id == id){
294
+          return this.sick[i].class_name
295
+        }
296
+      }
297
+      return ""
298
+    },
299
+    GetDiagnosisName(id){
300
+      for(let i = 0;i < this.diagnoses.length; i++){
301
+        if(this.diagnoses[i].id == id){
302
+          return this.diagnoses[i].class_name
303
+        }
304
+      }
305
+      return ""
306
+    },
307
+    searchAction() {
308
+      this.getlist()
309
+    },
310
+    // changeTime(val){
311
+    //     let arr = JSON.parse(localStorage.getItem("temp"))
312
+    //     arr.map(item => {
313
+    //         item.create_time = moment(item.create_time * 1000).format('YYYY-MM-DD')
314
+    //     })
315
+    //     this.tableData = arr
316
+    //     console.log(new Date(val[0]).getTime() / 1000)
317
+    //     console.log(new Date(val[1]).getTime() / 1000)
318
+    //     let arr1 = this.tableData
319
+    //     let a = []
320
+    //     arr1.map(item => {
321
+    //      if(new Date(item.create_time).getTime() / 1000 > new Date(val[0]).getTime() / 1000 && new Date(item.create_time).getTime() / 1000 < new Date(val[1]).getTime() / 1000 && item.org_id == this.$store.getters.xt_user.org_id){
322
+    //         a.push(item)
323
+    //       }
324
+    //     })
325
+    //     this.tableData = a
326
+    // },
327
+    changeStart(val) {
328
+      this.start_time = val
329
+      this.getlist()
330
+    },
331
+    changeEnd(val) {
332
+      this.end_time = val
333
+      this.getlist()
334
+    },
335
+    changeRegister(val) {
336
+      this.getlist()
337
+    },
338
+    handleSizeChange(val) {
339
+      this.limit = val
340
+      this.getlist()
341
+    },
342
+    handleCurrentChange(val) {
343
+      this.page = val
344
+      this.getlist()
345
+    },
346
+    getlist() {
347
+      var params = {
348
+        keyword: this.search_input,
349
+        start_time: this.start_time,
350
+        end_time: this.end_time,
351
+        limit: this.limit,
352
+        page: this.page
353
+      }
354
+      getInHospitalHistory(params).then(response => {
355
+        if (response.data.state == 1) {
356
+          var history = response.data.data.history
357
+
358
+          console.log('history', history)
359
+          this.tableData = history
360
+          var total = response.data.data.total
361
+          console.log('total', total)
362
+          this.total = total
363
+          var department = response.data.data.department
364
+          console.log('department', department)
365
+          this.departMent = department
366
+          var doctor = response.data.data.doctor
367
+          console.log('doctor', doctor)
368
+          this.doctorList = doctor
369
+        }
370
+      })
371
+
372
+    },
373
+    getDepartMent(id) {
374
+      var name = ''
375
+      for (let i = 0; i < this.departMent.length; i++) {
376
+        if (id == this.departMent[i].id) {
377
+          name = this.departMent[i].name
378
+        }
379
+      }
380
+      return name
381
+    },
382
+    getDoctor(id) {
383
+      var user_name = ''
384
+      for (let i = 0; i < this.doctorList.length; i++) {
385
+        if (id == this.doctorList[i].admin_user_id) {
386
+          user_name = this.doctorList[i].user_name
387
+        }
388
+      }
389
+      return user_name
390
+    },
391
+    getMedicalTreatment(id) {
392
+      var name = ''
393
+      for (let i = 0; i < this.medicalCare.length; i++) {
394
+        if (this.medicalCare[i].id == id) {
395
+          name = this.medicalCare[i].name
396
+        }
397
+      }
398
+      return name
399
+    },
400
+    getTime(value, temp) {
401
+      if (value != undefined) {
402
+        return uParseTime(value, temp)
403
+      }
404
+      return ''
405
+    }, toReturnSZPatient(val) {
406
+      if(val.balance_accounts_type == 2){
407
+        this.$confirm('是否退号', '退号 ', {
408
+          confirmButtonText: '确 定',
409
+          cancelButtonText: '取 消',
410
+          type: 'warning'
411
+        }).then(() => {
412
+          let params = {
413
+            'id': val.id,
414
+          };
415
+          refundNumber(params).then(response => {
416
+            if (response.data.state == 0) {
417
+              this.$message.error(response.data.msg);
418
+              this.loadingtwo = false;
419
+              return false
420
+            } else {
421
+              this.getlist()
422
+              this.$message({ message: '退号成功', type: 'success' });
423
+
424
+            }
425
+          })
426
+
427
+        }).catch(() => {
428
+
429
+        })
430
+
431
+      }else{
432
+        var that = this
433
+        this.$confirm('是否退号', '退号', {
434
+          confirmButtonText: '确 定',
435
+          cancelButtonText: '取 消',
436
+          type: 'warning'
437
+        }).then(() => {
438
+          axios.get('http://127.0.0.1:9532/sz/api/refundnumber/get', {
439
+            params: {
440
+              his_patient_id: val.id,
441
+              record_time: this.getTime(val.record_date, '{y}-{m}-{d}'),
442
+              admin_user_id: this.$store.getters.xt_user.user.id,
443
+              patient_id: val.patient_id
444
+            }
445
+          })
446
+            .then(function(response) {
447
+              if (response.data.state == 0) {
448
+                that.$message.error(response.data.msg)
449
+                return false
450
+              } else {
451
+                if (response.data.data.failed_code == -10) {
452
+                  that.$confirm(response.data.data.msg, '医保错误信息', {
453
+                    confirmButtonText: '确 定',
454
+                    type: 'warning'
455
+                  }).then(() => {
456
+
457
+                  }).catch(() => {
458
+                  })
459
+                  // that.$message.error(response.data.data.msg)
460
+
461
+                } else {
462
+                  that.getlist()
463
+                  that.$message({ message: '退号成功', type: 'success' })
464
+                }
465
+              }
466
+            })
467
+            .catch(function(error) {
468
+            })
469
+        }).catch(() => {
470
+        })
471
+      }
472
+    },
473
+    toReturnPatient(row) {
474
+      var that = this
475
+      this.$confirm('确认退号吗?', '退号', {
476
+        confirmButtonText: '确 定',
477
+        cancelButtonText: '取 消',
478
+        type: 'warning'
479
+      }).then(() => {
480
+        //
481
+        let params = {
482
+          'id':row.id,
483
+          'patient_id': row.patient_id,
484
+          'record_time': that.getTimes(row.record_date),
485
+          'admin_user_id': this.$store.getters.xt_user.user.id
486
+        }
487
+        axios.get('http://127.0.0.1:9532/api/refundnumber/post', {
488
+          params: params
489
+        })
490
+          .then(function(response) {
491
+            if (response.data.state == 0) {
492
+              that.$message.error(response.data.msg)
493
+              return false
494
+            } else {
495
+              if (response.data.data.failed_code == -10) {
496
+                // that.$message.error(response.data.data.msg)
497
+                that.$confirm(response.data.data.msg, '医保错误信息', {
498
+                  confirmButtonText: '确 定',
499
+                  type: 'warning'
500
+                }).then(() => {
501
+
502
+                }).catch(() => {
503
+                })
504
+              } else {
505
+                that.$message({ message: '退号成功', type: 'success', duration: 5000 });
506
+                that.getlist()
507
+              }
508
+            }
509
+          })
510
+          .catch(function(error) {
511
+          })
512
+        //
513
+        // changePatient(id).then(response => {
514
+        //   if (response.data.state == 1) {
515
+        //     var msg = response.data.data.msg
516
+        //     this.$message.success('退号成功')
517
+        //     this.getlist()
518
+        //   } else {
519
+        //     this.$message.error('患者已就诊,退号失败')
520
+        //   }
521
+        // })
522
+      })
523
+        .catch(() => {
524
+        })
525
+    }, getTimes(time) {
526
+      return uParseTime(time, '{y}-{m}-{d}')
527
+    },
528
+
529
+    querySearchAsync(keyword, cb) {
530
+      let key = '';
531
+      if (keyword != undefined) {
532
+        key = keyword
533
+      }
534
+      let searchArray = []
535
+
536
+      var params = {
537
+        keyword: key
538
+      }
539
+      console.log('params', params)
540
+      getHisPatient(params).then(response => {
541
+        if (response.data.state == 1) {
542
+          searchArray = response.data.data.patient
543
+          console.log('searcharrya', searchArray)
544
+          cb(searchArray)
545
+        }
546
+      })
547
+      return searchArray
548
+    },
549
+
550
+    handleSelect(val) {
551
+      this.search_input = val.name
552
+      this.getlist()
553
+    },
554
+    handleClose(done) {
555
+      done()
556
+    },
557
+    open(obj) {
558
+      this.dialogVisible = true
559
+      this.form = obj
560
+      console.log(obj)
561
+    },
562
+    getDictionaryDataConfig(type) {
563
+      let arr = getDictionaryDataConfig('system', 'social_type')
564
+      let str = ''
565
+      arr.map(item => {
566
+        if (item.id == type) {
567
+          str = item.name
568
+        }
569
+      })
570
+      return str
571
+    },
572
+    getCertificates(type) {
573
+      let arr = this.certificates
574
+      let str = ''
575
+      arr.map(item => {
576
+        if (item.value == type) {
577
+          str = item.label
578
+        }
579
+      })
580
+      return str
581
+    },
582
+    getSettlement(type) {
583
+      let arr = this.settlement
584
+      let str = ''
585
+      arr.map(item => {
586
+        if (item.value == type) {
587
+          str = item.label
588
+        }
589
+      })
590
+      return str
591
+    },
592
+    getMedicalCare(type) {
593
+      let arr = this.medicalCare
594
+      let str = ''
595
+      arr.map(item => {
596
+        if (item.id == type) {
597
+          str = item.name
598
+        }
599
+      })
600
+      return str
601
+    },
602
+    getRegister(type) {
603
+      let arr = this.newRegister
604
+      let str = ''
605
+      arr.map(item => {
606
+        if (item.value == type) {
607
+          str = item.label
608
+        }
609
+      })
610
+      return str
611
+    },
612
+    getDepartMent(type) {
613
+      let arr = this.departMent
614
+      let str = ''
615
+      arr.map(item => {
616
+        if (item.id == type) {
617
+          str = item.name
618
+        }
619
+      })
620
+      return str
621
+    },
622
+
623
+    getBanlance(id) {
624
+      var label = ''
625
+      for (let i = 0; i < this.settlement.length; i++) {
626
+        if (id == this.settlement[i].value) {
627
+          label = this.settlement[i].label
628
+        }
629
+      }
630
+      return label
631
+    }
632
+  }
633
+}
634
+</script>
635
+
636
+<style lang="scss" scoped>
637
+.basicForm {
638
+  display: flex;
639
+  flex-wrap: wrap;
640
+  justify-content: space-between;
641
+
642
+.el-form-item {
643
+  width: 33%;
644
+}
645
+
646
+}
647
+</style>

+ 11 - 8
src/xt_pages/hospitalStation/index.vue View File

@@ -240,7 +240,7 @@ export default {
240 240
       loadingone: false,
241 241
       read_loading: false,
242 242
       registers: [
243
-        { value: 11, label: '普通门诊' },
243
+        { value: 21, label: '普通住院' },
244 244
         // {value: 12, label: '门诊挂号'},
245 245
         // {value: 13, label: '急诊'},
246 246
         { value: 14, label: '门诊慢性病' }
@@ -346,6 +346,8 @@ export default {
346 346
         'id_card_type': this.form.id_card_type,
347 347
         'admin_user_id': this.$store.getters.xt_user.user.id,
348 348
         'certificates':this.form.certificates,
349
+        'is_settle':"0",
350
+
349 351
       }
350 352
       axios.get('http://127.0.0.1:9532/zh/api/readcard', {
351 353
         params: params
@@ -359,13 +361,11 @@ export default {
359 361
               if (that.form.id_card_type == 1) {
360 362
                 that.form.id = patient.id
361 363
                 that.form.name = patient.name
362
-                that.form.gender = patient.gender
364
+                that.form.sex = patient.gender
363 365
                 that.form.age = patient.age
364 366
                 that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
365 367
                 that.form.phone = patient.phone
366 368
                 that.form.id_card_no = patient.id_card_no
367
-                that.form.medicalInsuranceCard = response.data.data.number
368
-
369 369
                 that.InsuplcAdmdvs = []
370 370
                 // console.log(parseNumber(response.data.data.info.output.insuinfo.psn_type))
371 371
                 // console.log(parseNumber(response.data.data.insutype))
@@ -380,21 +380,24 @@ export default {
380 380
                 that.form.social_type = parseInt(response.data.data.insutype)
381 381
 
382 382
               } else if (that.form.id_card_type == 2) {
383
+
384
+
383 385
                 that.form.id = patient.id
384 386
                 that.form.name = patient.name
385
-                that.form.gender = patient.gender
387
+                that.form.sex = patient.gender
386 388
                 that.form.age = patient.age
387 389
                 that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
388 390
                 that.form.phone = patient.phone
389
-                that.form.id_card = patient.id_card_no
391
+                that.form.id_card_no = patient.id_card_no
392
+
390 393
               } else {
391 394
                 that.form.id = patient.id
392 395
                 that.form.name = patient.name
393
-                that.form.gender = patient.gender
396
+                that.form.sex = patient.gender
394 397
                 that.form.age = patient.age
395 398
                 that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
396 399
                 that.form.phone = patient.phone
397
-                that.form.id_card = patient.id_card_no
400
+                that.form.id_card_no = patient.id_card_no
398 401
 
399 402
                 that.InsuplcAdmdvs = []
400 403
                 for (let i = 0; i < response.data.data.info.output.insuinfo.length; i++) {

+ 2 - 0
src/xt_pages/hospitalStation/pastInquiries.vue View File

@@ -63,6 +63,8 @@
63 63
       </el-pagination>
64 64
       <inquiries-detail ref="inquiriesDetail"></inquiries-detail>
65 65
     </div>
66
+
67
+
66 68
   </div>
67 69
 </template>
68 70
 

+ 552 - 0
src/xt_pages/hospitalStation/pastQuiriesPrint/hospitalAllListPrint.vue View File

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

+ 406 - 0
src/xt_pages/hospitalStation/pastQuiriesPrint/hospitalAllListPrintOne.vue View File

@@ -0,0 +1,406 @@
1
+<template>
2
+  <div id="allList" class="allList-print">
3
+    <table
4
+      class="allListTable"
5
+      border="0"
6
+      cellspacing="0"
7
+      style="font-size: 14px"
8
+      align="center"
9
+    >
10
+      <THEAD
11
+        style="
12
+          display: table-header-group;
13
+          font-weight: bold;
14
+        "
15
+      >
16
+      <TR style="border-bottom: 1px solid">
17
+        <TD colspan="4" align="center" style="font-size: 20px">
18
+          {{ $store.getters.xt_user.org.org_name }}汇总清单
19
+        </TD>
20
+      </TR>
21
+      <TR>
22
+        <TD colspan="1">科别:门诊</TD>
23
+        <TD width="130">床号:</TD>
24
+        <TD>门诊号:{{ record.number }}</TD>
25
+        <TD>姓名:{{ patient.name }}</TD>
26
+      </TR>
27
+      <TR style="border-bottom: 1px solid">
28
+        <TD colspan="2"> 预交款:</TD>
29
+        <TD>总费用:{{ getTotal(list) }} </TD>
30
+        <TD
31
+        >门诊日期:{{
32
+            record.in_hosptial_time
33
+              ? record.in_hosptial_time.split(" ")[0]
34
+              : ""
35
+          }}</TD
36
+        >
37
+      </TR>
38
+      <TR>
39
+        <TD colspan="2">
40
+          西药:&nbsp;&nbsp;&nbsp;{{
41
+            getWesternMedicineCostTotal()
42
+              ? getWesternMedicineCostTotal()
43
+              : ""
44
+          }}</TD
45
+        >
46
+        <TD
47
+        >中成药:</TD>
48
+        <TD>中草药:</TD>
49
+      </TR>
50
+      <TR>
51
+        <TD colspan="2">
52
+          检查费:{{
53
+            getCheckCostTotal()
54
+              ? getCheckCostTotal()
55
+              : ""
56
+          }}</TD
57
+        >
58
+        <TD>输氧费:</TD>
59
+        <TD
60
+        >手术费:</TD
61
+        >
62
+      </TR>
63
+      <TR>
64
+        <TD colspan="2"
65
+        >化验费:{{
66
+            getHuaYanCostTotal()
67
+              ? getHuaYanCostTotal()
68
+              : ""
69
+          }}</TD
70
+        >
71
+        <TD>输血费:</TD>
72
+        <TD
73
+        >诊察费:{{
74
+            getzhenchanCostTotal()
75
+              ? getzhenchanCostTotal()
76
+              : ""
77
+          }}</TD>
78
+      </TR>
79
+      <TR>
80
+        <TD colspan="2"
81
+        >治疗费:{{
82
+            getzhiliaoCostTotal()
83
+              ?  getzhiliaoCostTotal()
84
+              : ""
85
+          }}</TD
86
+        >
87
+        <TD>护理费:</TD>
88
+        <TD
89
+        >床位费:</TD
90
+        >
91
+      </TR>
92
+      <TR>
93
+        <TD colspan="2">麻醉费:</TD>
94
+        <TD
95
+        >材料费:{{
96
+           getmaterialCostTotal() ? getmaterialCostTotal(): ""
97
+          }}</TD
98
+        >
99
+        <TD
100
+        >其他:{{
101
+           getotherCostTota() ? getotherCostTota() : ""
102
+          }}</TD
103
+        >
104
+      </TR>
105
+      </THEAD>
106
+
107
+      <TBODY style="text-align: center">
108
+      <TR>
109
+        <TD colspan="4">
110
+          <Table class="allListTable_1" border="1">
111
+            <TR>
112
+              <TH width="70"> 费用类别 </TH>
113
+              <TH width="70"> 项目名称 </TH>
114
+              <TH width="70">单位</TH>
115
+              <TH width="70">数量</TH>
116
+              <TH width="70">单价</TH>
117
+              <TH width="70">金额</TH>
118
+              <TH width="70">医保类型</TH>
119
+            </TR>
120
+            <template v-for="(item, index) in list">
121
+              <tr v-if="item.name&&item.name.length > 0">
122
+                <td style="width: 10%">{{ item.med_chrgitm_type }}</td>
123
+                <td
124
+                  style="
125
+                      width: 35%;
126
+                      white-space: nowrap;
127
+                      overflow: hidden;
128
+                      text-overflow: ellipsis;
129
+                    "
130
+                >
131
+                  {{ item.name }}{{ item.spec }}
132
+                </td>
133
+                <td style="width: 5%">{{ item.unit }}</td>
134
+                <td style="width: 10%; text-align: right">
135
+                  {{ item.count }}
136
+                </td>
137
+                <td style="width: 10%; text-align: right">
138
+                  {{ item.price}}
139
+                </td>
140
+                <td style="width: 10%; text-align: right">
141
+                  {{ (item.price * item.count).toFixed(2) }}
142
+                </td>
143
+                <td style="width: 10%">{{ item.medicine_insurance_kind }}</td>
144
+              </tr>
145
+            </template>
146
+              <tr>
147
+              <td style="width: 10%"></td>
148
+              <td
149
+                style="
150
+                      width: 35%;
151
+                      white-space: nowrap;
152
+                      overflow: hidden;
153
+                      text-overflow: ellipsis;
154
+                    "
155
+              >
156
+                合计
157
+              </td>
158
+              <td style="width: 5%"></td>
159
+              <td style="width: 10%; text-align: right"></td>
160
+              <td style="width: 10%; text-align: right"></td>
161
+              <td style="width: 10%; text-align: right">
162
+                {{ getTotal(list) }}
163
+              </td>
164
+              <td style="width: 10%"></td>
165
+            </tr>
166
+          </Table>
167
+        </TD>
168
+      </TR>
169
+      </TBODY>
170
+    </table>
171
+  </div>
172
+</template>
173
+
174
+<script>
175
+import { uParseTime } from "@/utils/tools";
176
+
177
+export default {
178
+  props: {
179
+    list: {
180
+      type: Array,
181
+      default: function () {
182
+        return [];
183
+      },
184
+    },
185
+    patient: {
186
+      type: Object,
187
+      default: function () {
188
+        return {};
189
+      },
190
+    },
191
+    record: {
192
+      type: Object,
193
+      default: function () {
194
+        return {};
195
+      },
196
+    },
197
+    admin: {
198
+      type: Object,
199
+      default: function () {
200
+        return {};
201
+      },
202
+    },
203
+    hospital: {
204
+      type: Object,
205
+      default: function () {
206
+        return {};
207
+      },
208
+    },
209
+  },
210
+  data() {
211
+    return {
212
+      page: 1,
213
+      pageArr: [],
214
+    };
215
+  },
216
+  methods: {
217
+    getWesternMedicineCostTotal(){
218
+      let total = 0
219
+      for(let i = 0;i < this.list.length;i++){
220
+        if(this.list[i].med_chrgitm_type == "西药费"){
221
+          total = total + (this.list[i].count * parseFloat(this.list[i].price.toFixed(2)))
222
+        }
223
+
224
+      }
225
+      return total.toFixed(2)
226
+    },
227
+    getCheckCostTotal(){
228
+      let total = 0
229
+
230
+      for(let i = 0;i < this.list.length;i++){
231
+        if(this.list[i].med_chrgitm_type == "检查费"){
232
+
233
+          total = total + (this.list[i].count * parseFloat(this.list[i].price.toFixed(2)))
234
+
235
+
236
+        }
237
+
238
+      }
239
+      return total.toFixed(2)
240
+
241
+    }, getHuaYanCostTotal(){
242
+      let total = 0
243
+
244
+      for(let i = 0;i < this.list.length;i++){
245
+        if(this.list[i].med_chrgitm_type == "化验费"){
246
+          total = total + (this.list[i].count * parseFloat(this.list[i].price.toFixed(2)))
247
+        }
248
+      }
249
+      return total.toFixed(2)
250
+    },getzhenchanCostTotal(){
251
+      let total = 0
252
+
253
+      for(let i = 0;i < this.list.length;i++){
254
+        if(this.list[i].med_chrgitm_type == "诊察费"){
255
+          total = total + (this.list[i].count * parseFloat(this.list[i].price.toFixed(2)))
256
+        }
257
+
258
+      }
259
+      return total.toFixed(2)
260
+
261
+
262
+    },getzhiliaoCostTotal(){
263
+      let total = 0
264
+      for(let i = 0;i < this.list.length;i++){
265
+        if(this.list[i].med_chrgitm_type == "治疗费"){
266
+          total = total + (this.list[i].count * parseFloat(this.list[i].price.toFixed(2)))
267
+        }
268
+      }
269
+      return total.toFixed(2)
270
+
271
+
272
+    },getmaterialCostTotal(){
273
+      let total = 0
274
+      for(let i = 0;i < this.list.length;i++){
275
+        if(this.list[i].med_chrgitm_type == '耗材费'){
276
+          total = total + (this.list[i].count *parseFloat(this.list[i].price.toFixed(2)))
277
+        }
278
+
279
+      }
280
+      return total.toFixed(2)
281
+
282
+    },getotherCostTota(){
283
+      let total = 0
284
+      for(let i = 0;i < this.list.length;i++){
285
+        if(this.list[i].med_chrgitm_type == "其他费"){
286
+          total = total + (this.list[i].count * parseFloat(this.list[i].price.toFixed(2)))
287
+        }
288
+      }
289
+      return total.toFixed(2)
290
+    },
291
+    getNowTime: function () {
292
+      let dateTime;
293
+      let yy = new Date().getFullYear();
294
+      let mm = new Date().getMonth() + 1;
295
+      let dd = new Date().getDate();
296
+      let hh = new Date().getHours();
297
+      let mf =
298
+        new Date().getMinutes() < 10
299
+          ? "0" + new Date().getMinutes()
300
+          : new Date().getMinutes();
301
+      let ss =
302
+        new Date().getSeconds() < 10
303
+          ? "0" + new Date().getSeconds()
304
+          : new Date().getSeconds();
305
+      dateTime = yy + "-" + mm + "-" + dd + " " + hh + ":" + mf + ":" + ss;
306
+      return dateTime;
307
+    },
308
+    getTimes(time) {
309
+      return uParseTime(time, "{y}-{m}-{d}");
310
+    },
311
+    // getTotal: function (items) {
312
+    //   let total = 0;
313
+    //   for (let i = 0; i < items.length; i++) {
314
+    //     total = total + (items[i].count * items[i].price).toFixed(2);
315
+    //   }
316
+    //   return total;
317
+    // },
318
+    getTotal: function (items) {
319
+      console.log(items)
320
+      let total = 0;
321
+      for (let i = 0; i < items.length; i++) {
322
+        total = total + (parseFloat(items[i].count) * parseFloat(items[i].price.toFixed(2)));
323
+      }
324
+      return total.toFixed(2);
325
+    },
326
+
327
+  },
328
+  watch: {
329
+    list: {
330
+      handler(newVal) {
331
+        // this.getPage();
332
+      },
333
+      deep: true,
334
+    },
335
+  },
336
+};
337
+</script>
338
+
339
+<style lang="scss" scoped>
340
+.allList-print {
341
+  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27),
342
+  0 0 60px rgba(0, 0, 0, 0.06) inset;
343
+  -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27),
344
+  0 0 40px rgba(0, 0, 0, 0.06) inset;
345
+  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
346
+  margin-bottom: 20px;
347
+  padding: 20px 10px;
348
+}
349
+
350
+.allListTitle {
351
+  font-size: 24px;
352
+  text-align: center;
353
+  font-weight: bold;
354
+  margin-bottom: 10px;
355
+}
356
+
357
+.allListInfo {
358
+  display: flex;
359
+  font-size: 16px;
360
+  justify-content: space-between;
361
+  margin: 10px 0;
362
+}
363
+
364
+.allListInfo div {
365
+  min-width: 200px;
366
+}
367
+
368
+.allListTable {
369
+  width: 100%;
370
+  text-align: center;
371
+  border-collapse: collapse;
372
+  line-height: 20px;
373
+  font-size: 14px;
374
+  border-color: #000;
375
+  text-align: left;
376
+}
377
+
378
+.allListTable tr td {
379
+  padding: 0 5px;
380
+}
381
+
382
+.allListTable_1 {
383
+  width: 100%;
384
+  text-align: center;
385
+  border-collapse: collapse;
386
+  line-height: 20px;
387
+  font-size: 14px;
388
+  border-color: #000;
389
+  text-align: left;
390
+}
391
+
392
+.allListTable_1 tr td {
393
+  padding: 0 5px;
394
+}
395
+
396
+.tableBottom {
397
+  font-size: 16px;
398
+  display: flex;
399
+  margin-top: 20px;
400
+}
401
+
402
+.tableBottomOne {
403
+  margin-right: 40px;
404
+}
405
+
406
+</style>

+ 396 - 0
src/xt_pages/hospitalStation/pastQuiriesPrint/hospitalListPrint.vue View File

@@ -0,0 +1,396 @@
1
+<template>
2
+  <div>
3
+    <template>
4
+      <el-button
5
+        style="position:fixed;right:25px;z-index:999"
6
+        size="small"
7
+        icon="el-icon-printer"
8
+        @click="printThisPage"
9
+        type="primary"
10
+      >打印
11
+      </el-button
12
+      >
13
+    </template>
14
+
15
+    <div class='dialysisPage' style="padding-top:40px;">
16
+      <hospital-list-print-one :list="list" :patient="patient" :record="record" :admin="admin"></hospital-list-print-one>
17
+    </div>
18
+  </div>
19
+</template>
20
+
21
+<script>
22
+import { getHospitalUnChargeList } from '@/api/his/his'
23
+import { uParseTime } from '@/utils/tools'
24
+import HospitalListPrintOne from './hospitalListPrintOne.vue'
25
+export default {
26
+  name: 'hospitalListPrint',
27
+  components: {
28
+    HospitalListPrintOne
29
+
30
+  },
31
+  props: {
32
+    paramsObj: Object
33
+  },
34
+  data() {
35
+    return {
36
+      list: [],
37
+      patient:{},
38
+      order:{},
39
+      admin:{},
40
+      record:{},
41
+    }
42
+  },
43
+  created() {
44
+    this.getInfo(this.paramsObj.patient_id,this.paramsObj.record_date)
45
+  },
46
+
47
+  methods: {
48
+    getTimes(time) {
49
+      return uParseTime(time, '{y}-{m}-{d} {h}:{i}')
50
+    },
51
+    getInfo(patient_id,record_date) {
52
+      let params = {
53
+        patient_id: patient_id,
54
+        record_date: record_date,
55
+        admin_user_id:this.$store.getters.xt_user.user.id,
56
+        p_type:1,
57
+      }
58
+      getHospitalUnChargeList(params).then(response => {
59
+        if (response.data.state == 0) {
60
+          this.$message.error(response.data.msg)
61
+          return false
62
+        } else {
63
+          this.patient = response.data.data.xt_info
64
+          this.record = response.data.data.record
65
+          this.admin = response.data.data.admin_info
66
+          this.list = []
67
+          for (let i = 0; i < response.data.data.prescription.length; i++) {
68
+            if(response.data.data.prescription[i].type == 1){
69
+              var infos = response.data.data.prescription[i]
70
+              for(let b = 0; b < infos.advices.length; b++){
71
+                let obj = {
72
+                  med_chrgitm_type: this.getType(1),
73
+                  price: infos.advices[b].price,
74
+                  count: infos.advices[b].prescribing_number,
75
+                  p_time:this.getTimes(infos.advices[b].created_time),
76
+                  name: infos.advices[b].advice_name,
77
+                  spec: infos.advices[b].drug.drug_spec,
78
+                  unit: infos.advices[b].prescribing_number_unit,
79
+                  feedetl_sn:infos.advices[b].feedetl_sn
80
+                }
81
+                this.list.push(obj)
82
+              }
83
+            }
84
+          }
85
+          for (let i = 0; i < response.data.data.prescription.length; i++) {
86
+            if(response.data.data.prescription[i].type == 2){
87
+              var infos = response.data.data.prescription[i]
88
+              for(let b = 0; b < infos.project.length; b++){
89
+                if(infos.project[b].type == 2){
90
+                  let obj = {
91
+                    med_chrgitm_type: this.getType(infos.project[b].project.cost_classify),
92
+                    price: infos.project[b].price,
93
+                    count: infos.project[b].count,
94
+                    p_time:this.getTimes(infos.project[b].ctime),
95
+                    name: infos.project[b].project.project_name,
96
+                    spec: "",
97
+                    unit: infos.project[b].project.unit,
98
+                    feedetl_sn:infos.project[b].feedetl_sn
99
+
100
+                  }
101
+                  this.list.push(obj)
102
+                }else{
103
+                  let obj = {
104
+                    med_chrgitm_type: this.getType(5),
105
+                    price: infos.project[b].price,
106
+                    count: infos.project[b].count,
107
+                    p_time:this.getTimes(infos.project[b].ctime),
108
+                    name: infos.project[b].good_info.good_name,
109
+                    spec: infos.project[b].good_info.specification_name,
110
+                    unit: infos.project[b].good_info.packing_unit,
111
+                    feedetl_sn:infos.project[b].feedetl_sn
112
+
113
+                  }
114
+                  this.list.push(obj)
115
+                }
116
+              }
117
+            }
118
+
119
+          }
120
+          this.list.sort(function(a, b) {
121
+            return b.p_time < a.p_time ? 1 : -1
122
+          })
123
+        }
124
+      })
125
+    },
126
+
127
+    getType(med_chrgitm_type) {
128
+      switch (med_chrgitm_type) {
129
+        case 1:
130
+          return '西药费';
131
+        case 2:
132
+          return '治疗费';
133
+        case 3:
134
+          return '检验费';
135
+          break;
136
+        case 4:
137
+          return '心电图费';
138
+          break;
139
+        case 5:
140
+          return '耗材费';
141
+          break;
142
+        case 6:
143
+          return '护理费';
144
+          break;
145
+        case 7:
146
+          return '放射费';
147
+          break;
148
+        case 8:
149
+          return '检查费';
150
+          break;
151
+        case 9:
152
+          return '超声费';
153
+          break;
154
+        case 10:
155
+          return '麻醉费';
156
+          break;
157
+        case 11:
158
+          return '手术费';
159
+          break;
160
+        case 12:
161
+          return '其他费';
162
+          break;
163
+        case 13:
164
+          return '床位费';
165
+          break;
166
+        case 14:
167
+          return '化验费';
168
+          break;
169
+        case 15:
170
+          return '诊察费';
171
+          break;
172
+
173
+      }
174
+
175
+    },
176
+    printThisPage() {
177
+      const style =
178
+        '@media print {.allListTitle{font-size: 24px;text-align: center;font-weight: bold;margin-bottom: 10px;}.allListInfo{display: flex;font-size: 16px;justify-content: space-between;margin: 10px 0;} .listTable{width: 100%;text-align: center;border-collapse: collapse;line-height: 20px;font-size: 14px;border-color: #000;text-align:left;}  .listTable tr td {padding: 0 5px;}.tableBottom{font-size: 16px;display: flex;margin-top: 10px;}.tableBottomOne{margin-right: 40px;} .allListTable{border: none;width: 100%;text-align: center;border-collapse: collapse;line-height: 20px;font-size: 14px;border-color: #000;text-align:left;} .allListTable tr{page-break-inside:avoid;} .allListTable tr td {padding: 0 5px;border: 1px solid #000;}.tableBottom{font-size: 16px;display: flex;margin-top: 20px;}.tableBottomOne{margin-right: 40px;}}'
179
+      printJS({
180
+        printable: 'allList-print',
181
+        type: 'html',
182
+        style: style,
183
+        scanStyles: false
184
+      })
185
+
186
+
187
+      // if (this.org_template_info.template_id == 1) {
188
+      //   printJS({
189
+      //     printable: "dialysis-print-box",
190
+      //     type: "html",
191
+      //     style: style,
192
+      //     scanStyles: false
193
+      //   });
194
+      // }
195
+    }
196
+  },
197
+  watch:{
198
+    paramsObj:{//深度监听,可监听到对象、数组的变化
199
+      handler(val, oldVal){
200
+        this.getInfo(val.patient_id,val.record_date)
201
+      },
202
+      deep:true
203
+    }
204
+  }
205
+
206
+}
207
+</script>
208
+
209
+<style>
210
+.dialysis-print-order {
211
+  width: 960px;
212
+  margin: 0 auto;
213
+}
214
+
215
+.dialysis-print-order .order-yy-name {
216
+  margin: auto;
217
+  text-align: center;
218
+  font-size: 20px;
219
+  letter-spacing: 5px;
220
+}
221
+
222
+.dialysis-print-order .order-title {
223
+  margin: auto;
224
+  font-weight: 600;
225
+  text-align: center;
226
+  font-size: 22px;
227
+  padding: 10px;
228
+}
229
+
230
+.dialysis-print-order .table-box {
231
+  width: 100%;
232
+  line-height: 23px;
233
+  font-size: 14px;
234
+}
235
+
236
+.dialysis-print-order .print-table {
237
+  width: 100%;
238
+  text-align: center;
239
+  border-collapse: collapse;
240
+  line-height: 40px;
241
+  font-size: 14px;
242
+  border-color: #000;
243
+}
244
+
245
+.dialysis-print-order .print-table-no {
246
+  width: 100%;
247
+  text-align: center;
248
+  border-collapse: collapse;
249
+  font-size: 14px;
250
+}
251
+
252
+.dialysis-print-order .under-line {
253
+  border-bottom: 1px solid #999;
254
+  width: 95%;
255
+  text-align: center;
256
+  margin-left: 2px;
257
+}
258
+
259
+.dialysis-print-order .title-box {
260
+  text-align: center;
261
+  font-size: 16px;
262
+}
263
+
264
+.dialysis-print-order .radio-lebel-box {
265
+  font-weight: 400;
266
+  cursor: pointer;
267
+}
268
+
269
+.dialysis-print-order .radio-no {
270
+  opacity: 0;
271
+  outline: none;
272
+  position: absolute;
273
+  margin: 0;
274
+  width: 0;
275
+  height: 0;
276
+  z-index: -1;
277
+}
278
+
279
+.dialysis-print-order .radio-inner {
280
+  white-space: nowrap;
281
+  cursor: pointer;
282
+  outline: none;
283
+  display: inline-block;
284
+  line-height: 1;
285
+  position: relative;
286
+  vertical-align: middle;
287
+}
288
+
289
+.dialysis-print-order .radio-fang {
290
+  display: inline-block;
291
+  position: relative;
292
+  border: 1px solid #000;
293
+  box-sizing: border-box;
294
+  width: 14px;
295
+  height: 14px;
296
+  background-color: #fff;
297
+  z-index: 1;
298
+  transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),
299
+  background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46);
300
+}
301
+
302
+.dialysis-print-order .is-checked-radio::after {
303
+  content: "√";
304
+  font-size: 15px;
305
+}
306
+
307
+.dialysis-print-order .print-table-no tr td {
308
+  padding: 8px 5px;
309
+  line-height: 25px;
310
+}
311
+
312
+.dialysis-print-order .print-table tr td {
313
+  padding: 1px 1px;
314
+  /*line-height: 25px;*/
315
+}
316
+
317
+.es-img {
318
+  height: 30px;
319
+}
320
+
321
+.advice-name {
322
+  text-align: left;
323
+}
324
+
325
+.advice-children {
326
+  display: flex;
327
+}
328
+
329
+.title-box-pro {
330
+  border: 0 #fff;
331
+  line-height: 25px;
332
+  height: 25px;
333
+  text-align: left;
334
+  padding-left: 10px !important;
335
+}
336
+
337
+.title-box-pro-tr {
338
+  border: 0 #fff;
339
+}
340
+
341
+.text-align-left {
342
+  text-align: left !important;
343
+  padding-left: 10px !important;
344
+  font-size: 14px !important;
345
+  line-height: 25px;
346
+}
347
+
348
+.print-table-tr-new td {
349
+  line-height: 20px !important;
350
+}
351
+
352
+.border-top-solid {
353
+  border: solid 1px #000;
354
+}
355
+
356
+.print-template-two tr {
357
+  line-height: 30px;
358
+}
359
+
360
+.table-box1 {
361
+  border: 1px solid #000;
362
+  width: 100%;
363
+  line-height: 30px;
364
+  font-size: 14px;
365
+  border-collapse: collapse;
366
+}
367
+
368
+.table-box1 tr {
369
+  border-bottom: 1px solid #000;
370
+}
371
+</style>
372
+
373
+<style lang="scss">
374
+
375
+.newContainer {
376
+
377
+.dialysisPage::-webkit-scrollbar {
378
+  height: 15px;
379
+}
380
+
381
+.el-date-editor {
382
+
383
+.el-input__inner {
384
+  padding-right: 0px;
385
+}
386
+
387
+}
388
+.el-table td, .el-table th {
389
+  text-align: center;
390
+}
391
+
392
+}
393
+.newContainer::-webkit-scrollbar {
394
+  height: 15px !important;
395
+}
396
+</style>

+ 318 - 0
src/xt_pages/hospitalStation/pastQuiriesPrint/hospitalListPrintOne.vue View File

@@ -0,0 +1,318 @@
1
+<template>
2
+  <div id="allList-print" class="allList-print">
3
+    <table
4
+      class="listTable"
5
+      border="0"
6
+      cellspacing="0"
7
+      style="font-size: 14px"
8
+      align="center"
9
+    >
10
+      <THEAD
11
+        style="
12
+          display: table-header-group;
13
+          font-weight: bold;
14
+        "
15
+      >
16
+      <TR>
17
+        <TD colspan="3" align="center" style="font-size: 20px">
18
+          {{ $store.getters.xt_user.org.org_name }}费用清单
19
+        </TD>
20
+      </TR>
21
+      <TR>
22
+        <TD colspan="1">患者姓名:{{ patient.name }}</TD>
23
+        <TD>性别:{{ patient.gender == 1 ? "男" : "女" }}</TD>
24
+        <!--        <TD>年龄:{{ // getAge(patient.id_card_no)?getAge(patient.id_card_no)+'岁':''}}</TD>-->
25
+        <TD
26
+        >结算类型:{{record.balance_accounts_type == 2?'自费':"医保"
27
+          }}</TD
28
+        >
29
+      </TR>
30
+      <TR>
31
+        <TD> 住院/门诊号:{{ record.number }} </TD>
32
+        <TD>科室:血透 </TD>
33
+        <TD>就诊流水号:{{ record.number }}</TD>
34
+      </TR>
35
+      <TR>
36
+        <TD> 总费用:{{ getTotal(list)  }} </TD>
37
+        <TD>个人支付: </TD>
38
+        <TD>基金支付记账:</TD>
39
+      </TR>
40
+      <TR>
41
+        <TD>补充医疗支付记账</TD>
42
+        <TD>救助支付金额:</TD>
43
+        <TD></TD>
44
+      </TR>
45
+      </THEAD>
46
+
47
+      <TBODY style="text-align: center">
48
+      <TR>
49
+        <TD colspan="3">
50
+          <Table class="allListTable" border="1">
51
+            <TR>
52
+              <TD style="width: 5%">序号</TD>
53
+              <TD style="width: 15%">处方日期</TD>
54
+              <TD style="width: 10%">费用编号</TD>
55
+              <TD style="width: 40%">费用名称</TD>
56
+              <TD style="width: 5%">单位</TD>
57
+              <TD style="width: 5%">数量</TD>
58
+              <TD style="width: 10%">单价</TD>
59
+              <TD style="width: 10%">金额</TD>
60
+            </TR>
61
+            <template v-for="(item, index) in list">
62
+              <tr >
63
+                <td style="width: 5%">{{ index + 1 }}</td>
64
+                <td style="width: 15%">{{ item.p_time }}</td>
65
+                <td style="width: 10%">
66
+                  {{ item.feedetl_sn.split("-")[2] }}
67
+                </td>
68
+                <td style="width: 30%; white-space: nowrap; overflow: hidden">
69
+                  {{ item.name }}{{ item.spec }}
70
+                </td>
71
+                <td style="width: 5%">{{ item.unit }}</td>
72
+                <td style="width: 5%; text-align: right">{{ item.count }}</td>
73
+                <td style="width: 10%; text-align: right">
74
+                  {{ item.price }}
75
+                </td>
76
+                <td style="width: 10%; text-align: right">
77
+                  {{ (item.price * item.count).toFixed(2) }}
78
+                </td>
79
+              </tr>
80
+            </template>
81
+            <tr >
82
+              <td style="width: 5%"></td>
83
+              <td style="width: 15%"></td>
84
+              <td style="width: 10%"></td>
85
+              <td style="width: 30%; white-space: nowrap; overflow: hidden">
86
+                {{"合计"}}
87
+              </td>
88
+              <td style="width: 5%"></td>
89
+              <td style="width: 5%"></td>
90
+              <td style="width: 10%; text-align: right"></td>
91
+              <td style="width: 10%; text-align: right">
92
+                {{ getTotal(list) }}
93
+              </td>
94
+            </tr>
95
+
96
+          </Table>
97
+        </TD>
98
+      </TR>
99
+      </TBODY>
100
+    </table>
101
+    <!-- <div class="allListTitle">
102
+
103
+    </div> -->
104
+    <!-- <div class="allListInfo">
105
+      <div style="text-align: left">患者姓名:{{ patient.name }}</div>
106
+      <div style="text-align: left; padding-left: -20px">
107
+        性别:{{ patient.gender == 1 ? "男" : "女" }}
108
+      </div>
109
+      <div style="text-align: left">
110
+        结算类型:{{ order.is_medicine_insurance == 1 ? "医保" : "自费" }}
111
+      </div>
112
+    </div>
113
+
114
+     <div class="allListInfo">
115
+      <div style="text-align: left">住院/门诊号:{{ order.mdtrt_id }}</div>
116
+      <div style="text-align: left">科室:血透</div>
117
+      <div style="text-align: left">就诊流水号:{{ order.mdtrt_id }}</div>
118
+    </div>
119
+
120
+    <div class="allListInfo">
121
+      <div style="text-align: left">总费用:{{ order.medfee_sumamt }}</div>
122
+      <div style="text-align: left">个人支付:{{ order.psn_part_amt }}</div>
123
+      <div style="text-align: left">
124
+        基金支付记账:{{ order.fund_pay_sumamt }}
125
+      </div>
126
+    </div>
127
+
128
+    <div class="allListInfo">
129
+      <div style="text-align: left">补充医疗支付记账:0.00</div>
130
+      <div style="text-align: left">救助支付金额:{{ order.maf_pay }}</div>
131
+      <div></div>
132
+    </div>-->
133
+  </div>
134
+</template>
135
+
136
+<script>
137
+import { uParseTime } from "@/utils/tools";
138
+
139
+export default {
140
+  props: {
141
+    list: {
142
+      type: Array,
143
+      default: function () {
144
+        return [];
145
+      },
146
+    },
147
+    patient: {
148
+      type: Object,
149
+      default: function () {
150
+        return {};
151
+      },
152
+    },
153
+    record: {
154
+      type: Object,
155
+      default: function () {
156
+        return {};
157
+      },
158
+    },
159
+    admin: {
160
+      type: Object,
161
+      default: function () {
162
+        return {};
163
+      },
164
+    },
165
+    hospital: {
166
+      type: Object,
167
+      default: function () {
168
+        return {};
169
+      },
170
+    },
171
+  },
172
+  data() {
173
+    return {
174
+      page: 1,
175
+      pageArr: [],
176
+    };
177
+  },
178
+  methods: {
179
+    getAge(val){
180
+      var thisLen = val.length;
181
+      var birth = "";
182
+      if (thisLen == 15) {
183
+        birth = "19" + val.substr(6, 6);
184
+      } else {
185
+        birth = val.substr(6, 8);
186
+      }
187
+      var birthTwo =
188
+        birth.substr(0, 4) +
189
+        "-" +
190
+        birth.substr(4, 2) +
191
+        "-" +
192
+        birth.substr(6, 2);
193
+      var age = this.jsGetAge(birthTwo, "-");
194
+      return age;
195
+    },
196
+
197
+    getNowTime: function () {
198
+      let dateTime;
199
+      let yy = new Date().getFullYear();
200
+      let mm = new Date().getMonth() + 1;
201
+      let dd = new Date().getDate();
202
+      let hh = new Date().getHours();
203
+      let mf =
204
+        new Date().getMinutes() < 10
205
+          ? "0" + new Date().getMinutes()
206
+          : new Date().getMinutes();
207
+      let ss =
208
+        new Date().getSeconds() < 10
209
+          ? "0" + new Date().getSeconds()
210
+          : new Date().getSeconds();
211
+      dateTime = yy + "-" + mm + "-" + dd + " " + hh + ":" + mf + ":" + ss;
212
+      return dateTime;
213
+    },
214
+    getTimes(time) {
215
+      return uParseTime(time, "{y}-{m}-{d}");
216
+    },
217
+    getTotal: function (items) {
218
+      let total = 0;
219
+      for (let i = 0; i < items.length; i++) {
220
+        total = total + (parseFloat(items[i].count) * parseFloat(items[i].price.toFixed(2)));
221
+      }
222
+      return total.toFixed(2);
223
+    },
224
+  },
225
+  watch: {
226
+    list: {
227
+      handler(newVal) {
228
+        // this.getPage()
229
+      },
230
+      deep: true,
231
+    },
232
+  },
233
+};
234
+</script>
235
+
236
+<style lang="scss" scoped>
237
+.allList-print {
238
+  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27),
239
+  0 0 60px rgba(0, 0, 0, 0.06) inset;
240
+  -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27),
241
+  0 0 40px rgba(0, 0, 0, 0.06) inset;
242
+  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
243
+  margin-bottom: 20px;
244
+  padding: 20px 10px;
245
+}
246
+
247
+.allListTitle {
248
+  font-size: 24px;
249
+  text-align: center;
250
+  font-weight: bold;
251
+  margin-bottom: 10px;
252
+}
253
+
254
+.allListInfo {
255
+  display: flex;
256
+  font-size: 16px;
257
+  justify-content: space-between;
258
+  margin: 10px 0;
259
+}
260
+
261
+.allListInfo div {
262
+  min-width: 200px;
263
+}
264
+
265
+.allListTable {
266
+  width: 100%;
267
+  text-align: center;
268
+  border-collapse: collapse;
269
+  line-height: 20px;
270
+  font-size: 14px;
271
+  border-color: #000;
272
+  text-align: left;
273
+}
274
+
275
+.allListTable tr td {
276
+  padding: 0 5px;
277
+}
278
+
279
+.tableBottom {
280
+  font-size: 16px;
281
+  display: flex;
282
+  margin-top: 20px;
283
+}
284
+
285
+.tableBottomOne {
286
+  margin-right: 40px;
287
+}
288
+
289
+.listTable {
290
+  width: 100%;
291
+  text-align: center;
292
+  border-collapse: collapse;
293
+  line-height: 40px;
294
+  font-size: 14px;
295
+  border-color: #000;
296
+  text-align: left;
297
+}
298
+.listTable thead {
299
+  width: 100%;
300
+  text-align: center;
301
+  border-collapse: collapse;
302
+  line-height: 40px;
303
+  font-size: 14px;
304
+  border-color: #000;
305
+  text-align: left;
306
+}
307
+.listTable thead tr td {
308
+  padding: 0 5px;
309
+}
310
+.tableBottom {
311
+  font-size: 16px;
312
+  display: flex;
313
+  margin-top: 20px;
314
+}
315
+.tableBottomOne {
316
+  margin-right: 40px;
317
+}
318
+</style>

+ 3 - 0
src/xt_pages/hospitalStation/statementPrint.vue View File

@@ -23,6 +23,9 @@
23 23
 <!--      <print-one :info="info" ></print-one>-->
24 24
       <hospital-settle-print :info="info" :list="list"></hospital-settle-print>
25 25
     </div>
26
+    <div class='dialysisPage' style="padding-top:40px;" v-if="this.$store.getters.xt_user.org_id != 10215 && this.paramsObj.balance_accounts_type == 2 && this.$store.getters.xt_user.org_id != 10265">
27
+    <private-charge-print :info="info" ></private-charge-print>
28
+    </div>
26 29
 
27 30
 <!--    <div class='dialysisPage' style="padding-top:40px;" v-else>-->
28 31
 <!--      <private-charge-print :info="info" v-if="this.paramsObj.balance_accounts_type == 2"></private-charge-print>-->

+ 52 - 5
src/xt_pages/hospitalStation/summary.vue View File

@@ -115,9 +115,9 @@
115 115
                       <el-button slot="reference" style="margin:0 10px;" type="primary" size="small">打印</el-button>
116 116
 
117 117
                     </el-popover> -->
118
-          <el-button size="small" type="primary" @click="export_detail"
119
-            >报表下载</el-button
120
-          >
118
+          <el-button size="small" type="primary" @click="export_detail">报表下载</el-button>
119
+
120
+          <el-button size="small" type="primary" @click="batch_print_settle" v-if="$store.getters.xt_user.org_id == 10215">批量打印结算单</el-button>
121 121
         </div>
122 122
       </div>
123 123
       <el-table
@@ -129,8 +129,16 @@
129 129
           backgroundColor: 'rgb(245, 247, 250)',
130 130
           color: '#606266',
131 131
         }"
132
+        @selection-change="handleSelectionChange"
132 133
         highlight-current-row
133 134
       >
135
+        <el-table-column
136
+          prop="date"
137
+          width="60"
138
+          align="center"
139
+          type="selection"
140
+        >
141
+        </el-table-column>
134 142
         <el-table-column
135 143
           prop="date"
136 144
           label="序号"
@@ -357,6 +365,19 @@
357 365
                 :visible.sync="settlementVisible">
358 366
             <settlement-print ref="print" :paramsObj='orderObj'></settlement-print>
359 367
         </el-dialog> -->
368
+
369
+
370
+    <el-dialog
371
+      class="centerDialog"
372
+      width="1200px"
373
+      title="打印"
374
+      :visible.sync="batchStatementVisible"
375
+    >
376
+      <hospital-batch-statement-print
377
+        ref="hospital_batch_print" :paramsObj="batchParams"
378
+      >
379
+      </hospital-batch-statement-print>
380
+    </el-dialog>
360 381
   </div>
361 382
 </template>
362 383
 
@@ -382,11 +403,15 @@ import axios from "axios";
382 403
 import invoicePrint from "./invoicePrint";
383 404
 import statementPrint from "./statementPrint";
384 405
 import ShouJuPrint from "./shouJuPrint";
406
+import BatchStatementPrint from '../outpatientCharges/batchStatementPrint.vue'
407
+import HospitalBatchStatementPrint from './hospitalBatchStatementPrint.vue'
385 408
 
386 409
 // import settlementPrint from './settlementPrint'
387 410
 
388 411
 export default {
389 412
   components: {
413
+    HospitalBatchStatementPrint,
414
+    BatchStatementPrint,
390 415
     ShouJuPrint,
391 416
     NewStatementPrintTwo,
392 417
     NewStatementPrint,
@@ -399,6 +424,9 @@ export default {
399 424
   },
400 425
   data() {
401 426
     return {
427
+      batchParams:{},
428
+      selecting_schs:[],
429
+      batchStatementVisible:false,
402 430
       loading1: true,
403 431
       orderObj: {},
404 432
       statementVisible: false,
@@ -478,6 +506,9 @@ export default {
478 506
   },
479 507
 
480 508
   methods: {
509
+    handleSelectionChange(val) {
510
+      this.selecting_schs = val
511
+    },
481 512
     confirmUploadInfo(row){
482 513
       var that = this;
483 514
       axios
@@ -975,8 +1006,24 @@ export default {
975 1006
     },
976 1007
     settlementPrint() {
977 1008
       this.settlementVisible = true;
978
-    },
979
-    export_detail() {
1009
+    },batch_print_settle(){
1010
+      if (this.selecting_schs.length === 0) {
1011
+        this.$message.error('请至少选择一条需要打印的内容')
1012
+        return false
1013
+      } else {
1014
+        var sch_ids = []
1015
+        for (let index = 0; index < this.selecting_schs.length; index++) {
1016
+          sch_ids.push(this.selecting_schs[index].id)
1017
+        }
1018
+        this.batchStatementVisible = true;
1019
+        let params = {
1020
+          order_ids: sch_ids.join(","),
1021
+          admin_user_id: this.$store.getters.xt_user.user.id,
1022
+        };
1023
+        this.batchParams = params
1024
+
1025
+      }
1026
+    },   export_detail() {
980 1027
       let params = {
981 1028
         start_time: this.start_time,
982 1029
         end_time: this.end_time,

+ 13 - 13
src/xt_pages/outpatientCharges/components/chargeDialog.vue View File

@@ -291,13 +291,13 @@
291 291
           return
292 292
         }
293 293
         console.log("val",val)
294
-        if (parseFloat(this.form.tmp_decimal) > parseFloat(this.form.private_price)){
295
-          // alert("押金不得大于自费金额")
296
-          this.$message.error("押金不得大于自费金额");
297
-          this.form.tmp_decimal = ""
298
-          this.form.pay_price = this.tmp_pay
299
-          return
300
-        }
294
+        // if (parseFloat(this.form.tmp_decimal) > parseFloat(this.form.private_price)){
295
+        //   // alert("押金不得大于自费金额")
296
+        //   this.$message.error("押金不得大于自费金额");
297
+        //   this.form.tmp_decimal = ""
298
+        //   this.form.pay_price = this.tmp_pay
299
+        //   return
300
+        // }
301 301
         // this.form.private_price = parseFloat(this.form.tmp_decimal) + parseFloat(this.form.pay_price)
302 302
 
303 303
         this.form.pay_price = ((parseFloat(this.form.private_price)*10000 - parseFloat(this.form.tmp_decimal)*10000)/10000).toFixed(2)
@@ -314,12 +314,12 @@
314 314
         }else {
315 315
           //储存临时押金
316 316
           this.tmp_pay = this.form.pay_price
317
-          if (parseFloat(this.form.tmp_decimal) > parseFloat(this.form.private_price)){
318
-            this.form.tmp_decimal = 0
319
-                // alert("押金不得大于自费金额")
320
-            this.$message.error("押金不得大于自费金额");
321
-            return
322
-          }
317
+          // if (parseFloat(this.form.tmp_decimal) > parseFloat(this.form.private_price)){
318
+          //   this.form.tmp_decimal = 0
319
+          //       // alert("押金不得大于自费金额")
320
+          //   // this.$message.error("押金不得大于自费金额");
321
+          //   return
322
+          // }
323 323
           // this.form.private_price = parseFloat(this.form.tmp_decimal) + parseFloat(this.form.pay_price)
324 324
           this.tmp_pay = this.form.pay_price
325 325
           this.form.pay_price = ((parseFloat(this.form.private_price)*10000 - parseFloat(this.form.tmp_decimal)*10000)/10000).toFixed(2)

+ 12 - 8
src/xt_pages/outpatientCharges/components/registerDialog.vue View File

@@ -214,6 +214,7 @@
214 214
     data() {
215 215
 
216 216
       return {
217
+        ws:null,
217 218
         registers: [
218 219
           { value: 11, label: '普通门诊' },
219 220
           { value: 1102, label: '新冠门诊' },
@@ -633,7 +634,7 @@
633 634
           'certificates':this.form.certificates,
634 635
         }
635 636
 
636
-        if ((this.$store.getters.xt_user.org_id == 10387 && this.form.id_card_type ==  4) || (this.$store.getters.xt_user.org_id == 4 && this.form.id_card_type ==  4) ){
637
+        if ((this.$store.getters.xt_user.org_id == 10387 && this.form.id_card_type ==  4) || (this.$store.getters.xt_user.org_id == 4 && this.form.id_card_type ==  4) || (this.$store.getters.xt_user.org_id == 10318 && this.form.id_card_type ==  4) ){
637 638
           try {
638 639
             //检测当前浏览器是否支持websocket模式
639 640
             window.WebSocket = window.WebSocket || window.MozWebSocket;
@@ -644,15 +645,19 @@
644 645
             this.ws = new WebSocket("ws://127.0.0.1:8899");//连接服务器
645 646
             var that = this
646 647
             this.ws.onopen = function(event){
647
-              that.ws.send("{\"url\":\"http://10.93.33.243:20001/localcfc/api/hsecfc/localQrCodeQuery\",\"indata\":{\"data\":{\"businessType\":\"01101\",\"deviceType\":\"\",\"officeId\":\"32760\",\"officeName\":\"肾内科\",\"operatorId\":\"admin\",\"operatorName\":\"罗佳菊\",\"orgId\":\"H43082200408\"},\"orgId\":\"H43082200408\",\"transType\":\"ec.query\"}}");
648
-
648
+              if (that.$store.getters.xt_user.org_id == 10387){
649
+                that.ws.send("{\"url\":\"http://10.93.33.243:20001/localcfc/api/hsecfc/localQrCodeQuery\",\"indata\":{\"data\":{\"businessType\":\"01101\",\"deviceType\":\"\",\"officeId\":\"32760\",\"officeName\":\"肾内科\",\"operatorId\":\"admin\",\"operatorName\":\"罗佳菊\",\"orgId\":\"H43082200408\"},\"orgId\":\"H43082200408\",\"transType\":\"ec.query\"}}");
650
+              }else if(that.$store.getters.xt_user.org_id == 10318){
651
+                that.ws.send("{\"url\":\"http://igb.hsa.gdgov.cn/prd_nation_eccode/prd_eccode/localcfc/api/hsecfc/localQrCodeQuery\",\"indata\":{\"data\":{\"businessType\":\"01101\",\"deviceType\":\"\",\"officeId\":\"32760\",\"officeName\":\"肾内科\",\"operatorId\":\"admin\",\"operatorName\":\"邹刘阳\",\"orgId\":\"H44011701749\"},\"orgId\":\"H44011701749\",\"transType\":\"ec.query\"}}");
652
+              }else if(that.$store.getters.xt_user.org_id == 4){
653
+                that.ws.send("{\"url\":\"http://igb.hsa.gdgov.cn/prd_nation_eccode/prd_eccode/localcfc/api/hsecfc/localQrCodeQuery\",\"indata\":{\"data\":{\"businessType\":\"01101\",\"deviceType\":\"\",\"officeId\":\"32760\",\"officeName\":\"肾内科\",\"operatorId\":\"admin\",\"operatorName\":\"邹刘阳\",\"orgId\":\"H44011701749\"},\"orgId\":\"H44011701749\",\"transType\":\"ec.query\"}}");
654
+              }
649 655
             };
650 656
 
651 657
             this.ws.onmessage = function(event){
652 658
               // alert("接收到服务器发送的数据:\r\n"+event.data);
653 659
               var newParams =  JSON.parse(event.data)
654 660
               console.log(newParams)
655
-
656 661
               console.log(newParams.data)
657 662
               console.log(newParams.data)
658 663
               console.log(newParams.data.ecToken)
@@ -707,7 +712,6 @@
707 712
                       that.form.phone = patient.phone
708 713
                       that.form.id_card = patient.id_card_no
709 714
                       that.form.social_type = parseInt(response.data.data.insutype)
710
-
711 715
                     }
712 716
                     that.$message({ message: '读卡成功', type: 'success' })
713 717
                   }
@@ -719,11 +723,11 @@
719 723
 
720 724
             };
721 725
             this.ws.onclose = function(event){
722
-              alert("已经与服务器断开连接\r\n当前连接状态:"+this.readyState);
726
+              // alert("已经与服务器断开连接\r\n当前连接状态:"+this.readyState);
723 727
             };
724 728
             this.ws.onerror = function(event){
725
-              if (this.flag!=1)
726
-                alert("WebSocket接收异常!");
729
+              // if (this.flag!=1)
730
+              // alert("WebSocket接收异常!");
727 731
             };
728 732
           } catch (ex) {
729 733
             alert(ex.message);

+ 498 - 83
src/xt_pages/outpatientCharges/components/registerDialog9504.vue View File

@@ -102,6 +102,19 @@
102 102
           </el-option>
103 103
         </el-select>
104 104
       </el-form-item>
105
+      <el-form-item label="参保地:">
106
+        <el-autocomplete
107
+          popper-class="my-autocomplete"
108
+          v-model="form.insuplc_admdvs"
109
+          :fetch-suggestions="querySearch"
110
+          placeholder="请输入内容"
111
+          @select="handleSelectTwo">
112
+
113
+          <template slot-scope="{ item }">
114
+            <div class="id">{{ item.id }}{{ item.name }}</div>
115
+          </template>
116
+        </el-autocomplete>
117
+      </el-form-item>
105 118
 
106 119
 
107 120
       <el-form-item label="读卡类型:" prop="id_card_type">
@@ -188,6 +201,385 @@
188 201
     data() {
189 202
 
190 203
       return {
204
+        area:[
205
+          {id:110000,name:"北京市"},
206
+          {id:120000,name:"天津市"},
207
+          {id:130000,name:"河北省"},
208
+          {id:130100,name:"石家庄市"},
209
+          {id:130200,name:"唐山市"},
210
+          {id:130300,name:"秦皇岛市"},
211
+          {id:130400,name:"邯郸市"},
212
+          {id:130500,name:"邢台市"},
213
+          {id:130600,name:"保定市"},
214
+          {id:130700,name:"张家口市"},
215
+          {id:130800,name:"承德市"},
216
+          {id:130900,name:"沧州市"},
217
+          {id:131000,name:"廊坊市"},
218
+          {id:131100,name:"衡水市"},
219
+          {id:140000,name:"山西省"},
220
+          {id:140100,name:"太原市"},
221
+          {id:140200,name:"大同市"},
222
+          {id:140300,name:"阳泉市"},
223
+          {id:140400,name:"长治市"},
224
+          {id:140500,name:"晋城市"},
225
+          {id:140600,name:"朔州市"},
226
+          {id:140700,name:"晋中市"},
227
+          {id:140800,name:"运城市"},
228
+          {id:140900,name:"忻州市"},
229
+          {id:141000,name:"临汾市"},
230
+          {id:141100,name:"吕梁市"},
231
+          {id:150000,name:"内蒙古自治区"},
232
+          {id:150100,name:"呼和浩特市"},
233
+          {id:150200,name:"包头市"},
234
+          {id:150300,name:"乌海市"},
235
+          {id:150400,name:"赤峰市"},
236
+          {id:150500,name:"通辽市"},
237
+          {id:150600,name:"鄂尔多斯市"},
238
+          {id:150700,name:"呼伦贝尔市"},
239
+          {id:150800,name:"巴彦淖尔市"},
240
+          {id:150900,name:"乌兰察布市"},
241
+          {id:152200,name:"兴安盟"},
242
+          {id:152500,name:"锡林郭勒盟"},
243
+          {id:152900,name:"阿拉善盟"},
244
+          {id:210000,name:"辽宁省"},
245
+          {id:210100,name:"沈阳市"},
246
+          {id:210200,name:"大连市"},
247
+          {id:210300,name:"鞍山市"},
248
+          {id:210400,name:"抚顺市"},
249
+          {id:210500,name:"本溪市"},
250
+          {id:210600,name:"丹东市"},
251
+          {id:210700,name:"锦州市"},
252
+          {id:210800,name:"营口市"},
253
+          {id:210900,name:"阜新市"},
254
+          {id:211000,name:"辽阳市"},
255
+          {id:211100,name:"盘锦市"},
256
+          {id:211200,name:"铁岭市"},
257
+          {id:211300,name:"朝阳市"},
258
+          {id:211400,name:"葫芦岛市"},
259
+          {id:220000,name:"吉林省"},
260
+          {id:220100,name:"长春市"},
261
+          {id:220200,name:"吉林市"},
262
+          {id:220300,name:"四平市"},
263
+          {id:220400,name:"辽源市"},
264
+          {id:220500,name:"通化市"},
265
+          {id:220600,name:"白山市"},
266
+          {id:220700,name:"松原市"},
267
+          {id:220800,name:"白城市"},
268
+          {id:222400,name:"延边朝鲜族自治州"},
269
+          {id:230000,name:"黑龙江省"},
270
+          {id:230100,name:"哈尔滨市"},
271
+          {id:230200,name:"齐齐哈尔市"},
272
+          {id:230300,name:"鸡西市"},
273
+          {id:230400,name:"鹤岗市"},
274
+          {id:230500,name:"双鸭山市"},
275
+          {id:230600,name:"大庆市"},
276
+          {id:230700,name:"伊春市"},
277
+          {id:230800,name:"佳木斯市"},
278
+          {id:230900,name:"七台河市"},
279
+          {id:231000,name:"牡丹江市"},
280
+          {id:231100,name:"黑河市"},
281
+          {id:231200,name:"绥化市"},
282
+          {id:232700,name:"大兴安岭地区"},
283
+          {id:310000,name:"上海市"},
284
+          {id:320000,name:"江苏省"},
285
+          {id:320100,name:"南京市"},
286
+          {id:320200,name:"无锡市"},
287
+          {id:320300,name:"徐州市"},
288
+          {id:320400,name:"常州市"},
289
+          {id:320500,name:"苏州市"},
290
+          {id:320600,name:"南通市"},
291
+          {id:320700,name:"连云港市"},
292
+          {id:320800,name:"淮安市"},
293
+          {id:320900,name:"盐城市"},
294
+          {id:321000,name:"扬州市"},
295
+          {id:321100,name:"镇江市"},
296
+          {id:321200,name:"泰州市"},
297
+          {id:321300,name:"宿迁市"},
298
+          {id:330000,name:"浙江省"},
299
+          {id:330100,name:"杭州市"},
300
+          {id:330200,name:"宁波市"},
301
+          {id:330300,name:"温州市"},
302
+          {id:330400,name:"嘉兴市"},
303
+          {id:330500,name:"湖州市"},
304
+          {id:330600,name:"绍兴市"},
305
+          {id:330700,name:"金华市"},
306
+          {id:330800,name:"衢州市"},
307
+          {id:330900,name:"舟山市"},
308
+          {id:331000,name:"台州市"},
309
+          {id:331100,name:"丽水市"},
310
+          {id:340000,name:"安徽省"},
311
+          {id:340100,name:"合肥市"},
312
+          {id:340200,name:"芜湖市"},
313
+          {id:340300,name:"蚌埠市"},
314
+          {id:340400,name:"淮南市"},
315
+          {id:340500,name:"马鞍山市"},
316
+          {id:340600,name:"淮北市"},
317
+          {id:340700,name:"铜陵市"},
318
+          {id:340800,name:"安庆市"},
319
+          {id:341000,name:"黄山市"},
320
+          {id:341100,name:"滁州市"},
321
+          {id:341200,name:"阜阳市"},
322
+          {id:341300,name:"宿州市"},
323
+          {id:341500,name:"六安市"},
324
+          {id:341600,name:"亳州市"},
325
+          {id:341700,name:"池州市"},
326
+          {id:341800,name:"宣城市"},
327
+          {id:350000,name:"福建省"},
328
+          {id:350100,name:"福州市"},
329
+          {id:350200,name:"厦门市"},
330
+          {id:350300,name:"莆田市"},
331
+          {id:350400,name:"三明市"},
332
+          {id:350500,name:"泉州市"},
333
+          {id:350600,name:"漳州市"},
334
+          {id:350700,name:"南平市"},
335
+          {id:350800,name:"龙岩市"},
336
+          {id:350900,name:"宁德市"},
337
+          {id:360000,name:"江西省"},
338
+          {id:360100,name:"南昌市"},
339
+          {id:360200,name:"景德镇市"},
340
+          {id:360300,name:"萍乡市"},
341
+          {id:360400,name:"九江市"},
342
+          {id:360500,name:"新余市"},
343
+          {id:360600,name:"鹰潭市"},
344
+          {id:360700,name:"赣州市"},
345
+          {id:360800,name:"吉安市"},
346
+          {id:360900,name:"宜春市"},
347
+          {id:361000,name:"抚州市"},
348
+          {id:361100,name:"上饶市"},
349
+          {id:370000,name:"山东省"},
350
+          {id:370100,name:"济南市"},
351
+          {id:370200,name:"青岛市"},
352
+          {id:370300,name:"淄博市"},
353
+          {id:370400,name:"枣庄市"},
354
+          {id:370500,name:"东营市"},
355
+          {id:370600,name:"烟台市"},
356
+          {id:370700,name:"潍坊市"},
357
+          {id:370800,name:"济宁市"},
358
+          {id:370900,name:"泰安市"},
359
+          {id:371000,name:"威海市"},
360
+          {id:371100,name:"日照市"},
361
+          {id:371300,name:"临沂市"},
362
+          {id:371400,name:"德州市"},
363
+          {id:371500,name:"聊城市"},
364
+          {id:371600,name:"滨州市"},
365
+          {id:371700,name:"菏泽市"},
366
+          {id:410000,name:"河南省"},
367
+          {id:410100,name:"郑州市"},
368
+          {id:410200,name:"开封市"},
369
+          {id:410300,name:"洛阳市"},
370
+          {id:410400,name:"平顶山市"},
371
+          {id:410500,name:"安阳市"},
372
+          {id:410600,name:"鹤壁市"},
373
+          {id:410700,name:"新乡市"},
374
+          {id:410800,name:"焦作市"},
375
+          {id:410900,name:"濮阳市"},
376
+          {id:411000,name:"许昌市"},
377
+          {id:411100,name:"漯河市"},
378
+          {id:411200,name:"三门峡市"},
379
+          {id:411300,name:"南阳市"},
380
+          {id:411400,name:"商丘市"},
381
+          {id:411500,name:"信阳市"},
382
+          {id:411600,name:"周口市"},
383
+          {id:411700,name:"驻马店市"},
384
+          {id:420000,name:"湖北省"},
385
+          {id:420100,name:"武汉市"},
386
+          {id:420200,name:"黄石市"},
387
+          {id:420300,name:"十堰市"},
388
+          {id:420500,name:"宜昌市"},
389
+          {id:420600,name:"襄阳市"},
390
+          {id:420700,name:"鄂州市"},
391
+          {id:420800,name:"荆门市"},
392
+          {id:420900,name:"孝感市"},
393
+          {id:421000,name:"荆州市"},
394
+          {id:421100,name:"黄冈市"},
395
+          {id:421200,name:"咸宁市"},
396
+          {id:421300,name:"随州市"},
397
+          {id:422800,name:"恩施土家族苗族自治州"},
398
+          {id:430000,name:"湖南省"},
399
+          {id:430100,name:"长沙市"},
400
+          {id:430200,name:"株洲市"},
401
+          {id:430300,name:"湘潭市"},
402
+          {id:430400,name:"衡阳市"},
403
+          {id:430500,name:"邵阳市"},
404
+          {id:430600,name:"岳阳市"},
405
+          {id:430700,name:"常德市"},
406
+          {id:430800,name:"张家界市"},
407
+          {id:430900,name:"益阳市"},
408
+          {id:431000,name:"郴州市"},
409
+          {id:431100,name:"永州市"},
410
+          {id:431200,name:"怀化市"},
411
+          {id:431300,name:"娄底市"},
412
+          {id:433100,name:"湘西土家族苗族自治州"},
413
+          {id:440000,name:"广东省"},
414
+          {id:440100,name:"广州市"},
415
+          {id:440200,name:"韶关市"},
416
+          {id:440300,name:"深圳市"},
417
+          {id:440400,name:"珠海市"},
418
+          {id:440500,name:"汕头市"},
419
+          {id:440600,name:"佛山市"},
420
+          {id:440700,name:"江门市"},
421
+          {id:440800,name:"湛江市"},
422
+          {id:440900,name:"茂名市"},
423
+          {id:441200,name:"肇庆市"},
424
+          {id:441300,name:"惠州市"},
425
+          {id:441400,name:"梅州市"},
426
+          {id:441500,name:"汕尾市"},
427
+          {id:441600,name:"河源市"},
428
+          {id:441700,name:"阳江市"},
429
+          {id:441800,name:"清远市"},
430
+          {id:441900,name:"东莞市"},
431
+          {id:442000,name:"中山市"},
432
+          {id:445100,name:"潮州市"},
433
+          {id:445200,name:"揭阳市"},
434
+          {id:445300,name:"云浮市"},
435
+          {id:450000,name:"广西壮族自治区"},
436
+          {id:450100,name:"南宁市"},
437
+          {id:450200,name:"柳州市"},
438
+          {id:450300,name:"桂林市"},
439
+          {id:450400,name:"梧州市"},
440
+          {id:450500,name:"北海市"},
441
+          {id:450600,name:"防城港市"},
442
+          {id:450700,name:"钦州市"},
443
+          {id:450800,name:"贵港市"},
444
+          {id:450900,name:"玉林市"},
445
+          {id:451000,name:"百色市"},
446
+          {id:451100,name:"贺州市"},
447
+          {id:451200,name:"河池市"},
448
+          {id:451300,name:"来宾市"},
449
+          {id:451400,name:"崇左市"},
450
+          {id:460000,name:"海南省"},
451
+          {id:460100,name:"海口市"},
452
+          {id:460200,name:"三亚市"},
453
+          {id:460300,name:"三沙市"},
454
+          {id:460400,name:"儋州市"},
455
+          {id:500000,name:"重庆市"},
456
+          {id:510000,name:"四川省"},
457
+          {id:510100,name:"成都市"},
458
+          {id:510300,name:"自贡市"},
459
+          {id:510400,name:"攀枝花市"},
460
+          {id:510500,name:"泸州市"},
461
+          {id:510600,name:"德阳市"},
462
+          {id:510700,name:"绵阳市"},
463
+          {id:510800,name:"广元市"},
464
+          {id:510900,name:"遂宁市"},
465
+          {id:511000,name:"内江市"},
466
+          {id:511100,name:"乐山市"},
467
+          {id:511300,name:"南充市"},
468
+          {id:511400,name:"眉山市"},
469
+          {id:511500,name:"宜宾市"},
470
+          {id:511600,name:"广安市"},
471
+          {id:511700,name:"达州市"},
472
+          {id:511800,name:"雅安市"},
473
+          {id:511900,name:"巴中市"},
474
+          {id:512000,name:"资阳市"},
475
+          {id:513200,name:"阿坝藏族羌族自治州"},
476
+          {id:513300,name:"甘孜藏族自治州"},
477
+          {id:513400,name:"凉山彝族自治州"},
478
+          {id:520000,name:"贵州省"},
479
+          {id:520100,name:"贵阳市"},
480
+          {id:520200,name:"六盘水市"},
481
+          {id:520300,name:"遵义市"},
482
+          {id:520400,name:"安顺市"},
483
+          {id:520500,name:"毕节市"},
484
+          {id:520600,name:"铜仁市"},
485
+          {id:522300,name:"黔西南布依族苗族自治州"},
486
+          {id:522600,name:"黔东南苗族侗族自治州"},
487
+          {id:522700,name:"黔南布依族苗族自治州"},
488
+          {id:530000,name:"云南省"},
489
+          {id:530100,name:"昆明市"},
490
+          {id:530300,name:"曲靖市"},
491
+          {id:530400,name:"玉溪市"},
492
+          {id:530500,name:"保山市"},
493
+          {id:530600,name:"昭通市"},
494
+          {id:530700,name:"丽江市"},
495
+          {id:530800,name:"普洱市"},
496
+          {id:530900,name:"临沧市"},
497
+          {id:532300,name:"楚雄彝族自治州"},
498
+          {id:532500,name:"红河哈尼族彝族自治州"},
499
+          {id:532600,name:"文山壮族苗族自治州"},
500
+          {id:532800,name:"西双版纳傣族自治州"},
501
+          {id:532900,name:"大理白族自治州"},
502
+          {id:533100,name:"德宏傣族景颇族自治州"},
503
+          {id:533300,name:"怒江傈僳族自治州"},
504
+          {id:533400,name:"迪庆藏族自治州"},
505
+          {id:540000,name:"西藏自治区"},
506
+          {id:540100,name:"拉萨市"},
507
+          {id:540200,name:"日喀则市"},
508
+          {id:540300,name:"昌都市"},
509
+          {id:540400,name:"林芝市"},
510
+          {id:540500,name:"山南市"},
511
+          {id:540600,name:"那曲市"},
512
+          {id:542500,name:"阿里地区"},
513
+          {id:610000,name:"陕西省"},
514
+          {id:610100,name:"西安市"},
515
+          {id:610200,name:"铜川市"},
516
+          {id:610300,name:"宝鸡市"},
517
+          {id:610400,name:"咸阳市"},
518
+          {id:610500,name:"渭南市"},
519
+          {id:610600,name:"延安市"},
520
+          {id:610700,name:"汉中市"},
521
+          {id:610800,name:"榆林市"},
522
+          {id:610900,name:"安康市"},
523
+          {id:611000,name:"商洛市"},
524
+          {id:620000,name:"甘肃省"},
525
+          {id:620100,name:"兰州市"},
526
+          {id:620200,name:"嘉峪关市"},
527
+          {id:620300,name:"金昌市"},
528
+          {id:620400,name:"白银市"},
529
+          {id:620500,name:"天水市"},
530
+          {id:620600,name:"武威市"},
531
+          {id:620700,name:"张掖市"},
532
+          {id:620800,name:"平凉市"},
533
+          {id:620900,name:"酒泉市"},
534
+          {id:621000,name:"庆阳市"},
535
+          {id:621100,name:"定西市"},
536
+          {id:621200,name:"陇南市"},
537
+          {id:622900,name:"临夏回族自治州"},
538
+          {id:623000,name:"甘南藏族自治州"},
539
+          {id:630000,name:"青海省"},
540
+          {id:630100,name:"西宁市"},
541
+          {id:630200,name:"海东市"},
542
+          {id:632200,name:"海北藏族自治州"},
543
+          {id:632300,name:"黄南藏族自治州"},
544
+          {id:632500,name:"海南藏族自治州"},
545
+          {id:632600,name:"果洛藏族自治州"},
546
+          {id:632700,name:"玉树藏族自治州"},
547
+          {id:632800,name:"海西蒙古族藏族自治州"},
548
+          {id:640000,name:"宁夏回族自治区"},
549
+          {id:640100,name:"银川市"},
550
+          {id:640200,name:"石嘴山市"},
551
+          {id:640300,name:"吴忠市"},
552
+          {id:640400,name:"固原市"},
553
+          {id:640500,name:"中卫市"},
554
+          {id:650000,name:"新疆维吾尔自治区"},
555
+          {id:650100,name:"乌鲁木齐市"},
556
+          {id:650200,name:"克拉玛依市"},
557
+          {id:650400,name:"吐鲁番市"},
558
+          {id:650500,name:"哈密市"},
559
+          {id:652300,name:"昌吉回族自治州"},
560
+          {id:652700,name:"博尔塔拉蒙古自治州"},
561
+          {id:652800,name:"巴音郭楞蒙古自治州"},
562
+          {id:652900,name:"阿克苏地区"},
563
+          {id:653000,name:"克孜勒苏柯尔克孜自治州"},
564
+          {id:653100,name:"喀什地区"},
565
+          {id:653200,name:"和田地区"},
566
+          {id:654000,name:"伊犁哈萨克自治州"},
567
+          {id:654200,name:"塔城地区"},
568
+          {id:654300,name:"阿勒泰地区"},
569
+          {id:659001,name:"石河子市"},
570
+          {id:659002,name:"阿拉尔市"},
571
+          {id:659003,name:"图木舒克市"},
572
+          {id:659004,name:"五家渠市"},
573
+          {id:659005,name:"北屯市"},
574
+          {id:659006,name:"铁门关市"},
575
+          {id:659007,name:"双河市"},
576
+          {id:659008,name:"可克达拉市"},
577
+          {id:659009,name:"昆玉市"},
578
+          {id:710000,name:"台湾省"},
579
+          {id:810000,name:"香港特别行政区"},
580
+          {id:820000,name:"澳门特别行政区"}
581
+        ],
582
+
191 583
         read_loading:false,
192 584
         registers: [
193 585
           {value: 11, label: "普通门诊"},
@@ -215,6 +607,7 @@
215 607
 
216 608
         form: {
217 609
           id: '',
610
+          insuplc_admdvs:"",
218 611
           settlement_value: '',
219 612
           medical_insurance_card: '',
220 613
           name: '',
@@ -437,6 +830,23 @@
437 830
           })
438 831
           .catch(function(error) {
439 832
           })
833
+      },handleIconClick(){
834
+
835
+
836
+      },handleSelectTwo(item){
837
+          this.form.insuplc_admdvs = item.id
838
+
839
+      },  createFilter(queryString) {
840
+        console.log(queryString)
841
+        return (restaurant) => {
842
+          return (restaurant.name.indexOf(queryString) === 0 || restaurant.id.toString().indexOf(queryString) === 0);
843
+        };
844
+      }, querySearch(queryString, cb) {
845
+        var restaurants = this.area;
846
+        console.log(restaurants)
847
+        var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
848
+        console.log(results)
849
+        cb(results);
440 850
       },
441 851
       check14(){
442 852
         if(this.form.social_type == 0 || this.form.social_type == ''){
@@ -549,98 +959,103 @@
549 959
 
550 960
         }
551 961
         this.read_loading = true
552
-        axios.get('http://127.0.0.1:9532/api/readcard', {
553
-          params: params
554
-        })
555
-          .then(function (response) {
556
-            if (response.data.state == 0) {
557
-              that.read_loading = false
962
+        {
963
+          axios.get('http://127.0.0.1:9532/api/readcard', {
964
+            params: params
965
+          })
966
+            .then(function (response) {
967
+              if (response.data.state == 0) {
968
+                that.read_loading = false
558 969
 
559
-              that.$message.error(response.data.msg)
560
-              return false
561
-            } else {
562
-              that.read_loading = false
563
-              var patient = response.data.data.patient
564
-              if (that.form.id_card_type == 1) {
565
-                that.form.id = patient.id
566
-                that.form.name = patient.name
567
-                that.form.gender = patient.gender
568
-                that.form.age = patient.age
569
-                that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
570
-                that.form.phone = patient.phone
571
-                that.form.id_card = patient.id_card_no
572
-                that.form.medical_insurance_card = response.data.data.health_card_no
573
-
574
-                var thisLen = that.form.id_card.length
575
-                var birth = ''
576
-                if (thisLen == 15) {
577
-                  birth = '19' + that.form.id_card.substr(6, 6)
578
-                } else {
579
-                  birth = that.form.id_card.substr(6, 8)
580
-                }
581
-                var births =
582
-                  birth.substr(0, 4) +
583
-                  '-' +
584
-                  birth.substr(4, 2) +
585
-                  '-' +
586
-                  birth.substr(6, 2)
587
-                that.form.age = jsGetAge(births, '-')
588
-
589
-
590
-              } else if (that.form.id_card_type == 2) {
591
-                that.form.id = patient.id
592
-                that.form.name = patient.name
593
-                that.form.gender = patient.gender
594
-                that.form.age = patient.age
595
-                that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
596
-                that.form.phone = patient.phone
597
-                that.form.id_card = patient.id_card_no
598
-
599
-                var thisLen = that.form.id_card.length
600
-                var birth = ''
601
-                if (thisLen == 15) {
602
-                  birth = '19' + that.form.id_card.substr(6, 6)
603
-                } else {
604
-                  birth = that.form.id_card.substr(6, 8)
605
-                }
606
-                var births =
607
-                  birth.substr(0, 4) +
608
-                  '-' +
609
-                  birth.substr(4, 2) +
610
-                  '-' +
611
-                  birth.substr(6, 2)
612
-                that.form.age = jsGetAge(births, '-')
613
-              }else  {
614
-                that.form.id = patient.id
615
-                that.form.name = patient.name
616
-                that.form.gender = patient.gender
617
-                that.form.age = patient.age
618
-                that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
619
-                that.form.phone = patient.phone
620
-                that.form.id_card = patient.id_card_no
621
-
622
-                var thisLen = that.form.id_card.length
623
-                var birth = ''
624
-                if (thisLen == 15) {
625
-                  birth = '19' + that.form.id_card.substr(6, 6)
626
-                } else {
627
-                  birth = that.form.id_card.substr(6, 8)
628
-                }
629
-                var births =
970
+                that.$message.error(response.data.msg)
971
+                return false
972
+              } else {
973
+                that.read_loading = false
974
+                var patient = response.data.data.patient
975
+                if (that.form.id_card_type == 1) {
976
+                  that.form.id = patient.id
977
+                  that.form.name = patient.name
978
+                  that.form.gender = patient.gender
979
+                  that.form.age = patient.age
980
+                  that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
981
+                  that.form.phone = patient.phone
982
+                  that.form.id_card = patient.id_card_no
983
+                  that.form.medical_insurance_card = response.data.data.health_card_no
984
+
985
+                  var thisLen = that.form.id_card.length
986
+                  var birth = ''
987
+                  if (thisLen == 15) {
988
+                    birth = '19' + that.form.id_card.substr(6, 6)
989
+                  } else {
990
+                    birth = that.form.id_card.substr(6, 8)
991
+                  }
992
+                  var births =
630 993
                     birth.substr(0, 4) +
631 994
                     '-' +
632 995
                     birth.substr(4, 2) +
633 996
                     '-' +
634 997
                     birth.substr(6, 2)
635
-                that.form.age = jsGetAge(births, '-')
998
+                  that.form.age = jsGetAge(births, '-')
999
+
1000
+
1001
+                } else if (that.form.id_card_type == 2) {
1002
+                  that.form.id = patient.id
1003
+                  that.form.name = patient.name
1004
+                  that.form.gender = patient.gender
1005
+                  that.form.age = patient.age
1006
+                  that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
1007
+                  that.form.phone = patient.phone
1008
+                  that.form.id_card = patient.id_card_no
1009
+
1010
+                  var thisLen = that.form.id_card.length
1011
+                  var birth = ''
1012
+                  if (thisLen == 15) {
1013
+                    birth = '19' + that.form.id_card.substr(6, 6)
1014
+                  } else {
1015
+                    birth = that.form.id_card.substr(6, 8)
1016
+                  }
1017
+                  var births =
1018
+                    birth.substr(0, 4) +
1019
+                    '-' +
1020
+                    birth.substr(4, 2) +
1021
+                    '-' +
1022
+                    birth.substr(6, 2)
1023
+                  that.form.age = jsGetAge(births, '-')
1024
+                }else  {
1025
+                  that.form.id = patient.id
1026
+                  that.form.name = patient.name
1027
+                  that.form.gender = patient.gender
1028
+                  that.form.age = patient.age
1029
+                  that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
1030
+                  that.form.phone = patient.phone
1031
+                  that.form.id_card = patient.id_card_no
1032
+
1033
+                  var thisLen = that.form.id_card.length
1034
+                  var birth = ''
1035
+                  if (thisLen == 15) {
1036
+                    birth = '19' + that.form.id_card.substr(6, 6)
1037
+                  } else {
1038
+                    birth = that.form.id_card.substr(6, 8)
1039
+                  }
1040
+                  var births =
1041
+                    birth.substr(0, 4) +
1042
+                    '-' +
1043
+                    birth.substr(4, 2) +
1044
+                    '-' +
1045
+                    birth.substr(6, 2)
1046
+                  that.form.age = jsGetAge(births, '-')
1047
+                }
1048
+                that.$message({message: '读卡成功', type: 'success'})
1049
+
636 1050
               }
637
-              that.$message({message: '读卡成功', type: 'success'})
1051
+            })
1052
+            .catch(function (error) {
638 1053
 
639
-            }
640
-          })
641
-          .catch(function (error) {
1054
+            });
1055
+
1056
+
1057
+        }
642 1058
 
643
-          });
644 1059
 
645 1060
 
646 1061
       },

+ 2 - 2
src/xt_pages/outpatientCharges/listPrint.vue View File

@@ -146,8 +146,8 @@
146 146
                   }
147 147
                 }
148 148
                 obj.total = this.getTotal(tempDetails)
149
-                obj.jiaTotal = this.getJiaTotal(tempDetails)
150
-                obj.yiTotal = this.getYiTotal(tempDetails)
149
+                obj.jiaTotal = this.getJiaTotal(tempDetails,this.hospital_record.balance_accounts_type)
150
+                obj.yiTotal = this.getYiTotal(tempDetails,this.hospital_record.balance_accounts_type)
151 151
                 obj.noMedicineTotal = this.getNoMedicineTotal(tempDetails)
152 152
                 obj.bingTotal = this.getBingTotal(tempDetails)
153 153
                 obj.otherTotal = this.getOtherTotal(tempDetails)

+ 24 - 3
src/xt_pages/outpatientCharges/outpatientChargesManagement.vue View File

@@ -455,6 +455,14 @@
455 455
 
456 456
                             <div>
457 457
 
458
+                              <el-button
459
+                                v-if="(hisPatientInfo.id_card_type == 4 && hisPatientInfo.balance_accounts_type != 2 && hisPatientInfo.id > 0  && org_id != 10340)"
460
+                                size="small"
461
+                                @click="open(50,items.med_type,items.curMonthPrescriptions.order,items.month_prescriptions)"
462
+                                type="primary"
463
+                              >读电子凭证
464
+                              </el-button>
465
+
458 466
                               <el-button
459 467
                                   v-if="(hisPatientInfo.balance_accounts_type != 2 && hisPatientInfo.id > 0 &&  items.curMonthPrescriptions.order.id == 0)"
460 468
                                   size="small"
@@ -1018,6 +1026,7 @@ export default {
1018 1026
   },
1019 1027
   data() {
1020 1028
     return {
1029
+      ws:null,
1021 1030
       fapiaoCodeDialogVisible:false,
1022 1031
       fapiao_code:"",
1023 1032
       monthChargePatientTableData: [],
@@ -1086,6 +1095,8 @@ export default {
1086 1095
         { value: '9933', label: '门诊特殊病(9933)' },
1087 1096
         { value: '990602', label: '门诊特殊病(990602)' },
1088 1097
         { value: '1402', label: '门诊特殊病(1402)' },
1098
+        { value: '1401', label: '门诊慢性病(1401)' },
1099
+
1089 1100
         { value: '1111', label: '精一' },
1090 1101
         { value: '1112', label: '精二' },
1091 1102
         { value: '0', label: '自费' }
@@ -1099,6 +1110,8 @@ export default {
1099 1110
         { value: '9933', label: '门诊特殊病(9933)' },
1100 1111
         { value: '990602', label: '门诊特殊病(990602)' },
1101 1112
         { value: '1402', label: '门诊特殊病(1402)' },
1113
+        { value: '1401', label: '门诊慢性病(1401)' },
1114
+
1102 1115
         { value: '0', label: '自费' }
1103 1116
 
1104 1117
       ],
@@ -3645,7 +3658,7 @@ export default {
3645 3658
           "admin_user_id":this.$store.getters.xt_user.user.id,
3646 3659
           'his_patient_id': this.hisPatientInfo.id,
3647 3660
         }
3648
-        if ((this.$store.getters.xt_user.org_id == 10387 && this.form.id_card_type ==  4) || (this.$store.getters.xt_user.org_id == 4 && this.form.id_card_type ==  4) ){
3661
+        if ((this.$store.getters.xt_user.org_id == 10387) || (this.$store.getters.xt_user.org_id == 10318)){
3649 3662
           try {
3650 3663
             //检测当前浏览器是否支持websocket模式
3651 3664
             window.WebSocket = window.WebSocket || window.MozWebSocket;
@@ -3656,8 +3669,13 @@ export default {
3656 3669
             this.ws = new WebSocket("ws://127.0.0.1:8899");//连接服务器
3657 3670
             var that = this
3658 3671
             this.ws.onopen = function(event){
3659
-              that.ws.send("{\"url\":\"http://10.93.33.243:20001/localcfc/api/hsecfc/localQrCodeQuery\",\"indata\":{\"data\":{\"businessType\":\"01301\",\"deviceType\":\"\",\"officeId\":\"32760\",\"officeName\":\"肾内科\",\"operatorId\":\"admin\",\"operatorName\":\"罗佳菊\",\"orgId\":\"H43082200408\"},\"orgId\":\"H43082200408\",\"transType\":\"ec.query\"}}");
3660
-
3672
+              if (that.$store.getters.xt_user.org_id == 10387){
3673
+                that.ws.send("{\"url\":\"http://10.93.33.243:20001/localcfc/api/hsecfc/localQrCodeQuery\",\"indata\":{\"data\":{\"businessType\":\"01301\",\"deviceType\":\"\",\"officeId\":\"32760\",\"officeName\":\"肾内科\",\"operatorId\":\"admin\",\"operatorName\":\"罗佳菊\",\"orgId\":\"H43082200408\"},\"orgId\":\"H43082200408\",\"transType\":\"ec.query\"}}");
3674
+              }else if(that.$store.getters.xt_user.org_id == 10318){
3675
+                that.ws.send("{\"url\":\"http://igb.hsa.gdgov.cn/prd_nation_eccode/prd_eccode/localcfc/api/hsecfc/localQrCodeQuery\",\"indata\":{\"data\":{\"businessType\":\"01301\",\"deviceType\":\"\",\"officeId\":\"32760\",\"officeName\":\"肾内科\",\"operatorId\":\"admin\",\"operatorName\":\"邹刘阳\",\"orgId\":\"H44011701749\"},\"orgId\":\"H44011701749\",\"transType\":\"ec.query\"}}");
3676
+              }else if(that.$store.getters.xt_user.org_id == 4){
3677
+                that.ws.send("{\"url\":\"http://igb.hsa.gdgov.cn/prd_nation_eccode/prd_eccode/localcfc/api/hsecfc/localQrCodeQuery\",\"indata\":{\"data\":{\"businessType\":\"01301\",\"deviceType\":\"\",\"officeId\":\"32760\",\"officeName\":\"肾内科\",\"operatorId\":\"admin\",\"operatorName\":\"邹刘阳\",\"orgId\":\"H44011701749\"},\"orgId\":\"H44011701749\",\"transType\":\"ec.query\"}}");
3678
+              }
3661 3679
             };
3662 3680
 
3663 3681
             this.ws.onmessage = function(event){
@@ -4728,6 +4746,9 @@ export default {
4728 4746
         case 1402:
4729 4747
           return '门诊特殊病(1402)' + '处方' + index
4730 4748
           break
4749
+        case 1401:
4750
+          return '门诊慢性病(1401)' + '处方' + index
4751
+          break
4731 4752
         case 9922:
4732 4753
           return '家庭通道' + '处方' + index
4733 4754
           break

+ 6 - 6
src/xt_pages/outpatientCharges/statementPrint.vue View File

@@ -40,7 +40,6 @@
40 40
           :paramsObj="paramsObj"
41 41
           :balanceAccounts="balanceAccounts"
42 42
         ></printFour>
43
-        <!--        <privateChargePrint  :info="info" v-if="org_id == 10215 && this.paramsObj.balance_accounts_type == 2"></privateChargePrint>-->
44 43
       </div>
45 44
       <!--      <print-other :info="info" v-if="org_id == 9919"></print-other>-->
46 45
       <!--      <printOne :info=" info" v-if="org_id == 10215 && this.paramsObj.balance_accounts_type == 2"></printOne>-->
@@ -65,8 +64,13 @@
65 64
             org_id != 9504 &&
66 65
             org_id != 10028 &&
67 66
             org_id != 0 &&
68
-            org_id != 10278 && org_id != 10387 && org_id != 0 && org_id != 10191 &&org_id != 10210"></printOne>
67
+            org_id != 10278 && org_id != 10387 && org_id != 0 && org_id != 10191 &&org_id != 10210 && this.paramsObj.balance_accounts_type == 1"></printOne>
69 68
 
69
+      <privateChargePrint  :info="info" v-if="org_id != 9990 &&
70
+            org_id != 10138 &&
71
+            org_id != 9504 &&
72
+            org_id != 10028 &&
73
+            org_id != 10278 && org_id != 10387 && org_id != 10191 &&org_id != 10210 && this.paramsObj.balance_accounts_type == 2"></privateChargePrint>
70 74
     </div>
71 75
   </div>
72 76
 </template>
@@ -75,11 +79,9 @@
75 79
   import {uParseTime} from "@/utils/tools";
76 80
   import axios from "axios";
77 81
   import print from "print-js";
78
-
79 82
   import BreadCrumb from "@/xt_pages/components/bread-crumb";
80 83
   import printOne from "./statementTemplate/printOne";
81 84
   import privateChargePrint from "./statementTemplate/privateChargePrint";
82
-
83 85
   import printTwo from "./statementTemplate/printTwo";
84 86
   import printThree from "./statementTemplate/printThree";
85 87
   import printFour from "./statementTemplate/printFour";
@@ -90,8 +92,6 @@
90 92
   import printSeven from "./statementTemplate/printSeven";
91 93
   import Print10191 from "./statementTemplate/print10191";
92 94
   import printTen from "./statementTemplate/printTen";
93
-
94
-  // import PrintOther from '../hospitalStation/statementTemplate/printOther'
95 95
   export default {
96 96
     name: "dialysisPrintOrder",
97 97
     components: {

+ 21 - 11
src/xt_pages/outpatientCharges/statementTemplate/printOne.vue View File

@@ -42,7 +42,7 @@
42 42
         <td width="50" v-if="info.gend == '2'">女</td>
43 43
 
44 44
         <td width="80">出生日期</td>
45
-        <td width="100">{{info.brdy}}</td>
45
+        <td width="100">{{getBirth(info.certno)}}</td>
46 46
         <td width="90">个人电脑号</td>
47 47
         <td width="110"></td>
48 48
         <td width="80">人员类别</td>
@@ -114,11 +114,14 @@
114 114
         <td colspan="2" v-if="info.insutype == '392'">城乡居民大病医疗保险</td>
115 115
         <td colspan="2" v-if="info.insutype == '510'">生育保险</td>
116 116
 
117
-
118
-        <td>入院第一诊断</td>
119
-        <td colspan="3">{{info.dise_name}}</td>
120
-        <td>出院第一诊断</td>
121
-        <td colspan="6">{{info.dise_name}}</td>
117
+        <td v-if="this.$store.getters.xt_user.org_id != 10188 && this.$store.getters.xt_user.org_id != 10217">入院第一诊断</td>
118
+        <td v-else>病种名称</td>
119
+        <td v-if="this.$store.getters.xt_user.org_id != 10188 && this.$store.getters.xt_user.org_id != 10217" colspan="3">{{info.dise_name}}</td>
120
+        <td v-else colspan="3">{{'慢性肾功能衰竭'}}</td>
121
+        <td v-if="this.$store.getters.xt_user.org_id != 10188 && this.$store.getters.xt_user.org_id != 10217">出院第一诊断</td>
122
+        <td v-else>病种编码</td>
123
+        <td v-if="this.$store.getters.xt_user.org_id != 10188 && this.$store.getters.xt_user.org_id != 10217" colspan="6">{{info.dise_name}}</td>
124
+        <td v-else colspan="6">{{'M07800'}}</td>
122 125
       </tr>
123 126
       <tr>
124 127
         <td>业务类别</td>
@@ -135,9 +138,8 @@
135 138
       </tr>
136 139
       <tr>
137 140
         <td colspan="12" style="text-align:left;padding-left:10px;">
138
-          本次就医:总费用{{info.medfee_sumamt}}元,基金支付{{info.fund_pay_sumamt}}元,个人支付{{info.psn_pay}}元。
139
-          (起付线 {{info.act_pay_dedc}}元, 先自付 {{info.preselfpay_amt}}元, 段内自付 {{(info.psn_pay - info.preselfpay_amt).toFixed(2)}} )
140
-
141
+          本次就医:总费用{{info.medfee_sumamt}}元,基金支付{{info.fund_pay_sumamt}}元,个人支付{{info.new_order.psn_cash_pay}}元。
142
+          (起付线 {{info.act_pay_dedc}}元, 先自付 {{info.preselfpay_amt}}元, 段内自付 {{(info.new_order.psn_cash_pay - info.preselfpay_amt).toFixed(2)}} )
141 143
         </td>
142 144
       </tr>
143 145
       <tr>
@@ -264,11 +266,13 @@
264 266
           parseFloat(info.check_cost_part_self_total) + parseFloat(info.laboratory_cost_part_self_total) +
265 267
           parseFloat(info.treat_cost_part_self_total)).toFixed(2)}}
266 268
         </td>
267
-        <td style="text-align:right;padding-right:10px;"></td>
269
+
270
+        <td>报销比例</td>
271
+        <td colspan="2" style="text-align:right;padding-right:10px;">{{info.new_order.pool_prop_selfpay}}</td>
268 272
         <td colspan="2" style="text-align:right;padding-right:10px;"></td>
269
-        <td style="text-align:right;padding-right:10px;"></td>
270 273
         <td colspan="2" style="text-align:right;padding-right:10px;"></td>
271 274
       </tr>
275
+
272 276
       <tr>
273 277
         <td colspan="3" style="text-align:left;padding-left:10px;">基本医疗保险统筹基金支付</td>
274 278
         <td colspan="3">{{info.hifp_pay}}</td>
@@ -340,6 +344,12 @@
340 344
         }
341 345
       }
342 346
     },methods:{
347
+      getBirth(idNo){
348
+        var year = idNo.substring(6, 10);
349
+        var month = idNo.substring(10, 12);
350
+        var day = idNo.substring(12, 14);
351
+        return  year + '-' + month + '-' + day;
352
+      },
343 353
       getDay(dateString1,dateString2){
344 354
           var  startDate = Date.parse(dateString1);
345 355
           var  endDate = Date.parse(dateString2);

+ 11 - 10
src/xt_pages/outpatientDoctorStation/components/deskPrescription.vue View File

@@ -545,6 +545,7 @@
545 545
           { value: 9933, label: '门诊特殊病(9933)' },
546 546
           { value: 990602, label: '门诊特殊病(990602)' },
547 547
           { value: 1402, label: '门诊特殊病(1402)' },
548
+          { value: 1401, label: '门诊慢特病(1401)' },
548 549
           { value: 1111, label: '精一' },
549 550
           { value: 1112, label: '精二' },
550 551
           { value: 0, label: '自费' }
@@ -2459,7 +2460,7 @@
2459 2460
                     if(arr.length > 0){
2460 2461
                       let objInfo = {};
2461 2462
                       arr.forEach((item, index) => {
2462
-                      
2463
+
2463 2464
                       let { id } = item.id;
2464 2465
                       if (!objInfo[id]) {
2465 2466
                           objInfo[id] = {
@@ -2520,9 +2521,9 @@
2520 2521
                         }
2521 2522
                       }
2522 2523
                       console.log("newArr",newArr )
2523
-                    }  
2524
+                    }
2524 2525
                   }
2525
-                  
2526
+
2526 2527
 
2527 2528
                   if(this.prescriptions[i].id > 0){ //修改处方
2528 2529
 
@@ -2539,7 +2540,7 @@
2539 2540
 
2540 2541
                       let objInfo = {};
2541 2542
                       arr_one.forEach((item, index) => {
2542
-                     
2543
+
2543 2544
                       let { id } = item.id;
2544 2545
                       if (!objInfo[id]) {
2545 2546
                           objInfo[id] = {
@@ -2591,8 +2592,8 @@
2591 2592
                     }
2592 2593
                   }
2593 2594
                 }
2594
-                 
2595
-               
2595
+
2596
+
2596 2597
                 if(arr.length > 0){
2597 2598
                   for(let i =0;i<arr.length;i++){
2598 2599
                     if(arr[i].drug!=null){
@@ -2685,7 +2686,7 @@
2685 2686
                           newProjectArr[i].out_count += parseInt(newProjectArr[i].child[j].total)
2686 2687
                         }
2687 2688
                       }
2688
-                      
2689
+
2689 2690
                       for(let i=0;i<newProjectArr.length;i++){
2690 2691
                         if(newProjectArr[i].out_count > newProjectArr[i].sum_count){
2691 2692
                               this.$message.error(newProjectArr[i].str + "库存不足,保存失败!")
@@ -3178,7 +3179,7 @@
3178 3179
         // }
3179 3180
 
3180 3181
         if (this.curStatus == 1 && this.rightTab == 2) {
3181
-          this.$message.error('处方是药品,无法添加项目')
3182
+          this.$message.error('处方是药品,无法添加项目')
3182 3183
           this.teamList = []
3183 3184
           this.$refs.tables.clearSelection()
3184 3185
 
@@ -3186,7 +3187,7 @@
3186 3187
         }
3187 3188
 
3188 3189
         if (this.curStatus == 2 && this.rightTab == 1) {
3189
-          this.$message.error('处方是项目,无法添加药品')
3190
+          this.$message.error('处方是项目,无法添加药品')
3190 3191
           this.curDrugs = []
3191 3192
           this.tempDrugs = []
3192 3193
           this.$refs.multipleTable.clearSelection()
@@ -3514,7 +3515,7 @@
3514 3515
         getAllProjectTeam().then(response => {
3515 3516
           if (response.data.state == 1) {
3516 3517
             var team = response.data.data.team
3517
-            
3518
+
3518 3519
             this.tabPrjectTeam = team.sort(this.compare("sort"))
3519 3520
             this.allTabPrjectTeam = team
3520 3521
 

+ 25 - 1
src/xt_pages/outpatientDoctorStation/doctorDesk.vue View File

@@ -1755,7 +1755,6 @@ export default {
1755 1755
               // }
1756 1756
 
1757 1757
               var preTime = nowTime
1758
-
1759 1758
               if (this.$store.getters.xt_user.org.id != 9919){
1760 1759
                 if (prescription.pre_time == 0) {
1761 1760
                   if (this.schedule.schedule_type == 1) {
@@ -1769,6 +1768,12 @@ export default {
1769 1768
                 } else {
1770 1769
                   preTime = this.getTime(prescription.pre_time, '{y}-{m}-{d} {h}:{i}')
1771 1770
                 }
1771
+              }else{
1772
+                if (prescription.pre_time == 0) {
1773
+                  preTime = nowTime
1774
+                } else {
1775
+                  preTime = this.getTime(prescription.pre_time, '{y}-{m}-{d} {h}:{i}')
1776
+                }
1772 1777
               }
1773 1778
               console.log("is_medicine")
1774 1779
               console.log(is_medicine)
@@ -2229,6 +2234,12 @@ export default {
2229 2234
                       } else {
2230 2235
                         preTime = this.getTime(prescription.pre_time, '{y}-{m}-{d} {h}:{i}')
2231 2236
                       }
2237
+                    }else{
2238
+                      if (prescription.pre_time == 0) {
2239
+                        preTime = nowTime
2240
+                      } else {
2241
+                        preTime = this.getTime(prescription.pre_time, '{y}-{m}-{d} {h}:{i}')
2242
+                      }
2232 2243
                     }
2233 2244
 
2234 2245
 
@@ -3887,6 +3898,12 @@ export default {
3887 3898
                       } else {
3888 3899
                         preTime = this.getTime(prescription.pre_time, '{y}-{m}-{d} {h}:{i}')
3889 3900
                       }
3901
+                    }else{
3902
+                      if (prescription.pre_time == 0) {
3903
+                        preTime = nowTime
3904
+                      } else {
3905
+                        preTime = this.getTime(prescription.pre_time, '{y}-{m}-{d} {h}:{i}')
3906
+                      }
3890 3907
                     }
3891 3908
 
3892 3909
                     let index = i + 1
@@ -4519,6 +4536,13 @@ export default {
4519 4536
                       } else {
4520 4537
                         preTime = this.getTime(prescription.pre_time, '{y}-{m}-{d} {h}:{i}')
4521 4538
                       }
4539
+                    }else{
4540
+                      if (prescription.pre_time == 0) {
4541
+                        preTime = nowTime
4542
+
4543
+                      } else {
4544
+                        preTime = this.getTime(prescription.pre_time, '{y}-{m}-{d} {h}:{i}')
4545
+                      }
4522 4546
                     }
4523 4547
 
4524 4548
                     let index = i + 1

+ 3 - 3
src/xt_pages/outpatientDoctorStation/modeTemplateDetail.vue View File

@@ -1374,7 +1374,7 @@
1374 1374
           }
1375 1375
         }
1376 1376
         if (this.curStatus == 1 && this.rightTab == 2) {
1377
-          this.$message.error('处方是药品,无法添加项目')
1377
+          this.$message.error('处方是药品,无法添加项目')
1378 1378
           this.teamList = []
1379 1379
           this.$refs.tables.clearSelection()
1380 1380
 
@@ -1382,7 +1382,7 @@
1382 1382
         }
1383 1383
 
1384 1384
         if (this.curStatus == 2 && this.rightTab == 1) {
1385
-          this.$message.error('处方是项目,无法添加药品')
1385
+          this.$message.error('处方是项目,无法添加药品')
1386 1386
           this.curDrugs = []
1387 1387
           this.tempDrugs = []
1388 1388
           this.$refs.multipleTable.clearSelection()
@@ -1989,7 +1989,7 @@
1989 1989
         display: flex;
1990 1990
         flex-direction: column;
1991 1991
         position: relative;
1992
-        
1992
+
1993 1993
     .el-form-item {
1994 1994
         width: 33%;
1995 1995
         margin-bottom: 14px;

+ 2 - 2
src/xt_pages/outpatientDoctorStation/prescriptionTemplatedetail.vue View File

@@ -1412,7 +1412,7 @@
1412 1412
           }
1413 1413
         }
1414 1414
         if (this.curStatus == 1 && this.rightTab == 2) {
1415
-          this.$message.error('处方是药品,无法添加项目')
1415
+          this.$message.error('处方是药品,无法添加项目')
1416 1416
           this.teamList = []
1417 1417
           this.$refs.tables.clearSelection()
1418 1418
 
@@ -1420,7 +1420,7 @@
1420 1420
         }
1421 1421
 
1422 1422
         if (this.curStatus == 2 && this.rightTab == 1) {
1423
-          this.$message.error('处方是项目,无法添加药品')
1423
+          this.$message.error('处方是项目,无法添加药品')
1424 1424
           this.curDrugs = []
1425 1425
           this.tempDrugs = []
1426 1426
           this.$refs.multipleTable.clearSelection()

+ 42 - 0
src/xt_pages/outpatientTool/components/detailStatistics.vue View File

@@ -47,6 +47,9 @@
47 47
         >
48 48
         </el-date-picker>
49 49
         <el-button type="primary" size="small" @click="toPrint">打印</el-button>
50
+
51
+        <el-button type="primary" size="small" @click="toExport">导出</el-button>
52
+
50 53
       </div>
51 54
       <div></div>
52 55
     </div>
@@ -55,6 +58,7 @@
55 58
       border
56 59
       :row-style="{ color: '#303133' }"
57 60
       ref="table"
61
+
58 62
       :header-cell-style="{
59 63
         backgroundColor: 'rgb(245, 247, 250)',
60 64
         color: '#606266',
@@ -146,6 +150,25 @@
146 150
           </div>
147 151
         </template>
148 152
       </el-table-column>
153
+
154
+      <el-table-column align="center" label="先行支付" prop="total_price">
155
+        <template slot-scope="scope">
156
+          <div>
157
+            {{ scope.row.preselfpay_amt }}
158
+          </div>
159
+        </template>
160
+      </el-table-column>
161
+      <el-table-column align="center" label="限价金额" prop="total_price">
162
+        <template slot-scope="scope">
163
+          <div>
164
+            {{ scope.row.pric_uplmt_amt }}
165
+          </div>
166
+        </template>
167
+      </el-table-column>
168
+
169
+
170
+
171
+
149 172
       <el-table-column align="center" prop="name" label="备注">
150 173
         <template slot-scope="scope">
151 174
           <div>
@@ -434,6 +457,9 @@ export default {
434 457
             this.tableData = new_arr;
435 458
           }
436 459
         }
460
+        console.log("11111222")
461
+
462
+        console.log( this.tableData)
437 463
       });
438 464
     },
439 465
 
@@ -486,6 +512,22 @@ export default {
486 512
         }
487 513
       }
488 514
       return maf_pay.toFixed(2);
515
+    }, export_detail() {
516
+      console.log("~~~~~~~")
517
+
518
+      let list = []
519
+      import('@/vendor/Export2Excel').then(excel => {
520
+        const tHeader = [ ]
521
+        const filterVal = []
522
+        const data = this.formatJson(filterVal, list)
523
+        excel.export_json_to_excel1({
524
+          header: tHeader,
525
+          data,
526
+          filename: '结算明细',
527
+          ref:this.$refs['report-table'].$el
528
+        })
529
+      })
530
+
489 531
     },
490 532
     toPrint() {
491 533
       this.$router.push({

+ 86 - 84
src/xt_pages/outpatientTool/components/settle.vue View File

@@ -395,92 +395,94 @@ import { uParseTime } from '@/utils/tools'
395 395
         })
396 396
 
397 397
         return sums
398
-      }, export_detail() {
398
+      },
399
+      export_detail() {
400
+        console.log("~~~~~~~")
399 401
 
400 402
         let list = []
401
-        for (let i = 0; i < this.tableData.length; i++) {
402
-          let order = this.tableData[i]
403
-          let name = order.other_name
404
-          let id_card_no = order.id_card_no
405
-
406
-          let time = ''
407
-          let balance_accounts = ""
408
-          let med_type = ""
409
-          let medfee_sumamt = ""
410
-          let fund_pay_sumamt = ""
411
-          let acct_pay = ""
412
-          let psn_cash_pay = ""
413
-          let hifes_pay = ""
414
-          let hifmi_pay = ""
415
-          let hifp_pay = ""
416
-          let hifob_pay = ""
417
-          let maf_pay = ""
418
-          let time2 = ""
419
-          time2 = this.getTimes(order.settle_accounts_date)
420
-
421
-          let total = ""
422
-
423
-          if(order.setl_time.length == 0){
424
-
425
-            time = this.getTimes(order.settle_accounts_date)
426
-
427
-          }else {
428
-
429
-            time = order.setl_time.split(" ")[0]
430
-
431
-          }
432
-
433
-          if (order.is_medicine_insurance == 0) {
434
-            balance_accounts = '自费'
435
-          }
436
-
437
-          if (order.is_medicine_insurance == 1) {
438
-            balance_accounts = '医保'
439
-          }
440
-
441
-          if (order.med_type == '14') {
442
-            med_type = '门诊特殊病'
443
-          }
444
-
445
-          if (order.med_type == '11') {
446
-            med_type = '普通门诊'
447
-          }
448
-
449
-          medfee_sumamt = order.medfee_sumamt
450
-          fund_pay_sumamt = order.fund_pay_sumamt
451
-
452
-          acct_pay = order.acct_pay
453
-
454
-          psn_cash_pay = order.psn_cash_pay
455
-          hifes_pay = order.hifes_pay
456
-          hifmi_pay = order.hifmi_pay
457
-          hifp_pay = order.hifp_pay
458
-          hifob_pay = order.hifob_pay
459
-          maf_pay = order.maf_pay
460
-          total = order.total
461
-
462
-
463
-          let obj = {
464
-            '患者姓名': name,
465
-            '身份证': id_card_no,
466
-            '治疗日期': time2,
467
-            '结算日期': time,
468
-            '结算类型': balance_accounts,
469
-            '处方类型': med_type,
470
-            '医疗费总额': medfee_sumamt,
471
-            '基金支付金额': fund_pay_sumamt,
472
-            '基金统筹金额': hifp_pay,
473
-            '大额基金支付':hifob_pay,
474
-            '医疗救助基金':maf_pay,
475
-            '个人账户支付金额': acct_pay,
476
-            '个人支付基金': psn_cash_pay,
477
-            '企业补充医疗保险基金支出': hifes_pay,
478
-            '居民大病保险资金支出': hifmi_pay,
479
-            '费用总额':total,
480
-
481
-          }
482
-          list.push(obj)
483
-        }
403
+        // for (let i = 0; i < this.tableData.length; i++) {
404
+        //   let order = this.tableData[i]
405
+        //   let name = order.other_name
406
+        //   let id_card_no = order.id_card_no
407
+        //
408
+        //   let time = ''
409
+        //   let balance_accounts = ""
410
+        //   let med_type = ""
411
+        //   let medfee_sumamt = ""
412
+        //   let fund_pay_sumamt = ""
413
+        //   let acct_pay = ""
414
+        //   let psn_cash_pay = ""
415
+        //   let hifes_pay = ""
416
+        //   let hifmi_pay = ""
417
+        //   let hifp_pay = ""
418
+        //   let hifob_pay = ""
419
+        //   let maf_pay = ""
420
+        //   let time2 = ""
421
+        //   time2 = this.getTimes(order.settle_accounts_date)
422
+        //
423
+        //   let total = ""
424
+        //
425
+        //   if(order.setl_time.length == 0){
426
+        //
427
+        //     time = this.getTimes(order.settle_accounts_date)
428
+        //
429
+        //   }else {
430
+        //
431
+        //     time = order.setl_time.split(" ")[0]
432
+        //
433
+        //   }
434
+        //
435
+        //   if (order.is_medicine_insurance == 0) {
436
+        //     balance_accounts = '自费'
437
+        //   }
438
+        //
439
+        //   if (order.is_medicine_insurance == 1) {
440
+        //     balance_accounts = '医保'
441
+        //   }
442
+        //
443
+        //   if (order.med_type == '14') {
444
+        //     med_type = '门诊特殊病'
445
+        //   }
446
+        //
447
+        //   if (order.med_type == '11') {
448
+        //     med_type = '普通门诊'
449
+        //   }
450
+        //
451
+        //   medfee_sumamt = order.medfee_sumamt
452
+        //   fund_pay_sumamt = order.fund_pay_sumamt
453
+        //
454
+        //   acct_pay = order.acct_pay
455
+        //
456
+        //   psn_cash_pay = order.psn_cash_pay
457
+        //   hifes_pay = order.hifes_pay
458
+        //   hifmi_pay = order.hifmi_pay
459
+        //   hifp_pay = order.hifp_pay
460
+        //   hifob_pay = order.hifob_pay
461
+        //   maf_pay = order.maf_pay
462
+        //   total = order.total
463
+        //
464
+        //
465
+        //   let obj = {
466
+        //     '患者姓名': name,
467
+        //     '身份证': id_card_no,
468
+        //     '治疗日期': time2,
469
+        //     '结算日期': time,
470
+        //     '结算类型': balance_accounts,
471
+        //     '处方类型': med_type,
472
+        //     '医疗费总额': medfee_sumamt,
473
+        //     '基金支付金额': fund_pay_sumamt,
474
+        //     '基金统筹金额': hifp_pay,
475
+        //     '大额基金支付':hifob_pay,
476
+        //     '医疗救助基金':maf_pay,
477
+        //     '个人账户支付金额': acct_pay,
478
+        //     '个人支付基金': psn_cash_pay,
479
+        //     '企业补充医疗保险基金支出': hifes_pay,
480
+        //     '居民大病保险资金支出': hifmi_pay,
481
+        //     '费用总额':total,
482
+        //
483
+        //   }
484
+        //   list.push(obj)
485
+        // }
484 486
         import('@/vendor/Export2Excel').then(excel => {
485 487
           const tHeader = [ '患者姓名','身份证', '治疗日期','结算日期', '结算类型', '处方类型', '医疗费总额', '基金支付金额', '个人账户支付金额', '个人支付基金','企业补充医疗保险基金支出','居民大病保险资金支出', '费用总额']
486 488
           const filterVal = [ '患者姓名','身份证', '治疗日期','结算日期', '结算类型', '处方类型', '医疗费总额', '基金支付金额', '个人账户支付金额', '个人支付基金','企业补充医疗保险基金支出','居民大病保险资金支出',  '费用总额']