Browse Source

修复院内统计的bug

xiaochan 3 years ago
parent
commit
0a3a2f072e

+ 452 - 446
src/router/modules/dashboard.js

@@ -1,467 +1,473 @@
 import Layout from '@/layout/index.vue'
 import MenuBox from '@/components/menu/index.vue'
-import { createNameComponent } from '../createNode'
+import {createNameComponent} from '../createNode'
+
 const route = [
-  {
-    path: '/login',
-    component: createNameComponent(() => import('@/views/system/login.vue')),
-    hideMenu: true,
-    meta: { title: '登录', hideTabs: true },
-  },
-  {
-    path: '/',
-    component: Layout,
-    redirect: '/dashboard',
-    meta: { title: '工作集成平台', icon: 'el-icon-menu' },
-    children: [
-      {
-        path: 'dashboard',
-        component: createNameComponent(() => import('@/views/dashboard/index.vue')),
-        meta: { title: '首页', icon: 'el-icon-menu', hideClose: true },
-      },
-    ],
-  },
-  // 这里以下都是临时新加的
-  {
-    path: '/medins',
-    component: Layout,
-    meta: { title: '医保模块', icon: 'iconfont icon-yibao' },
-    children: [
-      {
-        path: 'inpatient',
-        component: createNameComponent(() => import('@/views/medical-insurance/inpatient/Home.vue')),
-        meta: { title: '住院医保', icon: 'iconfont icon-yibao' },
-        redirect: '/medins/inpatient/admRegistration',
+    {
+        path: '/login',
+        component: createNameComponent(() => import('@/views/system/login.vue')),
+        hideMenu: true,
+        meta: {title: '登录', hideTabs: true},
+    },
+    {
+        path: '/',
+        component: Layout,
+        redirect: '/dashboard',
+        meta: {title: '工作集成平台', icon: 'el-icon-menu'},
         children: [
-          {
-            path: 'admRegistration',
-            component: createNameComponent(() => import('@/views/medical-insurance/inpatient/AdmRegistration.vue')),
-            meta: { title: '医保入院登记', icon: 'iconfont icon-ruyuandengji' },
-          },
-          {
-            path: 'inHospFeeUpload',
-            component: createNameComponent(() => import('@/views/medical-insurance/inpatient/InHospFeeUpload.vue')),
-            meta: { title: '医保费用上传', icon: 'iconfont icon-feiyongshangchuan' },
-          },
-          {
-            path: 'discSettlement',
-            component: createNameComponent(() => import('@/views/medical-insurance/inpatient/DiscSettlement.vue')),
-            meta: { title: '医保出院结算', icon: 'iconfont icon-chuyuan' },
-          },
-          {
-            path: 'medInsVerification',
-            component: createNameComponent(() => import('@/views/medical-insurance/inpatient/MedInsVerification.vue')),
-            meta: { title: '医保身份审核', icon: 'iconfont icon-yibaoshenhe' },
-          },
+            {
+                path: 'dashboard',
+                component: createNameComponent(() => import('@/views/dashboard/index.vue')),
+                meta: {title: '首页', icon: 'el-icon-menu', hideClose: true},
+            },
         ],
-      },
-      {
-        path: 'outpatient',
-        component: MenuBox,
-        meta: { title: '门诊医保', icon: 'iconfont icon-menzhenteshubingdingdianbiangeng2' },
+    },
+    // 这里以下都是临时新加的
+    {
+        path: '/medins',
+        component: Layout,
+        meta: {title: '医保模块', icon: 'iconfont icon-yibao'},
         children: [
-          {
-            path: 'mzRegister',
-            component: createNameComponent(() => import('@/views/medical-insurance/outpatient/MzRegister.vue')),
-            meta: { title: '门诊登记', icon: 'iconfont icon-menzhenteshubingdingdianbiangeng2' },
-          },
-          {
-            path: 'spcSpltryRcrd',
-            component: createNameComponent(() => import('@/views/medical-insurance/outpatient/SpcSpltryRcrd.vue')),
-            meta: { title: '门特补录', icon: 'iconfont icon-menzhenteshubingdingdianbiangeng2' },
-          },
-          {
-            path: 'spcChrRcd',
-            component: createNameComponent(() => import('@/views/medical-insurance/outpatient/SpcChrRcd.vue')),
-            meta: { title: '慢特病备案', icon: 'iconfont icon-menzhenteshubingdingdianbiangeng2' },
-          },
+            {
+                path: 'inpatient',
+                component: createNameComponent(() => import('@/views/medical-insurance/inpatient/Home.vue')),
+                meta: {title: '住院医保', icon: 'iconfont icon-yibao'},
+                redirect: '/medins/inpatient/admRegistration',
+                children: [
+                    {
+                        path: 'admRegistration',
+                        component: createNameComponent(() => import('@/views/medical-insurance/inpatient/AdmRegistration.vue')),
+                        meta: {title: '医保入院登记', icon: 'iconfont icon-ruyuandengji'},
+                    },
+                    {
+                        path: 'inHospFeeUpload',
+                        component: createNameComponent(() => import('@/views/medical-insurance/inpatient/InHospFeeUpload.vue')),
+                        meta: {title: '医保费用上传', icon: 'iconfont icon-feiyongshangchuan'},
+                    },
+                    {
+                        path: 'discSettlement',
+                        component: createNameComponent(() => import('@/views/medical-insurance/inpatient/DiscSettlement.vue')),
+                        meta: {title: '医保出院结算', icon: 'iconfont icon-chuyuan'},
+                    },
+                    {
+                        path: 'medInsVerification',
+                        component: createNameComponent(() => import('@/views/medical-insurance/inpatient/MedInsVerification.vue')),
+                        meta: {title: '医保身份审核', icon: 'iconfont icon-yibaoshenhe'},
+                    },
+                ],
+            },
+            {
+                path: 'outpatient',
+                component: MenuBox,
+                meta: {title: '门诊医保', icon: 'iconfont icon-menzhenteshubingdingdianbiangeng2'},
+                children: [
+                    {
+                        path: 'mzRegister',
+                        component: createNameComponent(() => import('@/views/medical-insurance/outpatient/MzRegister.vue')),
+                        meta: {title: '门诊登记', icon: 'iconfont icon-menzhenteshubingdingdianbiangeng2'},
+                    },
+                    {
+                        path: 'spcSpltryRcrd',
+                        component: createNameComponent(() => import('@/views/medical-insurance/outpatient/SpcSpltryRcrd.vue')),
+                        meta: {title: '门特补录', icon: 'iconfont icon-menzhenteshubingdingdianbiangeng2'},
+                    },
+                    {
+                        path: 'spcChrRcd',
+                        component: createNameComponent(() => import('@/views/medical-insurance/outpatient/SpcChrRcd.vue')),
+                        meta: {title: '慢特病备案', icon: 'iconfont icon-menzhenteshubingdingdianbiangeng2'},
+                    },
+                ],
+            },
+            {
+                path: 'qryManage',
+                component: MenuBox,
+                meta: {title: '查询与管理', icon: 'iconfont icon-menzhenteshubingdingdianbiangeng2'},
+                children: [
+                    {
+                        path: 'catalogue',
+                        component: createNameComponent(() => import('@/views/medical-insurance/allpatient/Catalogue.vue')),
+                        meta: {title: '目录管理', icon: 'iconfont icon-menzhenteshubingdingdianbiangeng2'},
+                    },
+                    {
+                        path: 'psnInfo',
+                        component: createNameComponent(() => import('@/views/medical-insurance/allpatient/PsnInfo.vue')),
+                        meta: {title: '医保身份查询', icon: 'iconfont icon-menzhenteshubingdingdianbiangeng2'},
+                    },
+                    {
+                        path: 'inhospInfo',
+                        component: createNameComponent(() => import('@/views/medical-insurance/allpatient/InhospInfo.vue')),
+                        meta: {title: '在院查询', icon: 'iconfont icon-menzhenteshubingdingdianbiangeng2'},
+                    },
+                    {
+                        path: 'visitInfo',
+                        component: createNameComponent(() => import('@/views/medical-insurance/allpatient/VisitInfo.vue')),
+                        meta: {title: '就诊信息查询', icon: 'iconfont icon-menzhenteshubingdingdianbiangeng2'},
+                    },
+                    {
+                        path: 'siSettleDetailList',
+                        component: createNameComponent(() => import('@/views/medical-insurance/allpatient/SiSettleDetailList.vue')),
+                        meta: {title: '医保结算单', icon: 'iconfont icon-zhuyuanqingdan'},
+                    },
+                    {
+                        path: 'setlInfo',
+                        component: createNameComponent(() => import('@/views/medical-insurance/allpatient/SetlInfo.vue')),
+                        meta: {title: '结算与对账', icon: 'iconfont icon-menzhenteshubingdingdianbiangeng2'},
+                    },
+                ],
+            },
         ],
-      },
-      {
-        path: 'qryManage',
-        component: MenuBox,
-        meta: { title: '查询与管理', icon: 'iconfont icon-menzhenteshubingdingdianbiangeng2' },
+    },
+    {
+        path: '/inspections',
+        component: Layout,
+        meta: {title: '检验检查', icon: 'iconfont icon-jiancha'},
         children: [
-          {
-            path: 'catalogue',
-            component: createNameComponent(() => import('@/views/medical-insurance/allpatient/Catalogue.vue')),
-            meta: { title: '目录管理', icon: 'iconfont icon-menzhenteshubingdingdianbiangeng2' },
-          },
-          {
-            path: 'psnInfo',
-            component: createNameComponent(() => import('@/views/medical-insurance/allpatient/PsnInfo.vue')),
-            meta: { title: '医保身份查询', icon: 'iconfont icon-menzhenteshubingdingdianbiangeng2' },
-          },
-          {
-            path: 'inhospInfo',
-            component: createNameComponent(() => import('@/views/medical-insurance/allpatient/InhospInfo.vue')),
-            meta: { title: '在院查询', icon: 'iconfont icon-menzhenteshubingdingdianbiangeng2' },
-          },
-          {
-            path: 'visitInfo',
-            component: createNameComponent(() => import('@/views/medical-insurance/allpatient/VisitInfo.vue')),
-            meta: { title: '就诊信息查询', icon: 'iconfont icon-menzhenteshubingdingdianbiangeng2' },
-          },
-          {
-            path: 'siSettleDetailList',
-            component: createNameComponent(() => import('@/views/medical-insurance/allpatient/SiSettleDetailList.vue')),
-            meta: { title: '医保结算单', icon: 'iconfont icon-zhuyuanqingdan' },
-          },
-          {
-            path: 'setlInfo',
-            component: createNameComponent(() => import('@/views/medical-insurance/allpatient/SetlInfo.vue')),
-            meta: { title: '结算与对账', icon: 'iconfont icon-menzhenteshubingdingdianbiangeng2' },
-          },
+            {
+                path: 'inspectionReportIndex',
+                component: createNameComponent(() => import('@/views/examination/InspectionReportIndex.vue')),
+                meta: {title: '检验报告', icon: 'iconfont icon-jianyanbaogao'},
+            },
+            {
+                path: 'covidExamResult',
+                component: createNameComponent(() => import('@/views/examination/CovidExamResult.vue')),
+                meta: {title: '新冠核酸检测报告', icon: 'iconfont icon-xinguan'},
+            },
+            {
+                path: 'healthCrdUpld',
+                component: createNameComponent(() => import('@/views/examination/UploadToHealthCard.vue')),
+                meta: {title: '健康证对接', icon: 'iconfont icon-jiankangzheng'},
+            },
+            {
+                path: 'bookableManagement',
+                component: createNameComponent(() => import('@/views/examination/BookableManagement.vue')),
+                meta: {title: '检验检查预约维护', icon: 'iconfont icon-yuyuedingdan'},
+            },
         ],
-      },
-    ],
-  },
-  {
-    path: '/inspections',
-    component: Layout,
-    meta: { title: '检验检查', icon: 'iconfont icon-jiancha' },
-    children: [
-      {
-        path: 'inspectionReportIndex',
-        component: createNameComponent(() => import('@/views/examination/InspectionReportIndex.vue')),
-        meta: { title: '检验报告', icon: 'iconfont icon-jianyanbaogao' },
-      },
-      {
-        path: 'covidExamResult',
-        component: createNameComponent(() => import('@/views/examination/CovidExamResult.vue')),
-        meta: { title: '新冠核酸检测报告', icon: 'iconfont icon-xinguan' },
-      },
-      {
-        path: 'healthCrdUpld',
-        component: createNameComponent(() => import('@/views/examination/UploadToHealthCard.vue')),
-        meta: { title: '健康证对接', icon: 'iconfont icon-jiankangzheng' },
-      },
-      {
-        path: 'bookableManagement',
-        component: createNameComponent(() => import('@/views/examination/BookableManagement.vue')),
-        meta: { title: '检验检查预约维护', icon: 'iconfont icon-yuyuedingdan' },
-      },
-    ],
-  },
-  {
-    path: '/medTecMod',
-    component: Layout,
-    meta: { title: '医技模块', icon: 'iconfont icon-yijimokuai' },
-    children: [
-      {
-        path: 'yiJiFeiYongLuRu',
-        component: createNameComponent(() => import('@/views/med-tec-mod/YiJiFeiYongLuRu.vue')),
-        meta: { title: '医技费用录入', icon: 'iconfont icon-yiJiFeiYongLuRu' },
-      },
-      {
-        path: 'queRenYiZhuShouFei',
-        component: createNameComponent(() => import('@/views/med-tec-mod/QueRenYiZhuShouFei.vue')),
-        meta: { title: '确认医嘱费用', icon: 'iconfont icon-queRenYiZhuShouFei' },
-      },
-      {
-        path: 'menZhenXiangMu',
-        component: createNameComponent(() => import('@/views/med-tec-mod/MenZhenXiangMu.vue')),
-        meta: { title: '门诊项目确认或取消', icon: 'iconfont icon-menZhenXiangMu' },
-      },
-    ],
-  },
-  {
-    path: '/dictionary',
-    component: Layout,
-    meta: { title: '字典准备', icon: 'iconfont icon-xiangmuzidian' },
-    children: [
-      {
-        path: 'projectMaintain',
-        component: createNameComponent(() => import('@/views/dictionary/XmDicFix.vue')),
-        meta: { title: '项目字典维护', icon: 'iconfont icon-weihu' },
-      },
-      {
-        path: 'prjctMdcnMtch',
-        component: createNameComponent(() => import('@/views/dictionary/NationalSiMatch.vue')),
-        meta: { title: '项目药品匹配', icon: 'iconfont icon-pipei' },
-      },
-      {
-        path: 'deptMatch',
-        component: createNameComponent(() => import('@/views/dictionary/YiBaoKeShiPiPei.vue')),
-        meta: { title: '医保科室匹配', icon: 'iconfont icon-pipei' },
-      },
-    ],
-  },
-  {
-    path: '/reports',
-    component: Layout,
-    meta: { title: '报表模块', icon: 'iconfont icon-baobiaomokuai' },
-    children: [
-      {
-        path: 'deptPriodRprt',
-        component: createNameComponent(() => import('@/views/reports/DeptPeriodReport.vue')),
-        meta: { title: '科室时段报表', icon: 'iconfont icon-shiduanfenxi' },
-      },
-      {
-        path: 'infntChrgRprt',
-        component: createNameComponent(() => import('@/views/reports/InfantFeeReport.vue')),
-        meta: { title: '婴儿收费统计', icon: 'iconfont icon-yinger' },
-      },
-      {
-        path: 'mdcnStckCnt',
-        component: createNameComponent(() => import('@/views/reports/MedicineStockCount.vue')),
-        meta: { title: '药品盘点', icon: 'iconfont icon-yaopin' },
-      },
-      {
-        path: 'clockinStatistics',
-        component: createNameComponent(() => import('@/views/reports/ClockinData.vue')),
-        meta: { title: '打卡数据', icon: 'iconfont icon-dakashuju' },
-      },
-      {
-        path: 'covidVaccinateAppointment',
-        component: createNameComponent(() => import('@/views/reports/covid-vaccinate/CovidVaccinateAppointment.vue')),
-        meta: { title: '新冠接种预约', icon: 'iconfont icon-xinguanjiezhong' },
-      },
-      {
-        path: 'inquiryOfConsultationFee',
-        component: createNameComponent(() => import('@/views/reports/InquiryOfConsultationFee.vue')),
-        meta: { title: '查询会诊费用', icon: 'iconfont icon-feiyongshenqing' },
-      },
-      {
-        path: 'consumablesStatistics',
-        component: createNameComponent(() => import('@/views/reports/ConsumablesStatistics.vue')),
-        meta: { title: '耗材使用统计', icon: 'iconfont icon-haocaitongji' },
-      },
-      {
-        path: 'illegalChargesAnalysis',
-        component: createNameComponent(() => import('@/views/reports/IllegalChargesAnalysis.vue')),
-        meta: { title: '违规收费分析', icon: 'iconfont icon-weiguishoufeifenxi' },
-      },
-      {
-        path: 'queryPayService',
-        component: createNameComponent(() => import('@/views/reports/QueryPayService.vue')),
-        meta: { title: '收费项目', icon: 'iconfont icon-shoufeixiangmu' },
-      },
-      {
-        path: 'drugInquiry',
-        component: createNameComponent(() => import('@/views/reports/DrugInquiry.vue')),
-        meta: { title: '查询药品', icon: 'iconfont icon-chaxunyaopin' },
-      },
-      {
-        path: 'keShiShouRuTongJi',
-        component: createNameComponent(() => import('@/views/reports/KeShiShouRuTongJi.vue')),
-        meta: { title: '科室收入统计', icon: 'iconfont icon-keShiShouRuTongJi' },
-      },
-    ],
-  },
-  {
-    path: '/dataModify',
-    component: Layout,
-    meta: { title: '数据修改', icon: 'iconfont icon-shujuxiugai' },
-    children: [
-      {
-        path: 'yzActOrderModify',
-        component: createNameComponent(() => import('@/views/data-modify/YzActOrderModify.vue')),
-        meta: { title: '医嘱修改申请', icon: 'iconfont icon-yizhu' },
-      },
-      {
-        path: 'zyChargeFeeModify',
-        component: createNameComponent(() => import('@/views/data-modify/ZyChargeFeeModify.vue')),
-        meta: { title: '住院费用修改', icon: 'iconfont icon-zhuyuanfeiyongfenxi' },
-      },
-      {
-        path: 'yzActOrderModifyVerify',
-        component: createNameComponent(() => import('@/views/data-modify/YzActOrderModifyVerify.vue')),
-        meta: { title: '医嘱修改审核', icon: 'iconfont icon-yizhuxiugaishenhe' },
-      },
-      {
-        path: 'yzTemperatureModify',
-        component: createNameComponent(() => import('@/views/data-modify/YzTemperatureModify.vue')),
-        meta: { title: '护理记录单修改', icon: 'iconfont icon-hulijiludan' },
-      },
-      {
-        path: 'secondFefund',
-        component: createNameComponent(() => import('@/views/data-modify/SecondFefund.vue')),
-        meta: { title: '二次退费', icon: 'iconfont icon-ercituifei' },
-      },
-      {
-        path: 'queryOfReceiptDetails',
-        component: createNameComponent(() => import('@/views/data-modify/QueryOfReceiptDetails.vue')),
-        meta: { title: '入库明细查询', icon: 'iconfont icon-rukuguanli' },
-      },
-      {
-        path: 'deliveryDetailsQuery',
-        component: createNameComponent(() => import('@/views/data-modify/DeliveryDetailsQuery.vue')),
-        meta: { title: '出库明细查询', icon: 'iconfont icon-chukuguanli' },
-      },
-    ],
-  },
-
-  {
-    path: '/inpatient',
-    component: Layout,
-    meta: { title: '住院模块', icon: 'iconfont icon-yiyuan' },
-    children: [
-      {
-        path: 'makeDbzFees',
-        component: createNameComponent(() => import('@/views/hospitalization/MakeDbzFees.vue')),
-        meta: { title: '单病种费用生成', icon: 'iconfont icon-danbingzhong' },
-      },
-      {
-        path: 'advrsEvnt',
-        component: MenuBox,
-        meta: { title: '不良事件', icon: 'iconfont icon-buliangshijian1' },
+    },
+    {
+        path: '/medTecMod',
+        component: Layout,
+        meta: {title: '医技模块', icon: 'iconfont icon-yijimokuai'},
         children: [
-          {
-            path: 'fillAdverseEvent',
-            component: createNameComponent(() => import('@/views/hospitalization/adverse-event/FillAderverseEvent.vue')),
-            meta: { title: '不良事件上报', icon: 'iconfont icon-buliangshijian' },
-          },
-          {
-            path: 'dealAdverseEvent',
-            component: createNameComponent(() => import('@/views/hospitalization/adverse-event/DealAdverseEvent.vue')),
-            meta: { title: '不良事件处理', icon: 'iconfont icon-buliangshijianchuli' },
-          },
-          {
-            path: 'allAdverseEvent',
-            component: createNameComponent(() => import('@/views/hospitalization/adverse-event/AllAdverseEvent.vue')),
-            meta: { title: '不良事件汇总', icon: 'iconfont icon-buliangshijianhuizong' },
-          },
+            {
+                path: 'yiJiFeiYongLuRu',
+                component: createNameComponent(() => import('@/views/med-tec-mod/YiJiFeiYongLuRu.vue')),
+                meta: {title: '医技费用录入', icon: 'iconfont icon-yiJiFeiYongLuRu'},
+            },
+            {
+                path: 'queRenYiZhuShouFei',
+                component: createNameComponent(() => import('@/views/med-tec-mod/QueRenYiZhuShouFei.vue')),
+                meta: {title: '确认医嘱费用', icon: 'iconfont icon-queRenYiZhuShouFei'},
+            },
+            {
+                path: 'menZhenXiangMu',
+                component: createNameComponent(() => import('@/views/med-tec-mod/MenZhenXiangMu.vue')),
+                meta: {title: '门诊项目确认或取消', icon: 'iconfont icon-menZhenXiangMu'},
+            },
         ],
-      },
-      {
-        path: 'casefrntsht',
-        component: MenuBox,
-        meta: { title: '病案首页', icon: 'iconfont icon-binganshouye' },
+    },
+    {
+        path: '/dictionary',
+        component: Layout,
+        meta: {title: '字典准备', icon: 'iconfont icon-xiangmuzidian'},
+        children: [
+            {
+                path: 'projectMaintain',
+                component: createNameComponent(() => import('@/views/dictionary/XmDicFix.vue')),
+                meta: {title: '项目字典维护', icon: 'iconfont icon-weihu'},
+            },
+            {
+                path: 'prjctMdcnMtch',
+                component: createNameComponent(() => import('@/views/dictionary/NationalSiMatch.vue')),
+                meta: {title: '项目药品匹配', icon: 'iconfont icon-pipei'},
+            },
+            {
+                path: 'deptMatch',
+                component: createNameComponent(() => import('@/views/dictionary/YiBaoKeShiPiPei.vue')),
+                meta: {title: '医保科室匹配', icon: 'iconfont icon-pipei'},
+            },
+        ],
+    },
+    {
+        path: '/reports',
+        component: Layout,
+        meta: {title: '报表模块', icon: 'iconfont icon-baobiaomokuai'},
+        children: [
+            {
+                path: 'deptPriodRprt',
+                component: createNameComponent(() => import('@/views/reports/DeptPeriodReport.vue')),
+                meta: {title: '科室时段报表', icon: 'iconfont icon-shiduanfenxi'},
+            },
+            {
+                path: 'infntChrgRprt',
+                component: createNameComponent(() => import('@/views/reports/InfantFeeReport.vue')),
+                meta: {title: '婴儿收费统计', icon: 'iconfont icon-yinger'},
+            },
+            {
+                path: 'mdcnStckCnt',
+                component: createNameComponent(() => import('@/views/reports/MedicineStockCount.vue')),
+                meta: {title: '药品盘点', icon: 'iconfont icon-yaopin'},
+            },
+            {
+                path: 'clockinStatistics',
+                component: createNameComponent(() => import('@/views/reports/ClockinData.vue')),
+                meta: {title: '打卡数据', icon: 'iconfont icon-dakashuju'},
+            },
+            {
+                path: 'covidVaccinateAppointment',
+                component: createNameComponent(() => import('@/views/reports/covid-vaccinate/CovidVaccinateAppointment.vue')),
+                meta: {title: '新冠接种预约', icon: 'iconfont icon-xinguanjiezhong'},
+            },
+            {
+                path: 'inquiryOfConsultationFee',
+                component: createNameComponent(() => import('@/views/reports/InquiryOfConsultationFee.vue')),
+                meta: {title: '查询会诊费用', icon: 'iconfont icon-feiyongshenqing'},
+            },
+            {
+                path: 'consumablesStatistics',
+                component: createNameComponent(() => import('@/views/reports/ConsumablesStatistics.vue')),
+                meta: {title: '耗材使用统计', icon: 'iconfont icon-haocaitongji'},
+            },
+            {
+                path: 'illegalChargesAnalysis',
+                component: createNameComponent(() => import('@/views/reports/IllegalChargesAnalysis.vue')),
+                meta: {title: '违规收费分析', icon: 'iconfont icon-weiguishoufeifenxi'},
+            },
+            {
+                path: 'queryPayService',
+                component: createNameComponent(() => import('@/views/reports/QueryPayService.vue')),
+                meta: {title: '收费项目', icon: 'iconfont icon-shoufeixiangmu'},
+            },
+            {
+                path: 'drugInquiry',
+                component: createNameComponent(() => import('@/views/reports/DrugInquiry.vue')),
+                meta: {title: '查询药品', icon: 'iconfont icon-chaxunyaopin'},
+            },
+            {
+                path: 'yuanNeiTongJi',
+                component: createNameComponent(() => import('@/views/reports/YuanNeiTongJi.vue')),
+                meta: {title: '院内统计', icon: 'iconfont icon-haocaitongji'},
+            },
+            {
+                path: 'keShiShouRuTongJi',
+                component: createNameComponent(() => import('@/views/reports/KeShiShouRuTongJi.vue')),
+                meta: {title: '科室收入统计', icon: 'iconfont icon-keShiShouRuTongJi'},
+            },
+        ],
+    },
+    {
+        path: '/dataModify',
+        component: Layout,
+        meta: {title: '数据修改', icon: 'iconfont icon-shujuxiugai'},
+        children: [
+            {
+                path: 'yzActOrderModify',
+                component: createNameComponent(() => import('@/views/data-modify/YzActOrderModify.vue')),
+                meta: {title: '医嘱修改申请', icon: 'iconfont icon-yizhu'},
+            },
+            {
+                path: 'zyChargeFeeModify',
+                component: createNameComponent(() => import('@/views/data-modify/ZyChargeFeeModify.vue')),
+                meta: {title: '住院费用修改', icon: 'iconfont icon-zhuyuanfeiyongfenxi'},
+            },
+            {
+                path: 'yzActOrderModifyVerify',
+                component: createNameComponent(() => import('@/views/data-modify/YzActOrderModifyVerify.vue')),
+                meta: {title: '医嘱修改审核', icon: 'iconfont icon-yizhuxiugaishenhe'},
+            },
+            {
+                path: 'yzTemperatureModify',
+                component: createNameComponent(() => import('@/views/data-modify/YzTemperatureModify.vue')),
+                meta: {title: '护理记录单修改', icon: 'iconfont icon-hulijiludan'},
+            },
+            {
+                path: 'secondFefund',
+                component: createNameComponent(() => import('@/views/data-modify/SecondFefund.vue')),
+                meta: {title: '二次退费', icon: 'iconfont icon-ercituifei'},
+            },
+            {
+                path: 'queryOfReceiptDetails',
+                component: createNameComponent(() => import('@/views/data-modify/QueryOfReceiptDetails.vue')),
+                meta: {title: '入库明细查询', icon: 'iconfont icon-rukuguanli'},
+            },
+            {
+                path: 'deliveryDetailsQuery',
+                component: createNameComponent(() => import('@/views/data-modify/DeliveryDetailsQuery.vue')),
+                meta: {title: '出库明细查询', icon: 'iconfont icon-chukuguanli'},
+            },
+        ],
+    },
+
+    {
+        path: '/inpatient',
+        component: Layout,
+        meta: {title: '住院模块', icon: 'iconfont icon-yiyuan'},
         children: [
-          {
-            path: 'fillCaseFrontSheet',
-            component: createNameComponent(() => import('@/views/hospitalization/case-front-sheet/FillCaseFrontSheet.vue')),
-            meta: { title: '病案首页填写', icon: 'iconfont icon-binganshouyetianxie' },
-          },
-          {
-            path: 'allCaseFrontSheet',
-            component: createNameComponent(() => import('@/views/hospitalization/case-front-sheet/AllCaseFrontSheet.vue')),
-            meta: { title: '病案首页汇总', icon: 'iconfont icon-binganshouye3x' },
-          },
-          {
-            path: 'jieShouHuiZhen',
-            component: createNameComponent(() => import('@/views/hospitalization/case-front-sheet/JieShouHuiZhen.vue')),
-            meta: { title: '接收会诊', icon: 'iconfont icon-jieshouhuizhen' },
-          },
+            {
+                path: 'makeDbzFees',
+                component: createNameComponent(() => import('@/views/hospitalization/MakeDbzFees.vue')),
+                meta: {title: '单病种费用生成', icon: 'iconfont icon-danbingzhong'},
+            },
+            {
+                path: 'advrsEvnt',
+                component: MenuBox,
+                meta: {title: '不良事件', icon: 'iconfont icon-buliangshijian1'},
+                children: [
+                    {
+                        path: 'fillAdverseEvent',
+                        component: createNameComponent(() => import('@/views/hospitalization/adverse-event/FillAderverseEvent.vue')),
+                        meta: {title: '不良事件上报', icon: 'iconfont icon-buliangshijian'},
+                    },
+                    {
+                        path: 'dealAdverseEvent',
+                        component: createNameComponent(() => import('@/views/hospitalization/adverse-event/DealAdverseEvent.vue')),
+                        meta: {title: '不良事件处理', icon: 'iconfont icon-buliangshijianchuli'},
+                    },
+                    {
+                        path: 'allAdverseEvent',
+                        component: createNameComponent(() => import('@/views/hospitalization/adverse-event/AllAdverseEvent.vue')),
+                        meta: {title: '不良事件汇总', icon: 'iconfont icon-buliangshijianhuizong'},
+                    },
+                ],
+            },
+            {
+                path: 'casefrntsht',
+                component: MenuBox,
+                meta: {title: '病案首页', icon: 'iconfont icon-binganshouye'},
+                children: [
+                    {
+                        path: 'fillCaseFrontSheet',
+                        component: createNameComponent(() => import('@/views/hospitalization/case-front-sheet/FillCaseFrontSheet.vue')),
+                        meta: {title: '病案首页填写', icon: 'iconfont icon-binganshouyetianxie'},
+                    },
+                    {
+                        path: 'allCaseFrontSheet',
+                        component: createNameComponent(() => import('@/views/hospitalization/case-front-sheet/AllCaseFrontSheet.vue')),
+                        meta: {title: '病案首页汇总', icon: 'iconfont icon-binganshouye3x'},
+                    },
+                    {
+                        path: 'jieShouHuiZhen',
+                        component: createNameComponent(() => import('@/views/hospitalization/case-front-sheet/JieShouHuiZhen.vue')),
+                        meta: {title: '接收会诊', icon: 'iconfont icon-jieshouhuizhen'},
+                    },
+                ],
+            },
         ],
-      },
-    ],
-  },
+    },
 
-  {
-    path: '/outpatient',
-    component: Layout,
-    meta: { title: '门诊模块', icon: 'iconfont icon-menzhen' },
-    children: [
-      {
-        path: 'mzGuideBill',
-        component: createNameComponent(() => import('@/views/clinic/MzGuideBill.vue')),
-        meta: { title: '门诊指引单', icon: 'iconfont icon-zhiyin' },
-      },
-      {
-        path: 'doctorInfoManagement',
-        component: createNameComponent(() => import('@/views/clinic/DoctorInfoManagement.vue')),
-        meta: { title: '医生信息管理', icon: 'iconfont icon-renyuanxinxiguanli' },
-      },
-      {
-        path: 'transferInOfExpenses',
-        component: createNameComponent(() => import('@/views/clinic/TransferInOfExpenses.vue')),
-        meta: { title: '急诊费用转入', icon: 'iconfont icon-feiyongzhuanru' },
-      },
-      {
-        path: 'wxPayRefund',
-        component: createNameComponent(() => import('@/views/clinic/WxPayRefund.vue')),
-        meta: { title: '微信支付退款', icon: 'iconfont icon-tuikuan' },
-      },
-      {
-        path: 'triage',
-        component: MenuBox,
-        meta: { title: '门诊分诊', icon: 'iconfont icon-menzhenfenzhen' },
+    {
+        path: '/outpatient',
+        component: Layout,
+        meta: {title: '门诊模块', icon: 'iconfont icon-menzhen'},
         children: [
-          {
-            path: 'untriaged',
-            component: createNameComponent(() => import('@/views/clinic/triage/Untriaged.vue')),
-            meta: { title: '未分诊', icon: 'iconfont icon-weifenzhen' },
-          },
-          {
-            path: 'triaged',
-            component: createNameComponent(() => import('@/views/clinic/triage/Triaged.vue')),
-            meta: { title: '已分诊', icon: 'iconfont icon-yifenzhen' },
-          },
-          {
-            path: 'allTriages',
-            component: createNameComponent(() => import('@/views/clinic/triage/AllTriages.vue')),
-            meta: { title: '所有挂号', icon: 'iconfont icon-suoyou' },
-          },
-          {
-            path: 'triageDeptSettings',
-            component: createNameComponent(() => import('@/views/clinic/triage/DeptSettings.vue')),
-            meta: { title: '科室设置', icon: 'iconfont icon-keshi' },
-          },
-          {
-            path: 'triageRoomSettings',
-            component: createNameComponent(() => import('@/views/clinic/triage/RoomSettings.vue')),
-            meta: { title: '诊室设置', icon: 'iconfont icon-zhenshiguanli' },
-          },
-          {
-            path: 'triageIpManagement',
-            component: createNameComponent(() => import('@/views/clinic/triage/IpManagement.vue')),
-            meta: { title: 'IP管理', icon: 'iconfont icon-ip' },
-          },
-          {
-            path: 'triageDisplaySettings',
-            component: createNameComponent(() => import('@/views/clinic/triage/DisplaySettings.vue')),
-            meta: { title: '显示管理', icon: 'iconfont icon-xianshishezhi' },
-          },
-          {
-            path: 'triageFloorScreen',
-            component: createNameComponent(() => import('@/views/clinic/triage/FloorScreen.vue')),
-            meta: { title: '分诊大屏', icon: 'iconfont icon-daping' },
-          },
+            {
+                path: 'mzGuideBill',
+                component: createNameComponent(() => import('@/views/clinic/MzGuideBill.vue')),
+                meta: {title: '门诊指引单', icon: 'iconfont icon-zhiyin'},
+            },
+            {
+                path: 'doctorInfoManagement',
+                component: createNameComponent(() => import('@/views/clinic/DoctorInfoManagement.vue')),
+                meta: {title: '医生信息管理', icon: 'iconfont icon-renyuanxinxiguanli'},
+            },
+            {
+                path: 'transferInOfExpenses',
+                component: createNameComponent(() => import('@/views/clinic/TransferInOfExpenses.vue')),
+                meta: {title: '急诊费用转入', icon: 'iconfont icon-feiyongzhuanru'},
+            },
+            {
+                path: 'wxPayRefund',
+                component: createNameComponent(() => import('@/views/clinic/WxPayRefund.vue')),
+                meta: {title: '微信支付退款', icon: 'iconfont icon-tuikuan'},
+            },
+            {
+                path: 'triage',
+                component: MenuBox,
+                meta: {title: '门诊分诊', icon: 'iconfont icon-menzhenfenzhen'},
+                children: [
+                    {
+                        path: 'untriaged',
+                        component: createNameComponent(() => import('@/views/clinic/triage/Untriaged.vue')),
+                        meta: {title: '未分诊', icon: 'iconfont icon-weifenzhen'},
+                    },
+                    {
+                        path: 'triaged',
+                        component: createNameComponent(() => import('@/views/clinic/triage/Triaged.vue')),
+                        meta: {title: '已分诊', icon: 'iconfont icon-yifenzhen'},
+                    },
+                    {
+                        path: 'allTriages',
+                        component: createNameComponent(() => import('@/views/clinic/triage/AllTriages.vue')),
+                        meta: {title: '所有挂号', icon: 'iconfont icon-suoyou'},
+                    },
+                    {
+                        path: 'triageDeptSettings',
+                        component: createNameComponent(() => import('@/views/clinic/triage/DeptSettings.vue')),
+                        meta: {title: '科室设置', icon: 'iconfont icon-keshi'},
+                    },
+                    {
+                        path: 'triageRoomSettings',
+                        component: createNameComponent(() => import('@/views/clinic/triage/RoomSettings.vue')),
+                        meta: {title: '诊室设置', icon: 'iconfont icon-zhenshiguanli'},
+                    },
+                    {
+                        path: 'triageIpManagement',
+                        component: createNameComponent(() => import('@/views/clinic/triage/IpManagement.vue')),
+                        meta: {title: 'IP管理', icon: 'iconfont icon-ip'},
+                    },
+                    {
+                        path: 'triageDisplaySettings',
+                        component: createNameComponent(() => import('@/views/clinic/triage/DisplaySettings.vue')),
+                        meta: {title: '显示管理', icon: 'iconfont icon-xianshishezhi'},
+                    },
+                    {
+                        path: 'triageFloorScreen',
+                        component: createNameComponent(() => import('@/views/clinic/triage/FloorScreen.vue')),
+                        meta: {title: '分诊大屏', icon: 'iconfont icon-daping'},
+                    },
+                ],
+            },
         ],
-      },
-    ],
-  },
-  {
-    path: '/settings',
-    component: Layout,
-    meta: { title: '设置', icon: 'iconfont icon-shezhi' },
-    children: [
-      {
-        path: 'deptPhones',
-        component: createNameComponent(() => import('@/views/settings/DeptPhones.vue')),
-        meta: { title: '科室电话', icon: 'iconfont icon-dianhua' },
-      },
-      {
-        path: 'sendNotification',
-        component: createNameComponent(() => import('@/views/settings/SendNotification.vue')),
-        meta: { title: '发送通知', icon: 'iconfont icon-fasongtongzhi' },
-      },
-      {
-        path: 'userInfo',
-        component: createNameComponent(() => import('@/views/settings/UserInfo.vue')),
-        meta: { title: '个人中心', icon: 'iconfont icon-gerenzhongxin' },
-      },
-      {
-        path: 'permission',
-        component: MenuBox,
-        meta: { title: '权限管理', icon: 'iconfont icon-permission' },
+    },
+    {
+        path: '/settings',
+        component: Layout,
+        meta: {title: '设置', icon: 'iconfont icon-shezhi'},
         children: [
-          {
-            path: 'userRoleSettings',
-            component: createNameComponent(() => import('@/views/settings/permissions/UserRoleSettings.vue')),
-            meta: { title: '人员角色管理', icon: 'iconfont icon-renyuanjueseguanli' },
-          },
-          {
-            path: 'roleMenuSettings',
-            component: createNameComponent(() => import('@/views/settings/permissions/RoleMenuSettings.vue')),
-            meta: { title: '角色菜单管理', icon: 'iconfont icon-juesecaidanguanli' },
-          },
+            {
+                path: 'deptPhones',
+                component: createNameComponent(() => import('@/views/settings/DeptPhones.vue')),
+                meta: {title: '科室电话', icon: 'iconfont icon-dianhua'},
+            },
+            {
+                path: 'sendNotification',
+                component: createNameComponent(() => import('@/views/settings/SendNotification.vue')),
+                meta: {title: '发送通知', icon: 'iconfont icon-fasongtongzhi'},
+            },
+            {
+                path: 'userInfo',
+                component: createNameComponent(() => import('@/views/settings/UserInfo.vue')),
+                meta: {title: '个人中心', icon: 'iconfont icon-gerenzhongxin'},
+            },
+            {
+                path: 'permission',
+                component: MenuBox,
+                meta: {title: '权限管理', icon: 'iconfont icon-permission'},
+                children: [
+                    {
+                        path: 'userRoleSettings',
+                        component: createNameComponent(() => import('@/views/settings/permissions/UserRoleSettings.vue')),
+                        meta: {title: '人员角色管理', icon: 'iconfont icon-renyuanjueseguanli'},
+                    },
+                    {
+                        path: 'roleMenuSettings',
+                        component: createNameComponent(() => import('@/views/settings/permissions/RoleMenuSettings.vue')),
+                        meta: {title: '角色菜单管理', icon: 'iconfont icon-juesecaidanguanli'},
+                    },
+                ],
+            },
         ],
-      },
-    ],
-  },
+    },
 ]
 
 export default route

+ 39 - 33
src/views/reports/ConsumablesStatistics.vue

@@ -1,7 +1,8 @@
 <template>
   <el-container>
     <el-header height="35px" style="margin-top: 5px">
-      <el-date-picker v-model="dateRange" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :shortcuts="shortcuts"> </el-date-picker>
+      <el-date-picker v-model="dateRange" type="daterange" range-separator="至" start-placeholder="开始日期"
+                      end-placeholder="结束日期" :shortcuts="shortcuts"></el-date-picker>
       <el-select v-model="queryTerm.classCode" filterable clearable placeholder="费用类型">
         <el-option v-for="item in classCode" :key="item.code" :label="item.name" :value="item.code">
           <span class="selectSpan">{{ item.code }}</span>
@@ -10,7 +11,8 @@
         </el-option>
       </el-select>
       名称搜索:
-      <el-select filterable remote clearable :remote-method="remoteMethod" v-model="queryTerm.projectCode" placeholder="拼音首字母搜索">
+      <el-select filterable remote clearable :remote-method="remoteMethod" v-model="queryTerm.projectCode"
+                 placeholder="拼音首字母搜索">
         <el-option v-for="item in shouFeiBianMaData" :key="item.code" :label="item.name" :value="item.code">
           <span style="color: #8492a6; font-size: 12px">{{ item.code }}</span>
           <el-divider direction="vertical"></el-divider>
@@ -21,7 +23,8 @@
       <el-button type="primary" v-show="data.list.length" icon="el-icon-download" @click="excel">导出excel</el-button>
     </el-header>
     <el-main>
-      <el-table :data="data.list.slice((currentPage - 1) * pageSize, currentPage * pageSize)" :height="tableHeight" stripe highlight-current-row>
+      <el-table :data="data.list.slice((currentPage - 1) * pageSize, currentPage * pageSize)" :height="tableHeight"
+                stripe highlight-current-row>
         <el-table-column prop="projectCode" label="项目编码"></el-table-column>
         <el-table-column prop="entryName" show-overflow-tooltip label="项目名称"></el-table-column>
         <el-table-column prop="originBrand" label="产地品牌"></el-table-column>
@@ -36,42 +39,43 @@
         </el-table-column>
       </el-table>
       <el-dialog title="详情信息" v-model="bianMaXiangQingDialog" width="1800px">
-        <yuanNeiTongJiCKXQ></yuanNeiTongJiCKXQ>
+        <yuanNeiTongJiCKXQ :data="xiangQingData"></yuanNeiTongJiCKXQ>
       </el-dialog>
     </el-main>
     <el-footer style="height: 40px">
       <el-pagination
-        @size-change="handleSizeChange"
-        @current-change="handleCurrentChange"
-        :current-page="currentPage"
-        :page-sizes="[20, 30, 40, 50, 100]"
-        :page-size="pageSize"
-        layout="total, sizes, prev, pager, next, jumper"
-        :total="data.total"
-        style="margin-top: 5px"
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="currentPage"
+          :page-sizes="[20, 30, 40, 50, 100]"
+          :page-size="pageSize"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="data.total"
+          style="margin-top: 5px"
       ></el-pagination>
     </el-footer>
   </el-container>
 </template>
 
 <script>
-import { reactive, ref } from '@vue/reactivity'
-import { clockinShortcuts } from '@/data/shortcuts'
-import { getDropdownBox, queryConsumables } from '@/api/querydata/consumables-statistics'
-import { yaoPinHuoXiangMuCode, chaKanXiangQing } from '@/api/querydata/query-pay-service'
-import store from '@/store'
-import { onMounted } from 'vue'
-import { shortcuts } from '@/data/shortcuts'
-import { formatDate } from '@/utils/date'
-import { downloadExcel } from '@/utils/excel'
-import { ElNotification } from 'element-plus'
+import {reactive, ref} from '@vue/reactivity'
+import {clockinShortcuts} from '@/data/shortcuts'
+import {getDropdownBox, queryConsumables} from '@/api/querydata/consumables-statistics'
+import {yaoPinHuoXiangMuCode, chaKanXiangQing} from '@/api/querydata/query-pay-service'
+import store from '../../store'
+import {onMounted} from 'vue'
+import {shortcuts} from '@/data/shortcuts'
+import {formatDate} from '@/utils/date'
+import {downloadExcel} from '@/utils/excel'
+import {ElNotification} from 'element-plus'
 import yuanNeiTongJiCKXQ from './YuanNeiTongJiCKXQ.vue'
+
 export default {
-  components: { yuanNeiTongJiCKXQ },
+  components: {yuanNeiTongJiCKXQ},
   name: 'consumablesStatistics',
   setup() {
     const windowSize = store.state.app.windowSize
-    const tableHeight = windowSize.h - 120
+    const tableHeight = windowSize.h / 1.2
 
     const mrStart = formatDate(clockinShortcuts[1].value[0])
     const mrEnd = formatDate(clockinShortcuts[1].value[1])
@@ -118,7 +122,7 @@ export default {
       if (dateRange.value) {
         queryTerm.startTime = formatDate(dateRange.value[0])
         queryTerm.endTime = formatDate(dateRange.value[1])
-      } else if (queryTerm.classCode == '' && queryTerm.projectCode == '') {
+      } else if (queryTerm.classCode === '' && queryTerm.projectCode === '') {
         queryTerm.startTime = mrStart
         queryTerm.endTime = mrEnd
         ElNotification({
@@ -130,13 +134,13 @@ export default {
         queryTerm.endTime = ''
       }
       queryConsumables(queryTerm)
-        .then((res) => {
-          data.list = res
-          data.total = data.list.length
-        })
-        .catch(() => {
-          data.list = []
-        })
+          .then((res) => {
+            data.list = res
+            data.total = data.list.length
+          })
+          .catch(() => {
+            data.list = []
+          })
     }
 
     const excel = () => {
@@ -169,6 +173,7 @@ export default {
         })
       }
     }
+    const xiangQingData = ref([])
     /** 查询药品或者是项目的详细信息 */
     const xMuHuoYpXiangQingClick = (val) => {
       let param = {
@@ -178,7 +183,7 @@ export default {
       }
       chaKanXiangQing(param).then((res) => {
         bianMaXiangQingDialog.value = true
-        store.commit('SET_YNTJ', res)
+        xiangQingData.value = res
       })
     }
 
@@ -204,6 +209,7 @@ export default {
       remoteMethod,
       xMuHuoYpXiangQingClick,
       bianMaXiangQingDialog,
+      xiangQingData
     }
   },
 }

+ 38 - 30
src/views/reports/DrugInquiry.vue

@@ -1,7 +1,8 @@
 <template>
   <el-container>
     <el-header height="35px" style="margin-top: 10px">
-      <el-date-picker v-model="dateRange" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :shortcuts="shortcuts"> </el-date-picker>
+      <el-date-picker v-model="dateRange" type="daterange" range-separator="至" start-placeholder="开始日期"
+                      end-placeholder="结束日期" :shortcuts="shortcuts"></el-date-picker>
       <el-select style="width: 130px" v-model="queryTerm.kssFlag" filterable clearable placeholder="是否为抗生素">
         <el-option v-for="item in kssFlag" :key="item.code" :label="item.name" :value="item.code"></el-option>
       </el-select>
@@ -9,7 +10,8 @@
         <el-option v-for="item in categoriesFlag" :key="item.code" :label="item.name" :value="item.code"></el-option>
       </el-select>
       名称搜索:
-      <el-select filterable remote clearable :remote-method="remoteMethod" v-model="queryTerm.drugCode" placeholder="拼音首字母搜索">
+      <el-select filterable remote clearable :remote-method="remoteMethod" v-model="queryTerm.drugCode"
+                 placeholder="拼音首字母搜索">
         <el-option v-for="item in shouFeiBianMaData" :key="item.code" :label="item.name" :value="item.code">
           <span style="color: #8492a6; font-size: 12px">{{ item.code }}</span>
           <el-divider direction="vertical"></el-divider>
@@ -18,10 +20,12 @@
       </el-select>
 
       <el-button type="primary" icon="el-icon-search" @click="query" style="margin-left: 5px">查询</el-button>
-      <el-button type="primary" v-if="returnData.length > 0" icon="el-icon-download" @click="exportExcel">导出excel</el-button>
+      <el-button type="primary" v-if="returnData.length > 0" icon="el-icon-download" @click="exportExcel">导出excel
+      </el-button>
     </el-header>
     <el-main>
-      <el-table :data="returnData.slice((currentPage - 1) * pageSize, currentPage * pageSize)" :height="tableHeight" stripe highlight-current-row>
+      <el-table :data="returnData.slice((currentPage - 1) * pageSize, currentPage * pageSize)" :height="tableHeight"
+                stripe highlight-current-row>
         <el-table-column prop="chargeCode" label="院内编码"></el-table-column>
         <el-table-column prop="packageSpecification" label="包装规格"></el-table-column>
         <el-table-column prop="name" show-overflow-tooltip label="项目名称"></el-table-column>
@@ -36,40 +40,41 @@
         </el-table-column>
       </el-table>
       <el-dialog title="详情信息" v-model="yaoPingDialog" width="1200px">
-        <yuanNeiTongJiCKXQ></yuanNeiTongJiCKXQ>
+        <yuanNeiTongJiCKXQ :data="xiangQingData"></yuanNeiTongJiCKXQ>
       </el-dialog>
     </el-main>
     <el-footer style="height: 40px">
       <el-pagination
-        @size-change="handleSizeChange"
-        @current-change="handleCurrentChange"
-        :current-page="currentPage"
-        :page-sizes="[20, 30, 40, 50, 100]"
-        :page-size="pageSize"
-        layout="total, sizes, prev, pager, next, jumper"
-        :total="returnData.length"
-        style="margin-top: 5px"
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="currentPage"
+          :page-sizes="[20, 30, 40, 50, 100]"
+          :page-size="pageSize"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="returnData.length"
+          style="margin-top: 5px"
       ></el-pagination>
     </el-footer>
   </el-container>
 </template>
 
 <script>
-import { reactive, ref } from 'vue'
-import { shortcuts } from '@/data/shortcuts'
-import { onMounted } from 'vue'
-import { clockinShortcuts } from '@/data/shortcuts'
-import { chaKanXiangQing, queryDrugs, yaoPinHuoXiangMuCode } from '@/api/querydata/query-pay-service'
-import { formatDate, getDateRangeFormatDate } from '@/utils/date'
+import {reactive, ref} from 'vue'
+import {shortcuts} from '@/data/shortcuts'
+import {onMounted} from 'vue'
+import {clockinShortcuts} from '@/data/shortcuts'
+import {chaKanXiangQing, queryDrugs, yaoPinHuoXiangMuCode} from '@/api/querydata/query-pay-service'
+import {formatDate, getDateRangeFormatDate} from '@/utils/date'
 import store from '@/store'
-import { writeExcelFile, createWorkSheet } from '@/utils/excel'
-import { ElMessage } from 'element-plus'
+import {writeExcelFile, createWorkSheet} from '@/utils/excel'
+import {ElMessage} from 'element-plus'
 import yuanNeiTongJiCKXQ from './YuanNeiTongJiCKXQ.vue'
+
 export default {
-  components: { yuanNeiTongJiCKXQ },
+  components: {yuanNeiTongJiCKXQ},
   setup() {
     const windowSize = store.state.app.windowSize
-    const tableHeight = windowSize.h - 120
+    const tableHeight = windowSize.h / 1.2
 
     const start = formatDate(clockinShortcuts[1].value[0])
     const end = formatDate(clockinShortcuts[1].value[1])
@@ -84,14 +89,14 @@ export default {
     const ward = ref([])
 
     const kssFlag = [
-      { code: 0, name: '否' },
-      { code: 1, name: '是' },
+      {code: 0, name: '否'},
+      {code: 1, name: '是'},
     ]
     const categoriesFlag = [
-      { code: 0, name: '口服' },
-      { code: 1, name: '大输液' },
-      { code: 2, name: '针剂' },
-      { code: 3, name: '草药饮片' },
+      {code: 0, name: '口服'},
+      {code: 1, name: '大输液'},
+      {code: 2, name: '针剂'},
+      {code: 3, name: '草药饮片'},
     ]
 
     const queryTerm = reactive({
@@ -152,13 +157,15 @@ export default {
       }, 50)
     }
 
+    const xiangQingData = ref([])
+
     /** 查看药品的项目情况 */
     const chaKanYaoPingClick = (val) => {
       val.startTime = queryTerm.startTime
       val.endTime = queryTerm.endTime
       chaKanXiangQing(val).then((res) => {
         yaoPingDialog.value = true
-        store.commit('SET_YNTJ', res)
+        xiangQingData.value = res
       })
     }
 
@@ -194,6 +201,7 @@ export default {
       yaoPingDialog,
       shouFeiBianMaData,
       remoteMethod,
+      xiangQingData,
     }
   },
 }

+ 37 - 32
src/views/reports/JianYanJianChaZhanBi.vue

@@ -3,28 +3,32 @@
     <el-header height="36px" style="margin-top: 8px">
       日期范围:
       <el-date-picker
-        v-model="dateRange"
-        type="daterange"
-        range-separator="至"
-        start-placeholder="开始日期"
-        end-placeholder="结束日期"
-        :shortcuts="shortcuts"
-        style="width: 260px"
+          v-model="dateRange"
+          type="daterange"
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          :shortcuts="shortcuts"
+          style="width: 260px"
       ></el-date-picker>
       &nbsp;&nbsp;医保类别:
-      <el-select v-model="selectedResponces" style="width: 180px" multiple clearable collapse-tags placeholder="不选默认为全部医保">
+      <el-select v-model="selectedResponces" style="width: 180px" multiple clearable collapse-tags
+                 placeholder="不选默认为全部医保">
         <el-option v-for="item in responces" :key="item.code" :label="item.name" :value="item.code"></el-option>
       </el-select>
       <el-button type="primary" icon="el-icon-search" @click="chaXunJianYanJianChaClick">检索</el-button>
-      <el-button type="primary" v-show="jianYanJianChaData.length > 0" icon="el-icon-download" @click="exportExcel">导出excel</el-button>
+      <el-button type="primary" v-show="jianYanJianChaData.length > 0" icon="el-icon-download" @click="exportExcel">
+        导出excel
+      </el-button>
     </el-header>
     <el-main>
-      <el-table :data="jianYanJianChaData.slice((currentPage - 1) * pageSize, currentPage * pageSize)" :height="tableHeight" stripe highlight-current-row>
+      <el-table :data="jianYanJianChaData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"
+                :height="tableHeight" stripe highlight-current-row>
         <el-table-column prop="name" label="姓名"></el-table-column>
         <el-table-column prop="inpatientNo" label="住院号"></el-table-column>
         <el-table-column prop="admissTimes" label="住院次数"></el-table-column>
-        <el-table-column prop="admissDate" label="住院日期" width="80px"></el-table-column>
-        <el-table-column prop="disDate" label="出院日期" width="80px"></el-table-column>
+        <el-table-column prop="admissDate" label="住院日期" width="70px"></el-table-column>
+        <el-table-column prop="disDate" label="出院日期" width="70px"></el-table-column>
         <el-table-column prop="jianChaFei" sortable label="检查费"></el-table-column>
         <el-table-column prop="jianYanFei" sortable label="检验费"></el-table-column>
         <el-table-column prop="jcjyfzb" sortable label="检查检验费占比"></el-table-column>
@@ -38,31 +42,32 @@
         </el-table-column>
       </el-table>
       <el-pagination
-        @size-change="handleSizeChange"
-        @current-change="handleCurrentChange"
-        :current-page="currentPage"
-        :page-sizes="[20, 30, 40, 50, 100]"
-        :page-size="pageSize"
-        layout="total, sizes, prev, pager, next, jumper"
-        :total="jianYanJianChaData.length"
-        style="margin-top: 5px"
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="currentPage"
+          :page-sizes="[20, 30, 40, 50, 100]"
+          :page-size="pageSize"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="jianYanJianChaData.length"
+          style="margin-top: 5px"
       ></el-pagination>
     </el-main>
   </el-container>
 </template>
 
 <script>
-import { ref } from 'vue'
-import { shortcuts } from '@/data/shortcuts'
-import { chaXunJianYanJianCha } from '@/api/querydata/query-pay-service'
-import { getDateRangeFormatDate } from '@/utils/date'
-import { ElMessage } from 'element-plus'
+import {ref} from 'vue'
+import {shortcuts} from '@/data/shortcuts'
+import {chaXunJianYanJianCha} from '@/api/querydata/query-pay-service'
+import {getDateRangeFormatDate} from '@/utils/date'
+import {ElMessage} from 'element-plus'
 import store from '@/store'
-import { writeExcelFile, createWorkSheet } from '@/utils/excel'
+import {writeExcelFile, createWorkSheet} from '@/utils/excel'
+
 export default {
   setup() {
     const windowSize = store.state.app.windowSize
-    const tableHeight = windowSize.h - 120
+    const tableHeight = windowSize.h / 1.2
 
     const dateRange = ref(null)
     const selectedResponces = ref(null)
@@ -164,11 +169,11 @@ export default {
 
 function initResponces() {
   return [
-    { code: '02', name: '省医保' },
-    { code: '03', name: '市城居医保' },
-    { code: '04', name: '新农合' },
-    { code: '09', name: '市城职医保' },
-    { code: '10', name: '省医保-异地' },
+    {code: '02', name: '省医保'},
+    {code: '03', name: '市城居医保'},
+    {code: '04', name: '新农合'},
+    {code: '09', name: '市城职医保'},
+    {code: '10', name: '省医保-异地'},
   ]
 }
 </script>

+ 40 - 31
src/views/reports/QueryPayService.vue

@@ -1,7 +1,8 @@
 <template>
   <el-container>
     <el-header height="35px" style="margin-top: 10px">
-      <el-date-picker v-model="dateRange" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" :shortcuts="shortcuts"> </el-date-picker>
+      <el-date-picker v-model="dateRange" type="daterange" range-separator="至" start-placeholder="开始日期"
+                      end-placeholder="结束日期" :shortcuts="shortcuts"></el-date-picker>
       <el-select style="width: 100px" v-model="queryTerm.classCode" filterable clearable placeholder="费用类型">
         <el-option v-for="item in classCode" :key="item.code" :label="item.name" :value="item.code"></el-option>
       </el-select>
@@ -9,7 +10,8 @@
         <el-option v-for="item in ward" :key="item.code" :label="item.name" :value="item.code"></el-option>
       </el-select>
       名称搜索:
-      <el-select filterable remote clearable :remote-method="remoteMethod" v-model="queryTerm.chargeCode" placeholder="拼音首字母搜索">
+      <el-select filterable remote clearable :remote-method="remoteMethod" v-model="queryTerm.chargeCode"
+                 placeholder="拼音首字母搜索">
         <el-option v-for="item in shouFeiBianMaData" :key="item.code" :label="item.name" :value="item.code">
           <span style="color: #8492a6; font-size: 12px">{{ item.code }}</span>
           <el-divider direction="vertical"></el-divider>
@@ -17,10 +19,12 @@
         >
       </el-select>
       <el-button type="primary" icon="el-icon-search" @click="query" style="margin-left: 5px">查询</el-button>
-      <el-button type="primary" v-if="returnData.length > 0" icon="el-icon-download" @click="exportExcel">导出excel</el-button>
+      <el-button type="primary" v-if="returnData.length > 0" icon="el-icon-download" @click="exportExcel">导出excel
+      </el-button>
     </el-header>
     <el-main>
-      <el-table :data="returnData.slice((currentPage - 1) * pageSize, currentPage * pageSize)" :height="tableHeight" stripe highlight-current-row>
+      <el-table :data="returnData.slice((currentPage - 1) * pageSize, currentPage * pageSize)" :height="tableHeight"
+                stripe highlight-current-row>
         <el-table-column prop="chargeCode" label="院内编码"></el-table-column>
         <el-table-column prop="name" show-overflow-tooltip label="项目名称"></el-table-column>
         <el-table-column prop="classCode" label="费用类别"></el-table-column>
@@ -34,43 +38,47 @@
         </el-table-column>
       </el-table>
       <el-dialog title="详情信息" v-model="bianMaXiangQingDialog" width="1800px">
-        <yuanNeiTongJiCKXQ></yuanNeiTongJiCKXQ>
+        <yuanNeiTongJiCKXQ :data="xiangQingChouTi"></yuanNeiTongJiCKXQ>
       </el-dialog>
     </el-main>
     <el-footer style="height: 40px">
       <el-pagination
-        @size-change="handleSizeChange"
-        @current-change="handleCurrentChange"
-        :current-page="currentPage"
-        :page-sizes="[20, 30, 40, 50, 100]"
-        :page-size="pageSize"
-        layout="total, sizes, prev, pager, next, jumper"
-        :total="returnData.length"
-        style="margin-top: 5px"
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="currentPage"
+          :page-sizes="[20, 30, 40, 50, 100]"
+          :page-size="pageSize"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="returnData.length"
+          style="margin-top: 5px"
       ></el-pagination>
     </el-footer>
   </el-container>
 </template>
 
 <script>
-import { reactive, ref } from '@vue/reactivity'
-import { shortcuts } from '@/data/shortcuts'
-import { onMounted } from 'vue'
-import { clockinShortcuts } from '@/data/shortcuts'
-import { getSelect, queryProjects, chaKanXiangQing, yaoPinHuoXiangMuCode } from '@/api/querydata/query-pay-service'
-import { formatDate } from '@/utils/date'
-import { ElMessage } from 'element-plus'
+import {reactive, ref} from '@vue/reactivity'
+import {shortcuts} from '@/data/shortcuts'
+import {onMounted} from 'vue'
+import {clockinShortcuts} from '@/data/shortcuts'
+import {getSelect, queryProjects, chaKanXiangQing, yaoPinHuoXiangMuCode} from '@/api/querydata/query-pay-service'
+import {formatDate} from '@/utils/date'
+import {ElMessage} from 'element-plus'
 import store from '@/store'
-import { writeExcelFile, createWorkSheet } from '@/utils/excel'
+import {writeExcelFile, createWorkSheet} from '@/utils/excel'
 import yuanNeiTongJiCKXQ from './YuanNeiTongJiCKXQ.vue'
+
 export default {
-  components: { yuanNeiTongJiCKXQ },
+  components: {yuanNeiTongJiCKXQ},
   setup() {
-    const windowSize = store.state.windowSize
-    const tableHeight = windowSize.h - 120
+    const windowSize = store.state.app.windowSize
+    const tableHeight = windowSize.h / 1.2
 
     const start = formatDate(clockinShortcuts[1].value[0])
     const end = formatDate(clockinShortcuts[1].value[1])
+
+    const xiangQingChouTi = ref([])
+
     onMounted(() => {
       getSelect().then((res) => {
         ward.value = res.ward
@@ -111,12 +119,12 @@ export default {
         })
       }
       queryProjects(queryTerm)
-        .then((res) => {
-          returnData.value = res
-        })
-        .catch(() => {
-          returnData.value = []
-        })
+          .then((res) => {
+            returnData.value = res
+          })
+          .catch(() => {
+            returnData.value = []
+          })
     }
 
     const returnData = ref([])
@@ -157,7 +165,7 @@ export default {
       val.endTime = queryTerm.endTime
       val.dept = queryTerm.ward
       chaKanXiangQing(val).then((res) => {
-        store.commit('SET_YNTJ', res)
+        xiangQingChouTi.value = res
         bianMaXiangQingDialog.value = true
       })
     }
@@ -190,6 +198,7 @@ export default {
       bianMaXiangQingDialog,
       shouFeiBianMaData,
       remoteMethod,
+      xiangQingChouTi
     }
   },
 }

+ 74 - 55
src/views/reports/YuanNeiTongJiCKXQ.vue

@@ -1,5 +1,6 @@
 <template>
-  <el-table :data="store.state.yuanNeiTongJi.slice((1 - 1) * 50, 1 * 50)" :height="tableHeight - 200" stripe highlight-current-row>
+  <el-table :data="data.slice((1 - 1) * 50, 50)" :height="tableHeight - 200" stripe
+            highlight-current-row>
     <el-table-column label="住院/门诊号" prop="patient"></el-table-column>
     <el-table-column label="住院/门诊次数" prop="times"></el-table-column>
     <el-table-column label="患者姓名" prop="name"></el-table-column>
@@ -18,24 +19,41 @@
     <el-table-column label="项目编码" prop="chargeCode"></el-table-column>
     <el-table-column label="来源" prop="source"></el-table-column>
   </el-table>
-  <el-tag>共{{ store.state.yuanNeiTongJi.length }}条</el-tag>
+  <el-tag>共{{ data.length }}条</el-tag>
   <el-tag type="warning">默认显示前50条</el-tag>
   <el-button type="primary" icon="el-icon-download" @click="yaoPinShiYongDaoChuClick">导出 excel</el-button>
 </template>
 
 <script>
-import { ElMessageBox } from 'element-plus'
-import store from '@/store'
-import { writeExcelFile, createWorkSheet } from '@/utils/excel'
+import {ElMessageBox} from 'element-plus'
+import store from '../../store'
+import {writeExcelFile, createWorkSheet} from '@/utils/excel'
+import {onMounted, ref, watch} from "vue";
 
 export default {
-  setup() {
-    const windowSize = store.state.windowSize
+  props: {
+    data: {
+      type: Object
+    }
+  },
+  setup(props, ctx) {
+    const windowSize = store.state.app.windowSize
     const tableHeight = windowSize.h - 120
 
+    const data = ref([])
+
+    watch(() => props.data,
+        () => {
+          data.value = props.data
+        })
+
+    onMounted(() => {
+      data.value = props.data
+    })
+
     /** 导出excel 表 */
     const yaoPinShiYongDaoChuClick = () => {
-      if (store.state.yuanNeiTongJi.length === 0) {
+      if (data.value.length === 0) {
         return ElMessage.error({
           message: '没有可以导出的数据',
           showClose: true,
@@ -47,58 +65,59 @@ export default {
         inputPattern: /\S/,
         inputErrorMessage: '文件名不能为空 (∩•̀ω•́)⊃-*⋆',
       })
-        .then(({ value }) => {
-          store.commit('SET_LOADING', true)
-          setTimeout(() => {
-            const title = {
-              patient: '住院/门诊号',
-              times: '住院/门诊次数',
-              name: '患者姓名',
-              socialNo: '身份证',
-              phone: '手机号',
-              admissDate: '入院日期',
-              disDate: '出院日期',
-              chargeDateString: '收费日期',
-              dept: '申请科室',
-              execUnit: '执行科室',
-              number: '数量',
-              mainDiagnosis: '主要诊断',
-              disDiagComment: '次要诊断',
-              amountOfMoney: '金额',
-              chargeCode: '项目编码',
-              ybType: '医保类型',
-              source: '来源',
-            }
-            const fields = [
-              'patient',
-              'times',
-              'name',
-              'socialNo',
-              'phone',
-              'admissDate',
-              'disDate',
-              'chargeDateString',
-              'dept',
-              'execUnit',
-              'number',
-              'mainDiagnosis',
-              'disDiagComment',
-              'amountOfMoney',
-              'chargeCode',
-              'ybType',
-              'source',
-            ]
-            const workSheet = createWorkSheet(store.state.yuanNeiTongJi, fields, title)
-            writeExcelFile(workSheet, value + '.xlsx')
-          }, 50)
-        })
-        .catch(() => {})
+          .then(({value}) => {
+            store.commit('SET_LOADING', true)
+            setTimeout(() => {
+              const title = {
+                patient: '住院/门诊号',
+                times: '住院/门诊次数',
+                name: '患者姓名',
+                socialNo: '身份证',
+                phone: '手机号',
+                admissDate: '入院日期',
+                disDate: '出院日期',
+                chargeDateString: '收费日期',
+                dept: '申请科室',
+                execUnit: '执行科室',
+                number: '数量',
+                mainDiagnosis: '主要诊断',
+                disDiagComment: '次要诊断',
+                amountOfMoney: '金额',
+                chargeCode: '项目编码',
+                ybType: '医保类型',
+                source: '来源',
+              }
+              const fields = [
+                'patient',
+                'times',
+                'name',
+                'socialNo',
+                'phone',
+                'admissDate',
+                'disDate',
+                'chargeDateString',
+                'dept',
+                'execUnit',
+                'number',
+                'mainDiagnosis',
+                'disDiagComment',
+                'amountOfMoney',
+                'chargeCode',
+                'ybType',
+                'source',
+              ]
+              const workSheet = createWorkSheet(data.value, fields, title)
+              writeExcelFile(workSheet, value + '.xlsx')
+            }, 50)
+          })
+          .catch(() => {
+          })
     }
 
     return {
       yaoPinShiYongDaoChuClick,
       tableHeight,
-      store,
+      data,
     }
   },
 }