/*
 * @Author: code4eat awesomedema@gmail.com
 * @Date: 2022-12-14 14:14:32
 * @LastEditors: code4eat awesomedema@gmail.com
 * @LastEditTime: 2026-03-24 11:37:52
 * @FilePath: /BudgetManaSystem/.umirc.ts
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
import { defineConfig } from '@umijs/max';

import MonacoWebpackPlugin from 'monaco-editor-webpack-plugin';

const { REACT_APP_ENV } = process.env;
const path = require('path');

// 从 package.json 读取版本号，如果没有则使用默认值
const pkg = require('./package.json');
const APP_VERSION = pkg.version || '1.0.0';
const BUILD_TIME = new Date().toLocaleString('zh-CN', {
  timeZone: 'Asia/Shanghai',
});

export default defineConfig({
  // 注入版本信息到全局变量
  define: {
    'process.env.APP_VERSION': APP_VERSION,
    'process.env.BUILD_TIME': BUILD_TIME,
  },
  hash: true,
  antd: {
    configProvider: {
      prefixCls: 'cost-ant',
    },
  },
  // alias:{
  //   'ace-builds': path.resolve(__dirname, './node_modules/ace-builds/src-noconflict'),
  // },
  qiankun: {
    slave: {},
  },
  mfsu: false,
  lessLoader: {
    modifyVars: {
      '@ant-prefix': 'cost-ant',
      '@primary-color': '#3377FF',
      '@border-color-base': '#dae2f2',
    },
    javascriptEnabled: true,
  }, //对应修改生成的 antd 样式类名

  chainWebpack(config, { webpack }) {
    config.plugin('monaco-editor').use(MonacoWebpackPlugin, [
      {
        // 指定需要加载的语言和特性
        languages: ['sql', 'javascript', 'typescript'],
      },
    ]);
  },

  access: {},
  model: {},

  initialState: {},
  request: {},
  layout: {
    title: '成本核算系统',
    layout: 'side',
    menuProps: {
      theme: 'light',
    },
  },
  manifest: {
    basePath: '/',
  },
  publicPath: REACT_APP_ENV == 'dev' ? '/' : '/costAccount/',
  proxy: {
    '/gateway': {
      //target: 'http://120.27.235.181:5000/gateway',//开发
      target: 'http://47.96.149.190:5000/gateway', //演示
      changeOrigin: true,
      // pathRewrite: { '^/gateway': '' },
    },
  },
  routes: [
    {
      path: '/',
      redirect: '/home',
    },
    { path: '*', component: '@/pages/404' },
    {
      path: '/noAccess',
      component: './noAccess',
    },
    {
      path: '/home',
      component: './Home/index',
    },
    {
      path: '/baseSetting',
      name: '基础设置',
      routes: [
        {
          path: '/baseSetting/responsibilityCenterSet',
          name: '责任中心设置',
          routes: [
            {
              path: '/baseSetting/responsibilityCenterSet/responsibilityCenter',
              name: '责任中心管理',
              component:
                './baseSetting/responsibilityCenterSet/responsibilityCenter/index',
            },
            {
              path: '/baseSetting/responsibilityCenterSet/responsibilityCenterConnect',
              name: '责任中心对应',
              component:
                './baseSetting/responsibilityCenterSet/responsibilityCenterConnect/index',
            },
          ],
        },
        {
          path: '/baseSetting/accountingAccountSet',
          name: '会计科目设置',
          routes: [
            {
              path: '/baseSetting/accountingAccountSet/costIncomeProjectMana',
              name: '会计收入项目管理',
              component:
                './baseSetting/accountingAccountSet/costIncomeProjectMana/index',
            },
            {
              path: '/baseSetting/accountingAccountSet/accountingSubMana',
              name: '会计科目管理',
              component:
                './baseSetting/accountingAccountSet/accountingSubMana/index',
            },
            {
              path: '/baseSetting/accountingAccountSet/accountingSubMap',
              name: '会计科目对应',
              component:
                './baseSetting/accountingAccountSet/accountingSubMap/index',
            },
            {
              path: '/baseSetting/accountingAccountSet/chargeItemMap',
              name: '收费项目对应',
              component:
                './baseSetting/accountingAccountSet/chargeItemMap/index',
            },
          ],
        },
        {
          path: '/baseSetting/costAllocationSet',

          name: '成本分摊设置',
          routes: [
            {
              path: '/baseSetting/costAllocationSet/allocationLevelSet',
              name: '分摊层级设置',
              component:
                './baseSetting/costAllocationSet/allocationLevelSet/index',
            },
            {
              path: '/baseSetting/costAllocationSet/idleCostSetting',
              name: '闲置成本设置',
              component:
                './baseSetting/costAllocationSet/idleCostSetting/index',
            },
            {
              path: '/baseSetting/costAllocationSet/costAllocationParamsSet',
              name: '成本分摊参数设置',
              component:
                './baseSetting/costAllocationSet/costAllocationParamsSet/index',
            },
            {
              path: '/baseSetting/costAllocationSet/costAllocationParamsDeal',
              name: '成本分摊参数处理',
              component:
                './baseSetting/costAllocationSet/costAllocationParamsDeal/index',
            },
            {
              path: '/baseSetting/costAllocationSet/allocationParamsMap',
              name: '分摊参数对应',
              component:
                './baseSetting/costAllocationSet/allocationParamsMap/index',
            },
            {
              path: '/baseSetting/costAllocationSet/revenueImputationSet',
              name: '收入归集设置',
              component:
                './baseSetting/costAllocationSet/revenueImputationSet/index',
            },
          ],
        },
        {
          path: '/baseSetting/otherItemSet',
          name: '其它设置',
          icon: 'tool',
          routes: [
            {
              path: '/baseSetting/otherItemSet/diySqlMana',
              name: '自定义SQl管理',
              component: './baseSetting/otherItemSet/diySqlMana/index',
            },
            {
              path: '/baseSetting/otherItemSet/reportItemSet',
              name: '报表项目设置',
              component: './baseSetting/otherItemSet/reportItemSet/index',
            },
            {
              path: '/baseSetting/otherItemSet/departmentCostCalc',
              name: '科室损益计算',
              component: './baseSetting/otherItemSet/departmentCostCalc/index',
            },
            {
              path: '/baseSetting/otherItemSet/visitsAndBedDayCostSetting',
              name: '诊次/床日成本设置',
              component:
                './baseSetting/otherItemSet/visitsAndBedDayCostSetting/index',
            },
            {
              path: '/baseSetting/otherItemSet/wholeHospCostAndIncomeSet',
              name: '全院其他收支设置',
              component:
                './baseSetting/otherItemSet/wholeHospCostAndIncomeSet/index',
            },
          ],
        },
      ],
    },
    {
      path: '/monthlyInfoCollection',
      name: '月度信息采集2',
      component: './monthlyInfoCollection/index',
    },
    {
      path: '/departmentCostCheck',
      name: '科室损益查询',
      routes: [
        {
          path: '/departmentCostCheck/month',
          name: '月度损益查询',
          component: './departmentCostCheck/index',
        },
        {
          path: '/departmentCostCheck/year',
          name: '年度损益查询',
          component: './departmentCostCheck/index',
        },
      ],
    },
    {
      path: '/hospitalProfitAndLoss',
      name: '全院损益查询',
      routes: [
        {
          path: '/hospitalProfitAndLoss/month',
          name: '月度损益查询',
          component: './hospitalProfitAndLoss/index',
        },
        {
          path: '/hospitalProfitAndLoss/year',
          name: '年度损益查询',
          component: './hospitalProfitAndLoss/index',
        },
      ],
    },
    {
      path: '/departmentMzCostCalc',
      name: '科室门住损益计算',
      component: './departmentMenzhuCostCalc/index',
    },
    {
      path: '/specialDataImport',
      name: '填报数据导入',
      component: './specialDataImport/index',
    },
    {
      path: '/incomeCollectionAction',
      name: '收入归集',
      component: './incomeCollectionAction/index',
    },
    {
      path: '/monthlyInfoSearch',
      name: '月度信息采集',
      routes: [
        {
          path: '/monthlyInfoSearch/wholeHospIncomeAndCost',
          name: '全院其他收支',
          component: './monthlyInfoSearch/wholeHospIncomeAndCost/index',
        },
        {
          path: '/monthlyInfoSearch/empCostDataImport',
          name: '人事成本数据导入',
          component: './monthlyInfoSearch/empCostDataImport/index',
        },
        {
          path: '/monthlyInfoSearch/patientChargeItemsImport',
          name: '患者收费项目导入',
          component: './monthlyInfoSearch/patientChargeItemsImport/index',
        },
        {
          path: '/monthlyInfoSearch/patientInfoImport',
          name: '患者信息导入',
          component: './monthlyInfoSearch/patientInfoImport/index',
        },
        {
          path: '/monthlyInfoSearch/incomeCostDataImport',
          name: '收入成本数据导入',
          component: './monthlyInfoSearch/incomeCostDataImport/index',
        },
      ],
    },
    {
      path: '/costAccounting',
      name: '成本核算',
      routes: [
        {
          path: '/costAccounting/:calcPageKey',
          component: './costAccounting/calcPageTemplate/index',
        },
      ],
    },
    {
      path: '/reportExport',
      name: '报表输出',
      routes: [
        {
          path: '/reportExport/:reportType',
          routes: [
            {
              path: '/reportExport/:reportType/:reportCode',
              component: './reportExport/report',
            },
          ],
        },
      ],
    },
    {
      path: '/operationalAnalysis',
      name: '运营分析',
      routes: [{}],
    },
    {
      path: '/costLibraryManagement',
      name: '成本库管理',
      routes: [
        {
          path: '/costLibraryManagement/basicCostManagement',
          name: '基础成本管理',
          routes: [
            {
              path: '/costLibraryManagement/basicCostManagement/personnelClassificationMana',
              name: '人事分类管理',
              component:
                './costLibraryManagement/basicCostManagement/personnelClassificationMana/index',
            },
            {
              path: '/costLibraryManagement/basicCostManagement/drugCostManagement',
              name: '药品成本管理',
              component:
                './costLibraryManagement/basicCostManagement/drugCostManagement/index',
            },
            {
              path: '/costLibraryManagement/basicCostManagement/materialCostManagement',
              name: '材料成本管理',
              component:
                './costLibraryManagement/basicCostManagement/materialCostManagement/index',
            },
            {
              path: '/costLibraryManagement/basicCostManagement/equipmentCostManagement',
              name: '设备成本管理',
              component:
                './costLibraryManagement/basicCostManagement/equipmentCostManagement/index',
            },
            {
              path: '/costLibraryManagement/basicCostManagement/spaceCostManagement',
              name: '空间成本管理',
              component:
                './costLibraryManagement/basicCostManagement/spaceCostManagement/index',
            },
          ],
        },
        {
          path: '/costLibraryManagement/projectCostManagement',
          name: '项目成本管理',
          routes: [
            {
              path: '/costLibraryManagement/projectCostManagement/chargeItemsMana',
              name: '收费项目管理',
              component:
                './costLibraryManagement/projectCostManagement/chargeItemsMana/index',
            },
            {
              path: '/costLibraryManagement/projectCostManagement/standardProjectMana',
              name: '标准项目管理',
              component:
                './costLibraryManagement/projectCostManagement/standardProjectMana/index',
            },
            {
              path: '/costLibraryManagement/projectCostManagement/projectShareParamsSet',
              name: '项目分摊参数设置',
              component:
                './costLibraryManagement/projectCostManagement/projectShareParamsSet/index',
            },
            {
              path: '/costLibraryManagement/projectCostManagement/projectCostShareSet',
              name: '项目成本分摊设置',
              component:
                './costLibraryManagement/projectCostManagement/projectCostShareSet/index',
            },
          ],
        },
        {
          path: '/costLibraryManagement/medicalOrderProject',
          name: '医嘱项目',
          routes: [
            {
              path: '/costLibraryManagement/medicalOrderProject/medicalOrderProjectMana',
              name: '收费项目管理',
              component:
                './costLibraryManagement/medicalOrderProject/medicalOrderProjectMana/index',
            },
          ],
        },
        {
          path: '/costLibraryManagement/diseaseCostManagement',
          name: '病种成本管理',
          routes: [
            {
              path: '/costLibraryManagement/diseaseCostManagement/diseaseMana',
              name: '病种管理',
              component:
                './costLibraryManagement/diseaseCostManagement/diseaseMana/index',
            },
            {
              path: '/costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison',
              name: '病种诊断对照',
              component:
                './costLibraryManagement/diseaseCostManagement/diseaseDiagnosisComparison/index',
            },
          ],
        },
        {
          path: '/costLibraryManagement/clinicalPathwayCostManagement',
          name: '临床路径成本管理',
          routes: [{}],
        },
        {
          path: '/costLibraryManagement/reportMana',
          name: '报表管理',
          routes: [
            {
              path: '/costLibraryManagement/reportMana/reportColumnMana',
              name: '报表列管理',
              component:
                './costLibraryManagement/reportMana/reportColumnMana/index',
            },
            {
              path: '/costLibraryManagement/reportMana/reportListMana',
              name: '报表管理',
              component:
                './costLibraryManagement/reportMana/reportListMana/index',
            },
            {
              path: '/costLibraryManagement/reportMana/reportNavSet',
              name: '报表跳转',
              component:
                './costLibraryManagement/reportMana/reportNavSet/index',
            },
          ],
        },
      ],
    },
  ],
  npmClient: 'yarn',
});
