5 Revize 95567d6f78 ... ffe2db8ed9

Autor SHA1 Zpráva Datum
  陈少旭 ffe2db8ed9 Merge branch '20230223_pc_vue_new_branch' of http://git.shengws.com/csx/Vue_New into 20230223_pc_vue_new_branch před 3 týdny
  陈少旭 560d38afdd 1111 před 3 týdny
  陈少旭 fb626f93c5 Merge branch '20230223_pc_vue_new_branch' of http://git.shengws.com/csx/Vue_New into 20230223_pc_vue_new_branch před 3 týdny
  陈少旭 6fa128a2ef Merge branch '20230223_pc_vue_new_branch' of http://git.shengws.com/csx/Vue_New into 20230223_pc_vue_new_branch před 3 týdny
  陈少旭 af0e9c9b10 1111 před 3 týdny

+ 20 - 14
src/api/common/common.js Zobrazit soubor

@@ -133,12 +133,13 @@ export function DeleteCheck(id, params) {
133 133
   })
134 134
 }
135 135
 
136
-export function getDialysisModeType(startime, endtime, lapsetotype, sourcetype) {
136
+export function getDialysisModeType(startime, endtime, lapsetotype, sourcetype,patienttype) {
137 137
   const params = {
138 138
     startime: startime,
139 139
     endtime: endtime,
140 140
     lapsetotype: lapsetotype,
141
-    sourcetype: sourcetype
141
+    sourcetype: sourcetype,
142
+    patienttype:patienttype,
142 143
   }
143 144
   return request({
144 145
     url: '/com/api/getdialysismodetype',
@@ -147,12 +148,13 @@ export function getDialysisModeType(startime, endtime, lapsetotype, sourcetype)
147 148
   })
148 149
 }
149 150
 
150
-export function getTotalLapseCount(startime, endtime, lapsetotype, sourcetype) {
151
+export function getTotalLapseCount(startime, endtime, lapsetotype, sourcetype,patienttype) {
151 152
   const params = {
152 153
     startime: startime,
153 154
     endtime: endtime,
154 155
     lapsetotype: lapsetotype,
155
-    sourcetype: sourcetype
156
+    sourcetype: sourcetype,
157
+    patienttype:patienttype,
156 158
   }
157 159
   console.log('转归params', params)
158 160
   return request({
@@ -162,12 +164,13 @@ export function getTotalLapseCount(startime, endtime, lapsetotype, sourcetype) {
162 164
   })
163 165
 }
164 166
 
165
-export function getTotalSexCount(startime, endtime, lapsetotype, sourcetype) {
167
+export function getTotalSexCount(startime, endtime, lapsetotype, sourcetype,patienttype) {
166 168
   const params = {
167 169
     startime: startime,
168 170
     endtime: endtime,
169 171
     lapsetotype: lapsetotype,
170
-    sourcetype: sourcetype
172
+    sourcetype: sourcetype,
173
+    patienttype:patienttype
171 174
   }
172 175
   return request({
173 176
     url: '/com/api/gettotalsexcount',
@@ -176,12 +179,13 @@ export function getTotalSexCount(startime, endtime, lapsetotype, sourcetype) {
176 179
   })
177 180
 }
178 181
 
179
-export function getTotalInfectiousCount(startime, endtime, lapsetotype, sourcetype) {
182
+export function getTotalInfectiousCount(startime, endtime, lapsetotype, sourcetype,patienttype) {
180 183
   const params = {
181 184
     startime: startime,
182 185
     endtime: endtime,
183 186
     lapsetotype: lapsetotype,
184
-    sourcetype: sourcetype
187
+    sourcetype: sourcetype,
188
+    patienttype:patienttype,
185 189
   }
186 190
   console.log('传染病', params)
187 191
   return request({
@@ -191,12 +195,13 @@ export function getTotalInfectiousCount(startime, endtime, lapsetotype, sourcety
191 195
   })
192 196
 }
193 197
 
194
-export function getTotalAgeCount(startime, endtime, lapsetotype, sourcetype) {
198
+export function getTotalAgeCount(startime, endtime, lapsetotype, sourcetype,patienttype) {
195 199
   const params = {
196 200
     startime: startime,
197 201
     endtime: endtime,
198 202
     lapsetotype: lapsetotype,
199
-    sourcetype: sourcetype
203
+    sourcetype: sourcetype,
204
+    patienttype:patienttype,
200 205
   }
201 206
   return request({
202 207
     url: '/com/api/gettotalagecount',
@@ -205,12 +210,13 @@ export function getTotalAgeCount(startime, endtime, lapsetotype, sourcetype) {
205 210
   })
206 211
 }
207 212
 
208
-export function getTotalDialysisCount(startime, endtime, lapsetotype, sourcetype) {
213
+export function getTotalDialysisCount(startime, endtime, lapsetotype, sourcetype,patienttype) {
209 214
   const params = {
210 215
     startime: startime,
211 216
     endtime: endtime,
212 217
     lapsetotype: lapsetotype,
213
-    sourcetype: sourcetype
218
+    sourcetype: sourcetype,
219
+    patienttype:patienttype,
214 220
   }
215 221
   return request({
216 222
     url: '/com/api/gettotaldialysiscount',
@@ -550,10 +556,10 @@ export function getRolloutCount(params) {
550 556
 
551 557
 
552 558
 export function getPatientInspectionList(params){
553
-  
559
+
554 560
   return request({
555 561
     url:"/com/api/getpatientinspectionlist",
556 562
     method:"get",
557 563
     params:params
558 564
   })
559
-}
565
+}

+ 11 - 0
src/api/his/his.js Zobrazit soubor

@@ -924,6 +924,17 @@ export function newsummary(params) {
924 924
 
925 925
 
926 926
 
927
+export function getGood(params) {
928
+  return request({
929
+    url: '/api/good/config',
930
+    method: 'get',
931
+    params: params
932
+  })
933
+}
934
+
935
+
936
+
937
+
927 938
 
928 939
 
929 940
 

+ 11 - 3
src/api/new_stock/stock.js Zobrazit soubor

@@ -8,6 +8,14 @@ export function GetDrugStock(params) {
8 8
     params:params
9 9
   })
10 10
 }
11
+
12
+export function GetGoodStock(params) {
13
+  return request({
14
+    url: '/api/good/stock',
15
+    method: 'get',
16
+    params:params
17
+  })
18
+}
11 19
 export function GetDrugChangeStock(params) {
12 20
   return request({
13 21
     url: '/api/drug/change',
@@ -28,7 +36,7 @@ export function getHisDrugCodeQueryList(params){
28 36
 }
29 37
 
30 38
 export function createUploadDrugCode(params){
31
- 
39
+
32 40
   return request({
33 41
     url:"/api/drug/createuploaddrugcode",
34 42
     method:"get",
@@ -37,10 +45,10 @@ export function createUploadDrugCode(params){
37 45
 }
38 46
 
39 47
 export function getPatientDrugCode(params){
40
- 
48
+
41 49
   return request({
42 50
     url:"/api/drug/getpatientdrugcode",
43 51
     method:"Get",
44 52
     params:params,
45 53
   })
46
-}
54
+}

+ 5 - 1
src/lang/zh.js Zobrazit soubor

@@ -318,7 +318,11 @@ export default {
318 318
     drugChange:"药品销售",
319 319
     drugQuery:"药品查询",
320 320
     drugCodeQuery:"药品追溯",
321
-    drugSourceCode:"药品追溯"
321
+    drugSourceCode:"药品追溯",
322
+    goodStock:"耗材盘存",
323
+    goodQuery:"耗材查询",
324
+    calScore:'医保记分',
325
+
322 326
   },
323 327
   navbar: {
324 328
     logOut: '退出登录',

+ 3 - 0
src/router/index.js Zobrazit soubor

@@ -47,6 +47,8 @@ import PatientDispensing from './modules/PatientDispensing'
47 47
 import DrugDispensing from './modules/DrugDispensing'
48 48
 import DispensingDetails from './modules/DispensingDetails'
49 49
 import DrugCodeList  from './modules/DrugCodeList'
50
+import goodGrant  from './modules/goodGrant'
51
+
50 52
 // import ConsumablesManagement from './modules/ConsumablesManagement'
51 53
 import MedicianManagement from './modules/MedicianManagement'
52 54
 
@@ -175,6 +177,7 @@ var _asy_router_map = [
175 177
   DrugDispensing, // 药房管理模块
176 178
   DispensingDetails, // 药房管理模块
177 179
   DrugCodeList,//药品追溯码
180
+  goodGrant,
178 181
   //ConsumablesManagement, // 药房管理模块
179 182
   MedicianManagement, // 药房管理模块
180 183
 

+ 12 - 0
src/router/modules/hisTool.js Zobrazit soubor

@@ -108,6 +108,18 @@ export default {
108 108
       name: 'yidiClear',
109 109
       meta: { title: 'yidiClear', noCache: true }
110 110
     }, {
111
+      path: '/hisTool/calScore',
112
+      component: () => import('@/xt_pages/outpatientTool/calScore'),
113
+      name: 'calScore',
114
+      meta: { title: 'calScore', noCache: true }
115
+    },
116
+    // ,{
117
+    //   path: '/hisTool/calScore',
118
+    //   component: () => import('@/xt_pages/outpatientTool/calScore'),
119
+    //   name: 'yidiClear',
120
+    //   meta: { title: 'yidiClear', noCache: true }
121
+    // },
122
+    {
111 123
       path: '/hisTool/queryData',
112 124
       component: () => import('@/xt_pages/outpatientTool/queryData'),
113 125
       name: 'queryData',

+ 77 - 0
src/vendor/Export2Excel.js Zobrazit soubor

@@ -471,3 +471,80 @@ export function export_json_to_excel3({
471 471
     type: "application/octet-stream"
472 472
   }), `${filename}.${bookType}`);
473 473
 }
474
+export function export_json_to_excel23({
475
+                                       multiHeader = [],
476
+                                       header,
477
+                                       data,
478
+                                       filename,
479
+                                       merges = [],
480
+                                       autoWidth = true,
481
+                                       bookType = 'xlsx'
482
+                                     } = {}) {
483
+  /* 修复列宽计算错误 */
484
+  filename = filename || 'excel-list';
485
+  data = [...data];
486
+
487
+  if (header && header.length > 0) {
488
+    data.unshift(header);
489
+  }
490
+
491
+  for (let i = multiHeader.length - 1; i > -1; i--) {
492
+    data.unshift(multiHeader[i]);
493
+  }
494
+
495
+  const ws_name = "SheetJS";
496
+  const wb = new Workbook();
497
+  const ws = sheet_from_array_of_arrays(data);
498
+
499
+  if (merges.length > 0) {
500
+    if (!ws['!merges']) ws['!merges'] = [];
501
+    merges.forEach(item => {
502
+      ws['!merges'].push(XLSX.utils.decode_range(item));
503
+    });
504
+  }
505
+
506
+  // 修复的列宽计算逻辑
507
+  if (autoWidth) {
508
+    /* 计算最大列数 */
509
+    const maxColumns = data.reduce((max, row) =>
510
+      Math.max(max, row.length), 0);
511
+
512
+    /* 创建列宽数组并初始化为最小值 */
513
+    const colWidths = Array(maxColumns).fill({ wch: 10 });
514
+
515
+    /* 安全计算每列最大宽度 */
516
+    data.forEach(row => {
517
+      row.forEach((val, colIndex) => {
518
+        let length = 10;
519
+        if (val != null) {
520
+          const strVal = val.toString();
521
+          // 改进的中文字符宽度计算
522
+          if (/[\u4E00-\u9FA5\u3040-\u309F\u30A0-\u30FF]/.test(strVal)) {
523
+            length = strVal.length * 2;
524
+          } else {
525
+            length = strVal.length;
526
+          }
527
+        }
528
+
529
+        if (length > colWidths[colIndex].wch) {
530
+          colWidths[colIndex] = { wch: Math.max(length, 10) };
531
+        }
532
+      });
533
+    });
534
+
535
+    ws['!cols'] = colWidths;
536
+  }
537
+
538
+  wb.SheetNames.push(ws_name);
539
+  wb.Sheets[ws_name] = ws;
540
+
541
+  const wbout = XLSX.write(wb, {
542
+    bookType: bookType,
543
+    bookSST: false,
544
+    type: 'binary'
545
+  });
546
+
547
+  saveAs(new Blob([s2ab(wbout)], {
548
+    type: "application/octet-stream"
549
+  }), `${filename}.${bookType}`);
550
+}

+ 1 - 1
src/views/layout/Layout.vue Zobrazit soubor

@@ -139,7 +139,7 @@ export default {
139 139
     let caigou = ['supplyManage','supplyList'];
140 140
     let peizhi = ['system','roleManage','DepartManage', 'bedManagement', 'dictionaryManagement', 'templateManagement','showconfig','printTemplate','integration_config','basicConfig'];
141 141
     let kuyishopping = ['kuyiShopping'];
142
-    let medician = ['PatientDispensing','DrugDispensing','DispensingDetails','stockDrugs','DrugCodeList']
142
+    let medician = ['PatientDispensing','DrugDispensing','DispensingDetails','stockDrugs','DrugCodeList','goodGrant']
143 143
     let menzhenArr = [];
144 144
     let bingliArr = [];
145 145
     let touxiArr = [];

+ 1 - 1
src/views/layout/components/Sidebar/index.vue Zobrazit soubor

@@ -103,7 +103,7 @@ export default {
103 103
             this.$emit('func',a)
104 104
           }
105 105
         }else if(newVal == '药房管理'){
106
-          let nameArr = ['PatientDispensing','DrugDispensing','DispensingDetails','stockDrugs','DrugCodeList']
106
+          let nameArr = ['PatientDispensing','DrugDispensing','DispensingDetails','stockDrugs','DrugCodeList','goodGrant']
107 107
           // console.log('permission_routers',this.permission_routers)
108 108
           let routerArr = [];
109 109
           this.permission_routers.map(item => {

+ 25 - 0
src/xt_pages/Pharmacy/drugCode.vue Zobrazit soubor

@@ -277,6 +277,7 @@ export default {
277 277
       this.getlist()
278 278
     },
279 279
     toUpload(row) {
280
+      console.log(row)
280 281
       if(this.is_type == 3){
281 282
         if (row.drug_code.length == 0) {
282 283
           this.$message.error("追溯码不能为空");
@@ -351,6 +352,30 @@ export default {
351 352
           is_type:this.is_type,
352 353
         };
353 354
 
355
+        //有打开则调用接口
356
+        axios.get('http://127.0.0.1:9532/api/changedrug/five', {params: params}).then(function (response) {
357
+          if (response.data.state == 0) {
358
+            that.$message.error(response.data.data.msg);
359
+            return false
360
+          } else {
361
+            if (response.data.data.failed_code == -10) {
362
+              that.$confirm(response.data.data.msg, '医保错误信息', {
363
+                confirmButtonText: '确 定',
364
+                type: 'warning'
365
+              }).then(() => {
366
+
367
+              }).catch(() => {
368
+              })
369
+            } else {
370
+              that.getlist()
371
+            }
372
+          }
373
+        }).catch(function (error) {
374
+        })
375
+
376
+
377
+        //TODO
378
+
354 379
         axios.get('http://127.0.0.1:9532/test/net', {}).then(function (response) {
355 380
           if (response.data.state == 0) {
356 381
             // that.$message.error(response.data.data.msg);

+ 3 - 0
src/xt_pages/Pharmacy/goodGrant.vue Zobrazit soubor

@@ -1314,8 +1314,11 @@ export default {
1314 1314
       for (var i = 0; i < this.multipleSelection.length; i++) {
1315 1315
         tmp = tmp + this.multipleSelection[i].id + ",";
1316 1316
       }
1317
+
1318
+
1317 1319
       var params = {
1318 1320
         creater: this.admin_user_id,
1321
+        d_type:1,
1319 1322
         ids: tmp,
1320 1323
       };
1321 1324
       this.$confirm("确定是否对该耗材进行发药?", "耗材发放", {

+ 4 - 4
src/xt_pages/drugSourceCode/goodQuery.vue Zobrazit soubor

@@ -492,9 +492,9 @@
492 492
 
493 493
 
494 494
 <script>
495
-// import {
496
-//   getGood
497
-// } from '@/api/his/his'
495
+import {
496
+  getGood
497
+} from '@/api/his/his'
498 498
 import BreadCrumb from '@/xt_pages/components/bread-crumb'
499 499
 import axios from 'axios'
500 500
 const moment = require('moment')
@@ -687,7 +687,7 @@ export default {
687 687
             })
688 688
 
689 689
           }else if(that.stock_type == 5){
690
-            axios.get('http://127.0.0.1:9532/api/3513',{params:params}).then(function(response) {
690
+            axios.get('http://127.0.0.1:9532/api/3513forgood',{params:params}).then(function(response) {
691 691
               if (response.data.state == 0) {
692 692
                 that.$message.error(response.data.data.msg);
693 693
                 return false

+ 5 - 7
src/xt_pages/drugSourceCode/goodStock.vue Zobrazit soubor

@@ -205,12 +205,10 @@
205 205
 
206 206
 <script>
207 207
 import BreadCrumb from '@/xt_pages/components/bread-crumb'
208
-// import {GetDrugStock, GetGoodStock} from '../../api/new_stock/stock'
208
+import {GetGoodStock} from '../../api/new_stock/stock'
209 209
 const moment = require('moment')
210
-import { getDictionaryDataConfig } from "@/utils/data";
211 210
 import { uParseTime } from '@/utils/tools'
212 211
 import axios from 'axios'
213
-
214 212
 export default {
215 213
   components: {
216 214
     BreadCrumb
@@ -236,8 +234,8 @@ export default {
236 234
         { id: 2, name: '未变更' },
237 235
       ],
238 236
       crumbs: [
239
-        { path: false, name: '药品追溯' },
240
-        { path: false, name: '药品盘点' }
237
+        { path: false, name: '耗材追溯' },
238
+        { path: false, name: '耗材盘点' }
241 239
       ],
242 240
     }
243 241
   },
@@ -303,7 +301,7 @@ export default {
303 301
                 }).catch(() => {
304 302
                 })
305 303
               }else{
306
-                that.GetDrugStock()
304
+                that.GetGoodStock()
307 305
               }
308 306
             }
309 307
           }).catch(function(error) {
@@ -466,7 +464,7 @@ export default {
466 464
                 }).catch(() => {
467 465
                 })
468 466
               }else{
469
-                that.GetDrugStock()
467
+                that.GetGoodStock()
470 468
               }
471 469
             }
472 470
           }).catch(function(error) {

+ 69 - 2
src/xt_pages/outpatientDoctorStation/doctorDesk.vue Zobrazit soubor

@@ -2358,7 +2358,9 @@ export default {
2358 2358
                       preTime = this.record_date + ' ' + '05:30'
2359 2359
                     } else {
2360 2360
                       preTime = this.record_date + ' ' + '7:00'
2361
-
2361
+                      if (this.org_id == 10633){
2362
+                        preTime = this.record_date + ' ' + '6:00'
2363
+                      }
2362 2364
                     }
2363 2365
                   } else if (this.schedule.schedule_type == 2) {
2364 2366
                     if(this.org_id == 10206  || this.org_id == 0 ){
@@ -2590,6 +2592,9 @@ export default {
2590 2592
                       preTime = this.record_date+ ' ' + '05:30'
2591 2593
                     } else {
2592 2594
                       preTime = this.record_date + ' ' + '7:00'
2595
+                      if (this.org_id == 10633){
2596
+                        preTime = this.record_date + ' ' + '6:00'
2597
+                      }
2593 2598
                     }
2594 2599
                     // preTime = nowYear + '-' + (nowMonth < 10 ? '0' + nowMonth : nowMonth) + '-' + (nowDay < 10 ? '0' + nowDay : nowDay) + ' ' + '7:00'
2595 2600
                   } else if (this.schedule.schedule_type == 2) {
@@ -3020,7 +3025,9 @@ export default {
3020 3025
                             preTime = this.record_date + ' ' + '05:30'
3021 3026
                           } else {
3022 3027
                             preTime = this.record_date + ' ' + '7:00'
3023
-
3028
+                            if (this.org_id == 10633){
3029
+                              preTime = this.record_date + ' ' + '6:00'
3030
+                            }
3024 3031
                           }
3025 3032
                           // preTime = nowYear + '-' + (nowMonth < 10 ? '0' + nowMonth : nowMonth) + '-' + (nowDay < 10 ? '0' + nowDay : nowDay) + ' ' + '7:00'
3026 3033
                         } else if (this.schedule.schedule_type == 2) {
@@ -3054,6 +3061,9 @@ export default {
3054 3061
                               preTime = this.record_date+ ' ' + '05:30'
3055 3062
                             }else {
3056 3063
                               preTime = this.record_date + ' ' + '7:00'
3064
+                              if (this.org_id == 10633){
3065
+                                preTime = this.record_date + ' ' + '6:00'
3066
+                              }
3057 3067
                             }
3058 3068
                           }else if(this.schedule.schedule_type == 2){
3059 3069
                             if(this.org_id == 10206  || this.org_id == 0){
@@ -3227,6 +3237,9 @@ export default {
3227 3237
                             preTime = this.record_date + ' ' + '05:30'
3228 3238
                           } else {
3229 3239
                             preTime = this.record_date + ' ' + '7:00'
3240
+                            if (this.org_id == 10633){
3241
+                              preTime = this.record_date + ' ' + '6:00'
3242
+                            }
3230 3243
 
3231 3244
                           }
3232 3245
                           // preTime = nowYear + '-' + (nowMonth < 10 ? '0' + nowMonth : nowMonth) + '-' + (nowDay < 10 ? '0' + nowDay : nowDay) + ' ' + '7:00'
@@ -3258,6 +3271,9 @@ export default {
3258 3271
                             preTime = this.record_date+ ' ' + '05:30'
3259 3272
                           }else {
3260 3273
                             preTime = this.record_date + ' ' + '7:00'
3274
+                            if (this.org_id == 10633){
3275
+                              preTime = this.record_date + ' ' + '6:00'
3276
+                            }
3261 3277
                           }
3262 3278
                         }else if(this.schedule.schedule_type == 2){
3263 3279
                           if(this.org_id == 10206  || this.org_id == 0){
@@ -3328,6 +3344,9 @@ export default {
3328 3344
                           preTime = this.record_date+ ' ' + '05:30'
3329 3345
                         }else {
3330 3346
                           preTime = this.record_date + ' ' + '7:00'
3347
+                          if (this.org_id == 10633){
3348
+                            preTime = this.record_date + ' ' + '6:00'
3349
+                          }
3331 3350
                         }
3332 3351
                       }else if(this.schedule.schedule_type == 2){
3333 3352
                         if(this.org_id == 10206  || this.org_id == 0){
@@ -3732,6 +3751,9 @@ export default {
3732 3751
                             preTime = this.record_date+ ' ' + '05:30'
3733 3752
                           }else {
3734 3753
                             preTime = this.record_date + ' ' + '7:00'
3754
+                            if (this.org_id == 10633){
3755
+                              preTime = this.record_date + ' ' + '6:00'
3756
+                            }
3735 3757
                           }
3736 3758
                         }else if(this.schedule.schedule_type == 2){
3737 3759
                           if(this.org_id == 10206  || this.org_id == 0){
@@ -3895,6 +3917,9 @@ export default {
3895 3917
 
3896 3918
                           }else {
3897 3919
                             preTime = this.record_date + ' ' + '7:00'
3920
+                            if (this.org_id == 10633){
3921
+                              preTime = this.record_date + ' ' + '6:00'
3922
+                            }
3898 3923
                           }
3899 3924
                         }else if(this.schedule.schedule_type == 2){
3900 3925
                           if(this.org_id == 10206  || this.org_id == 0){
@@ -3960,6 +3985,9 @@ export default {
3960 3985
                           preTime = this.record_date+ ' ' + '05:30'
3961 3986
                         }else {
3962 3987
                           preTime = this.record_date + ' ' + '7:00'
3988
+                          if (this.org_id == 10633){
3989
+                            preTime = this.record_date + ' ' + '6:00'
3990
+                          }
3963 3991
                         }
3964 3992
                       }else if(this.schedule.schedule_type == 2){
3965 3993
                         if(this.org_id == 10206  || this.org_id == 0){
@@ -4351,6 +4379,9 @@ export default {
4351 4379
 
4352 4380
                         }else {
4353 4381
                           preTime = this.record_date + ' ' + '7:00'
4382
+                          if (this.org_id == 10633){
4383
+                            preTime = this.record_date + ' ' + '6:00'
4384
+                          }
4354 4385
                         }
4355 4386
                       }else if(this.schedule.schedule_type == 2){
4356 4387
                         if(this.org_id == 10206  || this.org_id == 0){
@@ -4518,6 +4549,9 @@ export default {
4518 4549
                           preTime = this.record_date+ ' ' + '05:30'
4519 4550
                         }else {
4520 4551
                           preTime = this.record_date + ' ' + '7:00'
4552
+                          if (this.org_id == 10633){
4553
+                            preTime = this.record_date + ' ' + '6:00'
4554
+                          }
4521 4555
                         }
4522 4556
                       }else if(this.schedule.schedule_type == 2){
4523 4557
                         if(this.org_id == 10206  || this.org_id == 0){
@@ -4582,6 +4616,9 @@ export default {
4582 4616
                         preTime = this.record_date+ ' ' + '05:30'
4583 4617
                       }else {
4584 4618
                         preTime = this.record_date + ' ' + '7:00'
4619
+                        if (this.org_id == 10633){
4620
+                          preTime = this.record_date + ' ' + '6:00'
4621
+                        }
4585 4622
                       }
4586 4623
                     }else if(this.schedule.schedule_type == 2){
4587 4624
                       if(this.org_id == 10206  || this.org_id == 0){
@@ -5063,6 +5100,9 @@ export default {
5063 5100
 
5064 5101
                           } else {
5065 5102
                             preTime = this.record_date + ' ' + '7:00'
5103
+                            if (this.org_id == 10633){
5104
+                              preTime = this.record_date + ' ' + '6:00'
5105
+                            }
5066 5106
 
5067 5107
                           }
5068 5108
                           // preTime = nowYear + '-' + (nowMonth < 10 ? '0' + nowMonth : nowMonth) + '-' + (nowDay < 10 ? '0' + nowDay : nowDay) + ' ' + '7:00'
@@ -5102,6 +5142,9 @@ export default {
5102 5142
 
5103 5143
                             }else {
5104 5144
                               preTime = this.record_date + ' ' + '7:00'
5145
+                              if (this.org_id == 10633){
5146
+                                preTime = this.record_date + ' ' + '6:00'
5147
+                              }
5105 5148
                             }
5106 5149
                           }else if(this.schedule.schedule_type == 2){
5107 5150
                             if(this.org_id == 10206  || this.org_id == 0){
@@ -5278,6 +5321,9 @@ export default {
5278 5321
                             preTime = this.record_date+ ' ' + '05:30'
5279 5322
                           } else {
5280 5323
                             preTime = this.record_date + ' ' + '7:00'
5324
+                            if (this.org_id == 10633){
5325
+                              preTime = this.record_date + ' ' + '6:00'
5326
+                            }
5281 5327
                           }
5282 5328
                           // preTime = nowYear + '-' + (nowMonth < 10 ? '0' + nowMonth : nowMonth) + '-' + (nowDay < 10 ? '0' + nowDay : nowDay) + ' ' + '7:00'
5283 5329
                         } else if (this.schedule.schedule_type == 2) {
@@ -5307,6 +5353,9 @@ export default {
5307 5353
                             preTime = this.record_date+ ' ' + '05:30'
5308 5354
                           }else {
5309 5355
                             preTime = this.record_date + ' ' + '7:00'
5356
+                            if (this.org_id == 10633){
5357
+                              preTime = this.record_date + ' ' + '6:00'
5358
+                            }
5310 5359
                           }
5311 5360
                         }else if(this.schedule.schedule_type == 2){
5312 5361
                           if(this.org_id == 10206  || this.org_id == 0){
@@ -5384,6 +5433,9 @@ export default {
5384 5433
                           preTime = this.record_date+ ' ' + '05:30'
5385 5434
                         }else {
5386 5435
                           preTime = this.record_date + ' ' + '7:00'
5436
+                          if (this.org_id == 10633){
5437
+                            preTime = this.record_date + ' ' + '6:00'
5438
+                          }
5387 5439
                         }
5388 5440
                       }else if(this.schedule.schedule_type == 2){
5389 5441
                         if(this.org_id == 10206  || this.org_id == 0){
@@ -5766,6 +5818,9 @@ export default {
5766 5818
                             preTime = this.record_date+ ' ' + '05:30'
5767 5819
                           }else {
5768 5820
                             preTime = this.record_date + ' ' + '7:00'
5821
+                            if (this.org_id == 10633){
5822
+                              preTime = this.record_date + ' ' + '6:00'
5823
+                            }
5769 5824
                           }
5770 5825
                           // preTime = nowYear + '-' + (nowMonth < 10 ? '0' + nowMonth : nowMonth) + '-' + (nowDay < 10 ? '0' + nowDay : nowDay) + ' ' + '7:00'
5771 5826
                         } else if (this.schedule.schedule_type == 2) {
@@ -5802,6 +5857,9 @@ export default {
5802 5857
                               preTime = this.record_date+ ' ' + '05:30'
5803 5858
                             }else {
5804 5859
                               preTime = this.record_date + ' ' + '7:00'
5860
+                                if (this.org_id == 10633){
5861
+                                preTime = this.record_date + ' ' + '6:00'
5862
+                              }
5805 5863
                             }
5806 5864
                           }else if(this.schedule.schedule_type == 2){
5807 5865
                             if(this.org_id == 10206  || this.org_id == 0){
@@ -5981,6 +6039,9 @@ export default {
5981 6039
                             preTime = this.record_date+ ' ' + '05:30'
5982 6040
                           }else {
5983 6041
                             preTime = this.record_date + ' ' + '7:00'
6042
+                            if (this.org_id == 10633){
6043
+                              preTime = this.record_date + ' ' + '6:00'
6044
+                            }
5984 6045
                           }
5985 6046
                           // preTime = nowYear + '-' + (nowMonth < 10 ? '0' + nowMonth : nowMonth) + '-' + (nowDay < 10 ? '0' + nowDay : nowDay) + ' ' + '7:00'
5986 6047
                         } else if (this.schedule.schedule_type == 2) {
@@ -6011,6 +6072,9 @@ export default {
6011 6072
                             preTime = this.record_date+ ' ' + '05:30'
6012 6073
                           }else {
6013 6074
                             preTime = this.record_date + ' ' + '7:00'
6075
+                            if (this.org_id == 10633){
6076
+                              preTime = this.record_date + ' ' + '6:00'
6077
+                            }
6014 6078
                           }
6015 6079
                         }else if(this.schedule.schedule_type == 2){
6016 6080
                           if(this.org_id == 10206  || this.org_id == 0){
@@ -6090,6 +6154,9 @@ export default {
6090 6154
 
6091 6155
                         }else {
6092 6156
                           preTime = this.record_date + ' ' + '7:00'
6157
+                          if (this.org_id == 10633){
6158
+                            preTime = this.record_date + ' ' + '6:00'
6159
+                          }
6093 6160
                         }
6094 6161
                       }else if(this.schedule.schedule_type == 2){
6095 6162
                         if(this.org_id == 10206  || this.org_id == 0){

+ 242 - 0
src/xt_pages/outpatientTool/calScore.vue Zobrazit soubor

@@ -0,0 +1,242 @@
1
+<template>
2
+  <div class="container">
3
+    <h1>{{ fixmedins_name }}执业人员信息表</h1>
4
+
5
+    <div class="summary">
6
+      <div class="summary-item">
7
+        <div class="value">{{ fixmedins_code }}</div>
8
+        <div class="label">机构编码</div>
9
+      </div>
10
+      <div class="summary-item">
11
+        <div class="value">{{ info.length }} 人</div>
12
+        <div class="label">执业人员总数</div>
13
+      </div>
14
+      <div class="summary-item">
15
+        <div class="value">{{ activeCount }} 人</div>
16
+        <div class="label">正常执业</div>
17
+      </div>
18
+      <div class="summary-item">
19
+        <div class="value">{{ signedCount }} 人</div>
20
+        <div class="label">承诺书已上传</div>
21
+      </div>
22
+    </div>
23
+
24
+    <table v-if="info.length > 0">
25
+      <thead>
26
+      <tr>
27
+        <th>序号</th>
28
+        <th>执业人员编码</th>
29
+        <th>执业人员姓名</th>
30
+        <th>人员状态</th>
31
+        <th>执业类型</th>
32
+        <th>本年度记分</th>
33
+        <th>修复分数</th>
34
+        <th>承诺书</th>
35
+      </tr>
36
+      </thead>
37
+      <tbody>
38
+      <tr v-for="(item, index) in info" :key="item.dr_code">
39
+        <td>{{ index + 1 }}</td>
40
+        <td>{{ item.dr_code }}</td>
41
+        <td>{{ item.dr_name }}</td>
42
+        <td :class="{'status-active': item.dr_stas === '1', 'status-inactive': item.dr_stas !== '1'}">
43
+          {{ item.dr_stas === '1' ? '正常' : '异常' }}
44
+        </td>
45
+        <td>{{ getPractitionerType(item.prac_psn_type) }}</td>
46
+        <td>{{ item.th_roun_score }}</td>
47
+        <td>{{ item.repair_score }}</td>
48
+        <td :class="{'sign-uploaded': item.sign_flag === '1', 'sign-not-uploaded': item.sign_flag !== '1'}">
49
+          {{ item.sign_flag === '1' ? '已上传' : '未上传' }}
50
+        </td>
51
+      </tr>
52
+      </tbody>
53
+    </table>
54
+    <div v-else class="loading">
55
+      <p v-if="loading">数据加载中...</p>
56
+      <p v-else>暂无数据</p>
57
+    </div>
58
+
59
+    <div class="footer">
60
+      数据更新时间:{{ currentDate }} | {{ fixmedins_name }}执业人员信息系统
61
+    </div>
62
+  </div>
63
+</template>
64
+
65
+<script>
66
+export default {
67
+  name: "calScore",
68
+  data() {
69
+    return {
70
+      loading: true,
71
+      info: [{"admdvs":null,"chk_stas":null,"current_user":null,"dr_code":"D440229003938","dr_codes":null,"dr_name":"甘轶华","dr_stas":"1","fixmedins_code":"H44022900158","fixmedins_name":"翁源沅胜血液透析中心","medins_code":null,"medins_name":null,"page_num":null,"page_size":null,"parc_psn_type":"1","pau_stas":null,"prac_psn_type":"1","prac_psn_type_name":null,"psn_no":null,"repair_score":0,"sign_flag":"1","stt_year":null,"sulpd_cnt":null,"th_roun_score":0,"uploaded_cnt":null},{"admdvs":null,"chk_stas":null,"current_user":null,"dr_code":"D440229004651","dr_codes":null,"dr_name":"周君权","dr_stas":"1","fixmedins_code":"H44022900158","fixmedins_name":"翁源沅胜血液透析中心","medins_code":null,"medins_name":null,"page_num":null,"page_size":null,"parc_psn_type":"1","pau_stas":null,"prac_psn_type":"1","prac_psn_type_name":null,"psn_no":null,"repair_score":0,"sign_flag":"1","stt_year":null,"sulpd_cnt":null,"th_roun_score":0,"uploaded_cnt":null}],
72
+      fixmedins_name: '',
73
+      fixmedins_code: '',
74
+      currentDate: new Date().toLocaleDateString()
75
+    }
76
+  },
77
+  computed: {
78
+    activeCount() {
79
+      return this.info.filter(item => item.dr_stas === '1').length
80
+    },
81
+    signedCount() {
82
+      return this.info.filter(item => item.sign_flag === '1').length
83
+    }
84
+  },
85
+  methods: {
86
+    getPractitionerType(type) {
87
+      const types = {
88
+        '1': '医师',
89
+        '2': '护士',
90
+        '3': '药师',
91
+        '4': '技师'
92
+      }
93
+      return types[type] || '其他'
94
+    },
95
+    async fetchData() {
96
+      try {
97
+        this.loading = true;
98
+        const response = await fetch('http://127.0.0.1:9532/api/2503');
99
+        const data = await response.json();
100
+
101
+        if (data.code === 0 && data.data.info.length > 0) {
102
+          this.info = data.data.info;
103
+          this.fixmedins_name = data.data.org_config.fixmedins_name;
104
+          this.fixmedins_code = data.data.org_config.fixmedins_code;
105
+        }
106
+      } catch (error) {
107
+        console.error('Error fetching data:', error);
108
+      } finally {
109
+        this.loading = false;
110
+      }
111
+    }
112
+  },
113
+  mounted() {
114
+    this.fetchData();
115
+  }
116
+}
117
+</script>
118
+
119
+<style scoped>
120
+.container {
121
+  max-width: 1200px;
122
+  margin: 0 auto;
123
+  background: white;
124
+  border-radius: 10px;
125
+  box-shadow: 0 0 20px rgba(0,0,0,0.1);
126
+  padding: 25px;
127
+}
128
+
129
+h1 {
130
+  text-align: center;
131
+  color: #2c3e50;
132
+  margin-bottom: 30px;
133
+  padding-bottom: 15px;
134
+  border-bottom: 2px solid #3498db;
135
+}
136
+
137
+.summary {
138
+  background-color: #e8f4fe;
139
+  padding: 15px;
140
+  border-radius: 8px;
141
+  margin-bottom: 25px;
142
+  display: flex;
143
+  justify-content: space-around;
144
+  flex-wrap: wrap;
145
+}
146
+
147
+.summary-item {
148
+  text-align: center;
149
+  padding: 10px 20px;
150
+  min-width: 150px;
151
+}
152
+
153
+.summary-item .value {
154
+  font-size: 24px;
155
+  font-weight: bold;
156
+  color: #2980b9;
157
+}
158
+
159
+.summary-item .label {
160
+  font-size: 14px;
161
+  color: #7f8c8d;
162
+}
163
+
164
+table {
165
+  width: 100%;
166
+  border-collapse: collapse;
167
+  margin-top: 20px;
168
+  box-shadow: 0 2px 5px rgba(0,0,0,0.05);
169
+}
170
+
171
+th {
172
+  background-color: #3498db;
173
+  color: white;
174
+  font-weight: bold;
175
+  text-align: left;
176
+  padding: 15px;
177
+  position: sticky;
178
+  top: 0;
179
+}
180
+
181
+td {
182
+  padding: 14px 15px;
183
+  border-bottom: 1px solid #ecf0f1;
184
+}
185
+
186
+tr:nth-child(even) {
187
+  background-color: #f8f9fa;
188
+}
189
+
190
+tr:hover {
191
+  background-color: #e8f4fe;
192
+}
193
+
194
+.status-active {
195
+  color: #27ae60;
196
+  font-weight: bold;
197
+}
198
+
199
+.status-inactive {
200
+  color: #e74c3c;
201
+  font-weight: bold;
202
+}
203
+
204
+.sign-uploaded {
205
+  color: #27ae60;
206
+}
207
+
208
+.sign-not-uploaded {
209
+  color: #e74c3c;
210
+}
211
+
212
+.footer {
213
+  text-align: center;
214
+  margin-top: 30px;
215
+  color: #7f8c8d;
216
+  font-size: 14px;
217
+}
218
+
219
+.loading {
220
+  text-align: center;
221
+  padding: 50px;
222
+  font-size: 18px;
223
+  color: #7f8c8d;
224
+}
225
+
226
+@media (max-width: 768px) {
227
+  .summary {
228
+    flex-direction: column;
229
+    align-items: center;
230
+  }
231
+
232
+  .summary-item {
233
+    margin-bottom: 15px;
234
+    width: 100%;
235
+  }
236
+
237
+  table {
238
+    display: block;
239
+    overflow-x: auto;
240
+  }
241
+}
242
+</style>

+ 1 - 5
src/xt_pages/outpatientTool/components/detail.vue Zobrazit soubor

@@ -416,18 +416,14 @@ export default {
416 416
       GetSummaryDetail(params).then(response => {
417 417
         if (response.data.state == 0) {
418 418
           this.detail_loading = false
419
-
420 419
           this.$message.error(response.data.msg)
421 420
           return false
422 421
         } else {
423
-
424
-
425 422
           this.detail_loading = false
426
-
427 423
           this.tableData = []
428 424
           let tempPatients = []
429 425
           let tempPatientsTwo = []
430
-          //
426
+
431 427
           let tempData = response.data
432 428
           let allData =  response.data
433 429
            tempData = this.uniquepid(tempData)

+ 267 - 98
src/xt_pages/outpatientTool/components/personSettle.vue Zobrazit soubor

@@ -490,119 +490,288 @@ export default {
490 490
 
491 491
 
492 492
           let list = []
493
-          for (let i = 0; i < result.length; i++) {
494
-            let order = result[i]
495
-            let name = order.PsnName
496
-
497
-
498
-            let type_name = ""
499
-            if(order.TypeName == '城乡'){
500
-              let e = org_info.mdtrtarea_admvs.slice(0, 2); //就医地前3位编码
501
-              let f = order.CanBaoDi.slice(0, 2); //参保地前4位编码
502
-              let a = org_info.mdtrtarea_admvs.slice(0, 3); //就医地前3位编码
503
-              let b = order.CanBaoDi.slice(0, 3); //参保地前3位编码
504
-              let c = org_info.mdtrtarea_admvs.slice(0, 4); //就医地前4位编码
505
-              let d = order.CanBaoDi.slice(0, 4); //参保地前4位编码
506
-              if (e == f) {
507
-                if (a == b) {
508
-                  if (c == d) {
509
-                    type_name = "本地城乡"
493
+          // for (let i = 0; i < result.length; i++) {
494
+          //   let order = result[i]
495
+          //   let name = order.PsnName
496
+          //
497
+          //
498
+          //   let type_name = ""
499
+          //   if(order.TypeName == '城乡'){
500
+          //     let e = org_info.mdtrtarea_admvs.slice(0, 2); //就医地前3位编码
501
+          //     let f = order.CanBaoDi.slice(0, 2); //参保地前4位编码
502
+          //     let a = org_info.mdtrtarea_admvs.slice(0, 3); //就医地前3位编码
503
+          //     let b = order.CanBaoDi.slice(0, 3); //参保地前3位编码
504
+          //     let c = org_info.mdtrtarea_admvs.slice(0, 4); //就医地前4位编码
505
+          //     let d = order.CanBaoDi.slice(0, 4); //参保地前4位编码
506
+          //     if (e == f) {
507
+          //       if (a == b) {
508
+          //         if (c == d) {
509
+          //           type_name = "本地城乡"
510
+          //         } else {
511
+          //           type_name = "省内异地城乡"
512
+          //         }
513
+          //       } else {
514
+          //         type_name = "省内异地城乡"
515
+          //       }
516
+          //     } else {
517
+          //       type_name = "省外异地城乡"
518
+          //     }
519
+          //
520
+          //   }else if(order.TypeName == '职工') {
521
+          //     let e = org_info.mdtrtarea_admvs.slice(0, 2); //就医地前3位编码
522
+          //     let f = order.CanBaoDi.slice(0, 2); //参保地前4位编码
523
+          //     let a = org_info.mdtrtarea_admvs.slice(0, 3); //就医地前3位编码
524
+          //     let b = order.CanBaoDi.slice(0, 3); //参保地前3位编码
525
+          //     let c = org_info.mdtrtarea_admvs.slice(0, 4); //就医地前4位编码
526
+          //     let d = order.CanBaoDi.slice(0, 4); //参保地前4位编码
527
+          //     if (e == f) {
528
+          //       if (a == b) {
529
+          //         if (c == d) {
530
+          //           type_name = "本地职工"
531
+          //         } else {
532
+          //           type_name = "省内异地职工"
533
+          //         }
534
+          //       } else {
535
+          //         type_name = "省内异地职工"
536
+          //       }
537
+          //     } else {
538
+          //       type_name = "省外异地职工"
539
+          //     }
540
+          //   }
541
+          //   let total = order.Total
542
+          //
543
+          //   let xt = order.XtCount
544
+          //   let xl = order.XlCount
545
+          //   let gl = order.GlCount
546
+          //
547
+          //
548
+          //
549
+          //   let obj = {
550
+          //     '患者姓名': name,
551
+          //     '类型': type_name,
552
+          //     "合计次数": total,
553
+          //     '血透': xt,
554
+          //     "血滤": xl,
555
+          //     '灌流': gl,
556
+          //     "西药费":order.WesternMedicineFee,
557
+          //     "中成药费":order.ChinesePatentMedicineFee,
558
+          //     '耗材费': order.HealthMaterialsFee,
559
+          //     '挂号费': order.RegistrationFee,
560
+          //     '治疗费': order.TreatmentFee,
561
+          //     '检查费': order.ExaminationFee,
562
+          //     '化验费': order.LaboratoryFee,
563
+          //     '护理费': order.NursingFee,
564
+          //     '其他费': order.OtherFee,
565
+          //     '床位费': order.BedsFee,
566
+          //     '诊察费': order.ConsultationFee,
567
+          //     '中药饮片费': order.ChineseMedicineFee,
568
+          //     '一般诊疗费': order.GeneralTreatmentFee,
569
+          //     '合计': order.TotalMedicalFee,
570
+          //     "医保基金支付金额":order.Func,
571
+          //     "医保统筹基金支出":order.TC,
572
+          //     "医疗救助支付金额":order.YLJZ,
573
+          //     "大病保险报销金额":order.DBBX,
574
+          //     "公务员医疗补助支付":order.GWY,
575
+          //     "职工大额医疗费用补助支付":order.DE,
576
+          //     "企业补充医疗保险基金支付":order.BC,
577
+          //     "其他支付":order.QT,
578
+          //     '自费金额': order.SelfPay,
579
+          //     '个人账户支付': order.AcctPay,
580
+          //     '退费': order.Return,
581
+          //     '优惠': order.YouHui,
582
+          //     '应收': order.YingShou,
583
+          //     '挂账': order.GuaZhang,
584
+          //     '冲账': order.ChongZhang,
585
+          //     '实收': order.ShiShou,
586
+          //     '已收': order.YiShou,
587
+          //   }
588
+          //   list.push(obj)
589
+          //
590
+          // }
591
+
592
+            import('@/vendor/Export2Excel').then(excel => {
593
+
594
+              // // 创建主标题和日期行
595
+              // let titleRow = {
596
+              //   '': '盛友血液透析中心收入统计',
597
+              //   // 其他属性留空
598
+              // }
599
+              //
600
+              // let dateRow = {
601
+              //   '': `统计日期:${start_time}至${end_time}`,
602
+              //   // 其他属性留空
603
+              // }
604
+              // let obj2 = {
605
+              //    "":"",
606
+              //   '患者姓名': "患者姓名",
607
+              //   '类型': "类型",
608
+              //   "合计次数": "合计次数",
609
+              //   '血透': "血透",
610
+              //   "血滤": "血滤",
611
+              //   '灌流': "灌流",
612
+              //   "西药费": "西药费",
613
+              //   "中成药费": "中成药费",
614
+              //   '耗材费': "耗材费",
615
+              //   '挂号费': "挂号费",
616
+              //   '治疗费': "治疗费",
617
+              //   '检查费': "检查费",
618
+              //   '化验费': "化验费",
619
+              //   '护理费': "护理费",
620
+              //   '其他费': "其他费",
621
+              //   '床位费': "床位费",
622
+              //   '诊察费':  "诊察费",
623
+              //   '中药饮片费': "中药饮片费",
624
+              //   '一般诊疗费': "一般诊疗费",
625
+              //   '合计': "合计",
626
+              //   "医保基金支付金额":"医保基金支付金额",
627
+              //   "医保统筹基金支出":"医保统筹基金支出",
628
+              //   "医疗救助支付金额":"医疗救助支付金额",
629
+              //   "大病保险报销金额":"大病保险报销金额",
630
+              //   "公务员医疗补助支付":"公务员医疗补助支付",
631
+              //   "职工大额医疗费用补助支付":"职工大额医疗费用补助支付",
632
+              //   "企业补充医疗保险基金支付":"企业补充医疗保险基金支付",
633
+              //   "其他支付":"其他支付",
634
+              //   '自费金额': "自费金额",
635
+              //   '个人账户支付': "个人账户支付",
636
+              //   '退费': "退费",
637
+              //   '优惠': "优惠",
638
+              //   '应收': "应收",
639
+              //   '挂账': "挂账",
640
+              //   '冲账': "冲账",
641
+              //   '实收': "实收",
642
+              //   '已收': "已收",
643
+              // }
644
+
645
+              // let list = [titleRow, dateRow, obj2] // 前3行固定
646
+              let list = []
647
+              for (let i = 0; i < result.length; i++) {
648
+                let order = result[i]
649
+                let name = order.PsnName
650
+
651
+
652
+                let type_name = ""
653
+                if(order.TypeName == '城乡'){
654
+                  let e = org_info.mdtrtarea_admvs.slice(0, 2); //就医地前3位编码
655
+                  let f = order.CanBaoDi.slice(0, 2); //参保地前4位编码
656
+                  let a = org_info.mdtrtarea_admvs.slice(0, 3); //就医地前3位编码
657
+                  let b = order.CanBaoDi.slice(0, 3); //参保地前3位编码
658
+                  let c = org_info.mdtrtarea_admvs.slice(0, 4); //就医地前4位编码
659
+                  let d = order.CanBaoDi.slice(0, 4); //参保地前4位编码
660
+                  if (e == f) {
661
+                    if (a == b) {
662
+                      if (c == d) {
663
+                        type_name = "本地城乡"
664
+                      } else {
665
+                        type_name = "省内异地城乡"
666
+                      }
667
+                    } else {
668
+                      type_name = "省内异地城乡"
669
+                    }
510 670
                   } else {
511
-                    type_name = "省内异地城乡"
671
+                    type_name = "省异地城乡"
512 672
                   }
513
-                } else {
514
-                  type_name = "省内异地城乡"
515
-                }
516
-              } else {
517
-                type_name = "省外异地城乡"
518
-              }
519 673
 
520
-            }else if(order.TypeName == '职工') {
521
-              let e = org_info.mdtrtarea_admvs.slice(0, 2); //就医地前3位编码
522
-              let f = order.CanBaoDi.slice(0, 2); //参保地前4位编码
523
-              let a = org_info.mdtrtarea_admvs.slice(0, 3); //就医地前3位编码
524
-              let b = order.CanBaoDi.slice(0, 3); //参保地前3位编码
525
-              let c = org_info.mdtrtarea_admvs.slice(0, 4); //就医地前4位编码
526
-              let d = order.CanBaoDi.slice(0, 4); //参保地前4位编码
527
-              if (e == f) {
528
-                if (a == b) {
529
-                  if (c == d) {
530
-                    type_name = "本地职工"
674
+                }else if(order.TypeName == '职工') {
675
+                  let e = org_info.mdtrtarea_admvs.slice(0, 2); //就医地前3位编码
676
+                  let f = order.CanBaoDi.slice(0, 2); //参保地前4位编码
677
+                  let a = org_info.mdtrtarea_admvs.slice(0, 3); //就医地前3位编码
678
+                  let b = order.CanBaoDi.slice(0, 3); //参保地前3位编码
679
+                  let c = org_info.mdtrtarea_admvs.slice(0, 4); //就医地前4位编码
680
+                  let d = order.CanBaoDi.slice(0, 4); //参保地前4位编码
681
+                  if (e == f) {
682
+                    if (a == b) {
683
+                      if (c == d) {
684
+                        type_name = "本地职工"
685
+                      } else {
686
+                        type_name = "省内异地职工"
687
+                      }
688
+                    } else {
689
+                      type_name = "省内异地职工"
690
+                    }
531 691
                   } else {
532
-                    type_name = "省内异地职工"
692
+                    type_name = "省异地职工"
533 693
                   }
534
-                } else {
535
-                  type_name = "省内异地职工"
536 694
                 }
537
-              } else {
538
-                type_name = "省外异地职工"
539
-              }
540
-            }
541
-            let total = order.Total
542
-
543
-            let xt = order.XtCount
544
-            let xl = order.XlCount
545
-            let gl = order.GlCount
546
-
547
-
548
-            let obj = {
549
-              '患者姓名': name,
550
-              '类型': type_name,
551
-              "合计次数": total,
552
-              '血透': xt,
553
-              "血滤": xl,
554
-              '灌流': gl,
555
-              "西药费":order.WesternMedicineFee,
556
-              "中成药费":order.ChinesePatentMedicineFee,
557
-              '耗材费': order.HealthMaterialsFee,
558
-              '挂号费': order.RegistrationFee,
559
-              '治疗费': order.TreatmentFee,
560
-              '检查费': order.ExaminationFee,
561
-              '化验费': order.LaboratoryFee,
562
-              '护理费': order.NursingFee,
563
-              '其他费': order.OtherFee,
564
-              '床位费': order.BedsFee,
565
-              '诊察费': order.ConsultationFee,
566
-              '中药饮片费': order.ChineseMedicineFee,
567
-              '一般诊疗费': order.GeneralTreatmentFee,
568
-              '合计': order.TotalMedicalFee,
569
-              "医保基金支付金额":order.Func,
570
-              "医保统筹基金支出":order.TC,
571
-              "医疗救助支付金额":order.YLJZ,
572
-              "大病保险报销金额":order.DBBX,
573
-              "公务员医疗补助支付":order.GWY,
574
-              "职工大额医疗费用补助支付":order.DE,
575
-              "企业补充医疗保险基金支付":order.BC,
576
-              "其他支付":order.QT,
577
-              '自费金额': order.SelfPay,
578
-              '个人账户支付': order.AcctPay,
579
-              '退费': order.Return,
580
-              '优惠': order.YouHui,
581
-              '应收': order.YingShou,
582
-              '挂账': order.GuaZhang,
583
-              '冲账': order.ChongZhang,
584
-              '实收': order.ShiShou,
585
-              '已收': order.YiShou,
586
-            }
587
-            list.push(obj)
588
-          }
695
+                let total = order.Total
696
+
697
+                let xt = order.XtCount
698
+                let xl = order.XlCount
699
+                let gl = order.GlCount
700
+
701
+
702
+
703
+                let obj = {
704
+                  "":"",
705
+                  '患者姓名': name,
706
+                  '类型': type_name,
707
+                  "合计次数": total,
708
+                  '血透': xt,
709
+                  "血滤": xl,
710
+                  '灌流': gl,
711
+                  "西药费":order.WesternMedicineFee,
712
+                  "中成药费":order.ChinesePatentMedicineFee,
713
+                  '耗材费': order.HealthMaterialsFee,
714
+                  '挂号费': order.RegistrationFee,
715
+                  '治疗费': order.TreatmentFee,
716
+                  '检查费': order.ExaminationFee,
717
+                  '化验费': order.LaboratoryFee,
718
+                  '护理费': order.NursingFee,
719
+                  '其他费': order.OtherFee,
720
+                  '床位费': order.BedsFee,
721
+                  '诊察费': order.ConsultationFee,
722
+                  '中药饮片费': order.ChineseMedicineFee,
723
+                  '一般诊疗费': order.GeneralTreatmentFee,
724
+                  '合计': order.TotalMedicalFee,
725
+                  "医保基金支付金额":order.Func,
726
+                  "医保统筹基金支出":order.TC,
727
+                  "医疗救助支付金额":order.YLJZ,
728
+                  "大病保险报销金额":order.DBBX,
729
+                  "公务员医疗补助支付":order.GWY,
730
+                  "职工大额医疗费用补助支付":order.DE,
731
+                  "企业补充医疗保险基金支付":order.BC,
732
+                  "其他支付":order.QT,
733
+                  '自费金额': order.SelfPay,
734
+                  '个人账户支付': order.AcctPay,
735
+                  '退费': order.Return,
736
+                  '优惠': order.YouHui,
737
+                  '应收': order.YingShou,
738
+                  '挂账': order.GuaZhang,
739
+                  '冲账': order.ChongZhang,
740
+                  '实收': order.ShiShou,
741
+                  '已收': order.YiShou,
742
+                }
743
+                list.push(obj)
589 744
 
590
-          if(list.length > 0){
591
-            import('@/vendor/Export2Excel').then(excel => {
745
+              }
746
+              const multiHeader = [
747
+                ['盛友血液透析中心收入统计'],  // 第一行
748
+                [`统计日期:${start_time}至${end_time}`]  // 第二行
749
+              ]
750
+
751
+              const merges = [
752
+                'A1:AK1', // 合并标题行
753
+                'A2:AK2', // 合并日期行
754
+                // 表头行不合并
755
+              ]
756
+
757
+              // const merges = ['A1:A2', 'B1:B2', 'C1:C2', 'D1:D2', 'E1:E2','F1:F2','G1:G2','H1:H2', 'I1:I2','J1:J2','K1:K2','L1:L2','M1:M2','N1:N2','O1:O2','P1:P2','Q1:Q2','R1:R2','S1:S2','T1:T2','U1:U2','V1:V2','W1:W2','X1:X2','Y1:Y2','Z1:Z2','AA1:AA2','AB1:AB2','AC1:AC2','AD1:AD2','AE1:AE2','AF1:AF2','AG1:AG2','AH1:AH2','AI1:AI2','AJ1:AJ2','AK1:AK2']
592 758
               const tHeader = ['患者姓名', '类型', "合计次数", '血透', '血滤', "灌流", "西药费", "中成药费", '耗材费', '挂号费', '治疗费', '检查费', '化验费', '护理费', "其他费", "床位费", "诊察费", "中药饮片费", "一般诊疗费", "合计","医保基金支付金额", "医保统筹基金支出","医疗救助支付金额","大病保险报销金额","公务员医疗补助支付","职工大额医疗费用补助支付","企业补充医疗保险基金支付","其他支付","自费金额", '个人账户支付', '退费', "优惠", "应收", "挂账", "冲账", "实收", "已收"]
593 759
               const filterVal = ['患者姓名', '类型', "合计次数", '血透', '血滤', "灌流", "西药费", "中成药费", '耗材费', '挂号费', '治疗费', '检查费', '化验费', '护理费', "其他费", "床位费", "诊察费", "中药饮片费", "一般诊疗费", "合计","医保基金支付金额","医保统筹基金支出","医疗救助支付金额","大病保险报销金额","公务员医疗补助支付","职工大额医疗费用补助支付","企业补充医疗保险基金支付","其他支付", "自费金额", '个人账户支付', '退费', "优惠", "应收", "挂账", "冲账", "实收", "已收"]
594 760
 
595 761
               const data = this.formatJson(filterVal, list)
596
-              excel.export_json_to_excel({
762
+
763
+              // const data = this.formatJson(filterVal, list)
764
+
765
+              excel.export_json_to_excel23({
766
+                multiHeader,
597 767
                 header: tHeader,
598 768
                 data,
599
-                filename: '收入统计'
769
+                filename: '盛友血液透析中心收入统计',
770
+                merges,           // 应用合并单元格设置
771
+                autoWidth: true   // 自动调整列宽
600 772
               })
601 773
             })
602 774
           }
603
-
604
-
605
-        }
606 775
       })
607 776
 
608 777
 
@@ -623,7 +792,7 @@ export default {
623 792
         const tHeader = [ '患者姓名']
624 793
         const filterVal = [ '患者姓名']
625 794
         const data = this.formatJson(filterVal, list)
626
-        excel.export_json_to_excel1({
795
+        excel.export_json_to_excel({
627 796
           header: tHeader,
628 797
           data,
629 798
           filename: '汇总',