Ver código fonte

8月2,南昌顺友好

yq1 8 meses atrás
pai
commit
f23664e9a4

+ 65 - 13
src/xt_pages/outpatientCharges/statementPrint.vue Ver arquivo

@@ -22,8 +22,7 @@
22 22
           org_id == 10028 ||
23 23
           org_id == 10278 ||
24 24
           org_id == 10610 ||
25
-          org_id==10537 ||
26
-          org_id==0
25
+          org_id==10537 
27 26
         "
28 27
       >
29 28
         <printTwo :info="info" v-if="org_id == 9990"></printTwo>
@@ -66,18 +65,21 @@
66 65
       <!-- 广水原生堂 -->
67 66
       <printfourteen :info="info" v-if="(org_id == 10088 ) && this.paramsObj.balance_accounts_type == 1"></printfourteen>
68 67
       <!-- 盱眙恒硕 -->
69
-      <printfivetheen :info="info" v-if="org_id == 10633 || org_id == 0"></printfivetheen>
68
+      <printfivetheen :info="info" v-if="org_id == 10633"></printfivetheen>
69
+      <!-- 顺有好 -->
70
+      <printSixtheen :info="info" v-if="org_id == 10697 || org_id == 0"></printSixtheen>
71
+
70 72
       <printOne :info="info" v-if=" org_id != 9990 &&
71 73
             org_id != 10138 &&
72 74
             org_id != 9504 &&
73 75
             org_id != 10028 &&
74
-            org_id != 0 &&   org_id != 10610 && org_id !=10537 &&
76
+            org_id != 0 &&   org_id != 10610 && org_id !=10537 && org_id !=10697 &&
75 77
             org_id != 10278 && org_id != 10387 && org_id != 10191 &&org_id != 10210 &&org_id != 10485 &&org_id != 10480 &&org_id != 10510 &&org_id != 10088 &&org_id != 10633 &&org_id != 0  && this.paramsObj.balance_accounts_type == 1">
76 78
       </printOne>
77 79
       <privateChargePrint :info="info" v-if="org_id != 9990 &&
78 80
             org_id != 10138 &&
79 81
             org_id != 9504 &&
80
-            org_id != 10028 &&
82
+            org_id != 10028 && org_id !=10697 &&
81 83
             org_id != 10278 && org_id != 10610 && org_id !=10537 && org_id != 10387 && org_id != 10191 &&org_id != 10210 &&org_id != 10485  &&org_id != 10480 &&org_id != 10510 &&org_id != 10633 && org_id != 0 && this.paramsObj.balance_accounts_type == 2">
82 84
       </privateChargePrint>
83 85
 
@@ -106,6 +108,7 @@ import printtwelve from './statementTemplate/printtwelve'
106 108
 import printthirteen from './statementTemplate/printthirteen'
107 109
 import printfourteen from './statementTemplate/printfourteen'
108 110
 import printfivetheen from './statementTemplate/printfivetheen'
111
+import printSixtheen from './statementTemplate/printSixtheen'
109 112
 export default {
110 113
   name: 'dialysisPrintOrder',
111 114
   components: {
@@ -125,6 +128,7 @@ export default {
125 128
     printthirteen,
126 129
     printfourteen,
127 130
     printfivetheen,
131
+    printSixtheen
128 132
   },
129 133
   props: {
130 134
     paramsObj: Object
@@ -729,6 +733,7 @@ export default {
729 733
     searchAction() {
730 734
     },
731 735
     getInfo(order_id, obj) {
736
+      console.log('obj.balance_accounts_type',obj.balance_accounts_type);
732 737
       if (obj.balance_accounts_type == 2) {
733 738
         let params = {
734 739
           his_patient_id: obj.his_patient_id,
@@ -738,7 +743,7 @@ export default {
738 743
         }
739 744
         if (
740 745
           this.org_id == 10138 ||
741
-          this.org_id == 10278 ||  this.org_id == 10610 || this.org_id == 0
746
+          this.org_id == 10278 ||  this.org_id == 10610
742 747
         ) {
743 748
           getPrivateExpenses(params).then((response) => {
744 749
             if (response.data.state == 0) {
@@ -811,9 +816,9 @@ export default {
811 816
               this.balanceAccounts.new_detail_list.push(obj3)
812 817
               // this.balanceAccounts.new_detail_list.push(obj4)
813 818
 
814
-              console.log(111, this.balanceAccounts)
819
+              // console.log(111, this.balanceAccounts)
815 820
               this.num = num
816
-              console.log('this.num', this.num)
821
+              // console.log('this.num', this.num)
817 822
             }
818 823
           })
819 824
         } else if (this.org_id == 10028  || this.org_id == 9504) {
@@ -951,7 +956,7 @@ export default {
951 956
               that.info['his'] = response.data.data.his
952 957
               that.info['dia_config'] = response.data.data.dia_config
953 958
 
954
-
959
+              let listarr = []
955 960
               for (let i = 0; i < response.data.data.order_infos.length; i++) {
956 961
                 if (response.data.data.order_infos[i].advice_id > 0 && response.data.data.order_infos[i].project_id == 0) {
957 962
                   response.data.data.order_infos[i].med_chrgitm_type = '09'
@@ -969,10 +974,56 @@ export default {
969 974
                     response.data.data.order_infos[i].med_chrgitm_type = '08'
970 975
                   }
971 976
                 }
977
+                let order = response.data.data.order_infos[i]
978
+                let obj = {
979
+                  name: '',
980
+                  spec: '',
981
+                  cnt: '',
982
+                  det_item_fee_sumamt: ''
983
+                }
984
+
985
+                if (order.advice_id > 0 && order.project_id == 0) {
986
+                  obj.name = order.advice.advice_name
987
+                  let spec = order.advice.drug.dose + order.advice.drug.dose_unit + '*' + order.advice.drug.min_number + order.advice.drug.min_unit + '/' + order.advice.drug.max_unit
988
+                  obj.spec = spec
989
+                  obj.cnt = order.cnt
990
+                  obj.det_item_fee_sumamt = order.det_item_fee_sumamt
991
+                  listarr.push(obj)
992
+
993
+                } else if (order.advice_id == 0 && order.project_id > 0) {
994
+                  if (order.project.type == 2) {
995
+                    obj.name = order.project.project.project_name
996
+                    obj.spec = ''
997
+                    obj.cnt = order.cnt
998
+                    obj.det_item_fee_sumamt = order.det_item_fee_sumamt
999
+
1000
+                  } else {
1001
+                    obj.name = order.project.good_info.good_name
1002
+                    obj.spec = order.project.good_info.specification_name
1003
+                    obj.cnt = order.cnt
1004
+                    obj.det_item_fee_sumamt = order.det_item_fee_sumamt
1005
+                  }
1006
+                  listarr.push(obj)
1007
+                }
972 1008
               }
973
-              console.log(response.data.data.order_infos)
974
-              console.log(that.info)
1009
+              let len = Math.ceil(listarr.length / 2)
1010
+              let L_list = []
1011
+              let R_list = []
1012
+              for(let i in listarr){
1013
+                if(i<len){
1014
+                  L_list.push(listarr[i])
1015
+                }else{
1016
+                  R_list.push(listarr[i])
1017
+                }
1018
+              }
1019
+              console.log('L_list111',L_list)
1020
+              console.log('R_list222',R_list)
975 1021
 
1022
+              that.info['L_list'] = L_list
1023
+              that.info['R_list'] = R_list
1024
+
1025
+              console.log(response.data.data.order_infos)
1026
+              console.log('that.info',that.info)
976 1027
               var list = []
977 1028
               //获取所有项目类型进行去重
978 1029
               let med_chrgitm_types = []
@@ -1016,6 +1067,7 @@ export default {
1016 1067
                 list.push(obj9)
1017 1068
               }
1018 1069
               that.info['new_list'] = list
1070
+              // that.info['listarr'] = listarr
1019 1071
               // list.sort((a,b) => a.sort < b.sort ? 1 : a.sort > b.sort ? -1 : 0)
1020 1072
 
1021 1073
               let obj = {
@@ -1086,8 +1138,8 @@ export default {
1086 1138
           })
1087 1139
         }
1088 1140
       } else {
1089
-        console.log(this.org_id)
1090
-        if (this.org_id == 1111111111) {
1141
+        console.log('1111111',this.org_id)
1142
+        if (this.org_id == 0) {
1091 1143
           let params = {
1092 1144
             order_id: obj.order_id,
1093 1145
             admin_user_id: this.$store.getters.xt_user.user.id

+ 313 - 0
src/xt_pages/outpatientCharges/statementTemplate/printSixtheen.vue Ver arquivo

@@ -0,0 +1,313 @@
1
+<template>
2
+  <div id="statement-print" class="statement-print">
3
+     <div class="statementTitle">南昌顺友好血液透析中心</div>
4
+     <div style="text-align: center;font-size: 17px;">门 &nbsp;诊 &nbsp;结 &nbsp;帐 &nbsp;票 &nbsp;据</div>
5
+     <div style="border: 1px solid black;width: 100%;">
6
+        <div style="border-bottom:1px solid black;display: flex;padding: 5px;">
7
+            <div style="flex: 1;">姓名:{{info.patient.name}}</div>
8
+            <div style="flex: 1;">门诊日期:{{getTime(info.date)}}</div>
9
+            <div style="flex: 1;">医疗类型:{{getmed_type(info.med_type) }}</div>
10
+            <div style="flex: 1;">健康ID:{{ info.patient.dialysis_no }}</div>
11
+            <div style="flex: 1;">门诊单据号:{{info.id}}</div>
12
+        </div>
13
+        <div style="border-bottom:1px solid black;display: flex;padding: 5px;">
14
+            <div style="flex: 1;">医保编码:</div>
15
+            <div style="flex: 1;">刷卡前余额:</div>
16
+            <div style="flex: 1;">刷卡后余额:</div>
17
+        </div>
18
+        <div style="border-bottom:1px solid black;display: flex;text-align: center;">
19
+          <div style="width: 30%;border-right:1px solid black;padding: 5px 0;">项目/规格</div>
20
+          <div style="width: 10%;border-right:1px solid black;padding: 5px 0;">数量</div>
21
+          <div style="width: 10%;border-right:1px solid black;padding: 5px 0;">金额</div>
22
+          <div style="width: 30%;border-right:1px solid black;padding: 5px 0;">项目/规格</div>
23
+          <div style="width: 10%;border-right:1px solid black;padding: 5px 0;">数量</div>
24
+          <div style="width: 10%;padding: 5px 0;">金额</div>
25
+        </div>
26
+        <div style="border-bottom:1px solid black;text-align: center;min-height: 100px;" >
27
+          <div style="display: flex;">
28
+            <div style="flex: 1;">
29
+              <div style="display: flex;width: 100%;line-height: 20px;" v-for="(item,index) in info.L_list" :key="index">
30
+                <div style="width: 60%;">{{ item.name }}</div>
31
+                <div style="width: 20%;">{{item.cnt}}</div>
32
+                <div style="width: 20%;">{{ item.det_item_fee_sumamt }}</div>
33
+              </div>
34
+            </div>
35
+            <div style="flex: 1;" >
36
+              <div style="display: flex;width: 100%;line-height: 20px;" v-for="(item,index) in info.R_list" :key="index">
37
+                <div style="width: 60%;">{{ item.name }}</div>
38
+                <div style="width: 20%;">{{item.cnt}}</div>
39
+                <div style="width: 20%;">{{ item.det_item_fee_sumamt }}</div>
40
+              </div>
41
+            </div>
42
+          </div>
43
+        </div>
44
+        <div style="">
45
+          <div style="display: flex;padding: 5px;line-height: 30px;">
46
+            <div style="flex: 1;">基本统筹:{{info.hifp_pay}}</div>
47
+            <div style="flex: 1;">公务员补助:</div>
48
+            <div style="flex: 1;">大病基金支付:{{info.hifmi_pay}}</div>
49
+            <div style="flex: 1;">个人账户支付:{{info.acct_pay}}</div>
50
+            <div style="flex: 1;">医保个人现金:{{info.fund_pay_sumamt}}</div>
51
+          </div>
52
+          <div style="display: flex;padding: 5px;line-height: 30px;">
53
+            <div style="flex: 2;">费用总额(大写):{{getmoney(info.medfee_sumamt)}}</div>
54
+            <div style="flex: 1;">小写:{{info.medfee_sumamt}}</div>
55
+            <div style="flex: 1;">现金支付:{{info.psn_cash_pay}}</div>
56
+          </div>
57
+        </div>
58
+     </div>
59
+     <div style="display: flex;margin: 5px 0;">
60
+        <div style="flex: 1;">收款单位:南昌顺友好血液透析中心</div>
61
+        <div style="flex: 1;">开单科室:血透室</div>
62
+        <div style="flex: 1;">收款人:{{info.charge_admin.user_name}}</div>
63
+        <div style="flex: 1;">结账日期:{{info.setl_time}}</div>
64
+     </div>
65
+    <!--<div style="margin: 10px 0;">医疗机构名称:
66
+      {{info.fixmedins_name}}
67
+    </div>
68
+    <div style="display: flex;margin-bottom: 10px;">
69
+      <div style="flex: 1;">结算ID:
70
+        {{info.setl_id}}
71
+      </div>
72
+      <div style="flex: 1;">参保险种:
73
+        <span v-if="info.insutype == '310'">职工基本医疗保险</span>
74
+        <span v-if="info.insutype == '320'">公务员医疗补助</span>
75
+        <span v-if="info.insutype == '330'">大额医疗费用补助</span>
76
+        <span v-if="info.insutype == '340'">离休人员医疗保障</span>
77
+        <span v-if="info.insutype == '390'">城乡居民基本医疗保险</span>
78
+        <span v-if="info.insutype == '392'">城乡居民大病医疗保险</span>
79
+        <span v-if="info.insutype == '510'">生育保险</span>
80
+      </div>
81
+    </div>
82
+  
83
+    <table class="statementTable" border="1" style="text-align: left;">
84
+      <tr>
85
+        <td>患者姓名:{{info.patient.name}}</td>
86
+        <td>性别:{{ info.gend == '1' ? '男':'女' }}</td>
87
+        <td>年龄:{{info.patient.age}}</td>
88
+        <td>身份证号:{{info.certno}}</td>
89
+        <td>医保区划:</td>
90
+      </tr>
91
+      <tr>
92
+        <td colspan="3">个人编号:{{info.patient.id_card_no}}</td>
93
+        <td colspan="2">单位或地址:{{info.patient.home_address}}</td>
94
+      </tr>
95
+      <tr>
96
+        <td colspan="2">联系电话:{{info.patient.phone}}</td>
97
+        <td colspan="2">人员类别:
98
+          <span  v-if="info.psn_type == '11'">在职</span>
99
+          <span  v-else-if="info.psn_type == '1101'">职工在职</span>
100
+          <span  v-else-if="info.psn_type == '1102'">公务员在职</span>
101
+          <span  v-else-if="info.psn_type == '1103'">灵活就业人员在职</span>
102
+          <span  v-else-if="info.psn_type == '1160'">地方其他扩展人员</span>
103
+
104
+
105
+          <span  v-else-if="info.psn_type == '12'">退休人员</span>
106
+          <span  v-else-if="info.psn_type == '1201'">职工退休</span>
107
+          <span  v-else-if="info.psn_type == '1202'">公务员退休</span>
108
+          <span  v-else-if="info.psn_type == '1203'">灵活就业人员退休</span>
109
+          <span  v-else-if="info.psn_type == '1260'">地方其他扩展人员</span>
110
+
111
+
112
+          <span  v-else-if="info.psn_type == '13'">离休</span>
113
+          <span  v-else-if="info.psn_type == '1300'">离休人员</span>
114
+          <span  v-else-if="info.psn_type == '1360'">地方其他扩展人员</span>
115
+
116
+          <span  v-else-if="info.psn_type == '14'">居民(未成年)</span>
117
+          <span  v-else-if="info.psn_type == '1401'">新生儿</span>
118
+          <span  v-else-if="info.psn_type == '1402'">学龄前儿童</span>
119
+          <span  v-else-if="info.psn_type == '1403'">中小学生</span>
120
+          <span  v-else-if="info.psn_type == '1404'">大学生</span>
121
+          <span  v-else-if="info.psn_type == '1405'">未成年(未入学)</span>
122
+
123
+
124
+          <span  v-else-if="info.psn_type == '15'">居民(成年)</span>
125
+          <span  v-else-if="info.psn_type == '1501'">普通居民(成年)</span>
126
+          <span  v-else-if="info.psn_type == '1560'">地方其他扩展身份</span>
127
+
128
+          <span  v-else-if="info.psn_type == '16'">居民(老年)</span>
129
+          <span v-else></span>
130
+
131
+        </td>
132
+        <td colspan="1">门诊号:{{info.number}}</td>
133
+      </tr>
134
+      <tr>
135
+        <td colspan="2">医疗类别:门诊特殊病</td>
136
+        <td >就诊ID:</td>
137
+        <td >离院方式:</td>
138
+        <td>科室:医生组</td>
139
+      </tr>
140
+      <tr>
141
+        <td colspan="2">病种名称:</td>
142
+        <td colspan="2">就诊时间:{{getTime(info.new_order.settle_accounts_date)}}</td>
143
+        <td colspan="1">就诊天数:0</td>
144
+      </tr>
145
+      <tr>
146
+        <td colspan="5">诊断:{{info.diagnosis}}</td>
147
+      </tr>
148
+      <tr>
149
+        <td colspan="2">总费用:{{info.medfee_sumamt}}</td>
150
+        <td>全自费:</td>
151
+        <td>先行自付:{{info.preselfpay_amt}}</td>
152
+        <td>政策范围金额:
153
+          <span v-for="item in info.funds">
154
+            {{item.insp_pay}}
155
+          </span>
156
+        </td>
157
+      </tr>
158
+      <tr>
159
+        <td colspan="4">报销合计:</td>
160
+        <td>起付线:{{info.act_pay_dedc}}</td>
161
+      </tr>
162
+      <tr>
163
+        <td colspan="2">基本医疗:</td>
164
+        <td>大病保险:{{info.new_order.hifmi_pay}}</td>
165
+        <td>大病补充:</td>
166
+        <td>医疗救助支付额:{{info.order.maf_pay}}</td>
167
+      </tr>
168
+      <tr>
169
+        <td colspan="3">健康扶贫:</td>
170
+        <td>医院承担金额:</td>
171
+        <td>其他基金:{{info.oth_pay}}</td>
172
+      </tr>
173
+      <tr>
174
+        <td colspan="3">个人支付总额:{{ info.order.psn_cash_pay}}</td>
175
+        <td>帐户支付:</td>
176
+        <td>个人现金:{{info.new_order.psn_cash_pay}}</td>
177
+      </tr>
178
+      <tr>
179
+        <td width="10%">报销说明</td>
180
+        <td colspan="4"></td>
181
+      </tr>
182
+    </table>
183
+    <div style="display: flex;margin-top: 10px;">
184
+      <div style="flex: 1;">打印人:{{ info.printor_admin.user_name }} </div>
185
+      <div style="flex: 1;">打印日期:{{getNowTime()}}</div>
186
+    </div> -->
187
+
188
+  </div>
189
+</template>
190
+<script>
191
+ import { uParseTime,numToCny } from '@/utils/tools'
192
+  export default {
193
+    props: {
194
+      info: {
195
+        type: Object,
196
+        default: function() {
197
+          return {}
198
+        }
199
+      }, p_admin: {
200
+        type: Object,
201
+        default: function() {
202
+          return {}
203
+        }
204
+      }, charge_admin: {
205
+        type: Object,
206
+        default: function() {
207
+          return {}
208
+        }
209
+      }
210
+    },
211
+    data(){
212
+      return{
213
+        med_typearr:[{id:11,name:'普通门诊'},{id:12,name:'门诊挂号'},{id:13,name:'急诊'},{id:14,name:'门诊特殊病'},
214
+                    {id:15,name:'门诊统筹'},{id:16,name:'门诊慢性病'},{id:17,name:'普通住院'}],
215
+      }
216
+      
217
+    },
218
+    methods:{
219
+      getBirth(idNo){
220
+        var year = idNo.substring(6, 10);
221
+        var month = idNo.substring(10, 12);
222
+        var day = idNo.substring(12, 14);
223
+        return  year + '-' + month + '-' + day;
224
+      },
225
+      getDay(dateString1,dateString2){
226
+          var  startDate = Date.parse(dateString1);
227
+          var  endDate = Date.parse(dateString2);
228
+          if (startDate>endDate){
229
+            return 0;
230
+          }
231
+          if (startDate==endDate){
232
+            return 1;
233
+          }
234
+          var days=(endDate - startDate)/(1*24*60*60*1000);
235
+          return  days;
236
+
237
+        },
238
+      getNowTime: function () {
239
+        let dateTime;
240
+        let yy = new Date().getFullYear();
241
+        let mm = new Date().getMonth() + 1;
242
+        let dd = new Date().getDate();
243
+        let hh = new Date().getHours();
244
+        let mf = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes()
245
+          :
246
+          new Date().getMinutes();
247
+        let ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds()
248
+          :
249
+          new Date().getSeconds();
250
+        dateTime = yy + '-' + mm + '-' + dd + ' ' + hh + ':' + mf + ':' + ss;
251
+        return dateTime
252
+      },
253
+      getTime(val) {
254
+        if (val < 0) {
255
+          return ""
256
+        }
257
+        if (val == "") {
258
+          return ""
259
+        } else {
260
+          return uParseTime(val, '{y}-{m}-{d}')
261
+        }
262
+      },
263
+      getmoney(value){
264
+        // if(vlaue == ''){
265
+
266
+        // }else{
267
+          return numToCny(value)
268
+        // }
269
+        
270
+      },
271
+      getmed_type(ids){
272
+        const options = this.med_typearr
273
+        for(let i in options){
274
+          if(options[i].id == ids){
275
+            return options[i].name
276
+          }
277
+        }
278
+      }
279
+    },
280
+    created(){
281
+      console.log('bbbbbbb',this.info);
282
+    }
283
+  }
284
+
285
+
286
+</script>
287
+
288
+
289
+<style lang="scss" scoped>
290
+  .statement-print {
291
+    -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 60px rgba(0, 0, 0, 0.06) inset;
292
+    -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
293
+    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
294
+    margin-bottom: 20px;
295
+    padding: 20px 10px;
296
+  }
297
+
298
+  .statementTitle {
299
+    font-size: 28px;
300
+    text-align: center;
301
+    font-weight: bold;
302
+    margin-bottom: 10px;
303
+  }
304
+
305
+  .statementTable {
306
+    width: 100%;
307
+    // text-align: center;
308
+    border-collapse: collapse;
309
+    line-height: 40px;
310
+    font-size: 14px;
311
+    border-color: #000;
312
+  }
313
+</style>