Browse Source

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

csx 3 years ago
parent
commit
59a5d8bf4d
1 changed files with 300 additions and 0 deletions
  1. 300 0
      src/xt_pages/outpatientCharges/listTemplate/printThree.vue

+ 300 - 0
src/xt_pages/outpatientCharges/listTemplate/printThree.vue View File

1
+<template>
2
+    <div id="statement-print" class="statement-print">
3
+        <div class="statementTitle" style="margin-top:20px;" >医保费用明细清单</div>
4
+        <!--<div class="statementTitle" style="margin-top:20px;" v-if="info.insutype == '390'">医保费用明细清单</div>-->
5
+
6
+        <div style="display:flex">
7
+            <div style="width:70%">医疗机构名称:{{info.org_name}}</div>
8
+            <!--<div style="width:30%" v-if="info.hosp_lv == '1'">医院等级:三级特等</div>-->
9
+            <!--<div style="width:30%" v-if="info.hosp_lv == '2'">医院等级:三级甲等</div>-->
10
+            <!--<div style="width:30%" v-if="info.hosp_lv == '3'">医院等级:三级乙等</div>-->
11
+            <!--<div style="width:30%" v-if="info.hosp_lv == '4'">医院等级:三级丙等</div>-->
12
+            <!--<div style="width:30%" v-if="info.hosp_lv == '5'">医院等级:二级甲等</div>-->
13
+            <!--<div style="width:30%" v-if="info.hosp_lv == '6'">医院等级:二级乙等</div>-->
14
+            <!--<div style="width:30%" v-if="info.hosp_lv == '7'">医院等级:二级丙等</div>-->
15
+            <!--<div style="width:30%" v-if="info.hosp_lv == '8'">医院等级:一级甲等</div>-->
16
+            <!--<div style="width:30%" v-if="info.hosp_lv == '9'">医院等级:一级乙等</div>-->
17
+            <!--<div style="width:30%" v-if="info.hosp_lv == '10'">医院等级:一级丙等</div>-->
18
+            <!--<div style="width:30%" v-if="info.hosp_lv == '11'">医院等级:无等级</div>-->
19
+
20
+        </div>
21
+        <div style="display:flex;justify-content: space-between;border-bottom:1px solid #000;padding-bottom:10px;">
22
+            <div style="flex:1;">单据编码:{{info.number}}</div>
23
+            <div style="width:33%">就诊时间:{{getTime(info.date)}}</div>
24
+            <div>金额单位:元</div>
25
+        </div>
26
+        <div style="display:flex">
27
+            <div style="width:50%">姓名:{{info.name}}</div>
28
+            <!--<div style="width:50%">个人电脑号:{{info.psn_no}}</div>-->
29
+        </div>
30
+        <div style="display:flex">
31
+            <div style="width:50%">社保卡号</div>
32
+            <div style="width:50%">诊断:慢性肾脏病5期</div>
33
+        </div>
34
+        <!--<div style="display:flex">-->
35
+            <!--<div style="width:50%" v-if="info.psn_type == '11'">人员类别:在职</div>-->
36
+            <!--<div style="width:50%" v-if="info.psn_type == '1101'">人员类别:职工在职</div>-->
37
+            <!--<div style="width:50%" v-if="info.psn_type == '1102'">人员类别:公务员在职</div>-->
38
+            <!--<div style="width:50%" v-if="info.psn_type == '1103'">人员类别:灵活就业人员在职</div>-->
39
+            <!--<div style="width:50%" v-if="info.psn_type == '1160'">人员类别:地方其他扩展人员</div>-->
40
+            <!--<div style="width:50%" v-if="info.psn_type == '12'">人员类别:退休人员</div>-->
41
+            <!--<div style="width:50%" v-if="info.psn_type == '1201'">人员类别:职工退休</div>-->
42
+            <!--<div style="width:50%" v-if="info.psn_type == '1202'">人员类别:公务员退休</div>-->
43
+            <!--<div style="width:50%" v-if="info.psn_type == '1203'">人员类别:灵活就业人员退休</div>-->
44
+            <!--<div style="width:50%" v-if="info.psn_type == '1260'">人员类别:地方其他扩展人员</div>-->
45
+            <!--<div style="width:50%" v-if="info.psn_type == '13'">人员类别:离休</div>-->
46
+            <!--<div style="width:50%" v-if="info.psn_type == '1300'">人员类别:离休人员</div>-->
47
+            <!--<div style="width:50%" v-if="info.psn_type == '1360'">人员类别:地方其他扩展人员</div>-->
48
+            <!--<div style="width:50%" v-if="info.psn_type == '14'">人员类别:居民(未成年)</div>-->
49
+            <!--<div style="width:50%" v-if="info.psn_type == '1401'">人员类别:新生儿</div>-->
50
+            <!--<div style="width:50%" v-if="info.psn_type == '1402'">人员类别:学龄前儿童</div>-->
51
+            <!--<div style="width:50%" v-if="info.psn_type == '1403'">人员类别:中小学生</div>-->
52
+            <!--<div style="width:50%" v-if="info.psn_type == '1404'">人员类别:大学生</div>-->
53
+            <!--<div style="width:50%" v-if="info.psn_type == '1405'">人员类别:未成年(未入学)</div>-->
54
+            <!--<div style="width:50%" v-if="info.psn_type == '15'">人员类别:居民(成年)</div>-->
55
+            <!--<div style="width:50%" v-if="info.psn_type == '1501'">人员类别:普通居民(成年)</div>-->
56
+            <!--<div style="width:50%" v-if="info.psn_type == '1560'">人员类别:地方其他扩展身份</div>-->
57
+            <!--<div style="width:50%" v-if="info.psn_type == '16'">人员类别:居民(老年)</div>-->
58
+
59
+
60
+            <!--<div style="width:50%">待遇类别:</div>-->
61
+        <!--</div>-->
62
+        <div style="display:flex;padding:10px 0;border-top:1px solid #000;border-bottom:1px solid #000;">
63
+            <div style="width:20%;text-align:center;">医保编码</div>
64
+            <div style="width:20%;text-align:center;">项目名称</div>
65
+            <div style="width:10%;text-align:center;">单价</div>
66
+            <div style="width:10%;text-align:center;">数量</div>
67
+            <div style="width:10%;text-align:center;">金额</div>
68
+            <div style="width:10%;text-align:center;">先行自付金额</div>
69
+            <div style="width:10%;text-align:center;">自费</div>
70
+            <div style="width:10%;text-align:center;">自费比例</div>
71
+        </div>
72
+        <div v-for="(newItem,index) in Object.keys(obj)" :key="index">
73
+            <div v-if="Object.values(obj)[index].length > 0"  style="border-bottom:1px solid #000;padding:10px 0;">
74
+                <span v-if="Object.keys(obj)[index] == 'med_chrgitm_type01'">床位费<span>小记:{{ price01 }}</span></span>
75
+                <span v-if="Object.keys(obj)[index] == 'med_chrgitm_type03'">检查费<span>小记:{{ price03 }}</span></span>
76
+                <span v-if="Object.keys(obj)[index] == 'med_chrgitm_type04'">化验费<span>小记:{{ price04 }}</span></span>
77
+                <span v-if="Object.keys(obj)[index] == 'med_chrgitm_type05'">治疗费<span>小记:{{ price05 }}</span></span>
78
+                <span v-if="Object.keys(obj)[index] == 'med_chrgitm_type06'">手术费<span>小记:{{ price06 }}</span></span>
79
+                <span v-if="Object.keys(obj)[index] == 'med_chrgitm_type08'">材料费<span>小记:{{ price08 }}</span></span>
80
+                <span v-if="Object.keys(obj)[index] == 'med_chrgitm_type09'">西药费<span>小记:{{ price09 }}</span></span>
81
+                <span v-if="Object.keys(obj)[index] == 'med_chrgitm_type11'">中成费<span>小记:{{ price11 }}</span></span>
82
+                <span v-if="Object.keys(obj)[index] == 'med_chrgitm_type14'">其他费<span>小记:{{ price14 }}</span></span>
83
+            </div>
84
+            <div>
85
+                <div v-if="Object.values(obj)[index].length > 0" v-for="(item,itemIndex) in Object.values(obj)[index]" :key="itemIndex" style="border-bottom:1px solid #000;padding:10px 0;display:flex;" >
86
+                    <div style="width:20%;text-align:center;" v-if="item.advice_id > 0">{{ item.advice.drug.medical_insurance_number }}</div>
87
+                    <div style="width:20%;text-align:center;" v-if="item.project_id > 0">{{item.project.type == 2?item.project.project.medical_code: item.project.good_info.medical_insurance_number}}</div>
88
+                    <div style="width:20%;text-align:center;" v-if="item.advice_id > 0">{{item.advice.drug.drug_name}}</div>
89
+                    <div style="width:20%;text-align:center;" v-if="item.project_id > 0">{{item.project.type == 2?item.project.project.project_name:item.project.good_info.good_name}}</div>
90
+
91
+                    <div style="width:10%;text-align:center;">{{item.pric}}</div>
92
+                    <div style="width:10%;text-align:center;">{{item.cnt}}</div>
93
+                    <div style="width:10%;text-align:center;">{{item.det_item_fee_sumamt}}</div>
94
+                    <div style="width:10%;text-align:center;">{{item.preselfpay_amt}}</div>
95
+                    <div style="width:10%;text-align:center;">{{item.fulamt_ownpay_amt}}</div>
96
+                    <div style="width:10%;text-align:center;">{{item.selfpay_prop}}</div>
97
+                </div>
98
+            </div>
99
+        </div>
100
+
101
+        <div style="display:flex;border-bottom:1px solid #000;padding:20px 0 10px;">
102
+            <div style="width:70%;">合计:</div>
103
+            <div style="width:10%;text-align:center;">{{info.medfee_sumamt}}</div>
104
+            <div style="width:20%;"></div>
105
+        </div>
106
+        <div>医保基金支付金额:{{''}}</div>
107
+        <div>个人现金支付金额:{{info.medfee_sumamt}}</div>
108
+        <div>其中</div>
109
+        <div style="display:flex;border-bottom:1px solid #000;padding-bottom:10px;">
110
+            <div>个人自付:</div>
111
+            <div>其中:1.乙类自付 {{''}}</div>
112
+            <div style="margin-left:20px;">2.自费 {{info.medfee_sumamt}}</div>
113
+        </div>
114
+        <div style="display:flex;padding-top:10px;">
115
+            <div style="width:33%">参保人签名:</div>
116
+            <div style="width:33%">审核人:</div>
117
+            <div style="width:33%">医院盖章:</div>
118
+        </div>
119
+
120
+    </div>
121
+    <!-- <div>
122
+        123
123
+    <div v-for='(item,index) in Object.values(obj)' :key="index">
124
+        <div>{{Object.keys(obj)[index]}}</div>
125
+        <div v-for="it in Object.values(obj)[index]">{{ it.name }}</div>
126
+    </div>
127
+    </div> -->
128
+</template>
129
+<script>
130
+  import {uParseTime} from '@/utils/tools'
131
+  export default {
132
+    props: {
133
+      info: {
134
+        type: Object,
135
+        default: function () {
136
+          return {}
137
+        }
138
+      },
139
+      order_infos: {
140
+        type: Object,
141
+        default: function () {
142
+          return {}
143
+        }
144
+      },
145
+      p_admin: {
146
+        type: Object,
147
+        default: function () {
148
+          return {}
149
+        }
150
+      }, charge_admin: {
151
+        type: Object,
152
+        default: function () {
153
+          return {}
154
+        }
155
+      }
156
+    },
157
+    data(){
158
+      return{
159
+        obj:{},
160
+        price01: 0,
161
+        price03: 0,
162
+        price04: 0,
163
+        price05: 0,
164
+        price06: 0,
165
+        price08: 0,
166
+        price09: 0,
167
+        price11: 0,
168
+        price14: 0,
169
+      }
170
+    },
171
+    created(){
172
+      // let obj = {
173
+      //     med_chrgitm_type01:[{name:1,age:2},{name:'张三',age:41}],
174
+      //     med_chrgitm_type03:[{name:3,age:4}],
175
+      //     med_chrgitm_type04:[{name:5,age:6}],
176
+      // }
177
+      // this.obj = obj
178
+      // console.log(1111,Object.values(obj))
179
+      // obj.map(item => {
180
+      //     console.log(111,item)
181
+
182
+
183
+      // })
184
+    },
185
+    methods: {
186
+      getTime(val) {
187
+        if (val < 0) {
188
+          return ""
189
+        }
190
+        if (val == "") {
191
+          return ""
192
+        } else {
193
+          return uParseTime(val, '{y}-{m}-{d}')
194
+        }
195
+      },
196
+      getNowTime: function () {
197
+        let dateTime
198
+        let yy = new Date().getFullYear()
199
+        let mm = new Date().getMonth() + 1
200
+        let dd = new Date().getDate()
201
+        let hh = new Date().getHours()
202
+        let mf = new Date().getMinutes() < 10 ? '0' + new Date().getMinutes()
203
+          :
204
+          new Date().getMinutes()
205
+        let ss = new Date().getSeconds() < 10 ? '0' + new Date().getSeconds()
206
+          :
207
+          new Date().getSeconds()
208
+        dateTime = yy + '-' + mm + '-' + dd + ' ' + hh + ':' + mf + ':' + ss
209
+        return dateTime
210
+      },
211
+
212
+    },
213
+    watch:{
214
+      "order_infos.order_infos":{
215
+        handler(newVal){
216
+          let obj = {
217
+            'med_chrgitm_type01':[],
218
+            'med_chrgitm_type03':[],
219
+            'med_chrgitm_type04':[],
220
+            'med_chrgitm_type05':[],
221
+            'med_chrgitm_type06':[],
222
+            'med_chrgitm_type08':[],
223
+            'med_chrgitm_type09':[],
224
+            'med_chrgitm_type11':[],
225
+            'med_chrgitm_type14':[],
226
+          }
227
+
228
+          newVal.map(item => {
229
+
230
+            if(item.med_chrgitm_type == '01'){
231
+              obj.med_chrgitm_type01.push(item)
232
+              this.price01 += item.det_item_fee_sumamt
233
+            }else if(item.med_chrgitm_type == '03'){
234
+              obj.med_chrgitm_type03.push(item)
235
+              this.price03 += item.det_item_fee_sumamt
236
+            }else if(item.med_chrgitm_type == '04'){
237
+              obj.med_chrgitm_type04.push(item)
238
+              this.price04 += item.det_item_fee_sumamt
239
+            }else if(item.med_chrgitm_type == '05'){
240
+              obj.med_chrgitm_type05.push(item)
241
+              this.price05 += item.det_item_fee_sumamt
242
+            }else if(item.med_chrgitm_type == '06'){
243
+              obj.med_chrgitm_type06.push(item)
244
+              this.price06 += item.det_item_fee_sumamt
245
+            }else if(item.med_chrgitm_type == '08'){
246
+              obj.med_chrgitm_type08.push(item)
247
+              this.price08 += item.det_item_fee_sumamt
248
+            }else if(item.med_chrgitm_type == '09'){
249
+              obj.med_chrgitm_type09.push(item)
250
+              this.price09 += item.det_item_fee_sumamt
251
+            }else if(item.med_chrgitm_type == '11'){
252
+              obj.med_chrgitm_type11.push(item)
253
+              this.price11 += item.det_item_fee_sumamt
254
+            }else if(item.med_chrgitm_type == '14'){
255
+              obj.med_chrgitm_type14.push(item)
256
+              this.price14 += item.det_item_fee_sumamt
257
+            }
258
+
259
+          })
260
+          this.obj = obj
261
+          console.log('this.obj',this.obj)
262
+        },
263
+        deep:true
264
+      }
265
+    }
266
+  }
267
+
268
+
269
+
270
+</script>
271
+
272
+
273
+<style lang="scss" scoped>
274
+    #statement-print{
275
+        width: 800px;
276
+        margin: 0 auto;
277
+    }
278
+    .statement-print {
279
+        -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 60px rgba(0, 0, 0, 0.06) inset;
280
+        -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
281
+        box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
282
+        margin-bottom: 20px;
283
+        padding: 20px 10px;
284
+    }
285
+
286
+    .statementTitle {
287
+        font-size: 22px;
288
+        text-align: center;
289
+        margin-bottom: 10px;
290
+    }
291
+
292
+    .statementTable {
293
+        width: 100%;
294
+        text-align: center;
295
+        border-collapse: collapse;
296
+        line-height: 40px;
297
+        font-size: 14px;
298
+        border-color: #000;
299
+    }
300
+</style>