Browse Source

8月14,通用费用清单

yq1 7 months ago
parent
commit
488c7206be

+ 12 - 6
src/xt_pages/outpatientCharges/listPrint.vue View File

@@ -14,12 +14,15 @@
14 14
     </template>
15 15
 
16 16
     <div class='dialysisPage' style="padding-top:40px;">
17
-      <printOne v-if=" org_id != 10106&&org_id != 10215&&org_id != 10265 && org_id!=9675 && org_id!=10485 &&org_id !=0 " :list="list" :patient="patient" :order="order" :admin="admin"></printOne>
17
+      <!-- <printOne v-if=" org_id != 10106&&org_id != 10215&&org_id != 10265 && org_id!=9675 && org_id!=10485" :list="list" :patient="patient" :order="order" :admin="admin"></printOne> -->
18
+      <listPrintforu v-if=" org_id != 10106&&org_id != 10215&&org_id != 10265 && org_id!=9675 && org_id!=10485"
19
+        :list="list" :patient="patient" :order="order" :admin="admin">
20
+      </listPrintforu>
18 21
       <printTwo v-if="org_id == 10106 && this.paramsObj.balance_accounts_type != 2" :info="info" :order_infos="order_infos" :p_admin="p_admin" :charge_admin="charge_admin"></printTwo>
19 22
       <print-three v-if="org_id == 10106 && this.paramsObj.balance_accounts_type == 2" :info="info" :order_infos="order_infos" :p_admin="p_admin" :charge_admin="charge_admin"></print-three>
20 23
 <!--      <list-print-two v-if="org_id == 10215 || org_id==9675" :list="list" :patient="patient" :order="order" :admin="admin"></list-print-two>-->
21 24
      <list-print-three v-if="org_id == 10215 || org_id==9675  || org_id ==10485" :list="list" :patient="patient" :order="order" :admin="admin"></list-print-three>
22
-      <print-two10265  v-if="org_id == 10265 || org_id ==0 " :list="list" :patient="patient" :order="order" :admin="admin" :hospital_record="hospital_record"></print-two10265>
25
+      <print-two10265  v-if="org_id == 10265" :list="list" :patient="patient" :order="order" :admin="admin" :hospital_record="hospital_record"></print-two10265>
23 26
     </div>
24 27
   </div>
25 28
 </template>
@@ -36,16 +39,17 @@
36 39
   import ListPrintTwo from './listTemplate/listPrintTwo'
37 40
   import PrintTwo10265 from "./listTemplate/printTwo10265";
38 41
   import ListPrintThree from "./listTemplate/listPrintThree";
39
-
42
+  import listPrintforu from "./listTemplate/listPrintforu"
40 43
   export default {
41 44
     name: 'listPrint',
42 45
     components: {
46
+      listPrintforu,
43 47
       ListPrintThree,
44 48
       PrintTwo10265,
45 49
       ListPrintTwo,
46 50
       PrintThree,
47 51
       printOne,
48
-      printTwo
52
+      printTwo,
49 53
     },
50 54
     props: {
51 55
       paramsObj: Object
@@ -157,6 +161,8 @@
157 161
               console.log(this.list,'sssss')
158 162
 
159 163
             }else{
164
+              console.log('response.data.data',response.data.data);
165
+
160 166
               this.order = response.data.data.order
161 167
               this.patient = response.data.data.patient
162 168
               this.admin = response.data.data.admin_info
@@ -639,7 +645,7 @@
639 645
           }
640 646
         })
641 647
 
642
-      }, 
648
+      },
643 649
       getGoodUnit(id) {
644 650
         var goodUnit = this.$store.getters.good_unit
645 651
         for (let i = 0; i < goodUnit.length; i++) {
@@ -744,7 +750,7 @@
744 750
       //           }
745 751
       //           advice.push(adv)
746 752
       //         }
747
-              
753
+
748 754
       //         if(order_info[i].project.good_info.good_name !=''){
749 755
       //           const god={
750 756
       //             // advice_name:order_info[i].advice.advice_name,

+ 222 - 0
src/xt_pages/outpatientCharges/listTemplate/listPrintforu.vue View File

@@ -0,0 +1,222 @@
1
+<template>
2
+  <div id="list-print" class="list-print">
3
+      <div v-for='(i,index) in pageArr.length' :key="index" style="page-break-after: always;">
4
+        <div class="listTitle">{{$store.getters.xt_user.org.org_name}}费用清单</div>
5
+        <div class="listInfo">
6
+            <div>患者姓名:{{patient.name}}</div>
7
+            <div>性别:{{patient.gender == 1 ? '男': '女'}}</div>
8
+            <div>身份证号:{{patient.id_card_no}}</div>
9
+            <div>年龄:{{patient.age}}  岁</div>
10
+            <div>开方日期:{{getTimes(order.ctime)}}</div>
11
+        </div>
12
+        <div class="listInfo">
13
+            <div>结算类型:{{order.is_medicine_insurance == 1 ? "医保" : "自费"}}</div>
14
+            <div>就诊流水号:{{ order.mdtrt_id }}</div>
15
+            <div>透析号:{{patient.dialysis_no}}</div>
16
+            <div>发票号:{{order.fa_piao_number}}</div>
17
+        </div>
18
+        <div class="listInfo">
19
+            <div>总金额:{{ order.medfee_sumamt }}</div>
20
+            <div>个人支付金额:{{ order.psn_part_amt }}</div>
21
+            <div>基金支付金额:{{ order.fund_pay_sumamt }}</div>
22
+            <div>收费日期:{{getTimes(order.settle_accounts_date)}}</div>
23
+        </div>
24
+        
25
+        <table class="listTable" style="text-align: center;">
26
+            <tr style="border-bottom: 1px solid black;">
27
+              <td style="width:30%">医保编码</td>
28
+              <td style="width:25%">项目名称</td>
29
+              <td style="width:15%">规格</td>
30
+              <td style="width:5%">数量</td>
31
+              <td style="width:5%">单位</td>
32
+              <td style="width:8%">单价(元)</td>
33
+              <td style="width:8%">金额(元)</td>
34
+            </tr>
35
+            <tr v-for="(item,index) in list" style="line-height: 30px;">
36
+                <!-- <template v-if="index == (list.length)-1">
37
+                    <tr style="border-bottom: 1px solid black;"></tr>
38
+                </template> -->
39
+                <td style="width:30%">{{item.code}}</td>
40
+                <td style="width:25%">{{item.name}}</td>
41
+                <td style="width:15%">{{item.spec}}</td>
42
+                <td style="width:5%">{{item.count}}</td>
43
+                <td style="width:5%">{{item.unit}}</td>
44
+                <td style="width:8%">{{(item.price*1).toFixed(2)}}</td>
45
+                <td style="width:8%">{{(item.price * item.count).toFixed(2)}}</td>
46
+            </tr>
47
+        </table>
48
+        <div style="border-top: 1px solid black;">
49
+          <div style="text-align: right;">
50
+            合计金额:{{order.medfee_sumamt}}
51
+          </div>
52
+        </div>
53
+      </div>
54
+  </div>
55
+</template>
56
+
57
+<script>
58
+import { uParseTime } from '@/utils/tools'
59
+
60
+export default {
61
+  props: {
62
+    list: {
63
+      type: Array,
64
+      default: function () {
65
+        return [];
66
+      }
67
+    },
68
+    patient: {
69
+      type: Object,
70
+      default: function () {
71
+        return {};
72
+      }
73
+    }, order: {
74
+      type: Object,
75
+      default: function () {
76
+        return {};
77
+      }
78
+    }, admin: {
79
+      type: Object,
80
+      default: function () {
81
+        return {};
82
+      }
83
+    },
84
+  },
85
+  data(){
86
+      return{
87
+          page:1,
88
+          pageArr:[],
89
+          org_id:'',
90
+          list:[]
91
+      }
92
+  },
93
+  // mounted(){
94
+  //     this.getPage()
95
+  // },
96
+  methods:{
97
+    getMedicineInsuranceKind(type){
98
+      switch (type) {
99
+        case "01":
100
+          return '甲类';
101
+        case "02":
102
+          return '乙类';
103
+        case "03":
104
+          return '自费';
105
+          break;
106
+      }
107
+
108
+    },
109
+    getNowTime: function () {
110
+      let dateTime
111
+      let yy = new Date().getFullYear()
112
+      let mm = new Date().getMonth() + 1
113
+      let dd = new Date().getDate()
114
+      let hh = new Date().getHours()
115
+      let mf = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes()
116
+        :
117
+        new Date().getMinutes()
118
+      let ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds()
119
+        :
120
+        new Date().getSeconds()
121
+      dateTime = yy + '-' + mm + '-' + dd
122
+      return dateTime
123
+    },
124
+    getTimes(time) {
125
+      return uParseTime(time, '{y}-{m}-{d}')
126
+    },
127
+    getPage(){
128
+
129
+      if(this.list.length <= 17){
130
+          this.page = 1
131
+          this.pageArr.push(this.list.length)
132
+      }else if(this.list.length > 17){
133
+          this.page = parseInt(this.list.length / 17)
134
+          let num = this.list.length % 17
135
+          for (var i=0;i<this.page;i++){
136
+              this.pageArr.push(17)
137
+          }
138
+          if(num != 0){
139
+              this.pageArr.push(num)
140
+          }
141
+      }
142
+     
143
+      console.log('this.pageArr',this.pageArr);
144
+    },
145
+    getlist(){
146
+      // if(this.list.length <= 17){
147
+          this.page = 1
148
+          this.pageArr.push(this.list.length)
149
+          console.log('this.pageArr',this.pageArr);
150
+      // }else if(this.list.length > 17){
151
+      //     this.page = parseInt(this.list.length / 17)
152
+      //     let num = this.list.length % 17
153
+      //     for (var i=0;i<this.page;i++){
154
+      //         this.pageArr.push(17)
155
+      //     }
156
+      //     if(num != 0){
157
+      //         this.pageArr.push(num)
158
+      //     }
159
+      // }
160
+    }
161
+  },
162
+  created(){
163
+   
164
+    this.org_id = this.$store.getters.xt_user.org_id
165
+  },
166
+  watch:{
167
+      list: {
168
+          handler(newVal) {
169
+            // this.list = newVal
170
+              this.getPage()
171
+              // this.getlist()
172
+          },
173
+          deep: true
174
+      }
175
+  }
176
+
177
+}
178
+
179
+
180
+</script>
181
+
182
+<style lang="scss" scoped>
183
+.list-print{
184
+  -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 60px rgba(0, 0, 0, 0.06) inset;
185
+  -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
186
+  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
187
+  margin-bottom: 20px;
188
+  padding:20px 10px;
189
+}
190
+.listTitle{
191
+  font-size: 24px;
192
+  text-align: center;
193
+  font-weight: bold;
194
+  margin-bottom: 10px;
195
+}
196
+.listInfo{
197
+  display: flex;
198
+  font-size: 16px;
199
+  justify-content: space-between;
200
+  margin: 10px 0;
201
+}
202
+.listTable{
203
+  width: 100%;
204
+  text-align: center;
205
+  border-collapse: collapse;
206
+  line-height: 20px;
207
+  font-size: 14px;
208
+  border-color: #000;
209
+  text-align: left;
210
+}
211
+.listTable tr td {
212
+  padding: 0 5px;
213
+}
214
+.tableBottom{
215
+  font-size: 12px;
216
+  display: flex;
217
+  margin-top: 20px;
218
+}
219
+.tableBottomOne{
220
+  margin-right: 20px;
221
+}
222
+</style>