5 커밋 95567d6f78 ... ffe2db8ed9

작성자 SHA1 메시지 날짜
  陈少旭 ffe2db8ed9 Merge branch '20230223_pc_vue_new_branch' of http://git.shengws.com/csx/Vue_New into 20230223_pc_vue_new_branch 3 주 전
  陈少旭 560d38afdd 1111 3 주 전
  陈少旭 fb626f93c5 Merge branch '20230223_pc_vue_new_branch' of http://git.shengws.com/csx/Vue_New into 20230223_pc_vue_new_branch 3 주 전
  陈少旭 6fa128a2ef Merge branch '20230223_pc_vue_new_branch' of http://git.shengws.com/csx/Vue_New into 20230223_pc_vue_new_branch 3 주 전
  陈少旭 af0e9c9b10 1111 3 주 전

+ 20 - 14
src/api/common/common.js 파일 보기

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

+ 11 - 0
src/api/his/his.js 파일 보기

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 파일 보기

8
     params:params
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
 export function GetDrugChangeStock(params) {
19
 export function GetDrugChangeStock(params) {
12
   return request({
20
   return request({
13
     url: '/api/drug/change',
21
     url: '/api/drug/change',
28
 }
36
 }
29
 
37
 
30
 export function createUploadDrugCode(params){
38
 export function createUploadDrugCode(params){
31
- 
39
+
32
   return request({
40
   return request({
33
     url:"/api/drug/createuploaddrugcode",
41
     url:"/api/drug/createuploaddrugcode",
34
     method:"get",
42
     method:"get",
37
 }
45
 }
38
 
46
 
39
 export function getPatientDrugCode(params){
47
 export function getPatientDrugCode(params){
40
- 
48
+
41
   return request({
49
   return request({
42
     url:"/api/drug/getpatientdrugcode",
50
     url:"/api/drug/getpatientdrugcode",
43
     method:"Get",
51
     method:"Get",
44
     params:params,
52
     params:params,
45
   })
53
   })
46
-}
54
+}

+ 5 - 1
src/lang/zh.js 파일 보기

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

+ 3 - 0
src/router/index.js 파일 보기

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

+ 12 - 0
src/router/modules/hisTool.js 파일 보기

108
       name: 'yidiClear',
108
       name: 'yidiClear',
109
       meta: { title: 'yidiClear', noCache: true }
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
       path: '/hisTool/queryData',
123
       path: '/hisTool/queryData',
112
       component: () => import('@/xt_pages/outpatientTool/queryData'),
124
       component: () => import('@/xt_pages/outpatientTool/queryData'),
113
       name: 'queryData',
125
       name: 'queryData',

+ 77 - 0
src/vendor/Export2Excel.js 파일 보기

471
     type: "application/octet-stream"
471
     type: "application/octet-stream"
472
   }), `${filename}.${bookType}`);
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 파일 보기

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

+ 1 - 1
src/views/layout/components/Sidebar/index.vue 파일 보기

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

+ 25 - 0
src/xt_pages/Pharmacy/drugCode.vue 파일 보기

277
       this.getlist()
277
       this.getlist()
278
     },
278
     },
279
     toUpload(row) {
279
     toUpload(row) {
280
+      console.log(row)
280
       if(this.is_type == 3){
281
       if(this.is_type == 3){
281
         if (row.drug_code.length == 0) {
282
         if (row.drug_code.length == 0) {
282
           this.$message.error("追溯码不能为空");
283
           this.$message.error("追溯码不能为空");
351
           is_type:this.is_type,
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
         axios.get('http://127.0.0.1:9532/test/net', {}).then(function (response) {
379
         axios.get('http://127.0.0.1:9532/test/net', {}).then(function (response) {
355
           if (response.data.state == 0) {
380
           if (response.data.state == 0) {
356
             // that.$message.error(response.data.data.msg);
381
             // that.$message.error(response.data.data.msg);

+ 3 - 0
src/xt_pages/Pharmacy/goodGrant.vue 파일 보기

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

+ 4 - 4
src/xt_pages/drugSourceCode/goodQuery.vue 파일 보기

492
 
492
 
493
 
493
 
494
 <script>
494
 <script>
495
-// import {
496
-//   getGood
497
-// } from '@/api/his/his'
495
+import {
496
+  getGood
497
+} from '@/api/his/his'
498
 import BreadCrumb from '@/xt_pages/components/bread-crumb'
498
 import BreadCrumb from '@/xt_pages/components/bread-crumb'
499
 import axios from 'axios'
499
 import axios from 'axios'
500
 const moment = require('moment')
500
 const moment = require('moment')
687
             })
687
             })
688
 
688
 
689
           }else if(that.stock_type == 5){
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
               if (response.data.state == 0) {
691
               if (response.data.state == 0) {
692
                 that.$message.error(response.data.data.msg);
692
                 that.$message.error(response.data.data.msg);
693
                 return false
693
                 return false

+ 5 - 7
src/xt_pages/drugSourceCode/goodStock.vue 파일 보기

205
 
205
 
206
 <script>
206
 <script>
207
 import BreadCrumb from '@/xt_pages/components/bread-crumb'
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
 const moment = require('moment')
209
 const moment = require('moment')
210
-import { getDictionaryDataConfig } from "@/utils/data";
211
 import { uParseTime } from '@/utils/tools'
210
 import { uParseTime } from '@/utils/tools'
212
 import axios from 'axios'
211
 import axios from 'axios'
213
-
214
 export default {
212
 export default {
215
   components: {
213
   components: {
216
     BreadCrumb
214
     BreadCrumb
236
         { id: 2, name: '未变更' },
234
         { id: 2, name: '未变更' },
237
       ],
235
       ],
238
       crumbs: [
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
                 }).catch(() => {
301
                 }).catch(() => {
304
                 })
302
                 })
305
               }else{
303
               }else{
306
-                that.GetDrugStock()
304
+                that.GetGoodStock()
307
               }
305
               }
308
             }
306
             }
309
           }).catch(function(error) {
307
           }).catch(function(error) {
466
                 }).catch(() => {
464
                 }).catch(() => {
467
                 })
465
                 })
468
               }else{
466
               }else{
469
-                that.GetDrugStock()
467
+                that.GetGoodStock()
470
               }
468
               }
471
             }
469
             }
472
           }).catch(function(error) {
470
           }).catch(function(error) {

+ 69 - 2
src/xt_pages/outpatientDoctorStation/doctorDesk.vue 파일 보기

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

+ 242 - 0
src/xt_pages/outpatientTool/calScore.vue 파일 보기

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 파일 보기

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

+ 267 - 98
src/xt_pages/outpatientTool/components/personSettle.vue 파일 보기

490
 
490
 
491
 
491
 
492
           let list = []
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
                   } else {
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
                   } else {
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
               const tHeader = ['患者姓名', '类型', "合计次数", '血透', '血滤', "灌流", "西药费", "中成药费", '耗材费', '挂号费', '治疗费', '检查费', '化验费', '护理费', "其他费", "床位费", "诊察费", "中药饮片费", "一般诊疗费", "合计","医保基金支付金额", "医保统筹基金支出","医疗救助支付金额","大病保险报销金额","公务员医疗补助支付","职工大额医疗费用补助支付","企业补充医疗保险基金支付","其他支付","自费金额", '个人账户支付', '退费', "优惠", "应收", "挂账", "冲账", "实收", "已收"]
758
               const tHeader = ['患者姓名', '类型', "合计次数", '血透', '血滤', "灌流", "西药费", "中成药费", '耗材费', '挂号费', '治疗费', '检查费', '化验费', '护理费', "其他费", "床位费", "诊察费", "中药饮片费", "一般诊疗费", "合计","医保基金支付金额", "医保统筹基金支出","医疗救助支付金额","大病保险报销金额","公务员医疗补助支付","职工大额医疗费用补助支付","企业补充医疗保险基金支付","其他支付","自费金额", '个人账户支付', '退费', "优惠", "应收", "挂账", "冲账", "实收", "已收"]
593
               const filterVal = ['患者姓名', '类型', "合计次数", '血透', '血滤', "灌流", "西药费", "中成药费", '耗材费', '挂号费', '治疗费', '检查费', '化验费', '护理费', "其他费", "床位费", "诊察费", "中药饮片费", "一般诊疗费", "合计","医保基金支付金额","医保统筹基金支出","医疗救助支付金额","大病保险报销金额","公务员医疗补助支付","职工大额医疗费用补助支付","企业补充医疗保险基金支付","其他支付", "自费金额", '个人账户支付', '退费', "优惠", "应收", "挂账", "冲账", "实收", "已收"]
759
               const filterVal = ['患者姓名', '类型', "合计次数", '血透', '血滤', "灌流", "西药费", "中成药费", '耗材费', '挂号费', '治疗费', '检查费', '化验费', '护理费', "其他费", "床位费", "诊察费", "中药饮片费", "一般诊疗费", "合计","医保基金支付金额","医保统筹基金支出","医疗救助支付金额","大病保险报销金额","公务员医疗补助支付","职工大额医疗费用补助支付","企业补充医疗保险基金支付","其他支付", "自费金额", '个人账户支付', '退费', "优惠", "应收", "挂账", "冲账", "实收", "已收"]
594
 
760
 
595
               const data = this.formatJson(filterVal, list)
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
                 header: tHeader,
767
                 header: tHeader,
598
                 data,
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
         const tHeader = [ '患者姓名']
792
         const tHeader = [ '患者姓名']
624
         const filterVal = [ '患者姓名']
793
         const filterVal = [ '患者姓名']
625
         const data = this.formatJson(filterVal, list)
794
         const data = this.formatJson(filterVal, list)
626
-        excel.export_json_to_excel1({
795
+        excel.export_json_to_excel({
627
           header: tHeader,
796
           header: tHeader,
628
           data,
797
           data,
629
           filename: '汇总',
798
           filename: '汇总',