瀏覽代碼

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

csx 3 年之前
父節點
當前提交
40dc71b35e

+ 40 - 0
src/api/patient.js 查看文件

@@ -500,3 +500,43 @@ export function getInspectionItemList(params) {
500 500
     params: params
501 501
   })
502 502
 }
503
+
504
+export function saveCreation(params) {
505
+  return request({
506
+    url: '/api/patient/savecreationinspection',
507
+    method: 'get',
508
+    params: params
509
+  })
510
+}
511
+
512
+export function getTemplateSummaryList(params) {
513
+  return request({
514
+    url: '/api/patient/getemlatesummarylist',
515
+    method: 'Get',
516
+    params: params
517
+  })
518
+}
519
+
520
+export function getTemplateSummaryDetail(params) {
521
+  return request({
522
+    url: '/api/patient/gettemplatesummarydetail',
523
+    method: 'Get',
524
+    params: params
525
+  })
526
+}
527
+
528
+export function getTemplateSummaryPrintDetail(params) {
529
+  return request({
530
+    url: '/api/patient/gettemplatesummaryprintdetail',
531
+    method: 'Get',
532
+    params: params
533
+  })
534
+}
535
+
536
+export function UpdateTemplateSummary(params) {
537
+  return request({
538
+    url: '/api/patient/updatetemplatesummary',
539
+    method: 'get',
540
+    params: params
541
+  })
542
+}

+ 8 - 0
src/api/stock.js 查看文件

@@ -721,3 +721,11 @@ export function getGoodDetailPrintList(params) {
721 721
     params: params
722 722
   })
723 723
 }
724
+
725
+export function postSearchGoodWarehouseList(params) {
726
+  return request({
727
+    url: '/api/stock/postsearchgoodwarehouselist',
728
+    method: 'get',
729
+    params: params
730
+  })
731
+}

+ 14 - 3
src/router/modules/patient.js 查看文件

@@ -150,7 +150,7 @@ export default {
150 150
     }
151 151
   },
152 152
   {
153
-    path: '/patients/patients/:id/templateSummary',
153
+    path: '/patient/patient/:id/templateSummary',
154 154
     component: () => import('@/xt_pages/user/templateSummary'),
155 155
     hidden: true,
156 156
     is_menu: false,
@@ -192,7 +192,8 @@ export default {
192 192
       title: 'proeducation',
193 193
       noCache: true
194 194
     }
195
-  }, {
195
+  },
196
+  {
196 197
     path: '/course/print',
197 198
     component: () => import('@/xt_pages/user/coursePrint'),
198 199
     hidden: true,
@@ -202,7 +203,17 @@ export default {
202 203
       title: 'coursePrint',
203 204
       noCache: true
204 205
     }
206
+  },
207
+  {
208
+    path: '/patient/patient/templateSummary/print',
209
+    component: () => import('@/xt_pages/user/templateSummaryPrint'),
210
+    hidden: true,
211
+    is_menu: false,
212
+    name: 'templateSummary',
213
+    meta: {
214
+      title: 'templateSummary',
215
+      noCache: true
216
+    }
205 217
   }
206
-
207 218
   ]
208 219
 }

+ 4 - 4
src/xt_pages/dialysis/template/DialysisPrintOrderFortyOne.vue 查看文件

@@ -60,7 +60,7 @@
60 60
         <div class="inline_block">
61 61
           透析次数:
62 62
           <div class="under_line" style="width: 40px;text-align: left">
63
-            {{ patientInfo.total_dialysis + patientInfo.user_sys_before_count }}
63
+            {{ patientInfo.total_dialysis + patientInfo.user_sys_before_count }}
64 64
           </div>
65 65
         </div>
66 66
         <div class="inline_block">
@@ -268,7 +268,7 @@
268 268
                     <div class="under_line" style="width: 60px;text-align: center">
269 269
                       {{ afterdialysis.actual_ultrafiltration ? afterdialysis.actual_ultrafiltration : "/" }}
270 270
                     </div>
271
-                    ml
271
+                    L
272 272
                   </div>
273 273
                   <div class="inline_block" style="margin-left:48px;">
274 274
                     透后体重:
@@ -321,7 +321,7 @@
321 321
                   <div class="inline_block" style="flex:1;">
322 322
                     透析时长:
323 323
                     <div class="under_line" style="width: 50px;text-align: center">
324
-                      {{ prescription.dialysis_duration_hour ? prescription.dialysis_duration_hour : "0" }}.{{ prescription.dialysis_duration_minute ? prescription.dialysis_duration_minute : "0" }}
324
+                      {{ prescription.dialysis_duration_hour ? prescription.dialysis_duration_hour + prescription.dialysis_duration_minute / 60 : "0" }}
325 325
                     </div>
326 326
                     h
327 327
                   </div>
@@ -594,7 +594,7 @@
594 594
                       <td>{{ monitor.blood_flow_volume ? monitor.blood_flow_volume : "" }}
595 595
                       <td><span v-if="getTime(monitor.operate_time, '{h}:{i}')">{{ monitor.venous_pressure ? monitor.venous_pressure : "" }}/{{ monitor.transmembrane_pressure ? monitor.transmembrane_pressure : "" }}</span></td>
596 596
                       <td><span v-if="getTime(monitor.operate_time, '{h}:{i}')">{{ monitor.ultrafiltration_rate ? monitor.ultrafiltration_rate : "" }}/{{ monitor.ultrafiltration_volume ? monitor.ultrafiltration_volume : "" }}</span></td>
597
-                      <td><span v-if="getTime(monitor.operate_time, '{h}:{i}')">{{ monitor.sodium_concentration ? monitor.sodium_concentration : "" }}/{{ monitor.temperature ? monitor.temperature : "" }}</span></td>
597
+                      <td><span v-if="getTime(monitor.operate_time, '{h}:{i}')">{{ monitor.sodium_concentration ? monitor.sodium_concentration : "" }}/{{ monitor.dialysate_temperature ? monitor.dialysate_temperature : "" }}</span></td>
598 598
                       <td>{{ monitor.pulse_frequency ? monitor.pulse_frequency : "" }}</td>
599 599
                       <td>
600 600
                         {{ monitor.systolic_blood_pressure ? monitor.systolic_blood_pressure + "/" : "" }}

+ 13 - 3
src/xt_pages/dialysis/template/DialysisPrintOrderThirtyEight.vue 查看文件

@@ -14,9 +14,9 @@
14 14
       <div class="lineHeight">基本信息</div>
15 15
       <div class="lineHeight">
16 16
           <div class="widthLength25">年龄:{{ getAge(patientInfo) }}</div>
17
-          <div class="widthLength25">透析年龄:{{ patientInfo.dialysis_age ? patientInfo.dialysis_age : '/' }}月</div>
17
+          <div class="widthLength25">透析年龄:{{ patientInfo.first_dialysis_date ? getMonths(patientInfo.first_dialysis_date) : '/' }}月</div>
18 18
           <div class="widthLength25">入院方式:{{ receiverTreatmentAccess.way ? receiverTreatmentAccess.way : '/' }}</div>
19
-          <div class="widthLength25">累计:{{ patientInfo.total_dialysis + patientInfo.user_sys_before_count }}</div>
19
+          <div class="widthLength25">累计:{{ patientInfo.total_dialysis + patientInfo.user_sys_before_count }}</div>
20 20
       </div>
21 21
       <div class="lineHeight">
22 22
           <div class="widthLength25">首次透析时间:{{ patientInfo.first_treatment_date ? getTime(patientInfo.first_treatment_date ? patientInfo.first_treatment_date : 0, "{y}-{m}-{d}") : '/' }}</div>
@@ -111,7 +111,7 @@
111 111
       <div class="lineHeight">
112 112
           <div class="widthLength25">实际进食量:{{ afterdialysis.dialysis_during ? afterdialysis.dialysis_during : '' }} g</div>
113 113
           <div class="widthLength25">透后体重:{{ afterdialysis.weight_after ? afterdialysis.weight_after : "" }} Kg</div>
114
-          <div class="widthLength25">脉搏:{{ afterdialysis.weight_after ? afterdialysis.weight_after : "" }} 次/分</div>
114
+          <div class="widthLength25">脉搏:{{ afterdialysis.pulse_frequency ? afterdialysis.pulse_frequency : "" }} 次/分</div>
115 115
           <div class="widthLength25"></div>
116 116
       </div>
117 117
       <div class="lineHeight">治疗方案:</div>
@@ -576,6 +576,16 @@ export default {
576 576
     };
577 577
   },
578 578
   methods: {
579
+    getMonths(t){
580
+      var ot=new Date(t); //转为时间对象(js的时间戳是毫秒数)
581
+      var oy=ot.getFullYear(); //年
582
+      var om=ot.getMonth()+1; //月
583
+      var tt=new Date(); //今天
584
+      var ty=tt.getFullYear(); //今天年
585
+      var tm=tt.getMonth()+1; //今天月
586
+      var gm=(ty-oy)*12+(tm-om); //距今月数
587
+      return gm
588
+    },
579 589
     getComplication(id){
580 590
       var name = "";
581 591
       for(let i=0;i<this.complicationList.length;i++){

+ 25 - 23
src/xt_pages/outpatientCharges/newStatementPrintTwo.vue 查看文件

@@ -389,32 +389,34 @@
389 389
                       }
390 390
                     })
391 391
                     that.num = num
392
-                    let newTotal = 0
393
-                    for (var i = that.info.transBody.outputlist2.length - 1; i >= 0; i--) {
394
-                      if(that.info.transBody.outputlist2[i].aka111 == '07') {
395
-                        console.log('0707007')
396
-                        newTotal += that.info.transBody.outputlist2[i].bka058
392
+                    if(that.org_id == 10138){
393
+                      let newTotal = 0
394
+                      for (var i = that.info.transBody.outputlist2.length - 1; i >= 0; i--) {
395
+                        if(that.info.transBody.outputlist2[i].aka111 == '07') {
396
+                          console.log('0707007')
397
+                          newTotal += that.info.transBody.outputlist2[i].bka058
398
+                        }
399
+                        if(that.info.transBody.outputlist2[i].aka111 == '19'){
400
+                          console.log('191919')
401
+                          newTotal += that.info.transBody.outputlist2[i].bka058
402
+                        }
403
+                        console.log(8888888,that.info.transBody.outputlist2)
397 404
                       }
398
-                      if(that.info.transBody.outputlist2[i].aka111 == '19'){
399
-                        console.log('191919')
400
-                        newTotal += that.info.transBody.outputlist2[i].bka058
405
+                      console.log(1111111111111)
406
+                      let aka111obj = {
407
+                        aka111:'99',
408
+                        bka058:newTotal
401 409
                       }
402
-                      console.log(8888888,that.info.transBody.outputlist2)
403
-                    }
404
-                    console.log(1111111111111)
405
-                    let aka111obj = {
406
-                      aka111:'99',
407
-                      bka058:newTotal
410
+                      console.log('aka111obj',aka111obj)
411
+                      let newOutputlist2 = []
412
+                      newOutputlist2.push(aka111obj)
413
+                      that.info.transBody.outputlist2.map(item => {
414
+                        if(item.aka111 != '07' && item.aka111 != '19'){
415
+                          newOutputlist2.push(item)
416
+                        }
417
+                      })
418
+                      that.info.transBody.outputlist2 = newOutputlist2
408 419
                     }
409
-                    console.log('aka111obj',aka111obj)
410
-                    let newOutputlist2 = []
411
-                    newOutputlist2.push(aka111obj)
412
-                    that.info.transBody.outputlist2.map(item => {
413
-                      if(item.aka111 != '07' && item.aka111 != '19'){
414
-                        newOutputlist2.push(item)
415
-                      }
416
-                    })
417
-                    that.info.transBody.outputlist2 = newOutputlist2
418 420
                     console.log('that.info.transBody.outputlist2',that.info.transBody.outputlist2)
419 421
                     console.log('this.num222',that.num)
420 422
                     

+ 4 - 4
src/xt_pages/outpatientCharges/newTreatTemplate/printTwo.vue 查看文件

@@ -1,7 +1,7 @@
1 1
 <template>
2 2
     <div>
3 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="../../../assets/img/bailinTop.jpg" alt="">
4
+            <img style="width:100%;height:80px" src="https://kuyi.shengws.com/bailin/bltotle.jpg" alt="">
5 5
             <div class="printTitle" style="position: absolute;left: 40%;top: 50px;">门诊收费清单</div>
6 6
             <div style="display:flex;">
7 7
                 <div>单据号:<span style="display:inline-block;width:200px;">{{info.order_number ? info.order_number : ''}}</span></div>
@@ -74,10 +74,10 @@
74 74
                 <div>操作人:<span style="width:100px;display:inline-block;">{{info.doctor_name}}</span></div>
75 75
                 <div>操作日期:<span style="width:100px;display:inline-block;">{{info.record_date}}</span></div>
76 76
             </div>
77
-            <img style="width:100%;" src="../../../assets/img/bailinBottom.jpg" alt="">
77
+            <img style="width:100%;" src="https://kuyi.shengws.com/bailin/blend.jpg" alt="">
78 78
         </div>
79 79
         <div v-else id='prescription-print' class="prescription-print" style="position: relative;">
80
-          <img style="width:100%;height:80px" src="../../../assets/img/bailinTop.jpg" alt="">
80
+          <img style="width:100%;height:80px" src="https://kuyi.shengws.com/bailin/bltotle.jpg" alt="">
81 81
             <div class="printTitle" style="position: absolute;left: 40%;top: 50px;">门诊收费清单</div>
82 82
             <div style="display:flex;">
83 83
                 <div>单据号:<span style="display:inline-block;width:200px;">{{balanceAccounts.his.number ? balanceAccounts.his.number : ''}}</span></div>
@@ -181,7 +181,7 @@
181 181
                 <div>操作人:<span style="width:100px;display:inline-block;">{{balanceAccounts.current_admin.user_name}}</span></div>
182 182
                 <div>操作日期:<span style="width:100px;display:inline-block;">{{getTime(new Date(),"{y}-{m}-{d}")?getTime(new Date(),"{y}-{m}-{d}"):""}}</span></div>
183 183
             </div>
184
-            <img style="width:100%;" src="../../../assets/img/bailinBottom.jpg" alt="">
184
+            <img style="width:100%;" src="https://kuyi.shengws.com/bailin/blend.jpg" alt="">
185 185
         </div>
186 186
     </div>
187 187
 

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

@@ -2092,7 +2092,8 @@
2092 2092
             order_id: this.order.id,
2093 2093
             settle_type: this.order.settle_type,
2094 2094
             start_time: this.order.settle_start_time,
2095
-            end_time: this.order.settle_end_time
2095
+            end_time: this.order.settle_end_time,
2096
+            balance_accounts_type: this.hisPatientInfo.balance_accounts_type,
2096 2097
           }
2097 2098
           this.orderObj = obj
2098 2099
           // 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>

+ 4 - 4
src/xt_pages/outpatientDoctorStation/checkTemplate/printOne.vue 查看文件

@@ -1,7 +1,7 @@
1 1
 <template>
2 2
     <div>
3 3
         <div id='prescription-print3' class="prescription-print">
4
-            <img style="width:100%;height:80px" src="../../../assets/img/bailinTop.jpg" alt="">
4
+            <img style="width:100%;height:80px" src="https://kuyi.shengws.com/bailin/bltotle.jpg" alt="">
5 5
             <div class="printTitle">检验申请单</div>
6 6
 
7 7
             <div style="border:1px solid #000;">
@@ -19,12 +19,12 @@
19 19
                     <div>年龄:{{advicePrint[0].patient.age?advicePrint[0].patient.age:""}}岁</div>
20 20
                 </div>
21 21
                 <div style="margin-bottom:20px;padding:10px 10px 0;">病史摘要:{{history.history_of_present_illness?history.history_of_present_illness:''}}</div>
22
-                <div style="margin-bottom:20px;padding:0 10px;">体格检查:
22
+                <!-- <div style="margin-bottom:20px;padding:0 10px;">体格检查:
23 23
                     <span>体温:{{ history.temperature ? history.temperature + '℃' : '/' }}</span>
24 24
                     <span>脉搏:{{ history.pulse ? history.pulse + '次/分' : '/' }}</span>
25 25
                     <span>呼吸:{{ history.breathing ? history.breathing + '次/分' : '/' }}</span>
26 26
                     <span>血压:{{ history.sbp }}/{{ history.dbp }}mmHg</span>
27
-                </div>
27
+                </div> -->
28 28
                 <div style="margin-bottom:20px;padding:0 10px;">临床诊断:{{ getDiagnosis(advicePrint[0].info.diagnosis) }}</div>
29 29
                 <div style="display:flex;margin-bottom:20px;padding:0 10px;">
30 30
                     <div>检验项目:</div>
@@ -40,7 +40,7 @@
40 40
                     <div>医生签字:{{ doctor ? doctor : '' }}</div>
41 41
                 </div>
42 42
             </div>   
43
-            <img style="width:100%;" src="../../../assets/img/bailinBottom.jpg" alt="">
43
+            <img style="width:100%;" src="https://kuyi.shengws.com/bailin/blend.jpg" alt="">
44 44
         </div>
45 45
     </div>
46 46
 

+ 4 - 4
src/xt_pages/outpatientDoctorStation/template/printThree.vue 查看文件

@@ -3,14 +3,14 @@
3 3
   <div id='prescriptionPrint1'>
4 4
     <div v-for="(item,index) in advicePrint" :key="index">
5 5
       <div id='prescription-print' v-if="item.project.length == 0" v-for='(i,pageIndex) in item.pageArr.length' :key="pageIndex" class="prescription-print" style="page-break-after: always;">
6
-          <img src="../../../assets/img/bailinTop.jpg" style="width:100%" alt="">
6
+          <img src="https://kuyi.shengws.com/bailin/bltotle.jpg" style="width:100%" alt="">
7 7
           <div class="printTitle">
8 8
             处方笺
9 9
             <span v-if="item.med_type == '1111'" style="margin-left: 50px;border: 1px solid #000;">精一</span>
10 10
             <span v-if="item.med_type == '1112'" style="margin-left: 50px;border: 1px solid #000;">精二</span>
11 11
           </div>
12 12
           <div style="display:flex;">
13
-            <div style="width:33%;display:flex;">费别:<span class="under_line"><span v-if="faber && faber.transBody">{{ faber && faber.transBody ? getName(faber.transBody.outputlist1) : '' }}</span></span></div>
13
+            <div style="width:33%;display:flex;">费别:<span class="under_line"><span>{{ faber && faber.transBody ? getName(faber.transBody.outputlist1) : '自费' }}</span></span></div>
14 14
             <div style="width:33%;display:flex;">电脑号:<span class="under_line">{{ faber && faber.transBody ? faber.transBody.aac999 : ''  }}</span></div>
15 15
             <div style="width:33%;display:flex;">处方编号:<span class="under_line">{{ item.prescription_number.substring(item.prescription_number.length-6) }}</span></div>
16 16
           </div>
@@ -58,7 +58,7 @@
58 58
           </div>
59 59
           <div style="display:flex;">
60 60
             <div>医&nbsp;&nbsp;&nbsp;&nbsp;师:<span style="width:100px;display:inline-block;">{{item.doctor?item.doctor:""}}</span></div>
61
-            <div>药品金额:{{getTotalOne(item.id).toFixed(2)?getTotalOne(item.id).toFixed(2):0}}</div>
61
+            <!-- <div>药品金额:{{getTotalOne(item.id).toFixed(2)?getTotalOne(item.id).toFixed(2):0}}</div> -->
62 62
           </div>
63 63
           <div style="display:flex;">
64 64
             <div style="display:flex;">审核药师:<span style="width:100px" class="under_line"></span></div>
@@ -70,7 +70,7 @@
70 70
           </div>
71 71
           <div>*处方当日有效,特殊情况可适当延长,一般不超过3天</div>
72 72
           <div>*药品属于特殊商品,非质量问题不允许退换</div>
73
-          <img src="../../../assets/img/bailinBottom.jpg" style="width:100%" alt="">
73
+          <img src="https://kuyi.shengws.com/bailin/blend.jpg" style="width:100%" alt="">
74 74
           <!-- <div class="doctorBox">
75 75
               <p>医师:{{item.doctor?item.doctor:""}}</p>
76 76
               <p>日期:{{getTime(item.ctime)?getTime(item.ctime):""}}</p>

+ 5 - 5
src/xt_pages/outpatientDoctorStation/treatTemplate/printTwo.vue 查看文件

@@ -2,13 +2,13 @@
2 2
    <div id='prescriptionPrint2'>
3 3
     <div id='prescription-print' v-if="item.advices.length == 0" class="prescription-print" v-for="(item,index) in advicePrint" :key="index">
4 4
 
5
-        <img src="../../../assets/img/bailinTop.jpg" style="width:100%" alt="">
5
+        <img src="https://kuyi.shengws.com/bailin/bltotle.jpg" style="width:100%" alt="">
6 6
         <div class="printTitle">治疗单
7 7
           <span v-if="item.med_type == '1111'" style="margin-left: 50px;border: 1px solid #000;">精一</span>
8 8
           <span v-if="item.med_type == '1112'" style="margin-left: 50px;border: 1px solid #000;">精二</span>
9 9
         </div>
10 10
         <div style="display:flex;">
11
-            <div style="width:33%;display:flex;">费别:<span class="under_line">{{ faber && faber.transBody ? getName(faber.transBody.outputlist1) : '' }}</span></div>
11
+            <div style="width:33%;display:flex;">费别:<span class="under_line">{{ faber && faber.transBody ? getName(faber.transBody.outputlist1) : '自费' }}</span></div>
12 12
             <div style="width:33%;display:flex;">电脑号:<span class="under_line">{{ faber && faber.transBody ? faber.transBody.aac999 : ''  }}</span></div>
13 13
             <div style="width:33%;display:flex;">处方编号:<span class="under_line">{{ item.prescription_number.substring(item.prescription_number.length-6) }}</span></div>
14 14
         </div>
@@ -77,13 +77,13 @@
77 77
                   <div class="drugsOne"><span style="font-weight:bold;">{{ index+1 + '.' }}</span>{{it.advice_name?it.advice_name:""}}&nbsp;&nbsp;<span v-if="it.drug.min_unit != it.drug.dose_unit">{{it.drug.dose}}{{it.drug.dose_unit}}&nbsp;* &nbsp;</span>{{it.drug.min_number}}{{it.drug.min_unit}}/{{it.drug.max_unit}}&nbsp;×&nbsp; {{it.prescribing_number}}{{it.prescribing_number_unit}}</div>
78 78
               </div> -->
79 79
               <div class="drugsBox" v-for="(it,index) in item.project" :key="index">
80
-                  <div class="drugsOne"><span style="font-weight:bold;">{{ index+1 + '.' }}</span>{{ it.type == 2 ? it.project.project_name : it.good_info.good_name }}&nbsp;&nbsp;{{it.single_dose}}{{it.single_dose_unit}}&nbsp;×&nbsp; {{it.count}}{{unit}}</div>
80
+                  <div class="drugsOne"><span style="font-weight:bold;">{{ index+1 + '.' }}</span>{{ it.type == 2 ? it.project.project_name : it.good_info.good_name }}&nbsp;&nbsp;×&nbsp; {{it.count}}{{unit}}</div>
81 81
               </div>
82 82
               <div style="text-align:center;" >(以下空白)</div>
83 83
         </div>
84 84
         <div style="display:flex;">
85 85
             <div>医&nbsp;&nbsp;&nbsp;&nbsp;师:<span style="width:100px;display:inline-block;">{{item.doctor?item.doctor:""}}</span></div>
86
-            <div>药品金额:{{getTotalOne(item.id).toFixed(2)?getTotalOne(item.id).toFixed(2):''}}</div>
86
+            <!-- <div>药品金额:{{getTotalOne(item.id).toFixed(2)?getTotalOne(item.id).toFixed(2):''}}</div> -->
87 87
           </div>
88 88
           <div style="display:flex;">
89 89
             <div style="display:flex;">核对护士:</div>
@@ -91,7 +91,7 @@
91 91
           <div style="display:flex;">
92 92
             打印时间:<span style="border-bottom:1px solid #000;">{{getTime(new Date())?getTime(new Date()):""}}</span>
93 93
           </div>
94
-          <img src="../../../assets/img/bailinBottom.jpg" style="width:100%" alt="">
94
+          <img src="https://kuyi.shengws.com/bailin/blend.jpg" style="width:100%" alt="">
95 95
           <div style="page-break-after:always"></div>
96 96
      </div>
97 97
 

+ 1 - 1
src/xt_pages/stock/drugs/components/drugOutDetail.vue 查看文件

@@ -582,7 +582,7 @@ export default {
582 582
         var min_str = ""
583 583
         for(let i=0;i<arr.length;i++){
584 584
           if(arr[i].count_unit == max_unit){
585
-            arr[i].count = arr[i].count * arr[i].min_number
585
+            arr[i].count = arr[i].count * min_number
586 586
           }
587 587
         }
588 588
         for(let i=0;i<arr.length;i++){

+ 4 - 4
src/xt_pages/stock/drugs/drugOutOrderPrint.vue 查看文件

@@ -59,7 +59,7 @@
59 59
             </tr>
60 60
             </tbody>
61 61
           </table>
62
-          <table class="print-table" border="1" >
62
+          <!-- <table class="print-table" border="1" >
63 63
             <tbody>
64 64
             <tr>
65 65
               <td width="633" style="line-height: 50px">合计</td>
@@ -68,7 +68,7 @@
68 68
             </tr>
69 69
 
70 70
             </tbody>
71
-          </table>
71
+          </table> -->
72 72
 
73 73
           <div style="display:flex;margin-top:20px;float:right;">
74 74
             <div style="width:50px;">审批:</div><div style="width:100px;"></div>
@@ -225,7 +225,7 @@
225 225
       getTotal(){
226 226
          var total = 0
227 227
          for(let i=0;i<this.cancelStockDate.length;i++){
228
-            total += this.cancelStockDate[i].price * this.cancelStockDate[i].count
228
+            total += this.cancelStockDate[i].price * this.getCount(this.cancelStockDate[i].child,this.cancelStockDate[i].max_unit,this.cancelStockDate[i].min_unit,this.cancelStockDate[i].min_number)
229 229
          }
230 230
          return total
231 231
       },
@@ -315,7 +315,7 @@
315 315
         var min_str = ""
316 316
         for(let i=0;i<arr.length;i++){
317 317
           if(arr[i].count_unit == max_unit){
318
-            arr[i].count = arr[i].count * arr[i].min_number
318
+            arr[i].count = arr[i].count * min_number
319 319
           }
320 320
         }
321 321
         for(let i=0;i<arr.length;i++){

+ 2 - 1
src/xt_pages/stock/stockInOrderAdd.vue 查看文件

@@ -347,7 +347,8 @@
347 347
         dealerList: [],
348 348
         goodType: [],
349 349
         manufacturerList:[],
350
-        goodList:[]
350
+        goodList:[],
351
+       
351 352
       }
352 353
     },
353 354
     methods: {

+ 240 - 86
src/xt_pages/stock/stockModifyPrice.vue 查看文件

@@ -46,15 +46,15 @@
46 46
       <div style="display: flex;justify-content: space-between;margin-top:10px">
47 47
             <div style="width:541px;margin-right:10px;">
48 48
                 <el-table :data="tableData" border :height="tableHeight" :header-cell-style="{ backgroundColor: 'rgb(245, 247, 250)' }">
49
-                    <el-table-column
50
-                    prop="date"
51
-                    label="单据编码"
52
-                    width="100">
49
+                    <el-table-column prop="date" label="单据编码" width="100">
50
+                        <template slot-scope="scope">
51
+                          {{scope.row.warehousing_order}}
52
+                        </template>
53 53
                     </el-table-column>
54
-                    <el-table-column
55
-                    prop="date"
56
-                    label="调价日期"
57
-                    width="100">
54
+                    <el-table-column prop="date" label="调价日期"width="100">
55
+                     <template slot-scope="scope">
56
+                          {{scope.row.start_time}}
57
+                     </template> 
58 58
                     </el-table-column>
59 59
                     <el-table-column
60 60
                     prop="name"
@@ -111,7 +111,7 @@
111 111
                     </el-table-column>
112 112
                     <el-table-column
113 113
                     prop="name"
114
-                    label="供应商"
114
+                    label="经销商"
115 115
                     width="100">
116 116
                     </el-table-column>
117 117
                     <el-table-column
@@ -164,93 +164,109 @@
164 164
         width="1200px"
165 165
         :before-close="handleClose">
166 166
         <el-form :model="form" class="modifyDialog" label-width="120px">
167
-            <el-form-item label="药品名称">
168
-                <el-input v-model="form.name"></el-input>
167
+            <el-form-item label="耗材名称">
168
+                <!-- <el-input v-model="form.name"></el-input> -->
169
+              <el-autocomplete
170
+                    class="checkSearch"
171
+                    popper-class="my-autocomplete"
172
+                    v-model="form.good_name"
173
+                    :fetch-suggestions="querySearchAsync"
174
+                    :trigger-on-focus="true"
175
+                    placeholder="请输入耗材名称"
176
+                    @select="handleSelect"
177
+                    @input="changeGoodName(scope.$index)"
178
+                    style="width:160px;"
179
+                  >
180
+                    <i class="el-icon-search el-input__icon" slot="suffix"></i>
181
+                  <template slot-scope="{ item }">
182
+                    <div class="name">{{ item.good_name +"  " +item.specification_name + "  "+item.manufacturer }}</div>
183
+                  </template>
184
+                 </el-autocomplete>
169 185
             </el-form-item>
170 186
             <el-form-item label="原价格">
171
-                <el-input v-model="form.name"></el-input>
187
+                <el-input v-model="form.packing_price"></el-input>
172 188
             </el-form-item>
173 189
             <el-form-item label="现价格">
174
-                <el-input v-model="form.name"></el-input>
190
+                <el-input v-model="form.new_price"></el-input>
175 191
             </el-form-item>
176 192
             <el-form-item label="调价数量">
177
-                <el-input v-model="form.name"></el-input>
193
+                <el-input v-model="form.count"></el-input>
178 194
             </el-form-item>
179 195
             <el-form-item label="备注" style="width:66%;">
180 196
                 <div style="display:flex;">
181
-                    <el-input v-model="form.name"></el-input>
182
-                    <el-button style="margin-left:5px;" type="primary">添加</el-button>
197
+                    <el-input v-model="form.remark"></el-input>
198
+                    <el-button style="margin-left:5px;" type="primary" @click="addPrice">添加</el-button>
183 199
                 </div>
184 200
             </el-form-item>
185 201
         </el-form>
186 202
         <el-table :data="tableData" border :header-cell-style="{ backgroundColor: 'rgb(245, 247, 250)' }">
187
-            <el-table-column
188
-            prop="date"
189
-            label="单据编号"
190
-            width="100">
203
+            <el-table-column prop="date" label="单据编号" width="100" align="center">
204
+                <template slot-scope="scope">
205
+                {{scope.row.warehousing_order}}
206
+                </template>
191 207
             </el-table-column>
192
-            <el-table-column
193
-            prop="date"
194
-            label="药品名称"
195
-            width="100">
208
+            <el-table-column prop="date" label="耗材名称" width="100" align="center">
209
+               <template slot-scope="scope">
210
+                {{scope.row.good_name}}
211
+              </template>
196 212
             </el-table-column>
197
-            <el-table-column
198
-            prop="name"
199
-            label="规格"
200
-            width="100">
213
+            <el-table-column prop="name" label="规格" width="100" align="center">
214
+              <template slot-scope="scope">
215
+               {{scope.row.specification_name}}
216
+               </template>
201 217
             </el-table-column>
202
-            <el-table-column
203
-            prop="name"
204
-            label="单位"
205
-            width="100">
218
+            <el-table-column prop="name" label="单位" width="100" align="center">
219
+              <template slot-scope="scope">
220
+               {{scope.row.warehousing_unit}}
221
+               </template>
206 222
             </el-table-column>
207
-            <el-table-column
208
-            prop="name"
209
-            label="调价数量"
210
-            width="100">
223
+            <el-table-column prop="name" label="调价数量" width="100" align="center">
224
+              <template slot-scope="scope">
225
+                {{scope.row.count}}
226
+              </template> 
211 227
             </el-table-column>
212
-            <el-table-column
213
-            prop="name"
214
-            label="原进货价"
215
-            width="100">
228
+            <el-table-column prop="name" label="原进货价" width="100" align="center">
229
+               <template slot-scope="scope">
230
+                {{scope.row.buy_price}}
231
+               </template> 
216 232
             </el-table-column>
217
-            <el-table-column
218
-            prop="name"
219
-            label="原零售价"
220
-            width="100">
233
+            <el-table-column prop="name" label="原零售价" width="100" align="center">
234
+               <template slot-scope="scope">
235
+               {{scope.row.packing_price}}
236
+              </template> 
221 237
             </el-table-column>
222
-            <el-table-column
223
-            prop="name"
224
-            label="新零售价"
225
-            width="100">
238
+            <el-table-column prop="name" label="新零售价" width="100" align="center">
239
+               <template slot-scope="scope">
240
+                {{scope.row.new_price}}
241
+               </template>   
226 242
             </el-table-column>
227
-            <el-table-column
228
-            prop="name"
229
-            label="生产厂商"
230
-            width="100">
243
+            <el-table-column prop="manufacturer" label="生产厂商" width="100" align="center">
244
+                <template slot-scope="scope">
245
+                 {{scope.row.manufacturer}}
246
+               </template>     
231 247
             </el-table-column>
232
-            <el-table-column
233
-            prop="name"
234
-            label="批准文号"
235
-            width="100">
248
+            <el-table-column prop="name" label="批准文号" width="100" align="center">
249
+              <template slot-scope="scope">
250
+                 {{scope.row.license_number}}
251
+               </template>    
236 252
             </el-table-column>
237
-            <el-table-column
238
-            prop="name"
239
-            label="供应商"
240
-            width="100">
253
+            <el-table-column prop="name" label="经销商" width="100" align="center">
254
+               <template slot-scope="scope">
255
+                 {{scope.row.dealer}}
256
+               </template>    
241 257
             </el-table-column>
242
-            <el-table-column
243
-            prop="name"
244
-            label="备注"
245
-            width="100">
258
+            <el-table-column prop="name" label="备注" width="100" align="center">
259
+              <template slot-scope="scope">
260
+                 {{scope.row.remark}}
261
+               </template>   
246 262
             </el-table-column>
247 263
             <el-table-column
248 264
             fixed="right"
249 265
             width="100"
250 266
             label="操作">
251 267
                 <template slot-scope="scope">
252
-                    <el-button type="text" size="small">删除</el-button>
253
-                    <el-button type="text" size="small">编辑</el-button>
268
+                    <el-button type="text" size="small" @click="deletePrice(scope.$index)">删除</el-button>
269
+                    <el-button type="text" size="small" @click="editPrice(scope.row.id)">编辑</el-button>
254 270
                 </template>
255 271
             </el-table-column>
256 272
         </el-table>
@@ -259,13 +275,49 @@
259 275
             <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
260 276
         </span>
261 277
     </el-dialog>
262
-  
278
+    
279
+    <el-dialog
280
+        title="编辑"
281
+        :visible.sync="editPriceDialogVisible"
282
+        width="50%">
283
+        <span>
284
+          <el-form :ref="form" >
285
+            <el-row>
286
+               <el-col>
287
+                <el-form-item label="耗材名称:">
288
+                    <el-autocomplete
289
+                        class="checkSearch"
290
+                        popper-class="my-autocomplete"
291
+                        v-model="form.good_name"
292
+                        :fetch-suggestions="querySearchAsync"
293
+                        :trigger-on-focus="true"
294
+                        placeholder="请输入耗材名称"
295
+                        @select="handleSelect"
296
+                        @input="changeGoodName(scope.$index)"
297
+                        style="width:160px;"
298
+                    >
299
+                        <i class="el-icon-search el-input__icon" slot="suffix"></i>
300
+                    <template slot-scope="{ item }">
301
+                        <div class="name">{{ item.good_name +"  " +item.specification_name + "  "+item.manufacturer }}</div>
302
+                    </template>
303
+                    </el-autocomplete>
304
+                </el-form-item>
305
+              </el-col> 
306
+            </el-row>
307
+          </el-form>
308
+        </span>
309
+        <span slot="footer" class="dialog-footer">
310
+            <el-button @click="dialogVisible = false">取 消</el-button>
311
+            <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
312
+        </span>
313
+    </el-dialog>
263 314
   </div>
264 315
 </template>
265 316
 
266 317
 <script>
267 318
 import BreadCrumb from "../components/bread-crumb";
268
-
319
+import { postSearchGoodWarehouseList} from "@/api/stock"
320
+import { uParseTime } from '@/utils/tools'
269 321
 export default {
270 322
     name: "stockModifyPrice",
271 323
     components:{
@@ -283,27 +335,29 @@ export default {
283 335
             searchKey:'',
284 336
             value1:'',
285 337
             value2:'',
286
-            tableData: [{
287
-                date: '2016-05-02',
288
-                name: '王小虎',
289
-                address: '上海市普陀区金沙江路 1518 弄'
290
-                }, {
291
-                date: '2016-05-04',
292
-                name: '王小虎',
293
-                address: '上海市普陀区金沙江路 1517 弄'
294
-                }, {
295
-                date: '2016-05-01',
296
-                name: '王小虎',
297
-                address: '上海市普陀区金沙江路 1519 弄'
298
-                }, {
299
-                date: '2016-05-03',
300
-                name: '王小虎',
301
-                address: '上海市普陀区金沙江路 1516 弄'
302
-            }],
338
+            tableData: [],
303 339
             dialogVisible:false,
304 340
             form: {
305
-                name: '',
341
+                good_name: '',
342
+                packing_price:'',
343
+                new_price:"",
344
+                count:"",
345
+                remark:"",
346
+                warehousing_order:"",
347
+                manufacturer:"",
348
+                dealer:"",
349
+                license_number:"",
350
+                warehousing_unit:"",
351
+                specification_name:"",
352
+                buy_price:"",
353
+                good_id:"",
354
+                packing_unit:"",
306 355
             },
356
+            goodList:[],
357
+            manufacturerList:[],
358
+            dealerList:[],
359
+            currentIndex: 0,
360
+            editPriceDialogVisible:false,
307 361
         }
308 362
     },
309 363
     methods:{
@@ -313,7 +367,107 @@ export default {
313 367
         print(){
314 368
             this.$router.push({path:'/stock/stockModifyPricePrint'})
315 369
             
370
+        },
371
+        querySearchAsync(keyword, cb) {
372
+            let key = '';
373
+            if (keyword != undefined) {
374
+             key = keyword
375
+            }
376
+            postSearchGoodWarehouseList(key).then(response => {
377
+            if (response.data.state == 1) {
378
+            
379
+                var list = response.data.data.list
380
+                console.log("列表数据",list)
381
+                this.goodList = list
382
+                var manufacturerList = response.data.data.manufacturerList
383
+                this.manufacturerList = manufacturerList
384
+                var dealer =  response.data.data.dealerList
385
+                this.dealerList = dealer
386
+                for(let i=0;i<this.goodList.length;i++){
387
+                  for(let j=0;j<this.manufacturerList.length;j++){
388
+                    if(this.goodList[i].manufacturer == this.manufacturerList[j].id){
389
+                        this.goodList[i].manufacturer = this.manufacturerList[j].manufacturer_name
390
+                    }
391
+                  }
392
+                }
393
+
394
+                for(let i=0;i<this.goodList.length;i++){
395
+                   for(let j=0;j<this.dealerList.length;j++){
396
+                     if(this.goodList[i].dealer == this.dealerList[j].id){
397
+                       this.goodList[i].dealer = this.dealerList[j].dealer_name
398
+                     }
399
+                   }
400
+                }
401
+            
402
+                cb(this.goodList)
403
+            } else {
404
+                cb([])
405
+            }
406
+            })
407
+        },
408
+        changeGoodName(val){
409
+         this.currentIndex = val
410
+        },
411
+        handleSelect(val){
412
+          console.log("val23232323",val)
413
+          this.form.good_id = val.id,
414
+          this.form.good_name = val.good_name
415
+          this.form.packing_price = val.packing_price
416
+          this.form.warehousing_order = val.warehousing_order
417
+          this.form.license_number = val.license_number
418
+          this.form.dealer = val.dealer
419
+          this.form.manufacturer = val.manufacturer
420
+          this.form.specification_name = val.specification_name
421
+          this.form.remark = val.remark
422
+          this.form.buy_price = val.buy_price
423
+          this.form.warehousing_unit = val.packing_unit
424
+      },
425
+      handleClose(){
426
+
427
+      },
428
+      addPrice(){
429
+        var obj = {
430
+         good_name:this.form.good_name,
431
+         specification_name:this.form.specification_name,
432
+         warehousing_order:this.form.warehousing_order,
433
+         good_name:this.form.good_name,
434
+         packing_price:this.form.packing_price,
435
+         license_number:this.form.license_number,
436
+         dealer:this.form.dealer,
437
+         manufacturer:this.form.manufacturer,  
438
+         warehousing_unit:this.form.warehousing_unit, 
439
+         start_time:this.getTime(new Date()),
440
+         count:this.form.count,
441
+         new_price:this.form.new_price,
442
+         remark:this.form.remark,
316 443
         }
444
+       this.tableData.push(obj)
445
+       this.form.good_name = ""
446
+       this.form.specification_name  = ""
447
+       this.form.warehousing_order = ""
448
+       this.form.good_name = ""
449
+       this.form.packing_price = ""
450
+       this.form.license_number= ""
451
+       this.form.dealer = ""
452
+       this.form.manufacturer = ""
453
+       this.form.warehousing_unit = ""
454
+       this.form.count = ""
455
+       this.form.new_price = ""
456
+       this.form.remark = ""
457
+      },
458
+      getTime(val) {
459
+         if(val < 0){
460
+           return ""
461
+         }
462
+         if(val == ""){
463
+          return ""
464
+         }else {
465
+          return uParseTime(val, '{y}-{m}-{d}')
466
+         }
467
+      },
468
+     deletePrice(index){
469
+      this.tableData.splice(index,1)
470
+     }
317 471
     },
318 472
     created(){
319 473
         let tableHeight = document.body.clientHeight - 200;

+ 1 - 3
src/xt_pages/user/components/PatientSidebar.vue 查看文件

@@ -188,7 +188,7 @@ export default {
188 188
       }else if (name == '1-8'){
189 189
         this.$router.push({path:'/patients/patients/'+this.id+'/inspectionInfectious'})
190 190
       }else if (name == '1-9'){
191
-        this.$router.push({path:'/patients/patients/'+this.id+'/templateSummary'})
191
+        this.$router.push({path:'/patient/patient/'+this.id+'/templateSummary'})
192 192
       }
193 193
     },
194 194
     changePatient(value) {
@@ -333,8 +333,6 @@ export default {
333 333
         this.$router.push({
334 334
           path: '/patients/patient/' + this.id + '/proeducation'
335 335
         })
336
-      }else if (patientKey == '1-9'){
337
-        this.$router.push({path:'/patients/patients/'+2448+'/templateSummary'})
338 336
       }
339 337
     
340 338
      }else{

文件差異過大導致無法顯示
+ 713 - 82
src/xt_pages/user/templateSummary.vue


+ 496 - 0
src/xt_pages/user/templateSummaryPrint.vue 查看文件

@@ -0,0 +1,496 @@
1
+<template>
2
+  <div id="dialysis-print-box">
3
+    <div class="dialysis-print-order">
4
+      <div class="order-yy-name"></div>
5
+      <div class="order-title">{{ orgname }}&nbsp;&nbsp;&nbsp;血液透析患者诊疗阶段小结</div>
6
+      <div style="float:right">
7
+         <el-button type="primary" size="small" @click="printThisPage">打印</el-button> 
8
+      </div>
9
+      <div>
10
+         <span>姓名:{{patientList.patient.name}}</span>  
11
+         <span>年龄:{{getNewAge(patientList.patient.id_card_no)}}</span>  
12
+         <span>性别:
13
+             <span v-if="patientList.patient.gender == 1">男</span>
14
+             <span v-if="patientList.patient.gender == 2">女</span>
15
+         </span> 
16
+         <span>诊断:{{patientList.patient.diagnose}}</span> 
17
+      </div>
18
+      <div class="under-line"></div>
19
+      <div>
20
+        <span>阶段评估时间:{{getTime(patientList.record_time)}}</span>  
21
+      </div>
22
+      <div class="under-line"></div>
23
+       <div>
24
+        <span>阶段小结概要:</span>  
25
+        <div>
26
+          <span>干体重:{{patientList.patient.dry_weight}}(kg)</span>  
27
+          <span>共透析:{{patientList.patient.dialysis_count}}</span>  
28
+          <span>HD:{{patientList.hd_count}}</span>  
29
+          <span>HDF:{{patientList.hdf_count}}</span>  
30
+          <span>HP:{{patientList.hp_count}}</span>  
31
+          <span>其他:{{patientList.other_count}}</span> 
32
+          <span>透析器:{{patientList.dialzer_apparatus}}</span>  
33
+          <span>抗凝剂:{{patientList.anticoagulant}}</span>  
34
+          <span>透析液(钾:{{patientList.kalium}} 钙:{{patientList.autunite}} Na:{{patientList.natrium}} ):</span> 
35
+          <span>每次透析(小时):{{patientList.hour}}时{{patientList.minute}}分</span>
36
+          <span>透前体重:{{patientList.befor_weight}}</span>
37
+          <span>透后体重:{{patientList.after_weight}}</span>
38
+          <span>透前血压:{{patientList.befor_pressure}}</span>
39
+          <span>透后血压:{{patientList.after_pressure}}</span>
40
+        </div>
41
+      </div>
42
+      <div class="under-line"></div>
43
+      <div>
44
+        <span>阶段小结总结:{{patientList.template_summary_content}}</span>  
45
+      </div>
46
+     <div class="under-line"></div>
47
+     <div>
48
+        <span>阶段小结化验结果:{{patientList.template_inspection_content}}</span>  
49
+      </div>
50
+     <div class="under-line"></div>
51
+     <div>阶段小结个性化方案:{{patientList.template_plan_content}}</div>
52
+     <div class="under-line"></div>
53
+     <div>
54
+       <span>记录医生:{{getPatientList(patientList.admin_user_id)}}</span>  
55
+       <span>记录时间:{{getTime(patientList.record_time)}}</span>  
56
+     </div>
57
+    </div>
58
+  </div>
59
+</template>
60
+
61
+<script>
62
+import { getDataConfig } from '@/utils/data'
63
+import { jsGetAge, uParseTime } from '@/utils/tools'
64
+import LabelBox from '../dialysis/printItem/LabelBox'
65
+import CheckBox from '../dialysis/batch_print/option_check_box'
66
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
67
+import {getTemplateSummaryPrintDetail} from "@/api/patient"
68
+export default {
69
+  name: 'dialysisPrintOrderOne',
70
+  components: {
71
+    LabelBox,
72
+    BreadCrumb,
73
+    CheckBox
74
+  },
75
+  data() {
76
+    return {
77
+      crumbs: [
78
+        { path: false, name: '透析管理' },
79
+        { path: false, name: '打印单' }
80
+      ],
81
+      operators: [],
82
+      adminUser: [],
83
+      check: {},
84
+      dialysisOrder: {
85
+        DeviceNumber: []
86
+      },
87
+      posture_arr: [],
88
+      operatorMaps: {},
89
+      complications: [
90
+        '低血压',
91
+        '高血压',
92
+        '心律失常',
93
+        '头晕',
94
+        '头痛',
95
+        '呕吐',
96
+        '抽搐',
97
+        '出血',
98
+        '心衰',
99
+        '腹痛',
100
+        '无'
101
+      ],
102
+      consciousness_arr: [],
103
+      jilurow: 0,
104
+      advice_jilurow: 0,
105
+      loading: false,
106
+      orgname: '',
107
+      patientInfo_gender_1: false,
108
+      patientInfo_gender_2: false,
109
+      patientInfo_source_2: false,
110
+      patientInfo_source_1: false,
111
+      modeOptions: {},
112
+      replacementWays: [],
113
+      perfusionApparatus: [],
114
+      anticoagulantsConfit: {},
115
+      bloodAccessParOpera: {},
116
+      dialysateFormulationOptions: {},
117
+
118
+      queryParams: {
119
+        xtdate: '',
120
+        xtno: ''
121
+      },
122
+      patientInfo: {
123
+        birth: '',
124
+        age: '',
125
+        DialysisSchedule: {
126
+          device_number: { number: '' },
127
+          device_zone: { name: '' }
128
+        },
129
+        gender: 0
130
+      },
131
+      predialysis: {
132
+        score: '',
133
+        internal_fistula: '',
134
+        internal_fistula_skin: '',
135
+        catheter: '',
136
+        blood_access_part_opera_name: ''
137
+      },
138
+      afterdialysis: {
139
+        complications_index: ''
140
+      },
141
+      prescription: {
142
+        dialysate_formulation_name: '',
143
+        device: {}
144
+      },
145
+      advices: [],
146
+      users: [],
147
+      monitors: [],
148
+      summary: {},
149
+      receiverTreatmentAccess: {},
150
+      org_template_info: {},
151
+
152
+      doctor_advices: [],
153
+      advice_groups: [],
154
+      schedule: [],
155
+
156
+      AlPanel: {
157
+        id: 0,
158
+        name: '',
159
+        type: 1,
160
+        shouji: 2,
161
+        weichi: 2,
162
+        zongliang: 2,
163
+        gaimingcheng: -1,
164
+        gaijiliang: -1,
165
+        shouji_unit: 'mg',
166
+        weichi_unit: 'mg/h',
167
+        zongliang_unit: 'mg',
168
+        gaimingcheng_unit: '',
169
+        gaijiliang_unit: ''
170
+      },
171
+      list: 5,
172
+      replacement_total: '',
173
+      actual_treatment_hour: '',
174
+      actual_treatment_minute: '',
175
+      anticoagulant: '',
176
+      anticoagulant_shouji: '',
177
+      anticoagulant_zongliang: '',
178
+      prescription_dewatering: '',
179
+      blood_flow_volume: '',
180
+      dialysate_flow: '',
181
+      bed: '',
182
+      dialyzer_perfusion_apparatus: '',
183
+      dialysate_formulation: '',
184
+      blood_access: '',
185
+      doctor: '',
186
+      nurse: '',
187
+      doctorAdvice: [],
188
+      total: '',
189
+      weight_before: '',
190
+      dry_weight: '',
191
+      weight_after: '',
192
+      weightloss_after: '',
193
+      actual_ultrafiltration: '',
194
+      temperature: '',
195
+      systolic_blood_pressure: '',
196
+      diastolic_blood_pressure: '',
197
+      mission: '',
198
+      dialysis_summary: '',
199
+      orderForm: {
200
+        start_nurse: '',
201
+        url: ''
202
+      },
203
+      doctorForm: {
204
+        doctor: '',
205
+        url: ''
206
+      },
207
+      finshForm: {
208
+        finish_nurse: '',
209
+        url: ''
210
+      },
211
+      tableAdvice: [],
212
+      monitor: [],
213
+      displace_liqui: '',
214
+      kalium: '',
215
+      sodium: '',
216
+      calcium: '',
217
+      weight_gain: '',
218
+      afterWeightLast: '',
219
+      anticoagulant_weichi: '',
220
+      target_ultrafiltration: '',
221
+      blood_access_internal_fistula: '',
222
+      venous_catheterization: '',
223
+      blood_access_part_opera_id: '',
224
+      dryWeight_add: '',
225
+      weight: '',
226
+      vascularId: 0,
227
+      PunctureNurse: {
228
+        user_name: '',
229
+        url: ''
230
+      },
231
+      arr: [],
232
+      arrtwo: [],
233
+      bloodAccess: [],
234
+      vascularAccess: [],
235
+      nursing_record: '',
236
+      special_record: '',
237
+      newTableAdvice: [],
238
+      patientList:{},
239
+      doctorList:[],
240
+    }
241
+  },
242
+  methods: {
243
+    getDatge(value) {
244
+      var times = Date.parse(value) / 1000
245
+      var timestr = uParseTime(times, '{y}年{m}月{d}日')
246
+      return timestr
247
+    },
248
+    getTime(value, temp) {
249
+      if (value == 0) {
250
+        return ''
251
+      }
252
+      if (value != undefined) {
253
+        return uParseTime(value, temp)
254
+      }
255
+      return ''
256
+    },
257
+    getTimes(time) {
258
+      if (time === '') {
259
+        return ''
260
+      }
261
+      return uParseTime(time, '{y}-{m}-{d} {h}:{i}')
262
+    },
263
+    printThisPage() {
264
+        var ptime = Math.round(new Date().getTime() / 1000)
265
+        this.print_time = uParseTime(ptime, '{y}-{m}-{d} {h}:{i}')
266
+        const style ='@media print {.dialysis-print-order{width:960px;margin:0 auto}.dialysis-print-order .order-yy-name{margin:auto;text-align:center;font-size:20px;letter-spacing:5px}.dialysis-print-order .order-title{margin:auto;font-weight:600;text-align:center;font-size:22px;padding:10px 20px 20px 20px}.dialysis-print-order .table-box{width:100%;line-height:23px;font-size:14px}.dialysis-print-order .print-table{width:100%;text-align:center;border-collapse:collapse;line-height:25px;font-size:14px}.dialysis-print-order .print-table-no{width:100%;text-align:center;border-collapse:collapse;font-size:14px}.dialysis-print-order .under-line{border-bottom:1px solid #999;width:95%;text-align:center;margin-left:2px}.dialysis-print-order .title-box{text-align:center;font-size:16px;border:1px solid #666}.dialysis-print-order .radio-lebel-box{font-weight:400;cursor:pointer}.dialysis-print-order .radio-no{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.dialysis-print-order .radio-inner{white-space:nowrap;cursor:pointer;outline:0;display:inline-block;line-height:1;position:relative;vertical-align:middle}.dialysis-print-order .radio-fang{display:inline-block;position:relative;border:1px solid #000;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.dialysis-print-order .is-checked-radio::after{content:"√";font-size:15px}}.dialysis-print-order .print-table-no tr td { padding: 8px 5px; line-height: 25px; }.es-img{height: 20px; }.advice-name{text-align: left;}.advice-children{display:flex;} .dialysis-print-order .print-table tr td{padding: 0px 0px;} .print-template-two tr {line-height: 30px;}   .title-box-pro{border: 0 #fff;line-height: 40px;height: 40px;text-align: left;padding-left: 10px !important;}  .text-align-left{text-align: left !important;padding-left:10px !important;font-size: 14px !important;line-height: 25px;}'
267
+        printJS({
268
+            printable: 'dialysis-print-box',
269
+            type: 'html',
270
+            style: style,
271
+            scanStyles: false
272
+        })
273
+      
274
+    },
275
+  
276
+
277
+   
278
+  
279
+   
280
+  
281
+    getAge: function(val) {
282
+      if (val.birthday != 0) {
283
+        return jsGetAge(val.birth, '-')
284
+      } else {
285
+        return ''
286
+      }
287
+    },
288
+    getTemplateSummaryPrintDetail(id){
289
+       var params ={
290
+         id:id,
291
+       } 
292
+     getTemplateSummaryPrintDetail(params).then(response=>{
293
+        if(response.data.state == 1){
294
+          var list = response.data.data.list
295
+          console.log("listw23222323",list)
296
+          this.patientList = list
297
+          var doctorList = response.data.data.doctorList
298
+          console.log("doctorlsit",doctorList)
299
+          this.doctorList = doctorList
300
+        }
301
+     }) 
302
+    },
303
+    getNewAge(UUserCard) {
304
+      if (UUserCard != null && UUserCard != '') {
305
+        // 获取年龄
306
+        var myDate = new Date()
307
+        var month = myDate.getMonth() + 1
308
+        var day = myDate.getDate()
309
+        var age = myDate.getFullYear() - UUserCard.substring(6, 10) - 1
310
+        if (UUserCard.substring(10, 12) < month || UUserCard.substring(10, 12) == month && UUserCard.substring(12, 14) <= day) {
311
+          age++
312
+        }
313
+        return age
314
+      }
315
+    },
316
+   getTime(val) {
317
+     if(val < 0){
318
+        return ""
319
+     }
320
+     if(val == ""){
321
+        return ""
322
+     }else {
323
+        return uParseTime(val, '{y}-{m}-{d}')
324
+     }
325
+    },
326
+    getPatientList(id){
327
+      var name = ""
328
+      for(let i=0;i<this.doctorList.length;i++){
329
+         if(id == this.doctorList[i].admin_user_id){
330
+            name = this.doctorList[i].user_name
331
+         }
332
+      }
333
+      return name
334
+    }
335
+    
336
+  },
337
+ 
338
+  created() {
339
+    var xtuser = this.$store.getters.xt_user
340
+    this.orgname = xtuser.org.org_name
341
+    var id = this.$route.query.id
342
+    this.getTemplateSummaryPrintDetail(id)
343
+    
344
+  }
345
+}
346
+</script>
347
+
348
+<style>
349
+.dialysis-print-order {
350
+  width: 960px;
351
+  margin: 0 auto;
352
+}
353
+
354
+.dialysis-print-order .order-yy-name {
355
+  margin: auto;
356
+  text-align: center;
357
+  font-size: 20px;
358
+  letter-spacing: 5px;
359
+}
360
+
361
+.dialysis-print-order .order-title {
362
+  margin: auto;
363
+  font-weight: 600;
364
+  text-align: center;
365
+  font-size: 22px;
366
+  padding: 10px 20px 20px 20px;
367
+}
368
+
369
+.dialysis-print-order .table-box {
370
+  width: 100%;
371
+  line-height: 23px;
372
+  font-size: 14px;
373
+}
374
+
375
+.dialysis-print-order .print-table {
376
+  width: 100%;
377
+  text-align: center;
378
+  border-collapse: collapse;
379
+  line-height: 40px;
380
+  font-size: 14px;
381
+}
382
+
383
+.dialysis-print-order .print-table-no {
384
+  width: 100%;
385
+  text-align: center;
386
+  border-collapse: collapse;
387
+  font-size: 14px;
388
+}
389
+
390
+.dialysis-print-order .under-line {
391
+  border-bottom: 1px solid #999;
392
+  width: 95%;
393
+  text-align: center;
394
+  margin-left: 2px;
395
+}
396
+
397
+.dialysis-print-order .title-box {
398
+  text-align: center;
399
+  font-size: 16px;
400
+}
401
+
402
+.dialysis-print-order .radio-lebel-box {
403
+  font-weight: 400;
404
+  cursor: pointer;
405
+}
406
+
407
+.dialysis-print-order .radio-no {
408
+  opacity: 0;
409
+  outline: none;
410
+  position: absolute;
411
+  margin: 0;
412
+  width: 0;
413
+  height: 0;
414
+  z-index: -1;
415
+}
416
+
417
+.dialysis-print-order .radio-inner {
418
+  white-space: nowrap;
419
+  cursor: pointer;
420
+  outline: none;
421
+  display: inline-block;
422
+  line-height: 1;
423
+  position: relative;
424
+  vertical-align: middle;
425
+}
426
+
427
+.dialysis-print-order .radio-fang {
428
+  display: inline-block;
429
+  position: relative;
430
+  border: 1px solid #000;
431
+  box-sizing: border-box;
432
+  width: 14px;
433
+  height: 14px;
434
+  background-color: #fff;
435
+  z-index: 1;
436
+  transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46),
437
+    background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46);
438
+}
439
+
440
+.dialysis-print-order .is-checked-radio::after {
441
+  content: "√";
442
+  font-size: 15px;
443
+}
444
+
445
+.dialysis-print-order .print-table-no tr td {
446
+  padding: 8px 5px;
447
+  line-height: 25px;
448
+}
449
+
450
+.dialysis-print-order .print-table tr td {
451
+  padding: 1px 1px;
452
+  /*line-height: 25px;*/
453
+}
454
+
455
+.es-img {
456
+  height: 25px;
457
+}
458
+
459
+.advice-name {
460
+  text-align: left;
461
+}
462
+
463
+.advice-children {
464
+  display: flex;
465
+}
466
+
467
+.title-box-pro {
468
+  border: 0 #fff;
469
+  line-height: 25px;
470
+  height: 25px;
471
+  text-align: left;
472
+  padding-left: 10px !important;
473
+}
474
+.title-box-pro-tr {
475
+  border: 0 #fff;
476
+}
477
+.text-align-left {
478
+  text-align: left !important;
479
+  padding-left: 10px !important;
480
+  font-size: 14px !important;
481
+  line-height: 25px;
482
+}
483
+.print-table-tr-new td {
484
+  line-height: 20px !important;
485
+}
486
+.border-top-solid {
487
+  border: solid 1px #000;
488
+}
489
+.print-template-two tr {
490
+  line-height: 30px;
491
+}
492
+.parent {
493
+  text-align: left;
494
+  padding-left: 20px !important;
495
+}
496
+</style>