ソースを参照

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

csx 3 年 前
コミット
4d6e190743

+ 12 - 0
src/api/his/his_tools.js ファイルの表示

@@ -0,0 +1,12 @@
1
+import request from "@/utils/request";
2
+
3
+
4
+export function GetAllPatients() {
5
+  return request({
6
+    url: "/api/his/patient",
7
+    method: "get",
8
+  });
9
+}
10
+
11
+
12
+

+ 4 - 3
src/xt_pages/hospitalStation/components/hospitalRegisterDialog.vue ファイルの表示

@@ -778,12 +778,13 @@ export default {
778 778
                 that.form.med_type = 14
779 779
                 that.form.sick_type = that.sick[0].id
780 780
                 that.form.diagnosis = that.diagnoses[0].id
781
+                if(that.$store.getters.xt_user.org_id == 10215) {
782
+                  that.form.sick_type = 421
783
+                  that.form.diagnosis = 92
784
+                }
781 785
                 that.$emit('confirm', "");
782
-
783 786
               }
784 787
             })
785
-
786
-
787 788
           } else {
788 789
             axios.get('http://127.0.0.1:9532/zh/api/inhopitalcheck/get', {
789 790
               params: params,

+ 1 - 1
src/xt_pages/hospitalStation/outpatientChargesManagement.vue ファイルの表示

@@ -587,7 +587,7 @@ export default {
587 587
         }
588 588
       })
589 589
 
590
-    },hospitalRegisterConfirm(){
590
+    },s(){
591 591
       this.$refs.hrd.hide()
592 592
       this.getPatientList()
593 593
     },hospitalRegisterCancel(){

+ 4 - 4
src/xt_pages/hospitalStation/statementPrint.vue ファイルの表示

@@ -24,10 +24,10 @@
24 24
       <hospital-settle-print :info="info"></hospital-settle-print>
25 25
     </div>
26 26
 
27
-    <div class='dialysisPage' style="padding-top:40px;" v-else>
28
-      <private-charge-print :info="info" v-if="this.paramsObj.balance_accounts_type == 2"></private-charge-print>
29
-      <printOne :info="info" v-else></printOne>
30
-    </div>
27
+<!--    <div class='dialysisPage' style="padding-top:40px;" v-else>-->
28
+<!--      <private-charge-print :info="info" v-if="this.paramsObj.balance_accounts_type == 2"></private-charge-print>-->
29
+<!--      <printOne :info="info" v-else></printOne>-->
30
+<!--    </div>-->
31 31
 
32 32
   </div>
33 33
 </template>

+ 5 - 1
src/xt_pages/hospitalStation/summary.vue ファイルの表示

@@ -627,6 +627,7 @@
627 627
         }
628 628
       },
629 629
       toPrint(row) {
630
+        console.log(row)
630 631
         if (this.$store.getters.xt_user.org_id == 9504 || this.$store.getters.xt_user.org_id == 10028 || (row.order_status == 2 && this.$store.getters.xt_user.org_id == 10138) || (row.order_status == 2 && this.$store.getters.xt_user.org_id == 10278)) {
631 632
           this.statementVisible9504 = true
632 633
           let obj = {
@@ -641,11 +642,14 @@
641 642
           this.statementVisible = true
642 643
           let obj = {
643 644
             order_id: row.id,
644
-            settle_type: row.settle_type,
645
+            balance_accounts_type: row.his_hospital_patient.balance_accounts_type,
645 646
             start_time: row.settle_start_time,
646 647
             end_time: row.settle_end_time
647 648
           }
649
+          console.log(obj)
648 650
           this.orderObj = obj
651
+          console.log(this.orderObj)
652
+
649 653
         }
650 654
 
651 655
       },

+ 1 - 0
src/xt_pages/hospitalStation/template/printOne.vue ファイルの表示

@@ -400,6 +400,7 @@ export default {
400 400
     ids: function (val) {
401 401
       this.ids = val;
402 402
       this.getPrescriptionPrint();
403
+      this.getHisPatientDetail();
403 404
     },
404 405
   },
405 406
 };

+ 8 - 0
src/xt_pages/outpatientCharges/components/registerDialog.vue ファイルの表示

@@ -663,6 +663,14 @@
663 663
                 that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
664 664
                 that.form.phone = patient.phone
665 665
                 that.form.id_card = patient.id_card_no
666
+              } else {
667
+                that.form.id = patient.id
668
+                that.form.name = patient.name
669
+                that.form.gender = patient.gender
670
+                that.form.age = patient.age
671
+                that.form.birthday = uParseTime(patient.birthday, '{y}-{m}-{d}')
672
+                that.form.phone = patient.phone
673
+                that.form.id_card = patient.id_card_no
666 674
               }
667 675
               that.$message({ message: '读卡成功', type: 'success' })
668 676
             }

+ 2 - 2
src/xt_pages/outpatientCharges/costComparison.vue ファイルの表示

@@ -761,8 +761,8 @@ c<template>
761 761
               }
762 762
 
763 763
               import('@/vendor/Export2Excel').then(excel => {
764
-                const tHeader = ['序号', '姓名','个人编te号', '门诊号', '挂号日期', '诊断','挂号科室','门诊费用','医保支付','自费', '起付线I', '起付线II','超封顶线费用','合计','统筹基金','大病保险','医疗救助', '实账支付额', '血透次数', '置留管数量','备注']
765
-                const filterVal = ['序号', '姓名','个人编号', '门诊号', '挂号日期','诊断','挂号科室','门诊费用','医保支付','自费', '起付线I', '起付线II','超封顶线费用','合计','统筹基金','大病保险','医疗救助', '实账支付额', '血透次数', '置留管数量','备注']
764
+                const tHeader = ['序号', '姓名','个人编te号', '门诊号', '挂号日期', '诊断','挂号科室','门诊费用','医保支付','自费', '起付线I', '按比例自付II','超封顶线费用','合计','统筹基金','大病保险','医疗救助', '实账支付额', '血透次数', '置留管数量','备注']
765
+                const filterVal = ['序号', '姓名','个人编号', '门诊号', '挂号日期','诊断','挂号科室','门诊费用','医保支付','自费', '起付线I', '按比例自付II','超封顶线费用','合计','统筹基金','大病保险','医疗救助', '实账支付额', '血透次数', '置留管数量','备注']
766 766
                 // const filterVal = [ '姓名', '身份证', '个人编号', '门诊流水号', '挂号日期', '起付线', '统筹基金', '个人支付', '个账支付', '现金支付', '总费用', '冲销标志']
767 767
                 const merges = ['A1:A2', 'B1:B2', 'C1:E1', 'F1:H1', 'I1:K1', 'L1:N1', 'O1:Q1', 'R1:T1', 'U1:W1', 'X1:Z1', 'AA1:AC1', 'AD1:AF1', 'AG1:AI1', 'AJ1:AL1', 'AM1:AO1', 'AP1:AR1', 'AS1:AU1', 'AV1:AX1', 'AY1:BA1', 'BB1:BD1', 'BE1:BG1', 'BH1:BJ1', 'BK1:BM1']
768 768
 

+ 401 - 0
src/xt_pages/outpatientTool/components/detailStatistics.vue ファイルの表示

@@ -0,0 +1,401 @@
1
+<template>
2
+  <!-- <div class="main-contain outpatientChargesManagement">
3
+      <div class="position">
4
+          <bread-crumb :crumbs='crumbs'></bread-crumb>
5
+      </div> -->
6
+  <div>
7
+    <div style="display: flex;justify-content: space-between;margin-bottom:10px;">
8
+      <div>
9
+
10
+        <el-select size="small" v-model="item_type" placeholder="请选择"
11
+                   style="width:150px;margin-left:10px;" @change="changeItem">
12
+          <el-option
13
+              label="全部"
14
+              value="0">
15
+          </el-option>
16
+          <el-option
17
+              v-for="(item,index) in items"
18
+              :key="index"
19
+              :label="item.name"
20
+              :value="item.id">
21
+          </el-option>
22
+        </el-select>
23
+
24
+        <div class="mainCell" style="margin-bottom:10px;">
25
+          <el-input size="small"  v-model.trim="search_input"
26
+                    class="filter-item"/>
27
+          <el-button size="small" style="margin-left:10px;" class="filter-item" type="primary"
28
+                     @click="searchAction">
29
+            搜索
30
+          </el-button>
31
+        </div>
32
+
33
+        <el-date-picker
34
+            v-model="chargeDate"
35
+            type="daterange"
36
+            value-format="yyyy-MM-dd"
37
+            range-separator="至"
38
+            start-placeholder="开始日期"
39
+            @change="changeDate"
40
+            end-placeholder="结束日期">
41
+        </el-date-picker>
42
+      </div>
43
+    </div>
44
+    <el-table :data="tableData" border :row-style="{ color: '#303133' }" ref="table"
45
+              :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
46
+              show-summary
47
+              max-height="600"
48
+              v-loading="detail_loading"
49
+              highlight-current-row>
50
+      <el-table-column type="index" label="序号" width="60px" align="center"></el-table-column>
51
+      <el-table-column align="center" prop="name" label="处方日期">
52
+        <template slot-scope="scope">{{  }}</template>
53
+      </el-table-column>
54
+      <el-table-column align="center" prop="name" label="费用编码">
55
+        <template slot-scope="scope">{{scope.row.code}}</template>
56
+      </el-table-column>
57
+      <el-table-column align="center" prop="name" label="项目名称">
58
+        <template slot-scope="scope">{{scope.row.item_name}}</template>
59
+      </el-table-column>
60
+      <el-table-column align="center" prop="name" label="规格">
61
+        <template slot-scope="scope">{{scope.row.item_spec}}</template>
62
+      </el-table-column>
63
+      <el-table-column align="center" prop="name" label="数量">
64
+        <template slot-scope="scope">{{scope.row.count}}</template>
65
+      </el-table-column>
66
+      <el-table-column align="center" prop="name" label="单价">
67
+        <template slot-scope="scope">{{scope.row.price.toFixed(2)}}</template>
68
+      </el-table-column>
69
+      <el-table-column align="center" prop="name" label="金额">
70
+        <template slot-scope="scope">
71
+          <div>{{(scope.row.price.toFixed(2)*scope.row.count).toFixed(2)}}</div>
72
+        </template>
73
+      </el-table-column>
74
+
75
+    </el-table>
76
+  </div>
77
+
78
+  <!-- </div> -->
79
+</template>
80
+
81
+
82
+<script>
83
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
84
+import { GetSummaryDetail } from '@/api/his/his'
85
+import { uParseTime } from '@/utils/tools'
86
+import axios from 'axios'
87
+const moment = require('moment')
88
+export default {
89
+  components: {
90
+    BreadCrumb
91
+
92
+  },
93
+  data() {
94
+    return {
95
+      detail_loading: false,
96
+      tempArr: [],
97
+      pos: 0,
98
+      search_input: '',
99
+
100
+      sameRowArr: [],
101
+      keywords: '',
102
+      tableData: [],
103
+      chargeDate: [moment(new Date()).add('year', 0).format('YYYY-MM-DD'), moment(new Date()).add('year', 0).format('YYYY-MM-DD')],
104
+      item_type: '0',
105
+      items: [
106
+        { id: 1, name: '药品' },
107
+        { id: 3, name: '耗材' },
108
+        { id: 2, name: '项目' }
109
+
110
+      ]
111
+
112
+    }
113
+  },
114
+  methods: {
115
+    searchAction(){
116
+
117
+
118
+    },
119
+    changeDate() {
120
+      this.getSummaryDetailList()
121
+    },
122
+    changeItem() {
123
+      this.getSummaryDetailList()
124
+    },
125
+    getSummaryDetailList() {
126
+      this.detail_loading = true
127
+      let start_time = this.chargeDate[0]
128
+      let end_time = this.chargeDate[1]
129
+      let params = {
130
+        start_time: start_time,
131
+        end_time: end_time,
132
+        type: this.item_type,
133
+        keyword: this.keywords
134
+      }
135
+      GetSummaryDetail(params).then(response => {
136
+        if (response.data.state == 0) {
137
+          this.detail_loading = false
138
+
139
+          this.$message.error(response.data.msg)
140
+          return false
141
+        } else {
142
+          this.detail_loading = false
143
+
144
+          this.tableData = []
145
+          let tempPatients = []
146
+          let tempPatientsTwo = []
147
+
148
+          let tempData = response.data.data.patients
149
+          let data = response.data.data.patients
150
+          let orders = this.unique(tempData)
151
+          for (let i = 0; i < orders.length; i++) {
152
+            let obj = {
153
+              patient_id: orders[i].id,
154
+              name: orders[i].name,
155
+              orders: []
156
+            }
157
+            for (let b = 0; b < data.length; b++) {
158
+              if (orders[i].id == data[b].id) {
159
+                obj.orders = obj.orders.concat(data[b].orders)
160
+              }
161
+            }
162
+            tempPatients.push(obj)
163
+          }
164
+
165
+          for (let i = 0; i < tempPatients.length; i++) {
166
+            let obj = {
167
+              patient_id: tempPatients[i].patient_id,
168
+              name: tempPatients[i].name,
169
+              order_info: []
170
+            }
171
+            let orders = tempPatients[i].orders
172
+            for (let b = 0; b < orders.length; b++) {
173
+              for (let c = 0; c < orders[b].order_info.length; c++) {
174
+                let newObj = {}
175
+
176
+                newObj['count'] = orders[b].order_info[c].cnt
177
+                newObj['price'] = orders[b].order_info[c].pric
178
+                if (orders[b].order_info[c].advice_id > 0 && orders[b].order_info[c].project_id == 0) {
179
+                  newObj['type'] = 1
180
+                  newObj['item_name'] = orders[b].order_info[c].advice.advice_name
181
+                  newObj['item_id'] = orders[b].order_info[c].advice.drug_id
182
+
183
+                  if (orders[b].order_info[c].advice.drug.min_unit != orders[b].order_info[c].advice.drug.dose_unit) {
184
+                    newObj['item_spec'] =  orders[b].order_info[c].advice.drug.dose + orders[b].order_info[c].advice.drug.dose_unit + '*' + orders[b].order_info[c].advice.drug.min_number + orders[b].order_info[c].advice.drug.min_unit + '/' + orders[b].order_info[c].advice.drug.max_unit
185
+                  } else {
186
+
187
+                    newObj['item_spec'] = ''
188
+                  }
189
+
190
+                }
191
+                if (orders[b].order_info[c].advice_id == 0 && orders[b].order_info[c].project_id > 0) {
192
+                  newObj['type'] = 2
193
+                  newObj['item_id'] = orders[b].order_info[c].project.project_id
194
+
195
+                  if (orders[b].order_info[c].project.type == 2) {
196
+                    newObj['item_spec'] =""
197
+                    newObj['item_name'] = orders[b].order_info[c].project.project.project_name
198
+
199
+
200
+                  } else if (orders[b].order_info[c].project.type == 3) {
201
+                    newObj['item_spec'] =    orders[b].order_info[c].project.good_info.specification_name
202
+                    newObj['item_name'] = orders[b].order_info[c].project.good_info.good_name
203
+
204
+
205
+                  }
206
+                }
207
+                obj.order_info.push(newObj)
208
+              }
209
+            }
210
+            tempPatientsTwo.push(obj)
211
+          }
212
+
213
+          for (let d = 0; d < tempPatientsTwo.length; d++) {
214
+            tempPatientsTwo[d]['new_order_info'] = []
215
+            let project = []
216
+            let advice = []
217
+            for (let b = 0; b < tempPatientsTwo[d].order_info.length; b++) {
218
+              if (tempPatientsTwo[d].order_info[b].type == 1) {
219
+                advice.push(tempPatientsTwo[d].order_info[b])
220
+              } else {
221
+                project.push(tempPatientsTwo[d].order_info[b])
222
+              }
223
+            }
224
+            project = this.uniqueProjectAndAdvice(project)
225
+            advice = this.uniqueProjectAndAdvice(advice)
226
+
227
+            for (let i = 0; i < project.length; i++) {
228
+              let obj = {}
229
+              let count = 0
230
+              for (let a = 0; a < tempPatientsTwo[d].order_info.length; a++) {
231
+                if (project[i].item_id == tempPatientsTwo[d].order_info[a].item_id && project[i].price == tempPatientsTwo[d].order_info[a].price) {
232
+                  count = count + tempPatientsTwo[d].order_info[a].count
233
+                }
234
+              }
235
+
236
+
237
+
238
+              obj['price'] = project[i].price
239
+              obj['type'] = project[i].type
240
+              obj['item_name'] = project[i].item_name
241
+              obj['item_spec'] = project[i].item_spec
242
+
243
+              obj['item_id'] = project[i].item_id
244
+              obj['name'] = tempPatientsTwo[d].name
245
+              obj['patient_id'] = tempPatientsTwo[d].patient_id
246
+              obj['count'] = count
247
+              tempPatientsTwo[d].new_order_info.push(obj)
248
+            }
249
+
250
+            for (let i = 0; i < advice.length; i++) {
251
+              let obj = {}
252
+              let count = 0
253
+              for (let a = 0; a < tempPatientsTwo[d].order_info.length; a++) {
254
+                if (advice[i].item_id == tempPatientsTwo[d].order_info[a].item_id && advice[i].price == tempPatientsTwo[d].order_info[a].price) {
255
+                  count = count + tempPatientsTwo[d].order_info[a].count
256
+                }
257
+              }
258
+
259
+              obj['price'] = advice[i].price
260
+              obj['type'] = advice[i].type
261
+              obj['item_name'] = advice[i].item_name
262
+              obj['item_spec'] = advice[i].item_spec
263
+              obj['item_id'] = advice[i].item_id
264
+              obj['name'] = tempPatientsTwo[d].name
265
+              obj['patient_id'] = tempPatientsTwo[d].patient_id
266
+              obj['count'] = count
267
+              tempPatientsTwo[d].new_order_info.push(obj)
268
+            }
269
+
270
+          }
271
+
272
+          for (let i = 0; i < tempPatientsTwo.length; i++) {
273
+            let total = 0
274
+            for (let b = 0; b < tempPatientsTwo[i].new_order_info.length; b++) {
275
+              let new_name = tempPatientsTwo[i].new_order_info[b].item_name
276
+              // console.log('3 ' + new_name)
277
+              if (new_name != undefined){
278
+                // console.log('3 ' + tempPatientsTwo[i].new_order_info[b].patient_id)
279
+                // console.log('3 ' + tempPatientsTwo[i].new_order_info[b].price)
280
+                // console.log('3 ' + tempPatientsTwo[i].new_order_info[b].count)
281
+                //
282
+                // new_name = new_name.replace('( ', '')
283
+                // new_name = new_name.replace(' )', '')
284
+                if (new_name.length != 0) {
285
+                  total = parseFloat(total) + parseFloat((parseFloat(tempPatientsTwo[i].new_order_info[b].count.toString()) * parseFloat(tempPatientsTwo[i].new_order_info[b].price.toString().toString())).toFixed(2))
286
+                }
287
+
288
+
289
+
290
+              }
291
+
292
+
293
+            }
294
+            tempPatientsTwo[i]['total'] = total
295
+          }
296
+          console.log('tempPatientsTwo', tempPatientsTwo)
297
+          for (let i = 0; i < tempPatientsTwo.length; i++) {
298
+            // console.log(111,tempPatientsTwo[i].total)
299
+            if (tempPatientsTwo[i].new_order_info.length > 0) {
300
+
301
+              for (let b = 0; b < tempPatientsTwo[i].new_order_info.length; b++) {
302
+                // let new_name = tempPatientsTwo[i].new_order_info[b].item_name
303
+                // console.log('2 ' + new_name)
304
+                //
305
+                // new_name = new_name.replace('( ', '')
306
+                // new_name = new_name.replace(' )', '')
307
+
308
+                let obj = {
309
+                  name: tempPatientsTwo[i].name,
310
+                  patient_id: tempPatientsTwo[i].patient_id,
311
+                  price: tempPatientsTwo[i].new_order_info[b].price,
312
+                  type: tempPatientsTwo[i].new_order_info[b].type,
313
+                  item_name: tempPatientsTwo[i].new_order_info[b].item_name,
314
+                  item_id: tempPatientsTwo[i].new_order_info[b].item_id,
315
+                  count: tempPatientsTwo[i].new_order_info[b].count,
316
+                  item_spec: tempPatientsTwo[i].new_order_info[b].item_spec
317
+                }
318
+
319
+
320
+                // if(b == 0){
321
+                obj['total'] = tempPatientsTwo[i].total
322
+                // }else{
323
+                //   obj['total'] = 0
324
+                // }
325
+                this.tableData.push(obj)
326
+
327
+
328
+              }
329
+            }
330
+          }
331
+          this.handleSpanTempArr()
332
+          // this.tableData = tempPatientsTwo
333
+
334
+          // console.log(tempPatientsTwo.length)
335
+          //
336
+
337
+        }
338
+        //
339
+        // console.log('去重前')
340
+        // console.log(advice)
341
+        // console.log(project)
342
+        // //
343
+        // //
344
+
345
+        // //
346
+        // console.log('去重后')
347
+        //
348
+        // console.log(advice.length)
349
+        // console.log(project.length)
350
+        //
351
+        // for (let i = 0; i < project.length; i++) {
352
+        //   let obj = {}
353
+        //   let count = 0
354
+        //   for (let a = 0; a < tempPatientsTwo.length; a++) {
355
+        //     if (project[i].patient_id == tempPatientsTwo[a].patient_id && project[i].item_id == tempPatientsTwo[a].item_id && project[i].price == tempPatientsTwo[a].price) {
356
+        //       count = count + tempPatientsTwo[a].count
357
+        //       obj['count'] = count
358
+        //
359
+        //     }
360
+        //     obj['price'] = project[i].price
361
+        //     obj['type'] = project[i].type
362
+        //     obj['item_name'] = project[i].item_name
363
+        //     obj['item_id'] = project[i].item_id
364
+        //     obj['name'] = project[i].name
365
+        //     obj['patient_id'] = project[i].patient_id
366
+        //     obj['count'] = count
367
+        //     this.tableData.push(obj)
368
+        //   }
369
+        // }
370
+        //
371
+        //
372
+        // for (let i = 0; i < advice.length; i++) {
373
+        //   let obj = {}
374
+        //   let count = 0
375
+        //   for (let a = 0; a < tempPatientsTwo.length; a++) {
376
+        //     if (advice[i].patient_id == tempPatientsTwo[a].patient_id && advice[i].item_id == tempPatientsTwo[a].item_id && advice[i].price == tempPatientsTwo[a].price) {
377
+        //       count = count + tempPatientsTwo[a].count
378
+        //       obj['count'] = count
379
+        //
380
+        //     }
381
+        //     obj['price'] = advice[i].price
382
+        //     obj['type'] = advice[i].type
383
+        //     obj['item_name'] = advice[i].item_name
384
+        //     obj['item_id'] = advice[i].item_id
385
+        //     obj['name'] = advice[i].name
386
+        //     obj['patient_id'] = advice[i].patient_id
387
+        //     this.tableData.push(obj)
388
+        //   }
389
+        // }
390
+        // console.log(this.tableData.length)
391
+        // this.tableData = this.sort(this.tableData)
392
+
393
+      })
394
+    },
395
+  },
396
+  created() {
397
+    this.getSummaryDetailList()
398
+
399
+  }
400
+}
401
+</script>

+ 13 - 0
src/xt_pages/outpatientTool/components/gatherStatistics.vue ファイルの表示

@@ -0,0 +1,13 @@
1
+<template>
2
+
3
+</template>
4
+
5
+<script>
6
+export default {
7
+  name: 'gatherStatistics'
8
+}
9
+</script>
10
+
11
+<style scoped>
12
+
13
+</style>

+ 335 - 0
src/xt_pages/outpatientTool/statistics.vue ファイルの表示

@@ -0,0 +1,335 @@
1
+<template>
2
+  <div class="main-contain new-main-contain">
3
+    <div class="position">
4
+      <bread-crumb :crumbs='crumbs'></bread-crumb>
5
+    </div>
6
+    <div class="app-container" style="display:flex;flex: 1;padding: 10px 20px 0px 20px;">
7
+      <div class="mainLeft">
8
+        <div>
9
+          <el-table  :data="patientTableData" :height="tableHeight" border style="width: 100%;"
10
+                     :row-style="{ color: '#303133' }"
11
+                     :header-cell-style="{backgroundColor: 'rgb(245, 247, 250)',color: '#606266'}"
12
+                     highlight-current-row ref="tab"
13
+                     @current-change="handleCurrentChange">
14
+            <el-table-column align="center" prop="name" label="姓名" wdith='89'>
15
+              <template slot-scope="scope">{{ scope.row.name }}</template>
16
+            </el-table-column>
17
+          </el-table>
18
+        </div>
19
+      </div>
20
+      <div class="mainRight">
21
+        <el-tabs v-model="titleType">
22
+          <el-tab-pane label="明细" name="明细"></el-tab-pane>
23
+          <el-tab-pane label="汇总" name="汇总"></el-tab-pane>
24
+        </el-tabs>
25
+        <detail-statistics v-if="titleType == '明细'"></detail-statistics>
26
+        <gather-statistics v-if="titleType == '汇总'"></gather-statistics>
27
+      </div>
28
+    </div>
29
+  </div>
30
+</template>
31
+
32
+<script>
33
+import {
34
+  GetAllPatients,
35
+} from '@/api/his/his_tools'
36
+import BreadCrumb from '@/xt_pages/components/bread-crumb'
37
+import DetailStatistics from './components/detailStatistics'
38
+import GatherStatistics from './components/gatherStatistics'
39
+export default {
40
+  components: {
41
+    GatherStatistics,
42
+    DetailStatistics,
43
+
44
+
45
+  },
46
+  data() {
47
+
48
+    return {
49
+      patientTableData:[],
50
+      tableHeight: '',
51
+      crumbs: [
52
+        { path: false, name: 'His工具' },
53
+        { path: false, name: '明细汇总统计' }
54
+      ],
55
+      titleType: '明细'
56
+    }
57
+  },
58
+  methods: {
59
+    getPatientList(){
60
+      GetAllPatients().then(response => {
61
+        if (response.data.state == 0) {
62
+          this.$message.error(response.data.msg)
63
+          return false
64
+        } else {
65
+          this.patientTableData = response.data.data.list
66
+        }
67
+      })
68
+    },
69
+    handleCurrentChange(){
70
+
71
+    },
72
+
73
+  },
74
+  created() {
75
+    const tableHeight = document.body.clientHeight - 290
76
+    this.tableHeight = tableHeight
77
+    this.getPatientList()
78
+
79
+  },
80
+
81
+  mounted() {
82
+
83
+  },
84
+  watch: {}
85
+}
86
+</script>
87
+
88
+<style lang="scss" scoped>
89
+.new-main-contain {
90
+  height: 100%;
91
+  display: flex;
92
+  flex-direction: column;
93
+}
94
+
95
+.app-container {
96
+  height: 100%;
97
+}
98
+
99
+.mainCell {
100
+  height: 36px;
101
+  display: flex;
102
+  align-items: center;
103
+}
104
+
105
+.mainLeft {
106
+  width: 200px;
107
+  height: 100%;
108
+  display: flex;
109
+  flex-direction: column;
110
+
111
+.el-radio {
112
+  margin-right: 5px;
113
+}
114
+
115
+}
116
+.mainRight {
117
+  margin-left: 10px;
118
+  flex: 1;
119
+  height: 100%;
120
+  display: flex;
121
+  flex-direction: column;
122
+  overflow-y: auto;
123
+
124
+.cellSpan {
125
+  min-width: 80px;
126
+  display: inline-block;
127
+  margin-right: 10px;
128
+}
129
+
130
+}
131
+.mainCenter {
132
+  display: flex;
133
+  flex: 1;
134
+}
135
+
136
+.centerLeft {
137
+  flex: 1;
138
+  display: flex;
139
+  flex-direction: column;
140
+  position: relative;
141
+
142
+.el-form-item {
143
+  width: 32%;
144
+  margin-right: 1%;
145
+  float: left;
146
+}
147
+
148
+.el-form-item__label {
149
+  text-align: left;
150
+}
151
+
152
+}
153
+.backColor {
154
+  background: #f6f8f9;
155
+  height: 5px;
156
+  margin-bottom: 5px;
157
+}
158
+
159
+.tabsBox {
160
+  position: relative;
161
+  height: 76%;
162
+  overflow-y: auto;
163
+  margin-bottom: 60px;
164
+
165
+.el-tabs__item {
166
+  padding: 0 10px;
167
+}
168
+
169
+}
170
+.preTabs {
171
+  height: 100%;
172
+  display: flex;
173
+  flex-direction: column;
174
+
175
+.el-tabs__content {
176
+  flex: 1;
177
+  overflow-y: auto;
178
+}
179
+
180
+}
181
+
182
+.costBox {
183
+  width: 100%;
184
+  height: 60px;
185
+  background: #fff;
186
+  position: absolute;
187
+  bottom: 0;
188
+  display: flex;
189
+  align-items: center;
190
+}
191
+
192
+.addTab {
193
+  position: absolute;
194
+  right: 0;
195
+  top: 14px;
196
+  z-index: 20;
197
+}
198
+
199
+.centerRight {
200
+  width: 300px;
201
+  margin-left: 10px;
202
+  display: flex;
203
+  flex-direction: column;
204
+  position: relative;
205
+}
206
+
207
+.rightTab {
208
+  height: 40px;
209
+  width: 100%;
210
+  border: 1px solid #d2d2d2;
211
+  box-sizing: border-box;
212
+
213
+p {
214
+  width: 50%;
215
+  height: 40px;
216
+  line-height: 40px;
217
+  text-align: center;
218
+  background: #eee;
219
+  float: left;
220
+}
221
+
222
+> p:last-child {
223
+  border-left: 1px solid #d2d2d2;
224
+  float: right;
225
+}
226
+
227
+.activeP {
228
+  background: #409EFF;
229
+  color: #fff;
230
+}
231
+
232
+}
233
+.comfirmBox {
234
+  width: 100%;
235
+  height: 60px;
236
+  background: #fff;
237
+  position: absolute;
238
+  bottom: 0;
239
+  display: flex;
240
+  align-items: center;
241
+  justify-content: space-between;
242
+}
243
+
244
+.mainHeader {
245
+  width: 100%;
246
+  background: #fff;
247
+  position: fixed;
248
+  z-index: 100;
249
+  height: 36px;
250
+}
251
+
252
+.titleBox {
253
+  position: fixed;
254
+  z-index: 99;
255
+  background: #fff;
256
+}
257
+
258
+.fixedCell {
259
+  position: fixed;
260
+  z-index: 99;
261
+  right: 30px;
262
+  background: #fff;
263
+  width: 300px;
264
+  display: flex;
265
+  justify-content: space-between;
266
+}
267
+</style>
268
+
269
+<style lang="scss">
270
+.centerLeft {
271
+
272
+.el-form-item__label {
273
+  text-align: left;
274
+}
275
+
276
+}
277
+.tabsBox {
278
+
279
+.el-tabs__item {
280
+  padding: 0 10px;
281
+}
282
+
283
+.el-tabs--bottom .el-tabs--left > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--bottom .el-tabs--right > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--bottom.el-tabs--border-card > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--bottom.el-tabs--card > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top .el-tabs--left > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top .el-tabs--right > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top.el-tabs--border-card > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top.el-tabs--card > .el-tabs__header .el-tabs__item:nth-child(2) {
284
+  padding: 0 10px;
285
+}
286
+
287
+.el-tabs--bottom .el-tabs--left > .el-tabs__header .el-tabs__item:last-child, .el-tabs--bottom .el-tabs--right > .el-tabs__header .el-tabs__item:last-child, .el-tabs--bottom.el-tabs--border-card > .el-tabs__header .el-tabs__item:last-child, .el-tabs--bottom.el-tabs--card > .el-tabs__header .el-tabs__item:last-child, .el-tabs--top .el-tabs--left > .el-tabs__header .el-tabs__item:last-child, .el-tabs--top .el-tabs--right > .el-tabs__header .el-tabs__item:last-child, .el-tabs--top.el-tabs--border-card > .el-tabs__header .el-tabs__item:last-child, .el-tabs--top.el-tabs--card > .el-tabs__header .el-tabs__item:last-child {
288
+  padding: 0 10px;
289
+}
290
+
291
+.el-tabs--card > .el-tabs__header .el-tabs__item.is-active.is-closable {
292
+  padding: 0 10px;
293
+}
294
+
295
+}
296
+.centerRight {
297
+
298
+.el-tabs__nav-scroll {
299
+  display: flex;
300
+}
301
+
302
+.el-tabs__nav {
303
+  margin: 0 auto;
304
+}
305
+
306
+.el-table th .cell, .el-table td .cell {
307
+  padding: 0 2px;
308
+}
309
+
310
+}
311
+.preTabs {
312
+
313
+.el-tabs__content {
314
+
315
+}
316
+
317
+}
318
+.rightTabs {
319
+  height: 100%;
320
+
321
+
322
+.el-tabs__content {
323
+
324
+}
325
+
326
+}
327
+.centerDialog {
328
+
329
+.el-dialog__body {
330
+  max-height: calc(100vh - 100px) !important;
331
+  padding: 0 20px;
332
+}
333
+
334
+}
335
+</style>