see999 3 年前
父节点
当前提交
56061b5317

+ 2 - 1
src/xt_pages/outpatientCharges/outpatientChargesManagement.vue 查看文件

@@ -2725,7 +2725,8 @@
2725 2725
             order_id: this.order.id,
2726 2726
             settle_type: this.order.settle_type,
2727 2727
             start_time: this.order.settle_start_time,
2728
-            end_time: this.order.settle_end_time
2728
+            end_time: this.order.settle_end_time,
2729
+            balance_accounts_type: this.hisPatientInfo.balance_accounts_type,
2729 2730
           }
2730 2731
           this.orderObj = obj
2731 2732
           // this.$refs.print.getInfo(this.order.id)

+ 255 - 9
src/xt_pages/outpatientCharges/statementPrint.vue 查看文件

@@ -13,8 +13,12 @@
13 13
       </template>
14 14
 
15 15
       <div class='dialysisPage' style="padding-top:40px;">
16
-        <printOne :info="info" v-if="org_id != 9990"></printOne>
17
-        <printTwo  :info="info" v-if="org_id == 9990"></printTwo>
16
+        <div v-if="org_id == 9990 || org_id == 10138 || org_id == 9504">
17
+          <printTwo :info="info" v-if="org_id == 9990"></printTwo>
18
+          <printThree :info="info" :paramsObj="paramsObj" :balanceAccounts="balanceAccounts" v-if="org_id == 10138"></printThree>
19
+          <printFour v-if="org_id == 9504" :info="info"></printFour>
20
+        </div>
21
+        <printOne :info="info" v-else></printOne>
18 22
       </div>
19 23
   </div>
20 24
 </template>
@@ -32,13 +36,18 @@ import BreadCrumb from "@/xt_pages/components/bread-crumb";
32 36
 import print from "print-js";
33 37
 import printOne from "./statementTemplate/printOne"
34 38
 import printTwo from "./statementTemplate/printTwo"
39
+import printThree from "./statementTemplate/printThree"
40
+import printFour from "./statementTemplate/printFour"
35 41
 import { getAllDoctorList,getAllHisPatientList,getPrescriptionPrint } from "@/api/project/project"
42
+import { getPrivateExpenses } from '@/api/his/his'
36 43
 export default {
37 44
   name: "dialysisPrintOrder",
38 45
   components: {
39 46
     BreadCrumb,
40 47
     printOne,
41
-    printTwo
48
+    printTwo,
49
+    printThree,
50
+    printFour
42 51
   },
43 52
   props:{
44 53
     paramsObj:Object
@@ -60,7 +69,8 @@ export default {
60 69
       prescription_id:0,
61 70
       ids:'',
62 71
       info:null,
63
-      org_id:""
72
+      org_id:"",
73
+      balanceAccounts:{},
64 74
     };
65 75
   },
66 76
   methods:{
@@ -68,7 +78,132 @@ export default {
68 78
       var ptime = Math.round(new Date().getTime() / 1000);
69 79
       this.print_time = uParseTime(ptime, "{y}-{m}-{d} {h}:{i}");
70 80
 
71
-      const style =
81
+
82
+      if(this.$store.getters.xt_user.org_id == 10138){
83
+        setTimeout(() => {
84
+          const style =
85
+          '@media print {#prescription-print{font-size:14px;border:1px solid white}.printTitle{font-size: 22px;text-align: center;font-weight: bold;}table td {padding: 10px 5px;font-size:16px;}@media print {html {zoom: 47%;}}}';
86
+          const style2 =
87
+          '@media print {#prescription-print{font-size:14px;border:1px solid white}.printTitle{font-size: 22px;text-align: center;font-weight: bold;}table td {padding: 10px 5px;font-size:16px;}@media print {html {zoom: 50%;}}}';
88
+          const style3 =
89
+          '@media print {#prescription-print{font-size:14px;border:1px solid white}.printTitle{font-size: 22px;text-align: center;font-weight: bold;}table td {padding: 10px 5px;font-size:16px;}@media print {html {zoom: 55%;}}}';
90
+          const style4 =
91
+          '@media print {#prescription-print{font-size:14px;border:1px solid white}.printTitle{font-size: 22px;text-align: center;font-weight: bold;}table td {padding: 10px 5px;font-size:16px;}@media print {html {zoom: 58%;}}}';
92
+          const style5 =
93
+          '@media print {#prescription-print{font-size:14px;border:1px solid white}.printTitle{font-size: 22px;text-align: center;font-weight: bold;}table td {padding: 10px 5px;font-size:16px;}@media print {html {zoom: 61%;}}}';
94
+          const style6 =
95
+          '@media print {#prescription-print{font-size:14px;border:1px solid white}.printTitle{font-size: 22px;text-align: center;font-weight: bold;}table td {padding: 10px 5px;font-size:16px;}@media print {html {zoom: 66%;}}}';
96
+          const style7 =
97
+          '@media print {#prescription-print{font-size:14px;border:1px solid white}.printTitle{font-size: 22px;text-align: center;font-weight: bold;}table td {padding: 10px 5px;font-size:16px;}@media print {html {zoom: 71%;}}}';
98
+          const style8 =
99
+          '@media print {#prescription-print{font-size:14px;border:1px solid white}.printTitle{font-size: 22px;text-align: center;font-weight: bold;}table td {padding: 10px 5px;font-size:16px;}@media print {html {zoom: 75%;}}}';
100
+          const style9 =
101
+          '@media print {#prescription-print{font-size:14px;border:1px solid white}.printTitle{font-size: 22px;text-align: center;font-weight: bold;}table td {padding: 10px 5px;font-size:16px;}@media print {html {zoom: 80%;}}}';
102
+          const style10 =
103
+          '@media print {#prescription-print{font-size:14px;border:1px solid white}.printTitle{font-size: 22px;text-align: center;font-weight: bold;}table td {padding: 10px 5px;font-size:16px;}@media print {html {zoom: 85%;}}}';
104
+          const style11 =
105
+          '@media print {#prescription-print{font-size:14px;border:1px solid white}.printTitle{font-size: 22px;text-align: center;font-weight: bold;}table td {padding: 10px 5px;font-size:16px;}@media print {html {zoom: 87%;}}}';
106
+          const style12 =
107
+          '@media print {#prescription-print{font-size:14px;border:1px solid white}.printTitle{font-size: 22px;text-align: center;font-weight: bold;}table td {padding: 10px 5px;font-size:16px;}@media print {html {zoom: 89%;}}}';
108
+          if(this.num >= 13){
109
+            printJS({
110
+              printable: "prescription-print",
111
+              type: "html",
112
+              style: style,
113
+              scanStyles: false
114
+            });
115
+          }else if(this.num == 12){
116
+            printJS({
117
+              printable: "prescription-print",
118
+              type: "html",
119
+              style: style2,
120
+              scanStyles: false
121
+            });
122
+          }else if(this.num == 11){
123
+            printJS({
124
+              printable: "prescription-print",
125
+              type: "html",
126
+              style: style3,
127
+              scanStyles: false
128
+            });
129
+          }else if(this.num == 10){
130
+            printJS({
131
+              printable: "prescription-print",
132
+              type: "html",
133
+              style: style4,
134
+              scanStyles: false
135
+            });
136
+          }else if(this.num == 9){
137
+            printJS({
138
+              printable: "prescription-print",
139
+              type: "html",
140
+              style: style5,
141
+              scanStyles: false
142
+            });
143
+          }else if(this.num == 8){
144
+            printJS({
145
+              printable: "prescription-print",
146
+              type: "html",
147
+              style: style6,
148
+              scanStyles: false
149
+            });
150
+          }else if(this.num == 7){
151
+            printJS({
152
+              printable: "prescription-print",
153
+              type: "html",
154
+              style: style7,
155
+              scanStyles: false
156
+            });
157
+          }else if(this.num == 6){
158
+            printJS({
159
+              printable: "prescription-print",
160
+              type: "html",
161
+              style: style8,
162
+              scanStyles: false
163
+            });
164
+          }else if(this.num == 5){
165
+            printJS({
166
+              printable: "prescription-print",
167
+              type: "html",
168
+              style: style9,
169
+              scanStyles: false
170
+            });
171
+          }else if(this.num == 4){
172
+            printJS({
173
+              printable: "prescription-print",
174
+              type: "html",
175
+              style: style10,
176
+              scanStyles: false
177
+            });
178
+          }else if(this.num == 3){
179
+            printJS({
180
+              printable: "prescription-print",
181
+              type: "html",
182
+              style: style11,
183
+              scanStyles: false
184
+            });
185
+          }else if(this.num <= 2){
186
+            printJS({
187
+              printable: "prescription-print",
188
+              type: "html",
189
+              style: style12,
190
+              scanStyles: false
191
+            });
192
+          }
193
+          
194
+          
195
+        },500)
196
+      }else if(this.$store.getters.xt_user.org_id == 9504){
197
+        const style =
198
+        '@media print {.printTitle{font-size: 20px;text-align: center;font-weight: bold;}.infoMain{display: flex;flex-wrap: wrap;padding:0 10px;margin-top:10px;font-size:12px;}.infoMain .infoP{width: 33%;}.chargeBox{border: 1px solid #000;font-size:12px;}.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;font-size:12px;}.actionBar{display: flex;justify-content: space-between; line-height: 24px;padding:0 10px;font-size:12px;}.actionBar div{width:150px;}}';
199
+        printJS({
200
+            printable: "prescription-print",
201
+            type: "html",
202
+            style: style,
203
+            scanStyles: false
204
+        });
205
+      }else{
206
+        const style =
72 207
         '@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;}}';
73 208
         printJS({
74 209
             printable: "statement-print",
@@ -76,6 +211,9 @@ export default {
76 211
             style: style,
77 212
             scanStyles: false
78 213
         });
214
+      }
215
+
216
+      
79 217
 
80 218
       // if (this.org_template_info.template_id == 1) {
81 219
       //   printJS({
@@ -155,8 +293,68 @@ export default {
155 293
     searchAction(){
156 294
 
157 295
     },
158
-    getInfo(order_id) {
159
-      if (this.$store.getters.xt_user.org_id == 3877 || this.$store.getters.xt_user.org_id == 9919 ||  this.$store.getters.xt_user.org_id == 9671 ||  this.$store.getters.xt_user.org_id == 9674 ||  this.$store.getters.xt_user.org_id == 10106  ||  this.$store.getters.xt_user.org_id == 4 || this.$store.getters.xt_user.org_id == 9990) {
296
+    getInfo(order_id,obj) {
297
+      if (obj.balance_accounts_type == 2){
298
+        let params = {
299
+          his_patient_id: obj.his_patient_id,
300
+          id: obj.order_id,
301
+
302
+        }
303
+        getPrivateExpenses(params).then(response => {
304
+          if (response.data.state == 0) {
305
+            // this.$message.error(response.data.msg)
306
+
307
+            return false
308
+          } else {
309
+            
310
+            this.balanceAccounts = response.data.data
311
+            let arr = []
312
+            let obj = {
313
+              type:1,
314
+              details: [],
315
+              total: 0
316
+            }
317
+            let obj2 = {
318
+              type:2,
319
+              details: [],
320
+              total: 0
321
+            }
322
+            let obj3 = {
323
+              type:3,
324
+              details: [],
325
+              total: 0
326
+            }
327
+            let num = 0
328
+            this.balanceAccounts.order_info.map(item => {
329
+              
330
+              if(item.advice_id > 0){
331
+                obj.details.push(item)
332
+                obj.total += (item.pric * item.advice.prescribing_number)
333
+                num++
334
+              }else{
335
+                if(item.project.type == 2){
336
+                  obj2.details.push(item)
337
+                  obj2.total += (item.pric * item.project.count)
338
+                  num++
339
+                }else{
340
+                  obj3.details.push(item)
341
+                  obj3.total += (item.pric * item.project.count)
342
+                  num++
343
+                }
344
+              }
345
+            })
346
+            this.balanceAccounts.new_detail_list = []
347
+            this.balanceAccounts.new_detail_list.push(obj)
348
+            this.balanceAccounts.new_detail_list.push(obj2)
349
+            this.balanceAccounts.new_detail_list.push(obj3)
350
+            console.log(111,this.balanceAccounts)
351
+            this.num = num
352
+            console.log('this.num',this.num)
353
+          }
354
+        })
355
+
356
+
357
+      }else if (this.$store.getters.xt_user.org_id == 3877 || this.$store.getters.xt_user.org_id == 9919 ||  this.$store.getters.xt_user.org_id == 9671 ||  this.$store.getters.xt_user.org_id == 9674 ||  this.$store.getters.xt_user.org_id == 10106  ||  this.$store.getters.xt_user.org_id == 4 || this.$store.getters.xt_user.org_id == 9990) {
160 358
 
161 359
         var that = this;
162 360
 
@@ -183,10 +381,17 @@ export default {
183 381
               that.info['p_admin'] =  that.p_admin;
184 382
               that.info['charge_admin'] =  that.charge_admin;
185 383
 
384
+              that.info['order_number'] =  response.data.data.order_number;
385
+              that.info['patient'] =  response.data.data.patient;
186 386
               that.info['date'] =  response.data.data.date;
187 387
               that.info['number'] =  response.data.data.number;
188 388
               that.info['order_infos'] =  response.data.data.order_infos;
189 389
               that.info['diagnosis'] =  response.data.data.diagnosis;
390
+              that.info['org_code'] =  response.data.data.org_code;
391
+              that.info['org_name'] =  response.data.data.org_name;
392
+              that.info['doctor_code'] =  response.data.data.doctor_code;
393
+              that.info['department'] =  response.data.data.department;
394
+              that.info['health_card_no'] =  response.data.data.health_card_no;
190 395
 
191 396
 
192 397
               that.info['bed_cost_total'] = response.data.data.bedCostTotal;
@@ -231,6 +436,47 @@ export default {
231 436
               that.info['order_infos'] =  response.data.data.order_infos;
232 437
               that.info['diagnosis'] =  response.data.data.diagnosis
233 438
 
439
+              let obj = {
440
+                type:1,
441
+                details: [],
442
+                total: 0
443
+              }
444
+              let obj2 = {
445
+                type:2,
446
+                details: [],
447
+                total: 0
448
+              }
449
+              let obj3 = {
450
+                type:3,
451
+                details: [],
452
+                total: 0
453
+              }
454
+              let num = 0
455
+              that.info.order_infos.map(item => {
456
+                if(item.advice_id > 0){
457
+                  obj.details.push(item)
458
+                  obj.total += (item.pric * item.advice.prescribing_number)
459
+                  num++
460
+                }else{
461
+                  if(item.project.type == 2){
462
+                    obj2.details.push(item)
463
+                    obj2.total += (item.pric * item.project.count)
464
+                    num++
465
+                  }else{
466
+                    obj3.details.push(item)
467
+                    obj3.total += (item.pric * item.project.count)
468
+                    num++
469
+                  }
470
+                }
471
+              })
472
+
473
+              that.info.new_detail_list = []
474
+              that.info.new_detail_list.push(obj)
475
+              that.info.new_detail_list.push(obj2)
476
+              that.info.new_detail_list.push(obj3)
477
+              console.log('123',that.info.new_detail_list)
478
+              that.num = num
479
+
234 480
               if(that.paramsObj.settle_type != 1){
235 481
                 that.info.begndate = that.getTimes(that.paramsObj.start_time)
236 482
                 that.info.enddate = that.getTimes(that.paramsObj.end_time)
@@ -247,7 +493,7 @@ export default {
247 493
   },
248 494
 
249 495
   created() {
250
-    this.getInfo(this.paramsObj.order_id);
496
+    this.getInfo(this.paramsObj.order_id,this.paramsObj);
251 497
     this.org_id = this.$store.getters.xt_user.org_id;
252 498
     console.log("this.org_id",this.org_id)
253 499
   },
@@ -255,7 +501,7 @@ export default {
255 501
     paramsObj:{//深度监听,可监听到对象、数组的变化
256 502
       handler(val, oldVal){
257 503
         this.paramsObj = val;
258
-        this.getInfo(this.paramsObj.order_id)
504
+        this.getInfo(this.paramsObj.order_id,this.paramsObj)
259 505
 
260 506
       },
261 507
       deep:true

+ 384 - 0
src/xt_pages/outpatientCharges/statementTemplate/printFour.vue 查看文件

@@ -0,0 +1,384 @@
1
+<template>
2
+    <div>
3
+        <div id='prescription-print' class="prescription-print">
4
+            <div v-for='(i,pageIndex) in pageArr.length' :key="pageIndex">
5
+                <div class="printTitle">血液透析中心医药费收据及收费项目清单</div>
6
+                <div class="infoMain">
7
+                    <div class="infoP">医院(药店)编号:{{info.org_code}}</div>
8
+                    <div class="infoP">名称:{{info.org_name}}</div>
9
+                    <div class="infoP">医生工号:{{info.doctor_code}}</div>
10
+                    <div class="infoP">门诊流水号:{{info.number}}</div>
11
+                    <div class="infoP">科别: {{info.department}}</div>
12
+                    <div class="infoP">处方单据号:{{info.order_number}}</div>
13
+                    <div class="infoP">姓名:{{info.patient.name}}</div>
14
+                    <div class="infoP">医疗账号:{{info.health_card_no}}</div>
15
+                    <div class="infoP">医疗类别:</div>
16
+                </div>
17
+                <div class="chargeBox">
18
+                    <div style="display:flex;justify-content: space-between;border-bottom:1px solid #000;">
19
+                        <div class="chargeUl" style="width:20%;">
20
+                            <p style="width:50%;border-right:1px solid #000;">费用类型</p>
21
+                            <p style="width:50%;border-right:1px solid #000;">金额</p>
22
+                        </div>
23
+                        <div class="chargeUl" style="width:80%;">
24
+                            <p style="width:40%;border-right:1px solid #000;">明细名称</p>
25
+                            <p style="width:15%;border-right:1px solid #000;">规格</p>
26
+                            <p style="width:15%;border-right:1px solid #000;">数量</p>
27
+                            <p style="width:15%;border-right:1px solid #000;">单价</p>
28
+                            <p style="width:15%;">金额</p>
29
+                        </div>
30
+                    </div>
31
+                    <div style="display:flex;justify-content: space-between;">
32
+                        <div style="width:20%;">
33
+                            <div class="chargeUl" v-if="info.bed_cost_total > 0">
34
+                                <p style="width:50%;">床位费</p>
35
+                                <p style="width:50%;">{{info.bed_cost_total?info.bed_cost_total:0}}元</p>
36
+                            </div>
37
+                            <div class="chargeUl" v-if="info.operation_cost_total > 0">
38
+                                <p style="width:50%;">手术费</p>
39
+                                <p style="width:50%;">{{info.operation_cost_total?info.operation_cost_total:0}}元</p>
40
+                            </div>
41
+                            <div class="chargeUl" v-if="info.other_cost_total > 0">
42
+                                <p style="width:50%;">其他费</p>
43
+                                <p style="width:50%;">{{info.other_cost_total?info.other_cost_total:0}}元</p>
44
+                            </div>
45
+                            <div class="chargeUl" v-if="info.material_cost_total > 0">
46
+                                <p style="width:50%;">材料费</p>
47
+                                <p style="width:50%;">{{info.material_cost_total?info.material_cost_total:0}}元</p>
48
+                            </div>
49
+                            <div class="chargeUl" v-if="info.western_medicine_cost_total > 0">
50
+                                <p style="width:50%;">西药费</p>
51
+                                <p style="width:50%;">{{info.western_medicine_cost_total?info.western_medicine_cost_total:0}}元</p>
52
+                            </div>
53
+                            <div class="chargeUl" v-if="info.chinese_traditional_medicine_cost_total > 0">
54
+                                <p style="width:50%;">中成费</p>
55
+                                <p style="width:50%;">{{info.chinese_traditional_medicine_cost_total?info.chinese_traditional_medicine_cost_total:0}}元</p>
56
+                            </div>
57
+                            <div class="chargeUl" v-if="info.check_cost_total > 0">
58
+                                <p style="width:50%;">检查费</p>
59
+                                <p style="width:50%;">{{info.check_cost_total?info.check_cost_total:0}}元</p>
60
+                            </div>
61
+                            <div class="chargeUl" v-if="info.laboratory_cost_total > 0">
62
+                                <p style="width:50%;">化验费</p>
63
+                                <p style="width:50%;">{{info.laboratory_cost_total?info.laboratory_cost_total:0}}元</p>
64
+                            </div>
65
+                            <div class="chargeUl" v-if="info.treat_cost_total > 0">
66
+                                <p style="width:50%;">治疗费</p>
67
+                                <p style="width:50%;">{{info.treat_cost_total?info.treat_cost_total:0}}元</p>
68
+                            </div>
69
+                            <div class="chargeUl" style="border-top:1px solid #000;">
70
+                                <p style="width:50%;">费用合计</p>
71
+                                <p style="width:50%;">{{info.medfee_sumamt?info.medfee_sumamt:0}}元</p>
72
+                            </div>
73
+                            <div class="chargeUl" style="border-top:1px solid #000;">
74
+                                <p style="width:50%;">记账支付</p>
75
+                                <p style="width:50%;">{{info.fund_pay_sumamt?info.fund_pay_sumamt:0}}元</p>
76
+                            </div>
77
+                            <div class="chargeUl" style="border-top:1px solid #000;">
78
+                                <p style="width:50%;">个人账号</p>
79
+                                <p style="width:50%;">{{info.acct_pay?info.acct_pay:0}}元</p>
80
+                            </div>
81
+                            <div class="chargeUl" style="border-top:1px solid #000;border-bottom:1px solid #000;">
82
+                                <p style="width:50%;">现金支付</p>
83
+                                <p style="width:50%;">{{info.psn_cash_pay?info.psn_cash_pay:0}}元</p>
84
+                            </div>
85
+                        </div>
86
+                        <div style="width:80%;max-height:500px;">
87
+                            <div style="display:flex;" v-for="(item,i) in info.order_infos.slice(pageIndex * 13,(pageIndex * 13) + pageArr[pageIndex])" :key="i">
88
+                                <div style="border-left:1px solid #000;border-right:1px solid #000;width:40%;text-align:center;">
89
+                                    <p class="chargeP">
90
+                                        <span v-if='item.type == 1'>{{item.advice.advice_name}}</span>
91
+                                        <span v-if='item.type == 2'>{{item.project.project.project_name}}</span>
92
+                                        <span v-if='item.type == 3'>{{item.project.good_info.specification_name}}</span>
93
+                                    </p>
94
+                                </div>
95
+                                <div style="border-right:1px solid #000;width:15%;text-align:center;">
96
+                                    <p class="chargeP">
97
+                                        <span v-if='item.type == 1'>{{item.advice.drug.drug_spec}}</span>
98
+                                        <span v-if='item.type == 2'>{{item.project.project.unit}}</span>
99
+                                        <span v-if='item.type == 3'>{{item.project.unit}}</span>
100
+                                    </p>
101
+                                </div>
102
+                                <div style="border-right:1px solid #000;width:15%;text-align:center;">
103
+                                    <p class="chargeP">
104
+                                        <span>{{item.cnt}}次</span>
105
+                                    </p>
106
+                                </div>
107
+                                <div style="border-right:1px solid #000;width:15%;text-align:center;">
108
+                                    <p class="chargeP">
109
+                                        <span>{{item.pric}}元</span>
110
+                                    </p>
111
+                                </div>
112
+                                <div style="width:15%;text-align:center;">
113
+                                    <p class="chargeP">
114
+                                        <span>{{item.cnt * item.pric}}元</span>
115
+                                    </p>
116
+                                </div>
117
+                            </div>
118
+                        </div>
119
+                    </div>
120
+
121
+                </div>
122
+                <div class="moneyBox">
123
+                    <p>实收金:{{info.medfee_sumamt?info.medfee_sumamt:0}}元</p>
124
+                    <p>记账前金额:{{0.00}}元</p>
125
+                    <p>扣款金额:{{0.00}}元</p>
126
+                    <p>记账后金额:{{info.balc}}元</p>
127
+                    <p>找赎金:{{0.00}}元</p>
128
+                </div>
129
+                <div class="actionBar">
130
+                    <div>收费员:{{info.charge_admin.user_name}}</div>
131
+                    <div>日期:{{info.setl_time ? info.setl_time.split(' ')[0] : ''}}</div>
132
+                </div>
133
+            </div>
134
+
135
+        </div>
136
+    </div>
137
+
138
+</template>
139
+<script>
140
+  import axios from 'axios'
141
+  import { getChargePrint } from '@/api/project/project'
142
+
143
+  export default {
144
+    data() {
145
+      return {
146
+        list: {},
147
+        prescription: [],
148
+        patient: {},
149
+        orgname: '',
150
+
151
+        result: {},
152
+        org_code: '',
153
+        patient_name: '',
154
+        doctor_code: '',
155
+        doctor_name: '',
156
+
157
+        name_arr: [],
158
+        spec_arr: [],
159
+        count_arr: [],
160
+        price_arr: [],
161
+        total_arr: [],
162
+
163
+        page:1,
164
+        pageArr:[],
165
+
166
+      }
167
+    },
168
+    props: {
169
+      info: Object
170
+    },
171
+    methods: {
172
+      getItemName(number) {
173
+        switch (number) {
174
+          case '01':
175
+            return '床位费'
176
+            break
177
+          case '02':
178
+            return '西药费'
179
+
180
+            break
181
+          case '03':
182
+            return '中药费'
183
+
184
+            break
185
+          case '04':
186
+            return '中成药费'
187
+
188
+            break
189
+          case '05':
190
+            return '中草药费'
191
+
192
+            break
193
+          case '06':
194
+            return '检查费'
195
+
196
+            break
197
+          case '07':
198
+            return '治疗费'
199
+
200
+            break
201
+          case '08':
202
+            return '放射费'
203
+
204
+            break
205
+          case '09':
206
+            return '手术费'
207
+
208
+            break
209
+          case '10':
210
+            return '化验费'
211
+
212
+            break
213
+          case '11':
214
+            return '输血费'
215
+
216
+            break
217
+          case '12':
218
+            return '输氧费'
219
+
220
+            break
221
+          case '13':
222
+            return '其它费'
223
+
224
+            break
225
+          case '14':
226
+            return '麻醉费'
227
+
228
+            break
229
+          case '15':
230
+            return '材料费'
231
+
232
+            break
233
+          case '16':
234
+            return '特殊检查费'
235
+
236
+            break
237
+          case '17':
238
+            return '特殊治疗费'
239
+
240
+            break
241
+          case '18':
242
+            return '诊疗费(诊查费)'
243
+
244
+            break
245
+          case '19':
246
+            return '护理费'
247
+
248
+            break
249
+          case '20':
250
+            return '诊金'
251
+
252
+            break
253
+          case '21':
254
+            return '检查费(CT)'
255
+
256
+            break
257
+          case '22':
258
+            return '检查费(MRT)'
259
+
260
+            break
261
+          case '23':
262
+            return '检查费(其他)'
263
+
264
+            break
265
+          case '24':
266
+            return '特需服务费'
267
+
268
+            break
269
+          case '25':
270
+            return '杂费'
271
+
272
+            break
273
+          case '26':
274
+            return '挂号费'
275
+            break
276
+
277
+        }
278
+
279
+      },
280
+      getPage(){
281
+        this.page = 1
282
+        this.pageArr = []
283
+        if(this.info.order_infos.length <= 13){
284
+            this.page = 1
285
+            this.pageArr.push(this.info.order_infos.length)
286
+            console.log('this.pageArr',this.pageArr)
287
+        }else if(this.info.order_infos.length > 13){
288
+            this.page = parseInt(this.info.order_infos.length / 13)
289
+            let num = this.info.order_infos.length % 13
290
+            for (var i=0;i<this.page;i++){
291
+                this.pageArr.push(13)
292
+            }
293
+            if(num != 0){
294
+                this.pageArr.push(num)
295
+            }
296
+        }
297
+      }
298
+    },
299
+    created() {
300
+
301
+
302
+    },
303
+    watch:{
304
+      info: {
305
+        handler(newVal) {
306
+            this.getPage()
307
+        },
308
+        deep: true,
309
+      }
310
+    }
311
+
312
+  }
313
+</script>
314
+
315
+
316
+<style lang="scss" scoped>
317
+    .prescription-print {
318
+        -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 60px rgba(0, 0, 0, 0.06) inset;
319
+        -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
320
+        box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
321
+        margin-bottom: 20px;
322
+        padding: 20px 10px;
323
+    }
324
+
325
+    .printTitle {
326
+        font-size: 22px;
327
+        text-align: center;
328
+        font-weight: bold;
329
+    }
330
+
331
+    .infoMain {
332
+        display: flex;
333
+        flex-wrap: wrap;
334
+        padding: 0 10px;
335
+        margin-top: 10px;
336
+    }
337
+
338
+    .infoMain .infoP {
339
+        width: 33%;
340
+        line-height: 24px;
341
+    }
342
+
343
+    .chargeBox {
344
+        border: 1px solid #000;
345
+    }
346
+
347
+    .chargeUl {
348
+        display: flex;
349
+        justify-content: space-between;
350
+        text-align: center;
351
+    }
352
+
353
+    .chargeUl p {
354
+        height: 40px;
355
+        line-height: 40px;
356
+    }
357
+
358
+    .chargeP {
359
+        height: 40px;
360
+        line-height: 40px;
361
+    }
362
+
363
+    .moneyBox {
364
+        display: flex;
365
+        justify-content: space-between;
366
+        padding: 0 10px;
367
+        background: #eee;
368
+        height: 40px;
369
+        align-items: center;
370
+        border: 1px solid #000;
371
+        border-top: none
372
+    }
373
+
374
+    .actionBar {
375
+        display: flex;
376
+        justify-content: space-between;
377
+        line-height: 24px;
378
+        padding: 0 10px;
379
+    }
380
+
381
+    .actionBar div {
382
+        width: 150px;
383
+    }
384
+</style>

+ 633 - 0
src/xt_pages/outpatientCharges/statementTemplate/printThree.vue 查看文件

@@ -0,0 +1,633 @@
1
+<template>
2
+    <div>
3
+        <div v-if="paramsObj.balance_accounts_type != 2" id='prescription-print' class="prescription-print" style="position: relative;">
4
+            <img style="width:100%;height:80px" src="https://kuyi.shengws.com/bailin/bltotle.jpg" alt="">
5
+            <div class="printTitle" style="position: absolute;left: 40%;top: 50px;">门诊收费清单</div>
6
+            <div style="display:flex;">
7
+                <div>单据号:<span style="display:inline-block;width:200px;">{{info.order_number ? info.order_number : ''}}</span></div>
8
+                <div>透析号:<span style="display:inline-block;width:200px;">{{info.patient.dialysis_no ? info.patient.dialysis_no : ''}}</span></div>
9
+            </div>
10
+            <div style="display:flex;justify-content: space-between;">
11
+                <div style="display:flex;">
12
+                  <div>姓名:<span style="display:inline-block;width:50px;">{{info.patient.name ? info.patient.name.indexOf("(") > -1 ? info.patient.name.substring(0,info.patient.name.indexOf("(")) : info.patient.name : ''}}</span></div>
13
+                  <div>性别:<span style="display:inline-block;width:30px;">{{info.patient.gender == '1' ? '男' : '女'}}</span></div>
14
+                  <div>年龄:<span style="display:inline-block;width:50px;">{{info.patient.age ? info.patient.age : ''}}岁</span></div>
15
+                  <div>费别:<span style="display:inline-block;min-width:80px;">医保</span>
16
+                  </div>
17
+                  <div style="margin-left:2px;">电脑号:<span style="display:inline-block;width:80px;">{{info.psn_no ? info.psn_no : ''}}</span></div>
18
+                  <div>收费日期:<span style="display:inline-block;width:100px;">{{info.setl_time ? info.setl_time.split(' ')[0] : ''}}</span></div>
19
+                </div>
20
+                <div style="float:right">金额单位:元</div>
21
+            </div>
22
+            <div style="min-height: 300px;">
23
+              <table border='1' style="width:100%;" cellspacing="0">
24
+                  <tr>
25
+                      <td width="70">类别</td>
26
+                      <td>项目</td>
27
+                      <td min-width="180" style="min-width:60px;">规格</td>
28
+                      <td width="40">单位</td>
29
+                      <td width="40">数量</td>
30
+                      <td width="60">单价</td>
31
+                      <td width="70">总额</td>
32
+                      <td width="130">小计</td>
33
+                  </tr>
34
+                  <div v-for="(item,i) in info.new_detail_list" :key="i" style="width:100%;display: table-row-group;">
35
+                      <tr v-for="(subItem,index) in item.details" :key="index">
36
+                        <td>
37
+                          <span v-if="item.type == 1">药品费</span>
38
+                          <span v-if="item.type == 2">治疗费</span>
39
+                          <span v-if="item.type == 3">耗材费</span>
40
+                        </td>
41
+                        <td>
42
+                          <span v-if="item.type == 1">{{ subItem.advice.advice_name }}</span>
43
+                          <span v-if="item.type == 2">{{ subItem.project.project.project_name }}</span>
44
+                          <span v-if="item.type == 3">{{ subItem.project.good_info.good_name }}</span>
45
+                        </td>
46
+                        <td>
47
+                          <span v-if="item.type == 1"><span v-if="subItem.advice.drug.min_unit != subItem.advice.drug.dose_unit">{{subItem.advice.drug.dose}}{{subItem.advice.drug.dose_unit}}&nbsp;* &nbsp;</span>{{subItem.advice.drug.min_number}}{{subItem.advice.drug.min_unit}}/{{subItem.advice.drug.max_unit}}</span>
48
+                          <span v-if="item.type == 2"></span>
49
+                          <span v-if="item.type == 3">{{ subItem.project.good_info.specification_name }}</span>
50
+                        </td>
51
+                        <td>
52
+                          <span v-if="item.type == 1">{{ subItem.advice.drug.max_unit }}</span>
53
+                          <span v-if="item.type == 2">{{ subItem.project.unit }}</span>
54
+                          <span v-if="item.type == 3">{{ subItem.project.unit }}</span>
55
+                        </td>
56
+                        <td>
57
+                          <span v-if="item.type == 1">{{ subItem.advice.prescribing_number }}</span>
58
+                          <span v-if="item.type == 2">{{ subItem.project.count }}</span>
59
+                          <span v-if="item.type == 3">{{ subItem.project.count }}</span>
60
+                        </td>
61
+                        <td>
62
+                          <span v-if="item.type == 1">{{ subItem.pric }}</span>
63
+                          <span v-if="item.type == 2">{{ subItem.pric }}</span>
64
+                          <span v-if="item.type == 3">{{ subItem.pric }}</span>
65
+                        </td>
66
+                        <td>
67
+                          <span v-if="item.type == 1">{{ (subItem.advice.prescribing_number * subItem.pric).toFixed(2) }}</span>
68
+                          <span v-if="item.type == 2">{{ (subItem.project.count * subItem.pric).toFixed(2) }}</span>
69
+                          <span v-if="item.type == 3">{{ (subItem.project.count * subItem.pric).toFixed(2) }}</span>
70
+                        </td>
71
+                        <td :rowspan="item.details.length" v-if="index == 0" style="vertical-align: middle;text-align: center;">{{ item.total.toFixed(2) }}</td>
72
+                      </tr>
73
+                  </div>
74
+                  <tr>
75
+                    <td colspan="7">
76
+                      <div style="display:flex;flez-wrap:wrap;">
77
+                        <div style="width:33%;" v-for="(item,index) in info.new_detail_list" :key="index">
78
+                          <span v-if="item.type == 1">药品费: {{ item.total.toFixed(2) }}</span>
79
+                          <span v-if="item.type == 2">治疗费: {{ item.total.toFixed(2) }}</span>
80
+                          <span v-if="item.type == 3">耗材费: {{ item.total.toFixed(2) }}</span>
81
+                        </div>
82
+                      </div>
83
+                    </td>
84
+                    <td>合计: {{info.medfee_sumamt?info.medfee_sumamt:0}}元</td>
85
+                  </tr>
86
+                  <tr>
87
+                      <td colspan="7">
88
+                          <div style="display:flex;flez-wrap:wrap;margin-bottom:10px;font-size:16px;">
89
+                              <div style="width:33%;">医疗费总额:{{info.medfee_sumamt?info.medfee_sumamt:0}}元</div>
90
+                              <div style="width:33%;">基金支付金额:{{info.fund_pay_sumamt?info.fund_pay_sumamt:0}}元</div>
91
+                              <div style="width:33%;">个人账户支付金额:{{info.acct_pay?info.acct_pay:0}}元</div>
92
+
93
+                          </div>
94
+                          <div style="display:flex;flez-wrap:wrap;font-size:16px;">
95
+                              <div style="width:33%;">个人支付金额:{{info.psn_cash_pay?info.psn_cash_pay:0}}元</div>
96
+                              <div style="width:33%;">个人账户金额:{{info.balc}}元</div>
97
+                          </div>
98
+                      </td>
99
+                      <td style="font-size:16px;">合计:{{info.medfee_sumamt?info.medfee_sumamt:0}}元</td>
100
+                  </tr>
101
+
102
+              </table>
103
+            </div>
104
+            <div style="float:right;margin:10px 0;display:flex;">
105
+                <div>操作人:<span style="width:100px;display:inline-block;">{{info.p_admin.user_name}}</span></div>
106
+                <div>操作日期:<span style="width:100px;display:inline-block;">{{info.setl_time ? info.setl_time.split(' ')[0] : ''}}</span></div>
107
+            </div>
108
+            <img style="width:100%;" src="https://kuyi.shengws.com/bailin/blend.jpg" alt="">
109
+        </div>
110
+        <div v-else id='prescription-print' class="prescription-print" style="position: relative;">
111
+          <img style="width:100%;height:80px" src="https://kuyi.shengws.com/bailin/bltotle.jpg" alt="">
112
+            <div class="printTitle" style="position: absolute;left: 40%;top: 50px;">门诊收费清单</div>
113
+            <div style="display:flex;">
114
+                <div>单据号:<span style="display:inline-block;width:200px;">{{balanceAccounts.his.number ? balanceAccounts.his.number : ''}}</span></div>
115
+                <div>透析号:<span style="display:inline-block;width:200px;">{{balanceAccounts.patient ? balanceAccounts.patient.dialysis_no : ''}}</span></div>
116
+            </div>
117
+            <div style="display:flex;justify-content: space-between;">
118
+                <div style="display:flex;">
119
+                  <div>姓名:<span style="display:inline-block;width:50px;">{{balanceAccounts.patient ? balanceAccounts.patient.name.indexOf("(") > -1 ? balanceAccounts.patient.name.substring(0,balanceAccounts.patient.name.indexOf("(")) : balanceAccounts.patient.name : ''}}</span></div>
120
+                  <div>性别:<span style="display:inline-block;width:30px;">{{balanceAccounts.patient.gender == '1' ? '男' : '女'}}</span></div>
121
+                  <div>年龄:<span style="display:inline-block;width:50px;">{{balanceAccounts.patient ? balanceAccounts.patient.age : ''}}岁</span></div>
122
+                  <div>费别:<span style="display:inline-block;width:80px;">自费</span>
123
+                  </div>
124
+                  <div>电脑号:<span style="display:inline-block;width:80px;"></span></div>
125
+                  <div>收费日期:<span style="display:inline-block;width:100px;">{{getTime(new Date(),"{y}-{m}-{d}")?getTime(new Date(),"{y}-{m}-{d}"):""}}</span></div>
126
+                </div>
127
+                <div style="float:right">金额单位:元</div>
128
+            </div>
129
+            <div style="min-height: 300px;">
130
+              <table border='1' style="width:100%;" cellspacing="0">
131
+                  <tr>
132
+                      <td width="70">类别</td>
133
+                      <td>项目</td>
134
+                      <td min-width="180" style="min-width:60px;">规格</td>
135
+                      <td width="40">单位</td>
136
+                      <td width="40">数量</td>
137
+                      <td width="60">单价</td>
138
+                      <td width="70">总额</td>
139
+                      <td width="130">小计</td>
140
+                  </tr>
141
+                  <div v-for="(item,i) in balanceAccounts.new_detail_list" :key="i" style="width:100%;display: table-row-group;">
142
+                      <tr v-for="(subItem,index) in item.details" :key="index">
143
+                        <td>
144
+                          <span v-if="item.type == 1">药品费</span>
145
+                          <span v-if="item.type == 2">治疗费</span>
146
+                          <span v-if="item.type == 3">耗材费</span>
147
+                        </td>
148
+                        <td>
149
+                          <span v-if="item.type == 1">{{ subItem.advice.advice_name }}</span>
150
+                          <span v-if="item.type == 2">{{ subItem.project.project.project_name }}</span>
151
+                          <span v-if="item.type == 3">{{ subItem.project.good_info.good_name }}</span>
152
+                        </td>
153
+                        <td>
154
+                          <span v-if="item.type == 1"><span v-if="subItem.advice.drug.min_unit != subItem.advice.drug.dose_unit">{{subItem.advice.drug.dose}}{{subItem.advice.drug.dose_unit}}&nbsp;* &nbsp;</span>{{subItem.advice.drug.min_number}}{{subItem.advice.drug.min_unit}}/{{subItem.advice.drug.max_unit}}</span>
155
+                          <span v-if="item.type == 2"></span>
156
+                          <span v-if="item.type == 3">{{ subItem.project.good_info.specification_name }}</span>
157
+                        </td>
158
+                        <td>
159
+                          <span v-if="item.type == 1">{{ subItem.advice.drug.max_unit }}</span>
160
+                          <span v-if="item.type == 2">{{ subItem.project.unit }}</span>
161
+                          <span v-if="item.type == 3">{{ subItem.project.unit }}</span>
162
+                        </td>
163
+                        <td>
164
+                          <span v-if="item.type == 1">{{ subItem.advice.prescribing_number }}</span>
165
+                          <span v-if="item.type == 2">{{ subItem.project.count }}</span>
166
+                          <span v-if="item.type == 3">{{ subItem.project.count }}</span>
167
+                        </td>
168
+                        <td>
169
+                          <span v-if="item.type == 1">{{ subItem.pric }}</span>
170
+                          <span v-if="item.type == 2">{{ subItem.pric }}</span>
171
+                          <span v-if="item.type == 3">{{ subItem.pric }}</span>
172
+                        </td>
173
+                        <td>
174
+                          <span v-if="item.type == 1">{{ (subItem.advice.prescribing_number * subItem.pric).toFixed(2) }}</span>
175
+                          <span v-if="item.type == 2">{{ (subItem.project.count * subItem.pric).toFixed(2) }}</span>
176
+                          <span v-if="item.type == 3">{{ (subItem.project.count * subItem.pric).toFixed(2) }}</span>
177
+                        </td>
178
+                        <td :rowspan="item.details.length" v-if="index == 0" style="vertical-align: middle;text-align: center;">{{ item.total.toFixed(2) }}</td>
179
+                      </tr>
180
+                  </div>
181
+                  <tr>
182
+                    <td colspan="7">
183
+                      <div style="display:flex;flez-wrap:wrap;">
184
+                        <div style="width:33%;" v-for="(item,index) in balanceAccounts.new_detail_list" :key="index">
185
+                          <span v-if="item.type == 1">药品费: {{ item.total.toFixed(2) }}</span>
186
+                          <span v-if="item.type == 2">治疗费: {{ item.total.toFixed(2) }}</span>
187
+                          <span v-if="item.type == 3">耗材费: {{ item.total.toFixed(2) }}</span>
188
+                        </div>
189
+                      </div>
190
+                    </td>
191
+                    <td>合计: {{balanceAccounts.order.medfee_sumamt?balanceAccounts.order.medfee_sumamt:0}}元</td>
192
+                  </tr>
193
+                  <tr>
194
+                      <td colspan="7">
195
+                          <div style="display:flex;flez-wrap:wrap;">
196
+                              <div style="width:33%;">医疗费总额:{{balanceAccounts.order.medfee_sumamt?balanceAccounts.order.medfee_sumamt:0}}元</div>
197
+                              <div style="width:33%;">基金支付金额:0元</div>
198
+                              <div style="width:33%;">个人账户支付金额:0元</div>
199
+
200
+                          </div>
201
+                          <div style="display:flex;flez-wrap:wrap;">
202
+                              <div style="width:33%;">个人支付金额:{{balanceAccounts.order.medfee_sumamt?balanceAccounts.order.medfee_sumamt:0}}元</div>
203
+                              <div style="width:33%;">个人账户金额:0元</div>
204
+                          </div>
205
+                      </td>
206
+                      <td>合计:{{balanceAccounts.order.medfee_sumamt?balanceAccounts.order.medfee_sumamt:0}}元</td>
207
+                  </tr>
208
+
209
+              </table>
210
+            </div>
211
+            <div style="float:right;margin:10px 0;display:flex;">
212
+                <div>操作人:<span style="width:100px;display:inline-block;">{{balanceAccounts.current_admin.user_name}}</span></div>
213
+                <div>操作日期:<span style="width:100px;display:inline-block;">{{getTime(new Date(),"{y}-{m}-{d}")?getTime(new Date(),"{y}-{m}-{d}"):""}}</span></div>
214
+            </div>
215
+            <img style="width:100%;" src="https://kuyi.shengws.com/bailin/blend.jpg" alt="">
216
+        </div>
217
+    </div>
218
+
219
+</template>
220
+<script>
221
+  import axios from 'axios'
222
+  import { getChargePrint } from '@/api/project/project'
223
+  import { uParseTime } from '@/utils/tools'
224
+
225
+  export default {
226
+    data() {
227
+      return {
228
+        list: {},
229
+        prescription: [],
230
+        patient: {},
231
+        orgname: '',
232
+
233
+        result: {},
234
+        org_code: '',
235
+        patient_name: '',
236
+        doctor_code: '',
237
+        doctor_name: '',
238
+
239
+        name_arr: [],
240
+        spec_arr: [],
241
+        count_arr: [],
242
+        price_arr: [],
243
+        total_arr: [],
244
+
245
+      }
246
+    },
247
+    props: {
248
+      paramsObj: Object,
249
+      info: Object,
250
+      balanceAccounts:Object
251
+    },
252
+    methods: {
253
+      getName(list) {
254
+        let new_list = []
255
+        for (let i = 0; i < list.length; i++) {
256
+          if (list[i].aac031 == '1') {
257
+            new_list.push(list[i])
258
+          }
259
+        }
260
+
261
+        switch (new_list[0].bcc334) {
262
+          case "A31001":
263
+            return "深圳医保1档"
264
+            break
265
+          case "A31002":
266
+            return "深圳医保2档"
267
+
268
+            break
269
+          case "A31003":
270
+            return "深圳医保3档"
271
+
272
+            break
273
+          case "A31004":
274
+            return "二档(少儿)"
275
+
276
+            break
277
+          case "A31005":
278
+            return "学生二档"
279
+
280
+            break
281
+          case "A31006":
282
+            return "大学生二档"
283
+
284
+            break
285
+          case "A32001":
286
+            return "在职公务员"
287
+            break
288
+          case "A32002":
289
+            return "在职驻深公务员"
290
+
291
+            break
292
+          case "A39301":
293
+            return "家属统筹医疗"
294
+
295
+            break
296
+          case "A41001":
297
+            return "工伤在职"
298
+
299
+            break
300
+          case "A51001":
301
+            return "生育在职"
302
+
303
+            break
304
+          case "A52001":
305
+            return "生育医疗一档"
306
+
307
+            break
308
+          case "A52002":
309
+            return "生育医疗一档"
310
+
311
+            break
312
+          case "C31001":
313
+            return "一档医疗退休"
314
+
315
+            break
316
+          case "C31002":
317
+            return "二档医疗退休"
318
+            break
319
+
320
+        }
321
+
322
+
323
+
324
+      },
325
+      getValue(item) {
326
+        return this.getItemName(item.aka111) + ': ' + item.bka058 + '元'
327
+      },
328
+      getItemName(number) {
329
+        switch (number) {
330
+          case '01':
331
+            return '床位费'
332
+            break
333
+          case '02':
334
+            return '西药费'
335
+
336
+            break
337
+          case '03':
338
+            return '中药费'
339
+
340
+            break
341
+          case '04':
342
+            return '中成药费'
343
+
344
+            break
345
+          case '05':
346
+            return '中草药费'
347
+
348
+            break
349
+          case '06':
350
+            return '检查费'
351
+
352
+            break
353
+          case '07':
354
+            return '治疗费'
355
+
356
+            break
357
+          case '08':
358
+            return '放射费'
359
+
360
+            break
361
+          case '09':
362
+            return '手术费'
363
+
364
+            break
365
+          case '10':
366
+            return '化验费'
367
+
368
+            break
369
+          case '11':
370
+            return '输血费'
371
+
372
+            break
373
+          case '12':
374
+            return '输氧费'
375
+
376
+            break
377
+          case '13':
378
+            return '其它费'
379
+
380
+            break
381
+          case '14':
382
+            return '麻醉费'
383
+
384
+            break
385
+          case '15':
386
+            return '材料费'
387
+
388
+            break
389
+          case '16':
390
+            return '特殊检查费'
391
+
392
+            break
393
+          case '17':
394
+            return '特殊治疗费'
395
+
396
+            break
397
+          case '18':
398
+            return '诊疗费(诊查费)'
399
+
400
+            break
401
+          case '19':
402
+            return '护理费'
403
+
404
+            break
405
+          case '20':
406
+            return '诊金'
407
+
408
+            break
409
+          case '21':
410
+            return '检查费(CT)'
411
+
412
+            break
413
+          case '22':
414
+            return '检查费(MRT)'
415
+
416
+            break
417
+          case '23':
418
+            return '检查费(其他)'
419
+
420
+            break
421
+          case '24':
422
+            return '特需服务费'
423
+
424
+            break
425
+          case '25':
426
+            return '杂费'
427
+
428
+            break
429
+          case '26':
430
+            return '挂号费'
431
+            break
432
+          case '99':
433
+            return '诊疗费'
434
+            break
435
+
436
+        }
437
+
438
+      },
439
+      getChargePrint(record_date, patient_id, prescription_id) {
440
+        var params = {
441
+          record_date: record_date,
442
+          patient_id: patient_id,
443
+          prescription_id: prescription_id
444
+        }
445
+        console.log('params', params)
446
+        getChargePrint(params).then(response => {
447
+          if (response.data.state == 1) {
448
+            var list = response.data.data.list
449
+            console.log('list9999999999', list)
450
+            this.list = list
451
+            var prescription = response.data.data.prescription
452
+            console.log('prescription', prescription)
453
+            this.prescription = prescription
454
+            var patient = response.data.data.patient
455
+            console.log('patient', patient)
456
+            this.patient = patient
457
+            var histpatient = response.data.data.hisPatient
458
+            console.log('hispatient', histpatient)
459
+          }
460
+        })
461
+      },
462
+      getTime(value, temp) {
463
+        if (value != undefined) {
464
+            return uParseTime(value, temp)
465
+        }
466
+        return ''
467
+      },
468
+    },
469
+    mounted() {
470
+      this.org_id = this.$store.getters.xt_user.org_id
471
+      if (this.org_id == 9504 || this.org_id == 10028 || this.org_id == 10138) {
472
+        var xtuser = this.$store.getters.xt_user
473
+        this.orgname = xtuser.org.org_name
474
+        var form = {
475
+          'order_id': this.paramsObj.order_id,
476
+          'patient_id': this.paramsObj.patient_id,
477
+          'record_time': this.paramsObj.record_date,
478
+          'admin_user_id': this.$store.getters.xt_user.user.id
479
+        }
480
+        var that = this
481
+        axios.get('http://127.0.0.1:9532/sz/api/settle/query', {
482
+          params: form
483
+        })
484
+          .then(function(response) {
485
+            if (response.data.state == 0) {
486
+              // that.$message.error(response.data.msg)
487
+              return false
488
+            } else {
489
+              if (response.data.data.failed_code == -10) {
490
+                // that.$message.error(response.data.data.msg)
491
+                that.$confirm(response.data.data.msg, '医保错误信息', {
492
+                  confirmButtonText: '确 定',
493
+                  type: 'warning'
494
+                }).then(() => {
495
+
496
+                }).catch(() => {
497
+                })
498
+              } else {
499
+                that.result = response.data.data.result
500
+
501
+                that.org_code = response.data.data.org_code
502
+                that.patient_name = response.data.data.patient_name
503
+                that.doctor_code = response.data.data.doctor_code
504
+                that.doctor_name = response.data.data.doctor_name
505
+                that.name_arr = []
506
+                that.spec_arr = []
507
+                that.count_arr = []
508
+                that.price_arr = []
509
+                that.total_arr = []
510
+                for (let i = 0; i < that.result.transBody.outputlist1.length; i++) {
511
+                  that.name_arr.push(that.result.transBody.outputlist1[i].ake006)
512
+                  that.spec_arr.push(that.result.transBody.outputlist1[i].aka074)
513
+                  that.count_arr.push(that.result.transBody.outputlist1[i].akc226)
514
+                  that.price_arr.push(that.result.transBody.outputlist1[i].akc225)
515
+                  that.total_arr.push(that.result.transBody.outputlist1[i].akc264)
516
+                }
517
+
518
+              }
519
+
520
+            }
521
+          })
522
+          .catch(function(error) {
523
+
524
+          })
525
+
526
+      } else {
527
+        var record_date = this.paramsObj.record_date
528
+        console.log('record_date', record_date)
529
+        var patient_id = this.paramsObj.patient_id
530
+        console.log('patient_id', patient_id)
531
+        var prescription_id = this.paramsObj.prescription_id
532
+        this.getChargePrint(record_date, patient_id, prescription_id)
533
+        var xtuser = this.$store.getters.xt_user
534
+        this.orgname = xtuser.org.org_name
535
+
536
+      }
537
+
538
+    },
539
+    watch: {
540
+      paramsObj: {//深度监听,可监听到对象、数组的变化
541
+        handler(val, oldVal) {
542
+          this.paramsObj = val
543
+          this.patient_id = this.paramsObj.patient_id
544
+          var record_date = this.paramsObj.record
545
+          this.record_date = record_date
546
+          var prescription_id = this.paramsObj.prescription_id
547
+          this.prescription_id = prescription_id
548
+
549
+        },
550
+        deep: true
551
+      }
552
+    }
553
+  }
554
+</script>
555
+
556
+
557
+<style lang="scss" scoped>
558
+    .prescription-print {
559
+        -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 60px rgba(0, 0, 0, 0.06) inset;
560
+        -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
561
+        box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
562
+        margin-bottom: 20px;
563
+        padding: 20px 10px;
564
+    }
565
+
566
+    .printTitle {
567
+        font-size: 22px;
568
+        text-align: center;
569
+        font-weight: bold;
570
+    }
571
+
572
+    .infoMain {
573
+        display: flex;
574
+        flex-wrap: wrap;
575
+        padding: 0 10px;
576
+        margin-top: 10px;
577
+    }
578
+
579
+    .infoMain .infoP {
580
+        width: 33%;
581
+        line-height: 24px;
582
+    }
583
+
584
+    .chargeBox {
585
+        border: 1px solid #000;
586
+    }
587
+
588
+    .chargeUl {
589
+        display: flex;
590
+        justify-content: space-between;
591
+        text-align: center;
592
+    }
593
+
594
+    .chargeUl p {
595
+        height: 40px;
596
+        line-height: 40px;
597
+    }
598
+
599
+    .chargeP {
600
+        height: 40px;
601
+        line-height: 40px;
602
+    }
603
+
604
+    .moneyBox {
605
+        display: flex;
606
+        justify-content: space-between;
607
+        padding: 0 10px;
608
+        background: #eee;
609
+        height: 40px;
610
+        align-items: center;
611
+        border: 1px solid #000;
612
+        border-top: none
613
+    }
614
+
615
+    .actionBar {
616
+        display: flex;
617
+        justify-content: space-between;
618
+        line-height: 24px;
619
+        padding: 0 10px;
620
+    }
621
+
622
+    .actionBar div {
623
+        width: 150px;
624
+    }
625
+
626
+    table {
627
+
628
+    td {
629
+        padding: 10px 5px;
630
+    }
631
+
632
+    }
633
+</style>

+ 2 - 2
src/xt_pages/outpatientCharges/summary.vue 查看文件

@@ -178,9 +178,9 @@
178 178
                 width="1200px"
179 179
                 title="打印"
180 180
                 :visible.sync="statementVisible9504">
181
-            <!--<statementPrint ref="print" :paramsObj='orderObj'></statementPrint>-->
181
+            <statementPrint ref="print" :paramsObj='orderObj9504'></statementPrint>
182 182
             <!--<new-statement-print ref="print" :paramsObj='orderObj9504'></new-statement-print>-->
183
-            <new-statement-print-two ref="print" :paramsObj='orderObj9504'></new-statement-print-two>
183
+            <!-- <new-statement-print-two ref="print" :paramsObj='orderObj9504'></new-statement-print-two> -->
184 184
         </el-dialog>
185 185
 
186 186
         <el-dialog